@font-face{font-family:Manrope;src:url('../fonts/manrope-latin.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap}
@font-face{font-family:'DM Serif Display';src:url('../fonts/dm-serif-display-italic-latin.woff2') format('woff2');font-style:italic;font-weight:400;font-display:swap}
:root{--white:#fff;--surface:#f2f4f6;--ink:#1a3149;--blue:#245d82;--blue-hover:#143750;--gold:#e8bd73;--gold-hover:#f2d49c;--muted:#415367;--border:#718196;--line:#d9e0e7;--error:#9f1d35;--error-bg:#fff2f3;--success:#14532d;--success-bg:#eff7f0;--radius:8px;--shadow:0 18px 50px rgb(26 49 73 / .08);--container:1320px;--text-caption:.8125rem;--text-ui:.875rem}
*,*::before,*::after{box-sizing:border-box}
:root{--header-height:97px;--ease-out:cubic-bezier(.22,1,.36,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--ease-carousel:cubic-bezier(.25,.1,.25,1);--motion-fast:200ms;--motion-panel:320ms;--motion-slide:440ms;--motion-snap:560ms;--motion-reveal:600ms;--motion-menu-out:280ms;--motion-filter-out:120ms;--motion-filter-in:220ms}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 16px);scrollbar-gutter:stable}
html.is-anchor-scrolling{overflow-anchor:none}
body{margin:0;color:var(--ink);background:var(--white);font:400 1.0625rem/1.7 Manrope,Arial,sans-serif;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased}
body.modal-open{overflow:hidden}
.anchor-focus:focus{outline:none!important;box-shadow:none!important}
details.is-animating{overflow:hidden}
h1,h2,h3,h4,p,figure{margin:0}
h1,h2,h3,h4{font-weight:700;line-height:1.17;letter-spacing:-.045em;text-wrap:balance;overflow-wrap:anywhere;hyphens:auto}
h1{font-size:clamp(2.6rem,5.7vw,5.25rem);font-weight:750}
h2{font-size:clamp(2.1rem,3.65vw,3.6rem)}
h3{font-size:1.35rem;letter-spacing:-.025em;line-height:1.3}
h1 em,h2 em{font-family:'DM Serif Display',Georgia,serif;font-weight:400;letter-spacing:-.025em}
p{color:var(--muted);text-wrap:pretty}
p+p{margin-top:16px}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}
a:hover{color:var(--blue)}
button,input,select,textarea{font:inherit;color:inherit}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:disabled{cursor:default}
img{display:block;max-width:100%;height:auto}
svg{display:block}
[hidden]{display:none!important}
html:not(.pointer-input) :focus-visible{outline:3px solid var(--ink);outline-offset:4px;box-shadow:0 0 0 4px var(--white)}
:focus:not(:focus-visible),.pointer-input :focus-visible:not(input):not(textarea):not(select){outline:none}
:root :is(input,select,textarea):focus-visible{outline:2px solid var(--blue);outline-offset:2px;box-shadow:none}
::selection{background:var(--gold);color:var(--ink)}
.container{width:calc(100% - 64px);max-width:var(--container);margin-inline:auto}
.section{padding:100px 0}
.surface-section{background:var(--surface)}
.eyebrow,.micro-label{display:block;font-size:var(--text-caption);font-weight:800;letter-spacing:.08em;text-transform:uppercase;line-height:1.6}
.eyebrow{color:var(--blue);margin-bottom:20px}
.micro-label{color:inherit}
.icon{width:24px;height:24px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.button{min-height:56px;max-width:100%;padding:16px 24px;display:inline-flex;align-items:center;justify-content:center;gap:22px;border:1px solid var(--blue);border-radius:4px;background:var(--blue);color:var(--white);font-size:1rem;font-weight:750;line-height:1.5;text-align:center;text-decoration:none;transition:background-color var(--motion-fast),border-color var(--motion-fast),transform var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast)}
.button:hover{color:var(--white);background:var(--blue-hover);border-color:var(--blue-hover);transform:translateY(-2px)}
.button .icon{transition:transform var(--motion-fast) var(--ease-out)}
@media(hover:hover){.button:hover .icon{transform:translateX(3px)}.button:active{transform:translateY(0)}}
.button-small{padding:12px 18px;min-height:48px;font-size:.9375rem;gap:12px}
.button-gold{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.button-gold:hover{background:var(--gold-hover);border-color:var(--gold-hover);color:var(--ink)}
.button-outline{background:transparent;color:var(--blue);border-color:var(--blue)}
.button-outline:hover{background:var(--surface);color:var(--blue)}
.button:disabled{background:var(--surface);border-color:var(--border);color:var(--muted);transform:none}
.text-link{display:inline-flex;max-width:100%;align-items:center;gap:14px;color:var(--blue);font-size:.9375rem;font-weight:750;line-height:1.6;text-decoration:underline;text-underline-offset:5px}
.text-link:hover .icon{transform:translateX(3px)}
.text-link .icon{width:20px;height:20px;transition:transform var(--motion-fast) var(--ease-out)}
.icon-button{display:inline-flex;width:48px;height:48px;flex-shrink:0;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:50%;background:var(--white);color:var(--ink);text-decoration:none;transition:background-color var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast)}
.icon-button:hover{background:var(--ink);color:var(--white)}
.icon-button:disabled{border-style:dashed;color:var(--muted);background:var(--surface)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:16px;top:12px;z-index:100;padding:12px 20px;background:var(--gold);color:var(--ink);transform:translateY(-160%)}
.skip-link:focus{transform:none}
.topline{background:var(--ink);color:var(--white);font-size:var(--text-caption)}
.topline-inner{display:flex;align-items:center;justify-content:space-between;min-height:34px;gap:20px}
.topline-inner>span{display:flex;align-items:center;gap:9px}
.topline .icon{width:15px;height:15px;color:var(--gold)}
.site-header{position:sticky;top:0;z-index:20;background:var(--white);border-bottom:1px solid var(--line)}
.main-nav a,.nav-services>summary,.drawer-links>a,.drawer-links>details>summary,.footer-nav a,.footer-bottom a{transition:color var(--motion-fast) ease}
.header-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;min-height:96px}
.header-inner .brand{min-width:100px;flex-shrink:1}
.brand{display:inline-flex;align-items:center;max-width:100%;flex-shrink:0;text-decoration:none;border-radius:4px;-webkit-user-select:none;user-select:none}
.brand-logo{display:block;width:270px;max-width:100%;height:auto;flex-shrink:0}
.main-nav{display:flex;align-items:center;gap:22px;font-size:var(--text-ui);font-weight:700}
.main-nav>a{text-decoration:none;min-height:48px;display:flex;align-items:center}
.main-nav a[aria-current]{text-decoration:underline;text-decoration-thickness:2px}
.nav-services{position:relative}
.nav-services>summary{display:flex;align-items:center;gap:6px;cursor:pointer;min-height:48px;list-style:none}
summary::-webkit-details-marker{display:none}
.nav-services>summary>.icon{width:16px;height:16px;transition:transform var(--motion-fast) var(--ease-out)}
.nav-services[open]:not(.is-collapsing)>summary>.icon{transform:rotate(180deg)}
.nav-dropdown{position:absolute;top:calc(100% + 12px);left:-24px;width:370px;padding:24px;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--blue);box-shadow:var(--shadow);border-radius:0 0 8px 8px}
.nav-dropdown .micro-label{color:var(--muted);font-size:var(--text-caption);margin-bottom:12px}
.nav-dropdown a{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none}
.nav-dropdown a:hover{color:var(--blue);text-decoration:underline}
.nav-dropdown .icon{width:17px;height:17px}
.nav-dropdown .dropdown-all{color:var(--blue);border-bottom:0;padding-bottom:0;margin-top:7px}
.header-contact{display:flex;align-items:center;gap:20px;flex-shrink:0}
.phone-link{display:inline-flex;align-items:center;gap:9px;font-weight:800;font-size:.9rem;text-decoration:none;white-space:nowrap}
.phone-link .icon{width:19px;height:19px}
.phone-link:hover{text-decoration:underline}
.menu-toggle{display:none;min-height:46px;align-items:center;gap:12px;border:1px solid var(--border);padding:9px 13px;background:var(--white);border-radius:4px;font-size:var(--text-ui);font-weight:750;transition:background-color var(--motion-fast),border-color var(--motion-fast)}
.menu-toggle:hover{background:var(--surface);border-color:var(--blue)}
.menu-bars{width:20px;height:12px;border-block:2px solid currentColor;position:relative}
.menu-bars::after{content:"";position:absolute;left:0;right:0;top:4px;height:2px;background:currentColor}
.nojs-nav{display:flex;flex-wrap:wrap;gap:20px;padding-block:12px;font-size:var(--text-ui)}
.hero{position:relative;background:var(--surface);overflow:hidden}
.hero-backdrop{position:absolute;inset:0}
.hero-backdrop picture,.hero-backdrop img{display:block;width:100%;height:100%}
.hero-backdrop img{object-fit:cover;object-position:70% 30%}
.hero-backdrop::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.96),rgba(255,255,255,.9) 23%,rgba(255,255,255,.36) 46%,transparent 65%)}
.hero-inner{position:relative;padding-block:75px 82px;min-height:665px;display:flex;align-items:center}
.hero-copy{min-width:0;max-width:665px}
.hero .eyebrow{font-size:var(--text-caption)}
.hero h1{font-size:clamp(3.3rem,5.7vw,5.5rem);line-height:1.05;letter-spacing:-.06em}
.hero h1 em{color:var(--blue)}
.hero-description{font-size:1rem;line-height:1.8;max-width:490px;margin-top:25px;color:var(--ink)}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px 24px;margin-top:30px}

