:root{--pine:#0e2a25;--pine2:#16403a;--sign:#ffc20e;--ink:#15201e;--paper:#f6f5f0;--tint:#e9ece6;--mut:#566360}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font-family:'Public Sans',system-ui,sans-serif;color:var(--ink);background:var(--paper);line-height:1.6}
h1,h2,h3,.navbar-brand,.btn,.eyebrow,.sign,.stats b,.ticker{font-family:'Barlow Condensed',sans-serif}
h2{font-weight:800;text-transform:uppercase;font-size:clamp(2rem,4.5vw,3.2rem);line-height:1;letter-spacing:.01em}
h2 span{color:var(--pine2)}
.dark h2 span{color:var(--sign)}
.utility{background:var(--ink);color:#d7dedb;font-size:.85rem;padding:.35rem 0}
.util-phone{color:var(--sign);font-weight:700;text-decoration:none;margin-left:auto}
.main-nav{background:var(--pine);border-bottom:4px solid var(--sign);padding:.6rem 0}
.navbar-brand{color:#fff!important;font-size:1.7rem;font-weight:800;text-transform:uppercase;line-height:1;letter-spacing:.02em}
.navbar-brand span{color:var(--sign)}
.navbar-brand small{display:block;font-family:'Public Sans';font-size:.62rem;letter-spacing:.14em;font-weight:500;color:#b9c7c3;margin-top:.25rem}
.navbar-toggler{border:0;color:#fff;font-size:2rem;line-height:1;padding:0 .3rem}
.navbar-toggler:focus{box-shadow:0 0 0 2px var(--sign)}
.main-nav .nav-link{color:#e6ece9;font-weight:600;font-size:.92rem;text-transform:uppercase;letter-spacing:.05em}
.main-nav .nav-link:hover{color:var(--sign)}
.btn-sign{background:var(--sign);color:var(--ink);font-weight:800;text-transform:uppercase;letter-spacing:.05em;border:0;border-radius:3px;padding:.55rem 1.1rem}
.btn-sign:hover{background:#fff;color:var(--ink)}
.btn-lg{font-size:1.25rem;padding:.7rem 1.5rem}
.btn-ghost{border:2px solid #fff;color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-radius:3px}
.btn-ghost:hover{background:#fff;color:var(--pine)}
.eyebrow{font-weight:700;text-transform:uppercase;letter-spacing:.18em;font-size:.95rem;color:var(--sign);margin-bottom:.6rem}
.eyebrow.dark{color:var(--pine2)}
/* hero */
.hero{background:var(--pine);color:#fff;position:relative;overflow:hidden;padding-top:3rem}
.hero::before{content:"";position:absolute;right:-8%;top:-10%;width:60vw;max-width:760px;aspect-ratio:1;background:var(--sign);transform:rotate(45deg);opacity:.95;border-radius:6%}
.hero .container{position:relative}
.hero-copy{padding:2rem 0 3rem}
.hero h1{font-weight:800;text-transform:uppercase;font-size:clamp(3.2rem,9vw,6.6rem);line-height:.92;margin-bottom:1.2rem}
.hero h1 em{font-style:normal;color:var(--sign)}
.lead-in{font-size:1.15rem;max-width:34rem;color:#dfe8e5}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.6rem 0 1rem}
.hero-note{color:#c9d6d2;font-weight:500}
.hero-note i{color:var(--sign)}
.hero-figure{position:relative;align-self:end}
.hero-figure img{width:100%;max-width:520px;height:auto;display:block;margin:0 auto}
.sign{display:inline-flex;align-items:center;justify-content:center;background:var(--sign);color:var(--ink);transform:rotate(45deg);border:5px solid var(--ink);outline:3px solid var(--sign);outline-offset:-12px;text-align:center}
.sign>div{transform:rotate(-45deg);display:flex;flex-direction:column;line-height:.95;text-transform:uppercase}
.sign b{font-size:2rem;font-weight:800}
.sign span{font-size:1rem;font-weight:700;letter-spacing:.05em}
.sign-hero{position:absolute;left:4%;bottom:8%;width:130px;height:130px}
.sign-big{width:min(280px,70vw);height:min(280px,70vw);margin:2.5rem auto}
.sign-big b{font-size:3.4rem}.sign-big span{font-size:1.6rem}.sign-big small{font-family:'Public Sans';font-weight:700;font-size:.7rem;margin-top:.4rem;letter-spacing:.06em}
/* ticker */
.ticker{background:var(--sign);color:var(--ink);overflow:hidden;white-space:nowrap;border-block:3px solid var(--ink)}
.ticker-track{display:inline-block;animation:slide 40s linear infinite;padding:.55rem 0}
.ticker span{font-weight:700;font-size:1.25rem;text-transform:uppercase;letter-spacing:.06em;margin-right:1.4rem}
.ticker span::after{content:"\25C6";margin-left:1.4rem}
@keyframes slide{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker-track{animation:none}.ticker{overflow-x:auto}}
/* sections */
.section{padding:5rem 0}
.section.tint{background:var(--tint)}
.section.dark{background:var(--pine);color:#fff}
.section-head{margin-bottom:2.5rem;max-width:44rem}
.pa-card,.work-card{background:#fff;border:1px solid #d9ddd6;height:100%;display:flex;flex-direction:column;border-bottom:5px solid var(--sign)}
.pa-card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.work-card img{width:100%;aspect-ratio:16/8;object-fit:cover}
.pa-card div,.work-card div{padding:1.1rem 1.3rem 1.3rem}
.pa-card h3,.work-card h3,.other h3,.office-h{font-weight:800;text-transform:uppercase;font-size:1.6rem;margin-bottom:.3rem}
.pa-card p,.work-card p{margin:0;color:var(--mut)}
.other{background:var(--pine);color:#fff;padding:1.6rem;height:100%}
.other h3{color:var(--sign)}
.other ul{list-style:none;padding:0;margin:.8rem 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.4rem .8rem}
.other li::before{content:"\25C6";color:var(--sign);margin-right:.5rem;font-size:.7rem}
.other .small{color:#c9d6d2}
.stats{margin:1.8rem 0}
.stats b{display:block;font-size:2.6rem;color:var(--sign);line-height:1;font-weight:800}
.stats span{font-size:.85rem;color:#c9d6d2;display:block}
.clock{display:flex;gap:1rem;background:rgba(255,194,14,.12);border-left:5px solid var(--sign);padding:1rem 1.2rem}
.clock i{font-size:2rem;color:var(--sign)}.clock p{margin:0}
.fine{font-size:.8rem;color:#9fb0ab;margin-top:1rem}
.section:not(.dark) .fine{color:var(--mut)}
.checks{list-style:none;padding:0;margin-top:1.5rem}
.checks li{padding:.55rem 0 .55rem 2.2rem;border-bottom:1px solid #d9ddd6;position:relative;font-weight:600}
.checks li::before{content:"\25C6";position:absolute;left:.2rem;color:var(--sign);text-shadow:0 0 0 var(--ink);-webkit-text-stroke:1px var(--ink)}
.accordion{margin-top:1.5rem;--bs-accordion-active-bg:var(--sign);--bs-accordion-active-color:var(--ink);--bs-accordion-btn-focus-box-shadow:0 0 0 2px var(--pine)}
.accordion-button{font-weight:700}
.team figure{margin:0;text-align:center}
.team img{width:100%;max-width:180px;height:auto;border:4px solid var(--pine);border-bottom:10px solid var(--sign);background:#fff}
.team figcaption{font-family:'Barlow Condensed';font-weight:700;font-size:1.35rem;text-transform:uppercase;margin-top:.7rem;line-height:1.1}
.quote{background:#fff;border:1px solid #d9ddd6;padding:1.5rem;height:100%;margin:0;position:relative}
.quote::before{content:"\201C";font-family:'Barlow Condensed';font-size:5rem;line-height:.6;color:var(--sign);display:block;-webkit-text-stroke:1px var(--ink)}
.quote cite{font-style:normal;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.85rem;color:var(--pine2)}
.chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.chips li{background:#fff;border:2px solid var(--pine);padding:.3rem .9rem;font-weight:600}
.chips li.here{background:var(--sign);border-color:var(--ink);font-weight:800}
.contact{background:var(--pine);color:#fff}
.contact address i{color:var(--sign);margin-right:.5rem}
.contact address a{color:#fff;font-weight:700}
.contact address p{margin-bottom:.8rem}
.map-wrap{height:100%;min-height:360px;border:5px solid var(--sign)}
.map-wrap iframe{width:100%;height:100%;min-height:360px;border:0;display:block}
.site-footer{background:var(--ink);color:#b9c7c3;padding:3rem 0 2rem;font-size:.92rem}
.site-footer a{color:var(--sign)}
.f-name{font-family:'Barlow Condensed';font-size:1.6rem;color:#fff;text-transform:uppercase}
.legal{font-size:.78rem;margin-top:1.5rem;color:#93a39e}
.copy{margin:0;font-size:.85rem}
@media (max-width:991px){
  .hero::before{right:-30%;top:auto;bottom:0;width:90vw}
  .main-nav .navbar-collapse{padding:1rem 0}
  .hero-figure img{max-width:380px}
  .sign-hero{width:100px;height:100px;left:0}
  .sign-hero b{font-size:1.5rem}.sign-hero span{font-size:.75rem}
}
@media (max-width:575px){.section{padding:3.5rem 0}.navbar-brand{font-size:1.4rem}.hero-cta .btn{width:100%}}
