:root {
  --ink: #0d1213;
  --navy: #102b38;
  --blue: #173f50;
  --gold: #c99532;
  --gold-dark: #8c641f;
  --paper: #f7f5ef;
  --white: #ffffff;
  --soft: #ece7dc;
  --muted: #5f6868;
  --line: #d9d2c3;
  --shadow: 0 28px 80px rgba(13,18,19,.14);
  --display: "Avenir Next Condensed", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--body);
  color: var(--ink);
  background: linear-gradient(90deg, rgba(13,18,19,.035) 1px, transparent 1px), var(--paper);
  background-size: 80px 80px;
  line-height: 1.6;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
p { margin: 0; color: var(--muted); }
h1,h2,h3 { margin: 0; line-height: .95; letter-spacing: 0; }
h1,h2 { font-family: var(--display); font-weight: 900; text-transform: uppercase; }
h1 { font-size: clamp(3.2rem, 7vw, 7.2rem); max-width: 920px; }
h2 { font-size: clamp(2.35rem, 5vw, 5rem); }
h3 { font-size: 1rem; text-transform: uppercase; letter-spacing: .08em; }
.container, .section-head, .service-grid, .feature-grid, .process-grid, .process-strip, .quote-grid, .case-grid, .service-groups, .faq-list, .mini-service-grid { width: min(1240px, calc(100% - 40px)); margin: 0 auto; }
.skip-link { position: fixed; left: 12px; top: 12px; z-index: 100; transform: translateY(-140%); background: var(--gold); padding: 10px 14px; font-weight: 900; }
.skip-link:focus { transform: translateY(0); }
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(247,245,239,.94); border-bottom: 1px solid var(--line); backdrop-filter: blur(18px); }
.nav-shell { width: min(1240px, calc(100% - 40px)); margin: 0 auto; min-height: 82px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 22px; }
.brand { display: inline-flex; align-items: center; gap: 14px; min-width: 0; }
.brand strong { display: block; font-family: var(--display); font-size: 1.15rem; line-height: 1; text-transform: uppercase; letter-spacing: .04em; color: var(--ink); }
.brand small { display: block; margin-top: 4px; font-size: .68rem; text-transform: uppercase; letter-spacing: .13em; color: #69655e; }
.brand-mark { width: 46px; height: 46px; display: inline-grid; place-items: center; position: relative; flex: 0 0 auto; background: var(--ink); box-shadow: inset 0 0 0 2px var(--gold), inset 0 0 0 7px var(--ink); }
.brand-mark::before { content:""; position:absolute; width:25px; height:18px; border-left:3px solid var(--white); border-top:3px solid var(--white); border-right:3px solid var(--white); transform: translateY(4px) skewY(-10deg); }
.brand-mark span { position:absolute; width:3px; height:24px; background:var(--white); }
.brand-mark span:nth-child(1){left:15px}.brand-mark span:nth-child(2){right:15px}.brand-mark span:nth-child(3){height:15px;transform:rotate(52deg)}
.site-nav { display:flex; justify-content:end; gap:8px; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; font-weight:900; }
.site-nav a { padding:12px; border:1px solid transparent; }
.site-nav a:hover,.site-nav a.active { border-color: var(--line); background: rgba(255,255,255,.55); }
.nav-cta,.btn { display:inline-flex; justify-content:center; align-items:center; min-height:50px; padding:14px 22px; border:1px solid transparent; font-weight:950; text-transform:uppercase; letter-spacing:.045em; font-size:.8rem; transition: transform .2s ease, background .2s ease, color .2s ease; }
.btn:hover,.nav-cta:hover { transform: translateY(-2px); }
.nav-cta,.btn-dark { background:var(--ink); color:var(--white); }
.btn-gold { background:var(--gold); color:#15110b; }
.btn-outline { border-color:var(--line); background:rgba(255,255,255,.46); color:var(--ink); }
.button-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.nav-toggle { display:none; width:46px; height:46px; background:var(--white); border:1px solid var(--line); }
.nav-toggle span { display:block; width:20px; height:2px; background:var(--ink); margin:4px auto; }
.eyebrow { margin-bottom:16px; color:var(--gold-dark); text-transform:uppercase; letter-spacing:.22em; font-size:.72rem; font-weight:950; }
.lead { font-size:1.14rem; max-width:720px; }
.home-hero { padding: clamp(70px, 7vw, 110px) 0 0; overflow:hidden; }
.hero-grid { display:grid; grid-template-columns: .95fr 1.05fr; gap: clamp(36px, 6vw, 84px); align-items:center; }
.hero-copy p:not(.eyebrow) { max-width:650px; font-size:1.08rem; border-left:3px solid var(--gold); padding-left:18px; }
.hero-media { position:relative; min-height:620px; border:1px solid var(--line); box-shadow:18px 18px 0 var(--soft); }
.hero-media img { width:100%; height:100%; min-height:620px; object-fit:cover; filter:saturate(.88) contrast(1.04); }
.hero-media aside { position:absolute; right:0; bottom:0; width:min(310px,80%); background:var(--ink); color:var(--white); padding:28px; border-top:5px solid var(--gold); }
.hero-media strong { display:block; font-family:var(--display); font-size:4.7rem; line-height:.8; }
.hero-media span { display:block; margin-top:10px; font-weight:900; }
.trust-strip { width:min(1240px, calc(100% - 40px)); margin:48px auto 0; display:grid; grid-template-columns:repeat(5,1fr); background:var(--ink); }
.trust-strip span { color:var(--white); padding:22px 18px; border-right:1px solid rgba(255,255,255,.12); font-size:.78rem; font-weight:950; text-transform:uppercase; letter-spacing:.08em; }
.proof-ledger { padding: 18px 0 0; }
.proof-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.proof-grid div { background:rgba(255,255,255,.68); padding:20px 22px; }
.proof-grid strong { display:block; color:var(--ink); font-size:1.05rem; text-transform:uppercase; letter-spacing:.06em; }
.proof-grid span { display:block; margin-top:5px; color:var(--muted); font-size:.9rem; }
.section,.page-hero,.contact-hero { padding: clamp(76px, 9vw, 122px) 0; }
.section-head { display:grid; grid-template-columns:1fr .72fr; gap:clamp(24px,5vw,70px); align-items:end; margin-bottom:42px; }
.section-head.compact { display:block; max-width:860px; }
.section-head p:last-child { font-size:1.04rem; align-self:end; }
.section-dark { background:var(--ink); color:var(--white); }
.section-dark p,.section-dark h2,.section-dark h3,.light p,.light h2 { color:var(--white); }
.section-dark .eyebrow,.light .eyebrow { color:var(--gold); }
.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.feature-grid article,.service-card,.process-card,.service-group,details,.contact-form,.case-card,.value-ledger article,.concern,.watch,.service-note,.check-list li,.mini-checks li { background:rgba(255,255,255,.72); border:1px solid var(--line); }
.feature-grid article { padding:28px; }
.feature-grid span,.process-card span,.value-ledger span { color:var(--gold-dark); font-family:var(--display); font-size:2.6rem; font-weight:900; }
.feature-grid h3 { margin:12px 0 10px; }
.service-grid,.mini-service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.service-card { overflow:hidden; background:var(--white); }
.service-card a { display:grid; grid-template-rows:235px 1fr; height:100%; }
.service-card img { width:100%; height:100%; object-fit:cover; filter:saturate(.86); }
.service-card div { padding:24px; border-top:4px solid var(--gold); }
.service-card p { color:var(--gold-dark); text-transform:uppercase; letter-spacing:.12em; font-size:.72rem; font-weight:950; margin-bottom:10px; }
.service-card h3 { margin-bottom:12px; color:var(--ink); }
.service-card span { display:block; color:var(--muted); }
.service-card strong { display:inline-flex; margin-top:18px; color:var(--navy); border-bottom:2px solid var(--gold); text-transform:uppercase; letter-spacing:.06em; font-size:.76rem; }
.founder-section { background:var(--soft); }
.founder-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(28px,6vw,86px); align-items:start; }
.founder-note { border-left:5px solid var(--gold); padding-left:28px; }
.founder-copy { display:grid; gap:18px; font-size:1.06rem; }
.text-link { display:inline-flex; width:max-content; margin-top:6px; color:var(--navy); font-weight:950; border-bottom:2px solid var(--gold); }
.process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.process-strip { display:grid; grid-template-columns:repeat(6,1fr); gap:0; border:1px solid rgba(255,255,255,.16); }
.process-card { padding:24px; min-height:220px; }
.process-strip .process-card { border:0; border-right:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.06); }
.process-strip .process-card:last-child { border-right:0; }
.section-dark .process-card p,.section-dark .process-card h3 { color:var(--white); }
.case-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.portfolio-cases { grid-template-columns:repeat(2,1fr); }
.case-card { overflow:hidden; background:var(--white); }
.case-card img { width:100%; height:260px; object-fit:cover; filter:saturate(.86); }
.case-body { padding:26px; }
.case-body > p { color:var(--gold-dark); text-transform:uppercase; letter-spacing:.1em; font-size:.72rem; font-weight:950; margin-bottom:12px; }
.case-body h3 { margin-bottom:18px; }
dl { margin:0; display:grid; gap:10px; }
dt { color:var(--ink); font-weight:950; text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; }
dd { margin:0 0 8px; color:var(--muted); }
.center-action { width:min(1240px, calc(100% - 40px)); margin:28px auto 0; text-align:center; }
.quote-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
blockquote { margin:0; padding:30px; border:1px solid var(--line); border-top:4px solid var(--gold); background:rgba(255,255,255,.72); font-weight:800; color:#2d3534; }
cite { display:block; margin-top:20px; color:var(--muted); font-style:normal; font-size:.86rem; }
.area-grid,.cta-grid,.page-hero-grid,.contact-grid,.story-layout,.detail-intro,.detail-grid,.process-proof,.before-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,6vw,78px); align-items:center; }
.city-grid { display:flex; flex-wrap:wrap; gap:10px; }
.city-grid span { border:1px solid var(--line); padding:12px 16px; background:rgba(255,255,255,.58); color:var(--ink); font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; font-weight:950; }
.final-cta { background:linear-gradient(135deg,var(--ink),var(--navy)); padding: clamp(72px,8vw,110px) 0; color:var(--white); }
.final-cta h2,.final-cta p { color:var(--white); }
.final-cta .eyebrow { color:var(--gold); }
.page-hero { background:linear-gradient(90deg, transparent 0 58%, var(--soft) 58% 100%), var(--paper); }
.page-hero h1 { font-size:clamp(3rem,5.8vw,6rem); }
.image-panel { position:relative; margin:0; min-height:430px; border:1px solid var(--line); box-shadow:14px 14px 0 var(--soft); overflow:hidden; }
.image-panel img { width:100%; height:100%; min-height:430px; object-fit:cover; filter:saturate(.88); }
figcaption { position:absolute; left:0; bottom:0; right:0; padding:16px 18px; background:rgba(13,18,19,.9); color:var(--white); font-weight:850; }
.story-lead { border-left:5px solid var(--gold); padding-left:28px; }
.story-copy { display:grid; gap:18px; }
.value-ledger { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.value-ledger article { padding:26px; background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.18); }
.value-ledger h3 { color:var(--white); margin-top:16px; }
.service-groups { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; align-items:start; }
.service-group { padding:24px; }
.service-group h3 { margin-bottom:12px; }
.service-group div { display:grid; gap:10px; margin-top:18px; }
.service-group a { color:var(--navy); font-weight:900; border-bottom:1px solid var(--gold); width:max-content; }
.service-group span { color:var(--muted); font-weight:800; }
.detail-intro { align-items:stretch; margin-bottom:24px; }
.concern,.watch,.service-note { padding:30px; }
.concern h2 { font-size:clamp(2rem,3.8vw,3.8rem); }
.detail-grid { align-items:start; }
.check-list,.mini-checks { list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.check-list li,.mini-checks li { position:relative; padding:15px 18px 15px 42px; font-weight:850; color:var(--ink); }
.check-list li::before,.mini-checks li::before { content:""; position:absolute; left:18px; top:22px; width:9px; height:9px; background:var(--gold); }
.dark-list li { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18); color:var(--white); }
.faq-list { display:grid; gap:12px; max-width:880px; }
details { padding:22px 24px; }
summary { cursor:pointer; font-weight:950; color:var(--ink); }
details p { margin-top:12px; }
.before-after { background:var(--soft); }
.ba-box { display:grid; grid-template-columns:1fr 1fr; min-height:280px; border:1px solid var(--line); background:var(--white); }
.ba-box span { display:grid; place-items:center; font-family:var(--display); font-size:3rem; text-transform:uppercase; font-weight:900; color:var(--ink); }
.ba-box span:first-child { background:#d9d2c3; color:#504b43; }
.contact-hero { background:var(--paper); }
.contact-grid { align-items:start; }
.contact-methods { display:flex; flex-wrap:wrap; gap:10px; margin:8px 0; }
.contact-methods a { border:1px solid var(--line); background:rgba(255,255,255,.72); padding:12px 14px; color:var(--ink); font-weight:950; }
.contact-form { display:grid; gap:14px; padding:clamp(24px,4vw,38px); box-shadow:var(--shadow); background:var(--white); }
label { display:grid; gap:7px; color:var(--ink); font-weight:900; }
input,select,textarea { width:100%; border:1px solid var(--line); background:var(--white); padding:14px; font:inherit; color:var(--ink); }
textarea { resize:vertical; }
input:focus,select:focus,textarea:focus,a:focus-visible,button:focus-visible { outline:3px solid rgba(201,149,50,.45); outline-offset:3px; }
.form-note { font-size:.9rem; }
.site-footer { background:#0d1213; color:var(--white); }
.footer-cta { width:min(1240px, calc(100% - 40px)); margin:0 auto; padding:54px 0; display:flex; justify-content:space-between; gap:24px; align-items:center; border-bottom:1px solid rgba(255,255,255,.12); }
.footer-cta h2 { color:var(--white); font-size:clamp(2rem,4vw,3.7rem); max-width:760px; }
.footer-main { width:min(1240px, calc(100% - 40px)); margin:0 auto; padding:48px 0; display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:34px; }
.footer-main h3 { color:var(--gold); margin-bottom:14px; }
.footer-main a,.footer-main p { display:block; color:rgba(255,255,255,.72); margin-bottom:10px; }
.brand-footer strong { color:var(--white); }
.footer-brand p { max-width:390px; margin-top:18px; }
.footer-bottom { width:min(1240px, calc(100% - 40px)); margin:0 auto; padding:20px 0; border-top:1px solid rgba(255,255,255,.12); display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; color:rgba(255,255,255,.55); }
.reveal { opacity:0; transform:translateY(18px); transition:opacity .65s ease, transform .65s ease; }
.reveal.is-visible { opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}.reveal{opacity:1;transform:none}}
@media (max-width: 1080px) {
  .nav-shell { grid-template-columns:auto auto; }
  .nav-toggle { display:block; justify-self:end; }
  .site-nav { position:absolute; left:20px; right:20px; top:82px; display:none; padding:12px; background:var(--white); border:1px solid var(--line); box-shadow:var(--shadow); }
  .site-nav.open { display:grid; }
  .site-nav a { padding:12px; }
  .nav-cta { display:none; }
  .hero-grid,.page-hero-grid,.contact-grid,.story-layout,.detail-intro,.detail-grid,.process-proof,.before-grid,.area-grid,.cta-grid,.founder-grid { grid-template-columns:1fr; }
  .hero-media { min-height:460px; }
  .hero-media img { min-height:460px; }
  .trust-strip,.service-groups { grid-template-columns:repeat(2,1fr); }
  .proof-grid { grid-template-columns:1fr; }
  .service-grid,.mini-service-grid,.case-grid,.portfolio-cases,.quote-grid,.feature-grid,.process-grid,.value-ledger { grid-template-columns:repeat(2,1fr); }
  .process-strip { grid-template-columns:repeat(3,1fr); }
  .section-head { display:block; }
  .section-head p:last-child { margin-top:18px; }
  .footer-main { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 700px) {
  .container,.section-head,.service-grid,.feature-grid,.process-grid,.process-strip,.quote-grid,.case-grid,.service-groups,.faq-list,.mini-service-grid,.footer-cta,.footer-main,.footer-bottom { width:min(100% - 32px, 1240px); }
  .nav-shell { width:min(100% - 24px, 1240px); min-height:70px; }
  .brand-mark { width:40px; height:40px; }
  .brand strong { font-size:.92rem; }
  .brand small { font-size:.58rem; letter-spacing:.08em; }
  .site-nav { top:70px; left:12px; right:12px; }
  h1 { font-size:clamp(2.65rem,12vw,4rem); }
  h2 { font-size:clamp(2.15rem,10vw,3.35rem); }
  .home-hero,.section,.page-hero,.contact-hero { padding:58px 0; }
  .hero-copy p:not(.eyebrow) { border-left:0; padding-left:0; }
  .button-row,.footer-cta,.contact-methods { flex-direction:column; align-items:stretch; }
  .btn { width:100%; }
  .hero-media { min-height:360px; box-shadow:none; }
  .hero-media img { min-height:360px; }
  .hero-media aside { position:static; width:100%; }
  .trust-strip,.service-groups,.service-grid,.mini-service-grid,.case-grid,.portfolio-cases,.quote-grid,.feature-grid,.process-grid,.process-strip,.value-ledger,.footer-main { grid-template-columns:1fr; }
  .trust-strip { width:100%; margin-top:0; }
  .trust-strip span { border-right:0; border-bottom:1px solid rgba(255,255,255,.12); }
  .process-strip .process-card { border-right:0; border-bottom:1px solid rgba(255,255,255,.14); }
  .image-panel,.image-panel img { min-height:320px; box-shadow:none; }
  .ba-box { grid-template-columns:1fr; }
}