.hero-explore{margin-top:27px;color:var(--ink)}
.hero-caption{position:absolute;bottom:14px;right:24px;max-width:calc(100% - 48px);font-size:var(--text-caption);line-height:1.5;letter-spacing:.025em;background:var(--white);color:var(--ink);padding:6px 10px;border-radius:2px}
.reassurance{border-bottom:1px solid var(--line);background:var(--white)}
.reassurance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-block:31px;gap:35px}
.reassurance-grid>div{display:flex;align-items:center;gap:17px}
.reassurance .icon{color:var(--blue);width:30px;height:30px}
.reassurance p{font-size:var(--text-ui)}
.reassurance strong{display:block;color:var(--ink);font-size:var(--text-ui);margin-bottom:3px}
.reassurance span{display:block}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:44px}
.section-heading>div:first-child{max-width:760px}
.section-heading>p,.section-heading>div:last-child:not(:first-child){max-width:355px;font-size:.9rem}
.section-heading .text-link{margin-top:20px}
.services-section{background:var(--surface)}
.carousel{--visible:3;--gap:24px;position:relative}
.carousel-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.carousel-card{min-width:0}
.carousel.is-enhanced .carousel-viewport{overflow:hidden;border-radius:var(--radius);padding:5px 5px 10px;margin:-5px -5px -10px;touch-action:pan-y}
.carousel.is-enhanced .carousel-track{-webkit-user-select:none;user-select:none;cursor:grab}
.carousel.is-enhanced .carousel-track a{cursor:pointer}
.carousel.is-enhanced .carousel-track img{-webkit-user-drag:none}
.carousel.is-enhanced .carousel-viewport.is-dragging,.carousel.is-enhanced .carousel-viewport.is-dragging *{cursor:grabbing}
.carousel.is-enhanced .carousel-track{display:flex;gap:var(--gap);transition:transform var(--motion-slide) var(--ease-carousel)}
.carousel-viewport.is-dragging .carousel-track{will-change:transform}
.carousel.is-enhanced .carousel-card{flex:0 0 calc((100% - (var(--visible) - 1)*var(--gap))/var(--visible))}
.carousel-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:30px}
.carousel-progress{display:flex;align-items:center;gap:18px}
.carousel-dots{display:flex;align-items:center;gap:2px;flex-wrap:wrap}
.carousel-dot{border:0;background:transparent;min-width:32px;height:44px;padding:12px 7px;display:grid;place-items:center}
.carousel-dot::after{content:"";width:9px;height:9px;background:var(--white);border:1.5px solid var(--ink);border-radius:20px;transition:width var(--motion-fast) var(--ease-out),background-color var(--motion-fast)}
.carousel-dot[aria-current="true"]::after{width:28px;border-color:var(--blue);background:var(--blue)}
.carousel-count{font-size:var(--text-caption);white-space:nowrap;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.carousel-arrows{display:flex;gap:10px}
.carousel-prev .icon{transform:rotate(180deg)}
.service-card{background:var(--white);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--line)}
.card-photo{position:relative;display:block;overflow:hidden;aspect-ratio:1.48;background:var(--surface)}
.card-photo img{width:100%;height:100%;object-fit:cover;transition:transform var(--motion-reveal) var(--ease-out)}
@media(hover:hover) and (pointer:fine){.service-card:hover .card-photo img{transform:scale(1.045)}.drawer-links a:hover>.icon,.nav-dropdown a:hover>.icon{transform:translateX(3px)}}
.drawer-links a>.icon,.nav-dropdown a>.icon{transition:transform var(--motion-fast) var(--ease-out)}
.card-number{position:absolute;bottom:14px;left:20px;background:var(--white);color:var(--ink);padding:3px 10px;font-size:var(--text-caption);font-weight:800;border-radius:3px}
.card-body{padding:27px 27px 25px;flex:1;display:flex;flex-direction:column}
.card-kicker{font-size:var(--text-caption);font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:13px;line-height:1.6}
.card-body h3{font-size:1.4rem;line-height:1.2;margin-bottom:14px}
.card-body h3 a{text-decoration:none}
.card-body h3 a:hover{text-decoration:underline}
.card-body>p:not(.card-kicker){font-size:1rem;margin-bottom:25px}
.card-link{margin-top:auto}
.trades-links{margin-top:47px;padding-top:32px;border-top:1px solid var(--line)}
.trades-links h3{font-size:1.05rem;margin-bottom:20px}
.trades-links>div{display:flex;flex-wrap:wrap;gap:10px}
.trades-links a{font-size:var(--text-ui);border:1px solid var(--border);border-radius:4px;min-height:44px;display:inline-flex;align-items:center;gap:12px;padding:10px 13px;background:transparent;text-decoration:none;color:var(--ink);transition:background-color var(--motion-fast)}
.trades-links a:hover{background:var(--white);text-decoration:underline}
.invitation{position:relative;overflow:hidden;background:var(--blue-hover);color:var(--white)}
.invitation-inner{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:80px;padding-block:62px;position:relative}
.invitation .eyebrow{color:var(--gold)}
.invitation h2{font-size:clamp(2.6rem,4.7vw,4.8rem)}
.invitation h2 em{color:var(--gold)}
.invitation p:not(.eyebrow){color:var(--white);max-width:360px;margin-bottom:25px}
.invitation-symbol{position:absolute;right:-60px;bottom:-95px;font-size:320px;line-height:1;font-family:Arial,sans-serif;opacity:.09;pointer-events:none}
.projects-section{background:var(--white)}
.project-note{font-size:var(--text-caption)!important}
.project-category{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--white)}
.comparison{position:relative;background:var(--surface);isolation:isolate;overflow:hidden}
.comparison figure{position:relative;margin:0}
.comparison img{width:100%;height:100%;object-fit:cover}
.comparison figcaption{position:absolute;bottom:16px;background:var(--white);color:var(--ink);font-size:var(--text-caption);font-weight:800;padding:5px 10px;z-index:2;box-shadow:0 0 0 1px var(--border)}
.comparison-after figcaption{right:16px}
.comparison-before figcaption{left:16px}
.comparison:not(.is-interactive){display:grid;grid-template-columns:1fr 1fr;gap:4px}
.comparison:not(.is-interactive) figure{height:280px}
.comparison.is-interactive{aspect-ratio:1.12;touch-action:pan-y;-webkit-user-select:none;user-select:none}
.comparison.is-interactive figure{position:absolute;inset:0}
.comparison.is-interactive .comparison-before{clip-path:inset(0 calc(100% - var(--comparison-position,50%)) 0 0);z-index:1}
.comparison-line{display:none}
.is-interactive .comparison-line{display:block;position:absolute;left:var(--comparison-position,50%);top:0;bottom:0;width:2px;background:var(--white);z-index:3;pointer-events:none;box-shadow:0 0 0 1px var(--ink)}
.comparison-handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:var(--white);border:2px solid var(--ink);color:var(--ink);display:grid;place-items:center;font-size:24px;line-height:1;box-shadow:0 2px 10px rgb(0 0 0 / .2)}
.comparison-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:ew-resize;z-index:4;touch-action:pan-y}
html:not(.pointer-input) .comparison:has(.comparison-range:focus-visible){outline:3px solid var(--blue);outline-offset:3px}
html:not(.pointer-input) .comparison:has(.comparison-range:focus-visible) .comparison-handle{background:var(--gold);outline:3px solid var(--ink);outline-offset:4px}
.project-body{padding:19px 23px 25px}
.project-title-row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.project-title-row h3{font-size:1.3rem}
.project-more{width:44px;height:44px}
.project-caption{font-size:var(--text-ui);margin-block:5px 16px}
.method-section{background:var(--surface)}
.method-list{padding:0;margin:54px 0 0;list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.method-list li{position:relative;padding-top:26px;border-top:1px solid var(--border)}
.method-number{display:block;color:var(--blue);font-size:2.75rem;font-weight:600;letter-spacing:-.07em;line-height:1.2;margin-bottom:25px}
.method-list h3{font-size:1.25rem;margin-bottom:13px}
.method-list p{font-size:1rem}
.method-list li:not(:last-child)::after{content:"→";position:absolute;top:-16px;right:-23px;background:var(--surface);color:var(--blue);font-size:22px;padding:0 7px}
.budget-section{background:var(--ink);color:var(--white)}
.budget-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}
.budget-copy .eyebrow{color:var(--gold)}
.budget-copy h2{margin-bottom:25px}
.budget-copy h2 em{color:var(--gold)}
.budget-copy p{color:var(--white);font-size:1rem}
.budget-note{display:flex;align-items:flex-start;gap:20px;margin:30px 0;padding:25px 0;border-block:1px solid var(--border)}
.budget-note .icon{width:30px;height:30px;color:var(--gold);margin-top:5px}
.budget-note p{font-size:var(--text-ui)}
.brief-card{background:var(--white);color:var(--ink);border-radius:var(--radius);padding:36px}
.brief-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:28px}
.brief-step{font-size:var(--text-caption);font-weight:800;padding:6px 10px;background:var(--gold);border-radius:3px;white-space:nowrap}
label,legend{font-size:var(--text-ui);font-weight:700}
select,input:not([type="range"]):not([type="radio"]):not([type="checkbox"]),textarea{width:100%;min-width:0;min-height:50px;padding:12px 14px;background:var(--white);border:1px solid var(--border);border-radius:4px;font-size:1rem;line-height:1.5;transition:border-color .2s}
select{appearance:auto;padding-right:30px}
textarea{resize:vertical}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
.brief-card>select{margin-top:12px;margin-bottom:28px}
.surface-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}
.surface-heading>span{display:flex;align-items:center;gap:8px;font-size:.85rem}
.surface-heading input{width:96px!important;text-align:center}
.surface-range{appearance:none;width:100%;height:28px;background:transparent;accent-color:var(--blue);margin:23px 0 0;cursor:pointer}
.surface-range::-webkit-slider-runnable-track{height:5px;background:var(--border);border-radius:4px}
.surface-range::-webkit-slider-thumb{appearance:none;width:25px;height:25px;border-radius:50%;background:var(--blue);border:3px solid var(--white);box-shadow:0 0 0 1px var(--blue);margin-top:-10px}
.surface-range::-moz-range-track{height:5px;background:var(--border)}
.surface-range::-moz-range-thumb{width:22px;height:22px;background:var(--blue);border:3px solid var(--white);border-radius:50%}
.range-labels{display:flex;justify-content:space-between;font-size:var(--text-caption);color:var(--muted)}
.field-hint{font-size:var(--text-ui);line-height:1.6;margin-top:10px}
.field>.field-hint{margin-top:0}
.brief-card>.button{width:100%;margin-top:23px}
.brief-disclaimer{font-size:var(--text-ui);text-align:center;line-height:1.6;margin-top:12px}
.faq-heading{max-width:620px;margin-bottom:42px}
.faq-heading>p:last-child{margin-top:22px;font-size:.9rem}
.faq-list{border-top:1px solid var(--border)}
.faq-list details{border-bottom:1px solid var(--border)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 0;font-size:1rem;font-weight:650;line-height:1.5}
.faq-list summary:hover{color:var(--blue)}
.faq-list details[open]:not(.is-collapsing)>summary{color:var(--blue)}
.faq-sign{width:22px;height:22px;position:relative;flex-shrink:0}
.faq-sign::before,.faq-sign::after{content:"";position:absolute;top:10px;left:3px;width:16px;height:2px;background:currentColor;transition:transform var(--motion-fast) var(--ease-out)}
.faq-sign::after{transform:rotate(90deg)}
details[open]:not(.is-collapsing)>summary .faq-sign::after{transform:rotate(0)}
.faq-answer{padding:0 48px 26px 0;max-width:950px}
.faq-answer p{font-size:1rem;line-height:1.9}
.faq-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:30px;font-size:.86rem}
.contact-section{background:var(--surface)}
.contact-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:90px}
.contact-copy h2{margin-bottom:28px}
.contact-copy>p:not(.eyebrow){max-width:420px;font-size:1rem}
.contact-reassurance{display:flex;align-items:center;gap:10px;font-size:var(--text-ui);font-weight:700;margin-block:25px}
.contact-reassurance .icon{color:var(--blue)}
.contact-details{margin-top:25px;display:grid;gap:12px;font-size:.85rem}
.contact-details p{margin:0}
.contact-details .phone-link{font-size:1.3rem}
.contact-details .text-link{margin-top:8px}
.contact-email{display:inline-flex;align-items:center;gap:10px;font-size:var(--text-ui);overflow-wrap:anywhere}
.contact-company{font-size:var(--text-ui);font-weight:700;line-height:1.8}
.contact-company span{font-weight:400}
.contact-signature{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:50px}
.contact-signature .brand-logo{width:210px}
.contact-signature>span{font-size:1rem;font-weight:600;line-height:1.5}
.contact-signature em{font-family:'DM Serif Display',Georgia,serif;font-size:1.2rem;font-weight:400}
.contact-panel{background:var(--white);padding:35px;border:1px solid var(--line);border-radius:var(--radius)}
.form-heading h3{font-size:1.5rem;margin-bottom:10px}
.form-heading .micro-label{font-size:var(--text-caption);color:var(--muted)}
.preparation-notice{font-size:var(--text-ui);line-height:1.7;background:var(--surface);padding:14px 16px;border-left:3px solid var(--blue);margin-block:22px}
.form-fields{border:0;padding:0;margin:0;min-width:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:19px;min-width:0}
.field-error{color:var(--error);font-size:var(--text-ui);line-height:1.6}
.field-error:empty{display:none}
.field-error:not(:empty)::before{content:"!";display:inline-grid;place-items:center;border:1px solid currentColor;border-radius:50%;width:17px;height:17px;font-weight:800;margin-right:6px}
[aria-invalid="true"]{border:2px solid var(--error)!important;background:var(--error-bg)!important}
.contact-method{border:0;padding:0;margin:0 0 21px;min-width:0}
.contact-method legend{margin-bottom:11px}
.contact-choice{display:flex;flex-wrap:wrap;gap:10px;font-size:var(--text-ui)}
.contact-choice label{display:flex;flex:1 1 auto;min-width:0;align-items:center;gap:6px;border:1px solid var(--border);border-radius:4px;padding:10px 12px;cursor:pointer}
.contact-choice label:has(input:checked){border:2px solid var(--blue);padding:9px 11px;background:var(--surface)}
.contact-choice input{accent-color:var(--blue);width:17px;height:17px;flex-shrink:0;margin:0}
.contact-choice label>span{display:flex;align-items:center;gap:7px;font-size:var(--text-ui)}
.contact-choice .icon{width:17px;height:17px}
.project-details{margin:2px 0 20px;border-block:1px solid var(--line)}
.project-details summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 0;font-size:var(--text-ui);cursor:pointer;list-style:none;font-weight:750}
.project-details summary small{font-size:var(--text-caption);font-weight:400}
.project-details summary .icon{width:18px;height:18px;transition:transform var(--motion-fast) var(--ease-out)}
.project-details[open]:not(.is-collapsing) summary .icon{transform:rotate(45deg)}
.project-fields{padding-top:4px}
.project-fields .form-grid{grid-template-columns:1fr}
.project-summary{padding:13px 15px;border-left:3px solid var(--blue);background:var(--surface);font-size:var(--text-ui);margin-bottom:18px}
.form-status{background:var(--error-bg);border:1px solid var(--error);color:var(--error);font-size:var(--text-ui);padding:13px 15px;margin-bottom:20px}
.form-status::before{content:"! ";font-weight:800}
.form-submit{width:100%}
.privacy-note,.noscript-notice{font-size:var(--text-ui);line-height:1.8;margin-top:16px}
.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.enhanced-only{display:none}
.js .enhanced-only{display:block}
.site-footer{background:var(--ink);color:var(--white);padding-top:68px}
.footer-main{display:grid;grid-template-columns:1.05fr 1.1fr .85fr 1fr;gap:36px;padding-bottom:60px}
.footer-brand .brand-logo{width:264px;filter:brightness(0) invert(1)}
.footer-brand>p{color:var(--white);font-size:var(--text-ui);line-height:1.8;margin-top:24px}
.footer-area{display:flex;gap:8px;align-items:center;font-size:var(--text-ui);margin-top:24px}
.footer-area .icon{width:17px;height:17px;color:var(--gold)}
.footer-nav{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.footer-nav h2{font-size:var(--text-ui);font-weight:800;letter-spacing:.025em;margin-bottom:10px;color:var(--gold)}
.footer-nav a{font-size:var(--text-ui);line-height:1.7;text-decoration:none}
.site-footer a:hover{color:var(--gold);text-decoration:underline}
.footer-local .micro-label{color:var(--gold);font-size:var(--text-caption);margin-bottom:20px}
.footer-local .phone-link{font-size:.92rem}
.footer-email{display:flex;align-items:center;gap:10px;font-size:var(--text-ui);margin-top:16px;overflow-wrap:anywhere}
.footer-company{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px 40px;padding-block:24px;border-top:1px solid var(--border);font-size:var(--text-ui);line-height:1.8}
.footer-company>div{display:grid;gap:4px}
.footer-company strong{font-size:var(--text-ui)}
.footer-company address{font-style:normal}
.footer-company address>span{display:block;color:var(--gold);font-weight:700;margin-bottom:4px}
.footer-local .button{font-size:var(--text-ui);padding:13px 16px;gap:12px;margin-top:25px}
.site-footer .button:hover{color:var(--ink)}
.footer-bottom{padding-block:23px;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:20px;font-size:var(--text-caption)}
.footer-bottom>div{display:flex;gap:24px;flex-wrap:wrap}
.call-dock{position:fixed;left:0;right:0;bottom:0;z-index:19;padding:12px 20px calc(12px + env(safe-area-inset-bottom));display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;background:var(--white);border-top:1px solid var(--border);box-shadow:0 -5px 25px rgb(26 49 73 / .1)}
.dock-contact{min-width:0;flex:1 1 8.5em}
.dock-label{display:block;font-size:var(--text-caption);font-weight:700;line-height:1.4;letter-spacing:.015em;margin-bottom:4px}
.dock-contact .phone-link{font-size:var(--text-ui)}
.dock-quote{display:flex;flex-shrink:0;align-items:center;gap:8px;background:var(--blue);color:var(--white);border-radius:4px;font-size:var(--text-ui);font-weight:750;padding:12px 16px;text-decoration:none;white-space:nowrap;min-height:46px}
.dock-quote .icon{width:20px;height:20px}
.dock-quote:hover{background:var(--blue-hover);color:var(--white)}
dialog{border:1px solid var(--line);border-radius:12px;padding:36px;background:var(--white);color:var(--ink);max-height:calc(100dvh - 36px);max-width:calc(100vw - 32px);box-shadow:0 24px 100px rgb(0 0 0 / .25);overscroll-behavior:contain}
dialog::backdrop{background:rgb(26 49 73 / .65);backdrop-filter:blur(4px);opacity:0;transition:opacity var(--motion-panel) ease}
dialog[open]{opacity:0;transform:translateY(16px) scale(.98);transition:transform var(--motion-panel) var(--ease-out),opacity var(--motion-panel) ease}
dialog[open].is-visible{opacity:1;transform:none}
dialog[open].is-visible::backdrop{opacity:1}
dialog[open].is-closing,dialog[open].is-closing::backdrop{transition-duration:var(--motion-fast);transition-timing-function:var(--ease-in-out)}
.dialog-close{position:absolute;right:18px;top:18px;width:42px;height:42px;border:1px solid var(--border);border-radius:50%;background:var(--white);display:grid;place-items:center;z-index:2;transition:background-color var(--motion-fast),color var(--motion-fast)}
.dialog-close:hover{background:var(--ink);color:var(--white)}
.dialog-close .icon{width:20px;height:20px}
.menu-drawer{margin:0 0 0 auto;width:440px;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;padding:27px;overflow-y:auto}
.menu-drawer[open]{opacity:1;transform:translateX(100%);transition-duration:var(--motion-slide)}
.menu-drawer[open].is-visible{transform:none}
.menu-drawer[open]::backdrop{transition-duration:var(--motion-slide)}
.menu-drawer[open].is-closing,.menu-drawer[open].is-closing::backdrop{transition-duration:var(--motion-menu-out)}
.menu-drawer[open] .drawer-links>*,.menu-drawer[open] .menu-drawer-footer{animation:menu-item-in var(--motion-panel) var(--ease-out) backwards;animation-delay:var(--menu-delay,0ms)}
.menu-drawer-header{position:sticky;top:0;z-index:2;background:var(--white);box-shadow:0 -27px 0 var(--white),0 12px 0 var(--white);display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}
.menu-drawer-header .brand{min-width:0;flex-shrink:1}
.menu-drawer-header .brand-logo{width:210px}
.drawer-links{display:flex;flex-direction:column}
.drawer-links>a,.drawer-links>details>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 0;border-bottom:1px solid var(--line);font-size:1rem;font-weight:650;text-decoration:none;list-style:none;cursor:pointer}
.drawer-group{padding:10px 0 14px 15px;display:flex;flex-direction:column}
.drawer-group a{padding:10px 0;font-size:var(--text-ui);text-decoration:none}
.drawer-links a:hover{text-decoration:underline}
.drawer-links>details[open]:not(.is-collapsing)>summary{color:var(--blue)}
.drawer-links>details[open]:not(.is-collapsing)>summary .icon{transform:rotate(45deg)}
.drawer-links>details>summary .icon{transition:transform var(--motion-fast) var(--ease-out)}
.menu-drawer-footer{margin-top:30px;display:grid;gap:20px;padding-bottom:env(safe-area-inset-bottom)}
.result-dialog{width:650px;padding:45px}
.result-dialog h2{font-size:2.25rem;margin-bottom:17px}
.result-dialog .eyebrow{margin-top:12px}
.result-dialog p{font-size:var(--text-ui)}
.result-icon{color:var(--blue);display:block;margin-bottom:15px}
#result-summary{white-space:pre-wrap;overflow-wrap:anywhere;font:400 var(--text-ui)/1.8 Manrope,Arial,sans-serif;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:20px;max-height:35vh;overflow:auto}
.result-actions{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:24px}
.result-actions>button.text-link{border:0;background:transparent;padding:10px 0}
#copy-status:not(:empty){padding:12px 15px;margin-top:20px;background:var(--success-bg);color:var(--success);border:1px solid var(--success)}
#copy-status:not(:empty)::before{content:"✓ ";font-weight:800}
.result-fallback{position:static;width:100%;max-width:none;max-height:none;box-shadow:none;margin-top:24px}
dialog.result-fallback{opacity:1;transform:none;transition:none}









