@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');
:root{--navy:#0b3550;--deep:#092638;--gold:#c5a46b;--ink:#17364a;--cream:#f7f6f2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:#fff}a{color:inherit;text-decoration:none}.wrap{width:min(1180px,calc(100% - 48px));margin:auto}.topbar{background:var(--deep);color:#d5e3e9;font-size:12px;padding:9px 0}.topbar .wrap{display:flex;justify-content:space-between}.topbar a{color:#fff;font-weight:700}header{background:#fff;position:relative;z-index:5;box-shadow:0 1px 0 #e7ebeb}.header{height:84px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:10px;color:var(--navy);font-size:15px;font-weight:700;letter-spacing:.12em;line-height:1}.brand strong{display:block;font-size:12px;letter-spacing:.2em;margin-top:5px}.brand-icon{width:43px;height:43px;display:grid;place-items:center;background:var(--navy);color:var(--gold);font:600 28px 'Playfair Display',serif}nav{display:flex;gap:23px;margin-left:auto;align-items:center}nav a{font-size:13px;font-weight:700;color:#476071}nav a:hover,nav a.active{color:var(--navy)}.header-phone{font-weight:700;font-size:14px;border:1px solid #d8e2e4;padding:13px 16px;white-space:nowrap}.header-phone span{color:var(--gold);padding-left:10px}.menu{display:none}.eyebrow{display:block;font-size:12px;letter-spacing:.2em;font-weight:700;color:var(--gold);margin-bottom:20px}.hero{background:var(--deep);color:#fff;overflow:hidden}.hero-layout{min-height:615px;display:grid;grid-template-columns:49% 51%;align-items:center}.hero-copy{padding:70px 55px 70px 0;position:relative;z-index:1}.hero h1,.inner-hero h1{font:500 clamp(48px,5.3vw,76px)/1.08 'Playfair Display',Georgia,serif;letter-spacing:-.04em;margin:0 0 28px}.hero h1 em,.section h2 em{color:var(--gold);font-weight:500}.hero p{font-size:17px;line-height:1.8;color:#d7e4e9;max-width:500px}.hero-buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}.btn{min-height:49px;padding:15px 22px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}.btn.gold{background:var(--gold);color:#172d37}.btn.outline{border:1px solid #658093;color:#fff}.hero-phones{display:flex;align-items:center;gap:20px;margin-top:54px;font-size:13px;flex-wrap:wrap}.hero-phones span{color:var(--gold);letter-spacing:.15em;font-size:11px}.hero-phones a{font-weight:700}.hero-art{height:100%;min-height:615px;position:relative}.photo-placeholder{position:absolute;inset:0 -70px 0 0;background:url('../images/hero.webp') center/cover}.photo-placeholder:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,38,56,.26),transparent 55%),linear-gradient(0deg,rgba(9,38,56,.48),transparent 34%)}.corner-label,.photo-caption{position:absolute;z-index:1;color:white;letter-spacing:.15em;font-weight:700}.corner-label{top:34px;right:95px;font-size:11px;text-align:right}.photo-caption{bottom:32px;left:30px;font-size:10px}.art-note{position:absolute;z-index:2;bottom:-24px;left:-65px;background:#fff;color:var(--ink);display:flex;gap:35px;align-items:center;padding:23px 30px;box-shadow:0 14px 40px #0002}.art-note b{font:500 24px 'Playfair Display',serif;color:var(--gold)}.art-note span{font-size:12px;line-height:1.5}.section{padding:100px 0}.section-heading{display:flex;align-items:end;gap:50px;margin-bottom:36px}.section h2,.band h2,.cta h2,.content-grid h2{font:500 clamp(36px,4vw,53px)/1.17 'Playfair Display',Georgia,serif;letter-spacing:-.03em;margin:0}.section-heading .eyebrow{position:absolute;transform:translateY(-165px)}.section-heading p{max-width:270px;color:#657983;line-height:1.7}.cards{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid #dce3e4;border-top:1px solid #dce3e4}.card{min-height:270px;border-right:1px solid #dce3e4;border-bottom:1px solid #dce3e4;padding:30px;display:flex;flex-direction:column;transition:background .2s}.card:hover{background:#f5f8f8}.card-index{font-size:12px;color:var(--gold);font-weight:700}.card h3{font:500 28px 'Playfair Display',Georgia,serif;margin:27px 0 8px}.card p{color:#657983;line-height:1.65;margin:0}.card-link{font-size:13px;font-weight:700;margin-top:auto;padding-top:22px}.card-link b{float:right;color:var(--gold)}.band{background:#e8f0f1;padding:72px 0}.band-layout{display:flex;justify-content:space-between;align-items:end;gap:40px}.band p{max-width:390px;line-height:1.8;color:#526c79}.band a{font-weight:700;color:var(--navy)}.cta{background:var(--navy);color:#fff;padding:46px 55px;display:flex;align-items:center;justify-content:space-between;gap:30px}.cta h2{font-size:39px}.cta p{color:#c9d9df;line-height:1.6}.cta .btn{white-space:nowrap}.inner-hero{background:var(--deep);color:#fff;padding:85px 0 90px;background-image:radial-gradient(circle at 85% 40%,#1f5064,transparent 40%)}.inner-hero h1{font-size:clamp(43px,5vw,65px);max-width:800px}.inner-hero p{font-size:17px;line-height:1.7;color:#d6e4e8;max-width:690px}.inner-hero .btn{margin-top:18px}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:90px;padding-bottom:70px}.content-grid article{max-width:720px}.content-grid h2{margin-bottom:28px}.content-grid h3{font:500 30px 'Playfair Display',serif;margin-top:40px}.content-grid p{font-size:17px;line-height:1.85;color:#5b717b}.side{background:var(--cream);padding:30px;height:max-content}.side h3{font:500 25px 'Playfair Display',serif;margin:0 0 20px}.side a{display:flex;justify-content:space-between;border-top:1px solid #dbe2e1;padding:15px 0;font-size:14px;font-weight:700}.side span{color:var(--gold)}.district-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:70px}.district-grid a{padding:20px 18px;border:1px solid #dce4e5;font-weight:700;font-size:14px}.district-grid a:hover{background:#f3f7f7}.district-grid span{float:right;color:var(--gold)}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.contact-card{padding:30px;border:1px solid #dce4e5;display:flex;flex-direction:column;gap:20px}.contact-card span{font-size:12px;letter-spacing:.15em;color:var(--gold);font-weight:700}.contact-card strong{font:500 27px 'Playfair Display',serif}.contact-card small{font-size:13px}footer{background:var(--deep);color:#d6e2e6;padding:65px 0 0}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:70px;padding-bottom:60px}.brand.light{color:#fff}.brand.light .brand-icon{background:#fff}.footer-grid p{max-width:320px;line-height:1.8;font-size:14px}.footer-grid h3{color:#fff;font-size:14px;margin:0 0 24px}.footer-grid a:not(.brand){display:block;margin-bottom:12px;font-size:13px}.copyright{padding:20px 0;border-top:1px solid #315063;font-size:12px}.mobile-actions{display:none}@media(max-width:1050px){nav{gap:13px}.header-phone{display:none}.hero-layout{grid-template-columns:52% 48%}.hero h1{font-size:55px}}@media(max-width:720px){body{padding-bottom:59px}.wrap{width:min(100% - 36px,1180px)}.topbar span{display:none}.header{height:69px}.brand{font-size:12px}.brand strong{font-size:10px}.brand-icon{width:37px;height:37px;font-size:24px}.menu{display:block;margin-left:auto;background:none;border:0;font-size:27px;color:var(--navy);cursor:pointer}nav{display:none;position:absolute;top:69px;left:0;right:0;background:#fff;padding:12px 18px 22px;box-shadow:0 14px 24px #0002}nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}nav a{padding:13px 7px;border-bottom:1px solid #e6ecec}.hero-layout{display:flex;flex-direction:column}.hero-copy{padding:55px 0 35px}.hero h1{font-size:clamp(43px,11vw,62px)}.hero p{font-size:16px}.hero-phones{margin-top:33px;gap:12px}.hero-art{width:100%;min-height:300px}.photo-placeholder{inset:0 -18px}.art-note{display:none}.section{padding:67px 0}.section-heading{display:block}.section-heading .eyebrow{position:static;transform:none}.section-heading p{max-width:100%}.cards{grid-template-columns:1fr}.card{min-height:220px}.band{padding:55px 0}.band-layout{display:block}.cta{padding:35px 25px;display:block}.cta h2{font-size:35px}.cta .btn{margin-top:15px}.inner-hero{padding:65px 0}.inner-hero h1{font-size:45px}.content-grid{display:block}.side{margin-top:35px}.district-grid{grid-template-columns:1fr 1fr}.district-grid a{padding:15px;font-size:13px}.contact-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr;gap:25px}.mobile-actions{position:fixed;display:grid;grid-template-columns:1fr 1fr;bottom:0;left:0;right:0;z-index:9;background:#fff;box-shadow:0 -4px 20px #0002}.mobile-actions a{text-align:center;padding:17px;background:var(--navy);color:#fff;font-weight:700;font-size:14px}.mobile-actions a+a{background:#19a561}}@media(max-width:400px){.district-grid{grid-template-columns:1fr}.hero-buttons .btn{flex:1}.hero-phones span{width:100%}}
.service-image{margin:0 0 48px}.service-image img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.service-image figcaption{font-size:12px;letter-spacing:.08em;color:#70838d;margin-top:12px}.prose-section{margin-top:36px}.prose-section h3{margin-bottom:16px}.prose-section p{margin-top:0}.content-grid article>.eyebrow{margin-top:14px}@media(max-width:720px){.service-image{margin-bottom:35px}}
/* Service image cards on the home and services pages. */
.card{padding:0;min-height:0;overflow:hidden}.card-photo{height:208px;position:relative;overflow:hidden;background:#e8edec}.card-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.card:hover .card-photo img{transform:scale(1.045)}.card-photo .card-index{position:absolute;top:16px;left:18px;background:var(--deep);color:#fff;padding:8px 10px;font-size:12px;line-height:1}.card-copy{padding:24px 27px 27px;display:flex;flex:1;flex-direction:column;min-height:205px}.card-copy h3{margin:0 0 8px}.card-copy .card-link{display:block}@media(max-width:720px){.card-photo{height:220px}.card-copy{min-height:0;padding:24px}.card-copy .card-link{margin-top:10px}}@media(prefers-reduced-motion:reduce){.card-photo img{transition:none}.card:hover .card-photo img{transform:none}}
.home-guide{background:#f6f8f7}.home-guide-head{max-width:850px}.home-guide-head h2{margin-bottom:22px}.home-guide-head>p,.guide-note{font-size:17px;line-height:1.8;color:#526c79}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:44px 0 30px}.guide-grid>div{border-top:2px solid var(--gold);padding:27px 12px 12px 0}.guide-grid span{font:500 24px 'Playfair Display',serif;color:var(--gold)}.guide-grid h3{font:500 25px 'Playfair Display',serif;margin:22px 0 12px}.guide-grid p{font-size:15px;line-height:1.75;color:#526c79}.guide-note{border-top:1px solid #d9e3e3;padding-top:22px;margin:0}.guide-note a{color:var(--navy);font-weight:700;text-decoration:underline;text-underline-offset:3px}@media(max-width:720px){.guide-grid{grid-template-columns:1fr;gap:8px;margin:30px 0}.guide-grid>div{padding:20px 0}.guide-grid h3{margin:14px 0 8px}}
.home-more h2{max-width:780px;margin-bottom:35px}.home-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.home-more-grid>div{border-top:1px solid #d7e1e3;padding-top:22px}.home-more-grid h3{font:500 27px 'Playfair Display',serif;margin:0 0 15px}.home-more-grid p{font-size:16px;line-height:1.8;color:#526c79}.home-more-grid a{color:var(--navy);font-weight:700;text-decoration:underline;text-underline-offset:3px}@media(max-width:720px){.home-more-grid{grid-template-columns:1fr;gap:25px}}
.home-guide-lead{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:55px;margin-bottom:15px}.home-guide-lead .home-guide-head{max-width:none}.home-guide-image,.home-more-lead img,.band-map{display:block;width:100%;height:auto;object-fit:cover}.home-guide-image{aspect-ratio:3/2}.band-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:65px;align-items:center}.band-copy p{max-width:450px}.band-map{aspect-ratio:3/2;box-shadow:0 12px 32px #0b355015}.home-more-lead{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:65px;margin-bottom:38px}.home-more-lead h2{margin:0}.home-more-lead img{aspect-ratio:3/2}.home-more-grid{margin-top:0}@media(max-width:720px){.home-guide-lead,.band-layout,.home-more-lead{grid-template-columns:1fr;gap:25px}.home-guide-image{margin-top:8px}.band-map{margin-top:4px}.home-more-lead{margin-bottom:30px}}
/* Two-step price request */
.price-section{background:#f1f5f5;padding:36px 0}.price-panel{display:grid;grid-template-columns:300px 1fr;gap:42px;align-items:center;background:#fff;padding:33px 40px;box-shadow:0 12px 35px #0b35500e}.price-intro .eyebrow{margin-bottom:12px}.price-intro h2{font:500 31px/1.2 'Playfair Display',serif;margin:0 0 12px}.price-intro p{color:#607782;font-size:14px;line-height:1.65;margin:0}.price-fields{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:13px}.price-fields label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:700;color:var(--ink)}.price-fields select,.price-fields input{width:100%;height:50px;border:1px solid #cdd9dc;background:#fff;color:var(--ink);font:500 15px 'DM Sans',sans-serif;border-radius:0;padding:0 13px}.price-fields select:focus,.price-fields input:focus{outline:2px solid var(--gold);outline-offset:2px}.price-fields .btn{height:50px;border:0;cursor:pointer;white-space:nowrap}.price-fields .btn:disabled{opacity:.6;cursor:wait}.price-summary{font-size:14px;font-weight:700;color:var(--navy);margin:0 0 16px}.price-back{border:0;background:none;color:var(--navy);font:700 13px 'DM Sans',sans-serif;padding:15px 0 0;cursor:pointer}.price-error{color:#a12626;font-size:14px;margin:14px 0 0}.price-success{padding:10px 0}.price-success strong{font:500 30px 'Playfair Display',serif;color:var(--navy)}.price-success p{font-size:16px}.price-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.price-step[hidden],.price-error[hidden],.price-success[hidden]{display:none!important}@media(max-width:900px){.price-panel{grid-template-columns:1fr;gap:25px}.price-fields{grid-template-columns:1fr 1fr}.price-fields .btn{grid-column:1/-1}}@media(max-width:720px){.inner-hero{padding:30px 0 34px}.inner-hero .eyebrow{margin-bottom:9px}.inner-hero h1{font-size:clamp(30px,8vw,38px);line-height:1.12;margin-bottom:11px}.inner-hero p{font-size:14px;line-height:1.5;margin:0}.inner-hero .btn{min-height:39px;padding:10px 15px;margin-top:16px}.price-section{padding:20px 0}.price-panel{padding:24px 20px;gap:22px}.price-intro h2{font-size:28px}.price-fields{grid-template-columns:1fr;gap:14px}.price-fields .btn{grid-column:auto;width:100%}}
/* Fine gold outline draws attention to the price request form. */
.price-panel{border:1px solid var(--gold)}
/* Brand lockup */
.brand img{display:block;width:218px;height:auto}.brand.light img{width:225px}@media(max-width:720px){.brand img{width:174px}.brand.light img{width:205px}}
