@font-face{font-family:Barlow;src:url('/assets/fonts/barlow-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Barlow;src:url('/assets/fonts/barlow-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Barlow;src:url('/assets/fonts/barlow-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Barlow;src:url('/assets/fonts/barlow-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('/assets/fonts/barlow-condensed-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('/assets/fonts/barlow-condensed-800.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap}

:root{--navy:#132d5f;--blue:#214481;--red:#d51f32;--ink:#17191d;--asphalt:#25282d;--paper:#f4f1e9;--white:#fff;--line:rgba(19,45,95,.2);--max:1280px;--space-section:clamp(4.5rem,6vw,6rem);--space-gutter:clamp(1.25rem,4vw,3rem);--space-cluster:2rem;--display:'Barlow Condensed',Impact,sans-serif;--body:Barlow,Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:18px;line-height:1.55;text-rendering:optimizeLegibility}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration-thickness:1.5px;text-underline-offset:4px}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible{outline:3px solid var(--white);outline-offset:2px;box-shadow:0 0 0 5px var(--red)}
.skip-link{position:fixed;left:1rem;top:-8rem;z-index:100;background:var(--white);color:var(--navy);padding:.75rem 1rem;font-weight:700}
.skip-link:focus{top:1rem}
.site-header{height:92px;background:var(--white);border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(240px,1fr);align-items:center;padding:0 clamp(1rem,4vw,4rem);position:relative;z-index:20}
.brand{display:block;width:214px;height:76px;overflow:hidden}
.brand img{width:100%;height:100%;object-fit:contain}
.desktop-nav{display:flex;align-items:center;gap:2.2rem;font-size:.86rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.desktop-nav a{text-decoration:none}.desktop-nav a:hover{text-decoration:underline;text-decoration-color:var(--red)}
.header-call{justify-self:end;display:grid;text-align:right;text-decoration:none;line-height:1.1}
.header-call span{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:#5d6570}.header-call strong{font-family:var(--display);font-size:1.4rem;color:var(--navy)}
.menu-toggle,.mobile-nav{display:none}

.hero{min-height:0;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);grid-template-rows:auto auto;background:var(--navy);color:var(--white);overflow:hidden}
.hero-copy{padding:clamp(3rem,4.6vw,5rem) clamp(1.5rem,5vw,5rem) clamp(2.75rem,4vw,4rem);position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:center;min-height:clamp(640px,calc(100svh - 162px),760px)}
.hero-copy:before{content:"";position:absolute;left:0;right:0;bottom:2.6rem;height:8px;background:linear-gradient(90deg,var(--red) 0 42%,transparent 42%);z-index:-1;transform-origin:left;animation:route-draw .8s ease-out both}
.route-stamp{width:162px;border:2px solid rgba(255,255,255,.65);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:1.75rem;font-family:var(--display);font-weight:700;font-size:.74rem;letter-spacing:.08em;text-align:center;transform:rotate(-2deg)}
.route-stamp strong{background:var(--white);color:var(--navy);font-size:1.45rem;padding:.16rem .45rem;letter-spacing:0}
.hero h1,.section-heading h2,.work-heading h2,.area-copy h2,.process h2,.estimate h2{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.025em;line-height:.88;margin:0;text-wrap:balance}
.hero h1{font-size:clamp(4.1rem,6.4vw,6rem);max-width:760px}
.hero-lead{font-size:clamp(1.05rem,1.35vw,1.2rem);max-width:650px;color:#e7ebf3;margin:1.35rem 0 0}
.hero-conversion{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:1rem;align-items:stretch;margin-top:1.5rem}
.hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:0}.hero-actions .button{white-space:nowrap}
.button{min-height:54px;display:inline-flex;align-items:center;justify-content:center;padding:.9rem 1.35rem;border:2px solid transparent;font-weight:700;text-decoration:none;cursor:pointer;transition:background-color .18s,color .18s,border-color .18s,transform .18s}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--red);color:var(--white)}.button-primary:hover{background:#b91829}
.button-quiet{border-color:rgba(255,255,255,.55);color:var(--white)}.button-quiet:hover{border-color:var(--white);background:var(--white);color:var(--navy)}
.offer-ticket{position:static;background:var(--white);color:var(--navy);padding:.9rem 1.1rem .85rem;min-width:0;border-top:6px solid var(--red);display:flex;flex-direction:column;justify-content:center}
.offer-ticket span{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.15em}.offer-ticket strong{font-family:var(--display);font-size:2rem;line-height:1;text-transform:uppercase}.offer-ticket p{font-size:.7rem;margin:.2rem 0 0}
.hero-media{position:relative;min-height:0;background:#0f1725;overflow:hidden}
.hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(9,17,32,.82));pointer-events:none}
.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.media-caption{position:absolute;z-index:2;left:2rem;right:2rem;bottom:2rem;display:grid;grid-template-columns:1fr auto;color:var(--white);align-items:end}
.media-caption span{grid-column:1/-1;font-size:.65rem;text-transform:uppercase;letter-spacing:.16em}.media-caption strong{font-family:var(--display);font-size:2rem;text-transform:uppercase}.media-caption time{font-size:.8rem}
.hero-rail{grid-column:1/-1;background:var(--asphalt);min-height:66px;display:grid;grid-template-columns:repeat(3,1fr);align-items:center;padding:0 clamp(1.4rem,5vw,5rem);gap:2rem;font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:1rem}
.hero-rail span:not(:last-child){border-right:1px solid rgba(255,255,255,.25)}

.service-intro{max-width:var(--max);margin:auto;padding:var(--space-section) var(--space-gutter)}
.section-mark{flex:0 0 auto;width:82px;height:82px;background:var(--red);color:var(--white);display:grid;place-items:center;font-family:var(--display);font-size:3.7rem;font-weight:800;line-height:1;clip-path:polygon(50% 0,100% 25%,86% 100%,14% 100%,0 25%)}
.section-heading{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.55fr);gap:2.5rem;align-items:end;border-bottom:2px solid var(--navy);padding-bottom:1.5rem}
.section-title-row{display:flex;align-items:flex-start;gap:1.5rem}.section-heading h2{font-size:clamp(3.4rem,5.8vw,6rem);color:var(--navy)}
.section-heading p{font-size:1.08rem;margin:0 0 .35rem;max-width:420px}
.service-ledger{display:grid;grid-template-columns:1.15fr 1fr 1fr;margin-top:2.5rem;border-left:1px solid var(--line);border-top:1px solid var(--line)}
.service-ledger article{padding:1.75rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:200px}
.service-ledger article>span{font-family:var(--display);font-weight:800;color:var(--red);font-size:1rem}.service-ledger h3{font-family:var(--display);font-size:2.2rem;line-height:1;text-transform:uppercase;color:var(--navy);margin:.9rem 0}.service-ledger p{margin:0;max-width:430px}.service-ledger ul{margin:1.1rem 0 0;padding-left:1.1rem}
.service-primary{grid-column:1;grid-row:1/3;background:var(--navy);color:var(--white);display:flex;flex-direction:column;justify-content:flex-end;min-height:0!important}.service-primary h3{font-size:3.4rem!important;color:var(--white)!important}.service-primary>span{color:#f06a79!important}.service-ledger article:nth-child(2){grid-column:2;grid-row:1}.service-ledger article:nth-child(3){grid-column:3;grid-row:1}.service-ledger article:nth-child(4){grid-column:2/4;grid-row:2}

.work{background:var(--asphalt);color:var(--white);padding:var(--space-section) var(--space-gutter)}
.work-heading{max-width:var(--max);margin:0 auto 2rem;display:flex;justify-content:space-between;gap:2rem;align-items:end;border-bottom:1px solid rgba(255,255,255,.24);padding-bottom:1.25rem}
.work-heading h2{font-size:clamp(3.8rem,5.8vw,6rem)}.work-heading p{margin:0 0 .35rem;color:#cfd3da}
.work-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);grid-template-rows:repeat(2,340px);gap:1.25rem;align-items:stretch}
.work-card{margin:0;background:#111318;position:relative;overflow:hidden;aspect-ratio:auto}.work-card-tall{grid-row:1/3;min-height:0}.work-card video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.work-card:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(8,10,14,.88));pointer-events:none}.work-card figcaption{position:absolute;z-index:2;bottom:1.2rem;left:1.2rem;right:1.2rem;display:flex;justify-content:space-between;align-items:end}.work-card strong{font-family:var(--display);font-size:1.8rem;text-transform:uppercase}.work-card span{font-size:.75rem;color:#d6dae2}
.work-note{min-height:0;background:var(--red);padding:1.75rem;display:flex;flex-direction:column;justify-content:space-between}.work-note>span{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em}.work-note p{font-family:var(--display);font-size:1.8rem;line-height:1.08;text-transform:uppercase;font-weight:700;margin:1.4rem 0}.work-note-link{align-self:flex-start;display:inline-flex;min-height:48px;align-items:center;padding:.7rem 1rem;border:2px solid rgba(255,255,255,.7);font-weight:700;text-decoration:none}.work-note-link:hover{background:var(--white);color:var(--red)}

.area{max-width:var(--max);margin:auto;padding:var(--space-section) var(--space-gutter);display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);gap:clamp(3rem,6vw,5.5rem);align-items:center}
.area-marker{min-height:380px;position:relative;overflow:hidden;background:var(--navy);color:var(--white);border-top:8px solid var(--red);padding:2rem;display:flex;flex-direction:column;justify-content:space-between}.area-marker:before,.area-marker:after{content:"";position:absolute;background:rgba(255,255,255,.18)}.area-marker:before{left:2rem;right:2rem;top:50%;height:1px}.area-marker:after{top:2rem;bottom:2rem;left:50%;width:1px}.area-marker span,.area-marker strong,.area-marker p{position:relative;z-index:1}.area-marker span{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em}.area-marker strong{align-self:center;margin:auto 0;font-family:var(--display);font-size:clamp(3.6rem,5vw,5rem);line-height:.9;text-transform:uppercase}.area-marker p{max-width:240px;margin:0;font-family:var(--display);font-size:1.5rem;font-weight:700;line-height:1.05;text-transform:uppercase}
.area-copy h2{font-size:clamp(3.8rem,5.8vw,6rem);color:var(--navy)}.area-copy>p{font-size:1.1rem;margin:1.4rem 0 1.8rem;max-width:660px}.area-copy dl{margin:0;border-top:2px solid var(--navy)}.area-copy dl div{display:grid;grid-template-columns:150px 1fr;padding:.75rem 0;border-bottom:1px solid var(--line)}.area-copy dt{text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700;color:#5e6672}.area-copy dd{margin:0;font-weight:600}

.process{background:var(--white);padding:var(--space-section) max(1.25rem,calc((100vw - var(--max))/2 + 3rem))}
.process h2{font-size:clamp(3.4rem,5.6vw,6rem);color:var(--navy);max-width:920px}
.process ol{list-style:none;margin:2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:5px solid var(--red)}
.process li{padding:2rem;border-right:1px solid var(--line)}.process li:last-child{border-right:0}.process li>span{display:block;font-family:var(--display);font-size:2.8rem;color:var(--red);font-weight:800}.process li strong{font-family:var(--display);font-size:1.7rem;text-transform:uppercase;color:var(--navy)}.process li p{margin:.65rem 0 0}

.estimate{background:var(--navy);color:var(--white);padding:var(--space-section) max(1.25rem,calc((100vw - var(--max))/2 + 3rem));display:grid;grid-template-columns:minmax(280px,.75fr) minmax(500px,1.25fr);gap:clamp(3rem,5vw,5rem);align-items:start}
.estimate h2{font-size:clamp(4rem,5.8vw,6rem)}.estimate-copy>p{font-size:1.1rem;color:#dce3f0;max-width:470px}.phone-panel{display:block;background:transparent;border:2px solid rgba(255,255,255,.65);padding:1rem 1.2rem;margin:1.75rem 0;text-decoration:none;max-width:340px}.phone-panel:hover{background:var(--white);color:var(--navy)}.phone-panel span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.67rem}.phone-panel strong{font-family:var(--display);font-size:2rem;line-height:1}.offer-reminder{font-size:.9rem!important}.offer-reminder strong{color:var(--white)}
.estimate-form{background:linear-gradient(var(--red) 0 10px,var(--white) 10px);color:var(--ink);padding:clamp(1.25rem,4vw,3rem)}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem 1.2rem}.form-grid label{display:grid;gap:.38rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:#4b5563}.form-grid label span{font-weight:400;text-transform:none;letter-spacing:0}.form-wide{grid-column:1/-1}
input,select,textarea{width:100%;border:1px solid #aeb5c0;border-radius:0;background:var(--white);color:var(--ink);padding:.78rem .85rem;font-size:1rem;min-height:50px}
textarea{resize:vertical;min-height:130px}input:focus,select:focus,textarea:focus{outline:3px solid rgba(33,68,129,.25);border-color:var(--blue)}
.honey-field{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(1px,1px,1px,1px)!important;white-space:nowrap!important}
.grecaptcha-badge{visibility:hidden}.button-submit{width:100%;background:var(--red);color:var(--white);margin-top:1rem}.button-submit:hover{background:#b91829}.button-submit[disabled]{opacity:.6;cursor:wait;transform:none}.form-status{min-height:1.5em;margin:.8rem 0 0;font-weight:600}.form-status.is-error{color:#b21628}.form-status.is-success{color:#176835}.form-privacy{font-size:.72rem;color:#687180;margin:.6rem 0 0}.form-privacy a{text-decoration:underline;text-underline-offset:.12em}

.site-footer{background:#0d1930;color:#dfe5ef;display:grid;grid-template-columns:240px 1fr auto;gap:2rem;padding:3rem max(1.25rem,calc((100vw - var(--max))/2 + 3rem));align-items:center;font-size:.85rem}.footer-brand{height:110px;overflow:hidden}.footer-brand img{width:100%;height:100%;object-fit:contain}.site-footer p{margin:.2rem 0}.site-footer>div:nth-of-type(2){display:grid;gap:.2rem;text-align:right}.license-copy{grid-column:2/4;border-top:1px solid rgba(255,255,255,.18);padding-top:1rem}.copyright{grid-column:1;grid-row:2;border-top:1px solid rgba(255,255,255,.18);padding-top:1rem}.mobile-call-bar{display:none}
.legal-page,.not-found-page{background:var(--paper);padding-bottom:0}.legal-page .site-header{grid-template-columns:1fr auto}.legal-content{max-width:820px;margin:auto;padding:clamp(4rem,9vw,8rem) 1.25rem}.legal-content h1,.not-found-content h1{font-family:var(--display);font-size:clamp(4rem,10vw,7rem);line-height:.9;text-transform:uppercase;color:var(--navy);margin:1.5rem 0 2rem}.legal-content h2{font-family:var(--display);font-size:2rem;text-transform:uppercase;color:var(--navy);margin-top:2.6rem}.not-found-content{min-height:100svh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;max-width:850px;margin:auto;padding:2rem}.not-found-content img{width:260px;height:150px;object-fit:contain}.not-found-content p{font-family:var(--display);font-weight:700;letter-spacing:.08em;color:var(--red);text-transform:uppercase}.not-found-content .button{width:auto}

@keyframes route-draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-copy:before{animation:none}.button{transition:none}}

@media (max-width:1200px) and (min-width:961px){
  .hero-conversion{grid-template-columns:1fr}.offer-ticket{max-width:240px}
}

@media (max-width:960px){
  .site-header{grid-template-columns:1fr auto;height:78px;padding:0 1.2rem}.brand{width:176px;height:64px}.desktop-nav,.header-call{display:none}.menu-toggle{display:grid;width:44px;height:44px;border:0;background:transparent;padding:10px;align-content:center;gap:7px}.menu-toggle span{display:block;height:2px;background:var(--navy);transition:transform .2s}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(4.5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}.mobile-nav{position:absolute;display:none;top:78px;left:0;right:0;background:var(--white);border-bottom:4px solid var(--red);padding:1.2rem}.mobile-nav.is-open{display:grid}.mobile-nav a{padding:.75rem 0;font-family:var(--display);font-size:1.35rem;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--line)}
  .hero{min-height:auto;grid-template-columns:1fr;grid-template-rows:auto auto auto}.hero-copy{min-height:0;padding:4rem 1.5rem 3rem}.hero-conversion{grid-template-columns:minmax(0,1fr) 220px}.hero-media{height:500px;min-height:500px}.hero-rail{grid-column:1;grid-template-columns:1fr;padding:1.2rem;gap:.55rem}.hero-rail span:not(:last-child){border-right:0}.section-mark{width:68px;height:68px;font-size:3rem}.section-heading{grid-template-columns:1fr;gap:1.25rem}.service-ledger{grid-template-columns:repeat(2,1fr)}.service-primary{grid-column:1/-1;grid-row:auto;min-height:300px!important}.service-ledger article:nth-child(n+2){grid-column:auto;grid-row:auto}.service-ledger article:nth-child(4){grid-column:1/-1;grid-row:auto}.work-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,320px)}.work-note{grid-column:2;grid-row:2}.area{grid-template-columns:1fr}.area-marker{max-width:700px;width:100%;min-height:320px;margin:auto}.estimate{grid-template-columns:1fr}.site-footer{grid-template-columns:180px 1fr}.site-footer>div:nth-of-type(2){text-align:left}.license-copy{grid-column:1/-1}.copyright{grid-column:1/-1;grid-row:auto}
}

@media (max-width:640px){
  body{font-size:16px;padding-bottom:calc(68px + env(safe-area-inset-bottom))}.hero-copy{padding:3.25rem 1.25rem 1.25rem}.hero-copy:before{bottom:0}.route-stamp{margin-bottom:1.4rem}.hero h1{font-size:clamp(3.7rem,18vw,4.6rem)}.hero-lead{font-size:1.05rem}.hero-conversion{grid-template-columns:1fr;gap:.85rem}.hero-actions{grid-template-columns:1fr}.button{width:100%}.offer-ticket{width:100%;max-width:none;margin:0}.hero-media{height:410px;min-height:410px}.media-caption{left:1.2rem;right:1.2rem}.hero-rail{font-size:.92rem}
  .service-intro{padding:3.75rem 1.2rem}.section-title-row{gap:1rem}.section-heading h2,.work-heading h2,.area-copy h2,.process h2,.estimate h2{font-size:3.65rem}.service-ledger{grid-template-columns:1fr}.service-primary,.service-ledger article:nth-child(n+2),.service-ledger article:nth-child(4){grid-column:1;grid-row:auto}.service-primary{min-height:280px!important}.service-primary h3{font-size:3.1rem!important}.service-ledger article{min-height:unset}.work{padding:3.75rem 1.2rem}.work-heading{display:block}.work-heading p{margin-top:1rem}.work-grid{grid-template-columns:1fr;grid-template-rows:none}.work-card,.work-card-tall{grid-column:1;grid-row:auto;aspect-ratio:4/5;min-height:0}.work-note{grid-column:1;grid-row:auto;min-height:300px}.area{padding:3.75rem 1.2rem;grid-template-columns:1fr}.area-marker{min-height:280px}.area-copy dl div{grid-template-columns:118px 1fr}.process{padding:3.75rem 1.2rem}.process ol{grid-template-columns:1fr}.process li{border-right:0;border-bottom:1px solid var(--line)}.estimate{padding:3.75rem 1.2rem}.form-grid{grid-template-columns:1fr}.form-wide{grid-column:auto}.estimate-form{padding:1.2rem}.site-footer{grid-template-columns:1fr;padding:3rem 1.2rem;text-align:left}.footer-brand{width:190px}.site-footer>div:nth-of-type(2){text-align:left}.mobile-call-bar{position:fixed;display:flex;left:0;right:0;bottom:0;z-index:50;background:var(--red);color:var(--white);min-height:calc(68px + env(safe-area-inset-bottom));padding:.7rem 1rem calc(.7rem + env(safe-area-inset-bottom));align-items:center;justify-content:space-between;text-decoration:none;box-shadow:0 -4px 16px rgba(0,0,0,.18);transition:transform .2s}.mobile-call-bar span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.mobile-call-bar strong{font-family:var(--display);font-size:1.4rem}.mobile-call-bar.is-hidden{transform:translateY(110%)}
}