@keyframes menu-item-in{from{opacity:.3;transform:translateX(12px)}to{opacity:1;transform:none}}
@keyframes reveal-in{from{opacity:.35;transform:translateY(18px)}to{opacity:1;transform:none}}
.reveal-in{animation:reveal-in var(--motion-reveal) var(--ease-out) backwards;animation-delay:var(--reveal-delay,0ms)}
.call-dock{opacity:0;transform:translateY(18px);transition:transform var(--motion-panel) var(--ease-out),opacity var(--motion-panel) ease}
.call-dock.is-visible{opacity:1;transform:none}
.call-dock.is-leaving{transition-duration:var(--motion-fast)}
.filter-surface{transition:opacity var(--motion-filter-in) ease,height var(--motion-panel) var(--ease-out)}
.filter-surface.is-filtering{overflow:hidden;overflow-anchor:none}
.filter-surface.filter-out{opacity:0;transition-duration:var(--motion-filter-out),var(--motion-panel)}
@media(max-width:1199px){:root{--header-height:83px}}
@media(max-width:767px){:root{--header-height:76px}}
@media(min-width:1400px){.header-inner{gap:32px}.main-nav{gap:28px}.hero-inner{min-height:695px}.hero-backdrop img{object-position:70% 30%}}
@media(min-width:1920px){.hero-inner{padding-block:100px;min-height:750px}.hero h1{font-size:6rem}.section{padding-block:115px}}
@media(max-width:1399px){.container{max-width:1140px}.header-inner{gap:18px}.main-nav{gap:19px}.header-contact{gap:14px}.header-phone{font-size:var(--text-ui)}.header-cta{font-size:var(--text-ui);padding-inline:14px}.header-inner .brand-logo{width:250px}.footer-main{gap:26px}.budget-grid,.contact-grid{gap:60px}}
@media(max-width:1199px){.container{max-width:960px}.main-nav,.header-cta{display:none}.has-menu-drawer .menu-toggle{display:inline-flex}.header-contact{margin-left:auto}.header-inner{min-height:82px;gap:25px}.header-inner .brand-logo{width:234px}.hero-inner{min-height:600px;padding-block:65px}.hero-copy{max-width:575px}.hero h1{font-size:4.5rem}.hero-description{max-width:415px}.hero-actions{max-width:470px}.hero .eyebrow{max-width:400px}.carousel{--gap:20px}.card-body{padding:24px}.card-body h3{font-size:1.25rem}.reassurance-grid{gap:24px}.reassurance-grid>div{gap:12px}.footer-main{grid-template-columns:1fr 1fr;gap:45px}.section{padding-block:82px}.contact-grid{gap:40px}.contact-panel{padding:28px}.budget-grid{gap:45px}.invitation-inner{gap:55px}.method-list{gap:25px}.method-list li:not(:last-child)::after{right:-22px}}
@media(max-width:991px){.container{max-width:720px;width:calc(100% - 48px)}.hero h1{font-size:3.9rem}.hero-inner{min-height:570px}.hero-copy{max-width:470px}.hero-backdrop::after{background:linear-gradient(90deg,rgba(255,255,255,.98),rgba(255,255,255,.86) 35%,rgba(255,255,255,.15) 70%)}.hero-actions{gap:15px}.hero-actions .button{font-size:1rem;padding:15px 18px;gap:12px}.hero-phone{font-size:var(--text-caption)}.hero-description{max-width:360px}.reassurance-grid{gap:18px}.reassurance-grid>div{align-items:flex-start}.reassurance .icon{width:23px;height:23px;margin-top:4px}.reassurance span{line-height:1.6}.section-heading{gap:32px}.section-heading>p,.section-heading>div:last-child:not(:first-child){max-width:270px;font-size:.83rem}.carousel{--visible:2}.carousel-track{grid-template-columns:repeat(2,minmax(0,1fr))}.card-body h3{font-size:1.4rem}.invitation-inner{gap:40px}.invitation p:not(.eyebrow){font-size:.9rem}.method-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}.method-list li:nth-child(2)::after{display:none}.budget-grid,.contact-grid{grid-template-columns:1fr;gap:45px}.budget-copy{max-width:590px}.brief-card{max-width:600px}.contact-copy h2 br{display:none}.contact-copy h2{max-width:620px}.contact-copy>p:not(.eyebrow){max-width:600px}.contact-signature{display:none}.contact-details{margin-top:20px}.contact-panel{max-width:650px;padding:36px}.form-grid{grid-template-columns:1fr 1fr}.project-fields .form-grid{grid-template-columns:1fr 1fr}.section{padding-block:75px}.footer-main{gap:40px}}
@media(max-width:767px){.container{width:calc(100% - 40px);max-width:540px}body{font-size:1rem}h1{font-size:2.75rem}h2{font-size:2.4rem}.section{padding-block:60px}.eyebrow{font-size:var(--text-caption);margin-bottom:16px}.topline-extra{display:none!important}.topline-inner{min-height:29px;justify-content:center}.header-inner{min-height:75px;gap:16px}.header-contact{display:none}.header-inner .brand{flex:1 1 0;max-width:210px}.header-inner .brand-logo{width:210px}.menu-toggle{min-height:44px;padding-inline:11px}.hero{display:flex;flex-direction:column}.hero-backdrop{position:relative;inset:auto;height:390px;order:2}.hero-backdrop::after{display:none}.hero-backdrop img{object-position:60% 25%}.hero-inner{order:1;min-height:0;padding-block:43px 37px}.hero-copy{max-width:none}.hero h1{font-size:3.35rem;line-height:1.06}.hero .eyebrow{max-width:280px;line-height:1.8}.hero-description{max-width:420px;margin-top:21px;line-height:1.75}.hero-actions{gap:18px;margin-top:25px}.hero-actions .button{min-height:54px;padding:14px 20px}.hero-phone{font-size:.83rem}.hero-explore{margin-top:20px;font-size:.9375rem}.hero-caption{z-index:1;bottom:12px;right:12px}.desktop-break{display:none}.reassurance-grid{grid-template-columns:1fr;padding-block:27px;gap:23px}.reassurance-grid>div{gap:17px;align-items:center}.reassurance .icon{width:26px;height:26px;margin:0}.section-heading{display:block;margin-bottom:32px}.section-heading>p,.section-heading>div:last-child:not(:first-child){max-width:none;font-size:.87rem;margin-top:22px}.section-heading .text-link{margin-top:14px}.carousel{--visible:1;--gap:20px}.carousel-track{grid-template-columns:1fr}.card-photo{aspect-ratio:1.48}.card-body{padding:25px}.card-body h3{font-size:1.55rem}.carousel-controls{display:grid;grid-template-columns:1fr auto;margin-top:23px;gap:12px}.carousel-progress{display:contents}.carousel-dots{grid-column:1/-1;justify-content:center}.carousel-count{grid-column:1;grid-row:2}.carousel-arrows{grid-column:2;grid-row:2;gap:7px}.carousel-arrows .icon-button{width:44px;height:44px}.carousel-dot{min-width:25px;padding-inline:5px}.carousel-dot[aria-current="true"]::after{width:22px}.trades-links{margin-top:35px;padding-top:28px}.invitation-inner{grid-template-columns:1fr;gap:25px;padding-block:49px}.invitation h2{font-size:3.15rem}.invitation-symbol{right:-40px;font-size:260px;bottom:-100px}.invitation p:not(.eyebrow){max-width:420px}.invitation .button{position:relative}.comparison.is-interactive{aspect-ratio:1.16}.method-list{grid-template-columns:1fr;gap:0;margin-top:36px}.method-list li{padding:25px 0 25px 75px;min-height:145px;border-color:var(--line)}.method-list li::after{display:none}.method-number{position:absolute;left:0;top:24px;margin:0;font-size:2.55rem}.method-list h3{margin:0 0 10px;font-size:1.3rem}.method-list li:last-child{padding-bottom:0}.budget-grid{gap:32px}.brief-card{padding:27px}.brief-top .micro-label{font-size:var(--text-caption)}.surface-heading{gap:12px}.faq-list summary{font-size:.9rem;padding-block:22px;gap:20px}.faq-answer{padding-right:16px}.faq-footer{flex-direction:column;align-items:flex-start;gap:8px}.faq-heading{margin-bottom:28px}.contact-grid{gap:32px}.contact-panel{padding:25px}.contact-copy h2{max-width:440px}.form-heading h3{font-size:1.35rem}.form-grid,.project-fields .form-grid{grid-template-columns:1fr}.contact-choice{gap:8px}.contact-choice label{padding-inline:9px}.contact-choice label:has(input:checked){padding-inline:8px}.contact-choice label>span{gap:5px}.contact-choice .icon{display:none}.footer-main{grid-template-columns:1fr 1fr;gap:34px 25px;padding-bottom:40px}.footer-brand,.footer-local{grid-column:1/-1}.site-footer{padding-top:50px;padding-bottom:88px}.footer-bottom{flex-direction:column;gap:14px}.footer-bottom>div{gap:18px}.footer-local .button{display:flex;max-width:310px}.result-dialog{padding:35px 23px}.result-dialog h2{font-size:1.9rem;padding-right:20px}.result-actions .button{font-size:1rem;padding-inline:18px}.dialog-close{top:12px;right:12px}.menu-drawer{padding:24px}.result-actions{gap:12px}}
@media(max-width:575px){.hero-actions{flex-direction:column;align-items:flex-start}.hero h1{font-size:3.15rem}.hero-backdrop{height:365px}.surface-heading label{font-size:var(--text-ui)}}
@media(max-width:359px){.container{width:calc(100% - 32px)}h2{font-size:2.1rem}.hero h1{font-size:2.8rem}.hero-actions .button{padding-inline:17px;gap:14px}.hero-backdrop{height:320px}.header-inner{gap:10px}.header-inner .brand-logo{width:178px}.menu-toggle{padding-inline:8px}.menu-bars{width:17px}.card-body{padding:22px}.carousel-count{display:none}.brief-card,.contact-panel{padding:22px}.contact-choice label{gap:5px}.surface-heading{flex-wrap:wrap}.footer-main{gap:30px 20px}.call-dock{padding-inline:14px}.dock-quote{padding-inline:12px}.invitation h2{font-size:2.8rem}}
/* Keep user-directed navigation smooth; reduce only the remaining effects. */
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*:not(.menu-drawer):not(.carousel-track),*::before,*::after,*:not(.menu-drawer)::backdrop{animation:none!important;transition:none!important}.service-card:hover .card-photo img,.button:hover,.button:hover .icon,.text-link:hover .icon,.drawer-links a:hover>.icon,.nav-dropdown a:hover>.icon{transform:none}}
@media(forced-colors:active){.button,.dock-quote,.comparison-handle,.brief-step{border:2px solid ButtonText}.comparison-line{background:CanvasText}.carousel-dot::after{background:Canvas;border-color:CanvasText}.carousel-dot[aria-current="true"]::after{background:Highlight}.comparison:has(.comparison-range:focus-visible){outline-color:Highlight}.hero-backdrop::after{background:Canvas;opacity:.85}.faq-sign::before,.faq-sign::after{background:CanvasText}:focus-visible{outline-color:Highlight}.card-number,.comparison figcaption{border:1px solid CanvasText}.reveal-in{animation:none}}

.contact-call-box{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:30px}.contact-call-box .phone-link{font-size:1.35rem}.contact-call-box .micro-label{font-size:var(--text-caption)}.contact-call-box .text-link{margin-top:8px}
