/* Woodward Construction site layer — built on DS tokens only */
:root{--ww-ember:#943A20}
body{margin:0;background:var(--surface-page)}
p,h1,h2,h3,h4,li,dd,blockquote,figcaption{text-wrap:pretty}
img{display:block;max-width:100%}
.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--space-6)}
.eyebrow{font-family:var(--font-sans);font-weight:700;font-size:var(--text-sm);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--accent)}
a.plain{color:inherit}
/* Text-link button (no box) */
.btn-text{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-sans);font-weight:700;font-size:var(--text-base);color:var(--accent);border-bottom:2px solid transparent;padding-bottom:2px;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.btn-text:hover{color:var(--accent-strong);border-bottom-color:var(--accent-strong)}
.btn-text span{transition:transform var(--dur-fast) var(--ease-out)}
.btn-text:hover span{transform:translateX(3px)}
/* Nav (transparent overlay) */
.nav{position:absolute;top:0;left:0;right:0;background:transparent;border-bottom:none;z-index:50}
[data-screen-label="Home"] .nav button,[data-screen-label="Home"] .hero button{background:var(--ww-paper) !important;color:var(--ww-ember) !important;border-color:var(--ww-paper) !important}
[data-screen-label="Home"] .nav button:hover,[data-screen-label="Home"] .hero button:hover{background:var(--ww-white) !important}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);height:88px;padding-top:var(--space-5)}
.nav-logo img{height:56px;width:auto}
.nav-links{display:flex;align-items:center;gap:var(--space-6)}
.nav-links button{white-space:nowrap;font-size:16px !important}
.nav-links a{font-family:var(--font-sans);font-weight:700;font-size:var(--text-base);color:var(--ww-white);letter-spacing:.02em;border-bottom:2px solid transparent;padding-bottom:4px}
.nav-links a:hover{color:var(--ww-amber)}
.nav-links a.active{color:var(--ww-amber);border-bottom-color:var(--ww-amber)}
.nav.on-light{border-bottom-color:var(--ww-ember)}
.nav.on-light .nav-links a{color:var(--ww-ink)}
.nav.on-light .nav-links a:hover{color:var(--accent)}
.nav.on-light .nav-links a.active{color:var(--accent);border-bottom-color:var(--accent)}
/* Hero video card + lightbox */
.hero-video-card{position:absolute;right:var(--space-6);bottom:110px;display:block;padding:0;width:340px;height:190px;border:2px solid var(--ww-paper);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;background:var(--ww-ink);transition:transform var(--dur-fast) var(--ease-out)}
.hero-video-card:hover{transform:scale(1.02)}
.hero-video-card video{width:100%;height:100%;object-fit:cover;display:block}
.play-badge{position:absolute;left:12px;bottom:12px;display:inline-flex;align-items:center;gap:8px;font-family:var(--font-sans);font-weight:700;font-size:var(--text-sm);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ww-white);background:color-mix(in srgb,var(--ww-ink) 60%,transparent);padding:6px 12px;border-radius:var(--radius-sm)}
.lightbox{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ww-ink) 88%,transparent);padding:var(--space-7)}
.lightbox video{max-width:min(1200px,92vw);max-height:82vh;border-radius:var(--radius-md)}
.lightbox-img{max-width:min(1200px,92vw);max-height:82vh;border-radius:var(--radius-md);object-fit:contain}
.lightbox-close{position:absolute;top:24px;right:32px;background:none;border:0;color:var(--ww-paper);font-size:40px;line-height:1;cursor:pointer;font-family:var(--font-sans)}
.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);background:color-mix(in srgb,var(--ww-paper) 12%,transparent);border:1px solid color-mix(in srgb,var(--ww-paper) 40%,transparent);color:var(--ww-paper);font-size:24px;line-height:1;width:52px;height:52px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}
.lightbox-arrow:hover{background:color-mix(in srgb,var(--ww-paper) 25%,transparent)}
.lightbox-arrow.prev{left:24px}
.lightbox-arrow.next{right:24px}
/* Hero */
.hero{position:relative;overflow:hidden;background:var(--ww-ink)}
.hero video,.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.72}
.hero.ember{background:var(--ww-ember)}
.hero-draw{position:absolute;inset:0;pointer-events:none;opacity:.12}
.hero-draw svg{position:absolute;inset:0;width:100%;height:100%}
.hero-draw path{fill:none !important;stroke:var(--ww-paper);opacity:0;animation:ww-fade .9s var(--ease-out,ease-out) forwards}
@keyframes ww-fade{to{opacity:1}}
.hero-scrim{position:absolute;inset:0;background:color-mix(in srgb,var(--ww-ink) 55%,transparent)}
.hero-scrim::after{content:'';position:absolute;inset:0;background:url('../assets/texture-topo-paper.svg') top left/366px auto repeat;opacity:.2;pointer-events:none}
.hero.page .hero-scrim::after{display:none}
.hero-content{position:relative;padding-block:var(--space-9);color:var(--text-inverse)}
.hero-content h1{color:var(--ww-white);font-size:var(--text-hero);max-width:16ch;text-wrap:pretty}
.hero-content p{max-width:52ch;font-size:var(--text-lg);color:var(--ww-stone);margin:var(--space-5) 0 var(--space-6)}
.hero.tall .hero-content{padding-block:calc(178px + 88px) 102px}
.hero.page .hero-content{padding-block:calc(var(--space-8) + 88px) var(--space-8)}
.hero.page h1{font-size:var(--text-h1)}
.hero.page.light{background:var(--ww-paper)}
.hero.page.light h1{color:var(--text-heading)}
.hero.page.light .hero-content{color:var(--text-body)}
.hero.page.light .hero-content p{color:var(--text-muted)}
.hero.page.light .hero-content{display:flex;align-items:end;justify-content:space-between;gap:var(--space-6);flex-wrap:wrap}
.hero.page.light .hero-content p{margin:0;text-align:right}
/* Brand topographic textures (negative-space fill) */
.page-head,.tint-block,.dark-band,.footer,.cta-banner,.detail-facts{position:relative;overflow:hidden}
.page-head::before,.tint-block::before,.dark-band::before,.footer::before,.cta-banner::before,.detail-facts::before{content:'';position:absolute;inset:0;background:url('../assets/texture-topo-ember.png') top left/366px auto repeat;pointer-events:none}
.page-head::before{background-image:url('../assets/texture-topo-slate.svg');opacity:.12;mask-image:linear-gradient(to bottom,black 55%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 55%,transparent 100%)}
.tint-block::before,.cta-banner::before,.detail-facts::before{opacity:.12}
.page-head.on-dark::before,.footer::before{background-image:url('../assets/texture-topo-paper.svg');opacity:.12}
.dark-band::before{background-image:url('../assets/texture-topo-paper.svg');opacity:.12}
.page-head>*,.tint-block>*,.dark-band>*,.footer>*,.cta-banner>*,.detail-facts>*{position:relative;z-index:1}
/* Page headers (variants) */
.page-head{padding-block:calc(var(--space-8) + 88px) var(--space-8)}
.page-head h1{max-width:24ch;text-wrap:pretty}
.page-head p{max-width:64ch;font-size:var(--text-lg);color:var(--text-body);margin:var(--space-5) 0 0}
.page-head.center{text-align:center}
.page-head.center h1,.page-head.center p{margin-left:auto;margin-right:auto}
.page-head.on-dark{background:var(--surface-dark)}
.page-head.on-dark h1{color:var(--ww-paper)}
.page-head.on-dark p{color:var(--ww-stone)}
.head-split{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--space-8);align-items:center}
.head-split img{width:100%;height:420px;object-fit:cover;border-radius:var(--radius-md)}
/* Dark full-width band wrapping a split */
.band-dark{background:var(--surface-dark)}
.band-dark h2{color:var(--ww-paper)}
.band-dark p{color:var(--ww-stone)}
/* Ember full-width band */
.band-amber{background:var(--ww-ember)}
.band-amber h2{color:var(--ww-paper)}
.band-amber p{color:var(--ww-paper)}
.band-amber button{background:var(--ww-paper) !important;border-color:var(--ww-paper) !important;color:var(--ww-ember) !important}
.split.compact{padding-block:var(--space-9)}
.split.compact .media img{min-height:0;height:440px}
/* Tinted intro block */
.tint-block{background:var(--ww-amber-tint);text-align:center;padding:var(--space-8) var(--space-6);margin:var(--space-8) auto;border-radius:var(--radius-md)}
.tint-block.ember{background:var(--ww-ember-tint)}
.tint-block.stone{background:var(--surface-sunken)}
/* Where-we-work map block */
.map-band{background:var(--surface-sunken);position:relative;overflow:hidden}
.map-band::before{content:"";position:absolute;inset:0;pointer-events:none;background:url('../assets/texture-topo-slate.svg') left center/auto 100% no-repeat;opacity:.25;mask-image:linear-gradient(to right,black 15%,transparent 45%);-webkit-mask-image:linear-gradient(to right,black 15%,transparent 45%)}
.map-band .tint-block{background:transparent;border-radius:0;margin-block:0}
.map-band .tint-block::before{display:none}
.map-band>.tint-block{position:relative}
.tint-block.map-block{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--space-8);align-items:center;text-align:left}
.tint-block.map-block>div:first-child{order:2}
.tint-block.map-block h2,.tint-block.map-block p{margin-left:0;margin-right:0}
.svc-map{max-width:420px;justify-self:center;width:100%}
.svc-map svg{width:100%;height:auto;display:block}
@media(max-width:900px){.tint-block.map-block{grid-template-columns:1fr}}
.tint-block.dark{background:var(--surface-dark)}
.tint-block.dark h2{color:var(--ww-paper)}
.tint-block.dark p{color:var(--ww-stone)}
.tint-block.dark::before{background-image:url('../assets/texture-topo-paper.svg');opacity:.12}
.tint-block.dark.red{background:var(--ww-ember)}
.tint-block.dark button{color:var(--ww-paper) !important;border-color:var(--ww-paper) !important;background:transparent !important}
.tint-block.dark button:hover{background:color-mix(in srgb,var(--ww-paper) 15%,transparent) !important}
.tint-block::before{background-image:url('../assets/texture-topo-amber.svg');opacity:.6}
.tint-block h2{max-width:24ch;margin:0 auto}
.tint-block p{max-width:70ch;margin:var(--space-5) auto var(--space-6);color:var(--text-body)}
.tint-block::before{background-position:calc(50% - 300px) center}
/* Big statement */
.statement{padding-block:var(--space-9);text-align:center}
.statement h2{font-size:48px;max-width:26ch;margin:0 auto;text-wrap:pretty}
/* Split section */
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);align-items:center;padding-block:var(--space-8)}
[data-screen-label="Home"] .split{padding-block:var(--space-9)}
[data-screen-label="Home"] .split .media img{min-height:420px;height:420px}
.split .media img{width:100%;height:100%;min-height:380px;object-fit:cover;border-radius:var(--radius-md)}
.split .body h2{margin-bottom:var(--space-4)}
.split .body .eyebrow{display:block;margin-bottom:var(--space-3)}
.split .body p{margin:0 0 var(--space-4)}
/* Dark band / quote */
.dark-band{background:var(--surface-dark);color:var(--text-inverse);padding:var(--space-9) 0;text-align:center}
.dark-band h2,.dark-band h3{color:var(--ww-paper)}
.dark-band.umber{background:var(--ww-umber)}
.dark-band.umber::before{display:none}
.dark-band .quote{font-family:var(--font-display);font-size:40px;line-height:var(--leading-snug);max-width:30ch;margin:var(--space-6) auto 0;color:var(--ww-paper);text-wrap:pretty}
.dark-band .attrib{margin-top:var(--space-5);color:var(--ww-stone);font-size:var(--text-sm)}
.dark-band p.lede{max-width:60ch;margin:var(--space-4) auto 0;color:var(--ww-stone)}
/* CTA banner */
.cta-banner{background:var(--ww-amber-tint);border:1px solid var(--border-default);border-radius:var(--radius-md);display:grid;grid-template-columns:1.2fr 1fr;overflow:hidden;margin:var(--space-8) auto}
.cta-banner .pad{padding:var(--space-7)}
.cta-banner h2{max-width:18ch}
.cta-banner p{margin:var(--space-3) 0 var(--space-5);max-width:44ch}
.cta-banner img{width:100%;height:100%;object-fit:cover;filter:grayscale(35%)}
/* Category cards (image w/ label) */
.cat-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);padding-block:var(--space-6) var(--space-8)}
.cat-card{position:relative;display:block;height:320px;overflow:hidden;border-radius:var(--radius-md)}
.cat-card img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-base) var(--ease-out)}
.cat-card:hover img{transform:scale(1.03)}
.cat-card .label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ww-ink) 38%,transparent);color:var(--ww-white);font-family:var(--font-display);font-size:var(--text-h2)}
/* Projects banners */
.proj-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6);padding-block:var(--space-6) var(--space-8)}
.proj-banner{position:relative;display:block;height:420px;overflow:hidden;border-radius:var(--radius-md);color:inherit}
.proj-banner img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-base) var(--ease-out)}
.proj-banner:hover img{transform:scale(1.03)}
.proj-banner .bar{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:var(--space-6);padding:var(--space-5) var(--space-6);background:color-mix(in srgb,var(--ww-paper) 72%,transparent);backdrop-filter:blur(2px)}
.proj-banner .bar>div{border-left:0;padding-left:0}
.proj-banner .bar>div:last-child{text-align:right}
.proj-banner h3{font-family:var(--font-display);font-weight:400;font-size:20px;letter-spacing:.02em;margin:0;color:var(--ww-ink)}
.proj-banner .loc{font-family:var(--font-sans);font-weight:700;font-size:var(--text-sm);letter-spacing:var(--tracking-caps);text-transform:uppercase;margin:0;color:var(--ww-ember)}
/* Home projects feature */
.proj-feature .proj-banner{margin-bottom:var(--space-5)}
.proj-feature-pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
.proj-feature-pair .proj-banner{height:300px;margin-bottom:0}
.proj-banner.small h3{font-size:var(--text-lg)}
@media(max-width:900px){.proj-feature-pair{grid-template-columns:1fr}}
/* Strip of 3 images (home projects) */
.strip{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-4)}
.strip img{width:100%;height:220px;object-fit:cover;border-radius:var(--radius-sm)}
/* Service rows */
.svc-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);align-items:center;padding-block:var(--space-8)}
.svc-row:last-of-type{border-bottom:0}
.svc-row .media img{width:100%;height:420px;object-fit:cover;border-radius:var(--radius-md)}
.svc-row button{border:none !important}
.svc-row.dark{background:var(--surface-dark);border-radius:var(--radius-md);padding:var(--space-7);border-bottom:0;margin-block:var(--space-6)}
.svc-row.dark h2{color:var(--ww-paper)}
.svc-row.dark p{color:var(--ww-stone)}
.svc-row.dark .btn-text{color:var(--ww-amber)}
.svc-row.dark .btn-text:hover{color:var(--ww-paper);border-bottom-color:var(--ww-paper)}
.svc-row.flip .media{order:2}
.svc-row p{margin:var(--space-4) 0 var(--space-5)}
.detail-video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
/* Detail page */
.detail-layout{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-8);padding-block:var(--space-8)}
.detail-facts{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-card);align-self:start}
.detail-facts dl{margin:0;display:grid;gap:var(--space-4)}
.detail-facts dt{font-family:var(--font-sans);font-weight:700;font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ww-ember)}
.detail-facts dd{margin:2px 0 0;color:var(--text-body)}
.facts-list{margin:0;padding-left:18px;display:grid;gap:4px}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);padding-bottom:var(--space-8)}
.gallery img{width:100%;height:340px;object-fit:cover;border-radius:var(--radius-sm)}
.gallery-video{position:relative;display:block;padding:0;border:0;width:100%;height:340px;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;background:var(--ww-ink)}
.gallery-video video{width:100%;height:100%;object-fit:cover;display:block}
.pn-nav{display:flex;justify-content:space-between;border-top:1px solid var(--border-default);padding-block:var(--space-6) var(--space-8)}
.pn-nav a{font-weight:700}
/* Benefits */
.benefits{text-align:center;padding-block:var(--space-7) var(--space-8)}
.benefits-lede{color:var(--text-body);margin:var(--space-4) auto 0;max-width:60ch}
.benefits-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-7);margin-top:var(--space-8)}
.benefit svg{width:56px;height:56px;color:var(--ww-ember);margin:0 auto var(--space-4)}
.benefit h3{font-size:var(--text-lg);margin-bottom:var(--space-3)}
.benefit p{font-size:var(--text-sm);color:var(--text-body);margin:0}
@media(max-width:900px){.benefits-grid{grid-template-columns:1fr 1fr}}
.benefits-split{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--space-8);align-items:center;text-align:left}
.benefits-split .benefits-grid{grid-template-columns:1fr 1fr;gap:var(--space-6);margin-top:var(--space-6)}
.benefits-split .benefit svg{margin:0 0 var(--space-4)}
.benefits-split .media img{width:100%;height:100%;min-height:420px;object-fit:cover;border-radius:var(--radius-md)}
@media(max-width:900px){.benefits-split{grid-template-columns:1fr}}
/* Forms */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
.form-grid .full{grid-column:1/-1}
/* Pagination */
.pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding-block:0 var(--space-8)}
.page-num{font-family:var(--font-sans);font-weight:700;font-size:var(--text-sm);width:36px;height:36px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--ww-ink);cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}
.page-num:hover{border-color:var(--accent);color:var(--accent)}
.page-num.current{background:var(--accent);border-color:var(--accent);color:var(--ww-white)}
/* Footer */
.footer{background:var(--surface-dark);color:var(--ww-stone);padding-block:var(--space-7) var(--space-4)}
.footer a{color:var(--ww-stone)}
.footer a:hover{color:var(--ww-white)}
.footer-main{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-9);align-items:center;padding-bottom:var(--space-6);border-bottom:1px solid var(--ww-ink-80)}
.footer-seal{height:159px;width:auto}
.footer-contact{display:flex;gap:var(--space-8);margin-block:var(--space-4)}
.footer h4{color:var(--ww-white);font-size:var(--text-sm);letter-spacing:var(--tracking-caps);text-transform:uppercase;margin-bottom:var(--space-3)}
.footer p{margin:0;font-size:var(--text-sm);line-height:1.7}
.footer-cta h2{color:var(--ww-paper);font-size:var(--text-h1)}
.footer-cta p{font-size:var(--text-base);max-width:44ch;margin:var(--space-4) 0 var(--space-6)}
.footer-copy{font-size:var(--text-xs);color:var(--ww-ink-60);margin-top:var(--space-4);display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}
@media(max-width:900px){
.split,.svc-row,.cta-banner,.detail-layout,.form-grid,.head-split{grid-template-columns:1fr}
.proj-banner{height:300px}
.proj-banner .bar{grid-template-columns:1fr;gap:var(--space-2)}
.proj-banner .bar>div:last-child{text-align:left}
.cat-grid,.strip,.gallery{grid-template-columns:1fr}
.footer-main{grid-template-columns:1fr}
.hero-content h1{font-size:var(--text-h1)}
.nav-links{display:none}
}
