/* Shared layout constraints: real wrapping, not hidden overflow. */
.sponsor-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.sponsor-certificate { display: block; min-width: 0; }
.sponsor-certificate img { display: block; height: auto; }
.sponsor-certificate span { display: block; font-size: .875rem; line-height: 1.5; padding-top: .75rem; }
html { scroll-padding-top: 100px; -webkit-text-size-adjust: 100%; }
body { overflow-wrap: break-word; }
img { max-width: 100%; }
main, section, article, nav, .section-head > div, .section > div { min-width: 0; }
h1, h2, h3 { overflow-wrap: anywhere; hyphens: auto; }
p, li, address, a { overflow-wrap: anywhere; }
.header { position: relative; height: 88px; background: #fff; color: var(--ink); border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.brand img { display: block; width: 132px; height: auto; aspect-ratio: 2048 / 794; object-fit: contain; }
.header-cta { height: 88px; border-color: var(--line); color: #006d97; }
.nav { align-items: center; }
.nav a { padding: .65rem 0; }
.menu { flex: 0 0 44px; width: 44px; height: 44px; padding: 10px; cursor: pointer; }
.menu i { background: var(--ink); margin: 6px 0; height: 2px; }
.hero { height: auto; min-height: 680px; display: block; background: var(--navy); }
.hero-content { padding: 6rem 7vw 3.5rem; max-width: 1120px; }
.hero h1 { font-size: clamp(3rem, 6.7vw, 6.7rem); line-height: 1.08; }
.hero-proof { position: relative; inset: auto; margin: 0 7vw; padding: 1.5rem 0 2rem; border-top: 1px solid #ffffff40; flex-wrap: wrap; }
.hero-copy { line-height: 1.7; }
.btn { min-height: 48px; align-items: center; justify-content: center; text-align: center; }
.section { padding: clamp(3.5rem, 7vw, 7rem) 7vw; }
.section-head { gap: 2rem; }
.section-head > div { flex: 1; }
.section-head > p { flex: 0 1 340px; }
.intro h2,.section-head h2,.contact h2,.family h2,.sponsoring h2,.jobs-intro h2 { font-size: clamp(2rem, 4.1vw, 4.6rem); line-height: 1.14; }
.eyebrow { font-size: .8125rem; line-height: 1.6; letter-spacing: .12em; }
.service-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.service-grid h3 { font-size: 1.55rem; line-height: 1.2; }
.service-grid small { font-size: .75rem; }
.family { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 5vw; }
.timeline { flex-wrap: wrap; gap: 1.5rem; }
.timeline div { min-width: 0; flex: 1 1 120px; }
.timeline i { display: none; }
.timeline span { font-size: .9375rem; }
.credential-layout { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 2rem; }
.apprentice-card { grid-template-columns: 1fr; align-content: start; padding: 2rem; gap: 1.5rem; }
.apprentice-card img { width: 144px; height: auto; }
.certificates img { height: auto; aspect-ratio: 724 / 1024; object-fit: contain; background: #fff; }
.reference-gallery h3 { font-size: .9375rem; line-height: 1.4; min-height: 4.8rem; }
.contact-card small { font-size: .8125rem; }
.suva-band h2 { font-size: clamp(2.1rem, 5.5vw, 5.5rem); line-height: 1.12; }
.footer-brand img { background: #fff; padding: .5rem; width: 144px; }
a:focus-visible,button:focus-visible { outline: 3px solid #0086b5; outline-offset: 5px; }
@media(max-width:1100px) {
 .header { gap: 1.5rem; }
 .nav { gap: 1rem; }
 .nav a { font-size: .8125rem; }
 .family,.credential-layout,.sponsoring { grid-template-columns: 1fr; }
 .timeline { padding-top: 1rem; }
}
@media(max-width:800px) {
 .header { height: 76px; padding: 0 5vw; }
 .brand img { width: 116px; height: auto; }
 .nav { top: 76px; padding: 1rem 5vw 1.5rem; box-shadow: 0 12px 20px #001b3020; }
 .nav a { color: #fff; font-size: 1rem; width: 100%; padding: .6rem 0; }
 .hero { min-height: 0; }
 .hero-shade { background: linear-gradient(90deg,rgba(3,28,48,.94),rgba(3,28,48,.72)); }
 .hero-content { padding: 3.5rem 5vw 2.5rem; }
 .hero h1 { font-size: clamp(2.6rem, 8vw, 4rem); }
 .hero-copy { font-size: 1rem; }
 .hero-proof { margin: 0 5vw; padding: 1.5rem 0 2rem; }
 .section { padding: 4rem 5vw; }
 .section-head { margin-bottom: 2rem; gap: .75rem; }
 .section-head > p { flex: auto; max-width: 100%; margin-bottom: 0; }
 .section-head h2 { margin-bottom: 1rem; }
 .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .service-grid article { padding: 1.5rem; }
 .workflow-grid article > div { padding: 1.5rem; }
 .suva-band { padding: 4rem 5vw; }
 footer { padding: 3rem 5vw; grid-template-columns: 1fr; }
}
@media(max-width:600px) {
 .hero-content { padding-top: 2.75rem; }
 .hero h1 { font-size: clamp(2.4rem, 10.4vw, 3.6rem); letter-spacing: -.04em; margin-bottom: 1.5rem; }
 .hero .eyebrow { font-size: .75rem; letter-spacing: .09em; }
 .hero-actions { gap: .75rem; }
 .hero-actions .btn { padding: .875rem 1rem; }
 .hero-proof { display: grid; grid-template-columns: auto 1fr; gap: .4rem 1rem; }
 .hero-proof strong { font-size: 1.125rem; }
 .hero-proof span { font-size: .75rem; }
 .intro h2,.section-head h2,.contact h2,.family h2,.sponsoring h2,.jobs-intro h2 { font-size: clamp(1.8rem, 7.6vw, 2.35rem); letter-spacing: -.035em; }
 .section h2 br { display: none; }
 .section h2 br::after { content: ' '; }
 .section { padding-top: 3.5rem; padding-bottom: 3.5rem; }
 .service-grid { grid-template-columns: 1fr; }
 .service-grid h3 { margin-top: 1.25rem; }
 .reference-gallery { gap: .75rem; }
 .reference-gallery h3 { font-size: .875rem; padding: .75rem; min-height: 4.5rem; }
 .timeline { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
 .timeline div { display: grid; grid-template-columns: 90px 1fr; align-items: center; gap: .75rem; border-top: 1px solid #ffffff30; padding-top: 1rem; }
 .timeline b { font-size: 1.7rem; }
 .apprentice-card { padding: 1.5rem; }
 .apprentice-card h3 { font-size: 1.8rem; line-height: 1.15; }
 .sponsor-grid { grid-template-columns: 1fr; max-width: 340px; }
 .jobs { gap: 2rem; }
 .jobs-list li { font-size: 1rem; line-height: 1.5; }
 .contact-card > div { grid-template-columns: 1fr; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
