@font-face{font-family:Manrope;src:url(/assets/manrope.woff2) format("woff2");font-weight:400 800;font-display:swap}
@font-face{font-family:Cormorant;src:url(/assets/cormorant.woff2) format("woff2");font-weight:400 700;font-display:swap}
:root{--ink:#18213e;--blue:#283b96;--blue-dark:#202d73;--paper:#f8f8fc;--white:#fff;--wash:#e9ecfa;--muted:#535d72;--line:#d6dcef;--head:74px;--serif:Cormorant,Georgia,serif}
*{box-sizing:border-box}
html{scroll-padding-top:calc(var(--head) + 16px)}
body{margin:0;background:var(--paper);color:var(--ink);font:500 1rem/1.62 Manrope,system-ui,sans-serif;overflow-wrap:anywhere}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:var(--serif);line-height:1.02;font-weight:700}
h1{font-size:clamp(4.15rem,8.2vw,8rem);letter-spacing:-.055em}
h2{font-size:clamp(2.55rem,5.3vw,4.65rem);letter-spacing:-.038em}
h3{font-size:clamp(1.85rem,3vw,2.65rem);letter-spacing:-.026em}
a{color:inherit;text-underline-offset:.22em}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
img{display:block;max-width:100%;height:auto}
:focus-visible{outline:2px solid #5269cf;outline-offset:4px}
.wrap{width:min(calc(100% - 48px),1200px);margin-inline:auto}
.narrow{max-width:770px}
.skip{position:fixed;top:10px;left:10px;padding:8px 12px;background:white;z-index:20;transform:translateY(-150%)}
.skip:focus{transform:none}
.header{position:sticky;top:0;background:var(--white);border-bottom:1px solid var(--line);z-index:5}
.head{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--head)}
.brand{display:inline-flex;align-items:center;gap:9px;min-width:0;font-size:.94rem;font-weight:800;text-decoration:none;line-height:1.12}
.brand img{flex:none}
.brand small{display:block;margin-top:4px;font-size:.7rem;font-weight:600;color:var(--muted)}
.nav,.actions{display:flex;align-items:center}
.nav{gap:20px}
.nav a,.foot nav a{font-size:.86rem;font-weight:800;text-decoration:none}
.nav a:hover,.nav [aria-current=page],.foot a:hover{text-decoration:underline}
.nav .nav-social,.actions .burger{display:none}
.actions{gap:7px;flex:none}
.button,.icon{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:7px;min-height:48px;text-decoration:none;font-weight:800;text-align:center}
.button{border:1px solid var(--blue);background:var(--blue);color:var(--white);padding:10px 17px}
.button:hover{background:var(--blue-dark)}
.icon{width:46px;min-width:46px;min-height:46px;border:1px solid var(--line);background:transparent;color:var(--blue)}
.icon:hover,.outline:hover{background:var(--wash)}
.burger span{height:1.5px;width:18px;background:currentColor}
.hero{background:linear-gradient(110deg,#f8f8fc,#e7eafa);border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:clamp(26px,5vw,70px);padding-block:clamp(45px,6.5vw,103px)}
.hero h1{margin-block:15px 18px}
.hero h1 em{display:block;color:var(--blue);font-style:normal}
.eyebrow{font-size:.74rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--blue)}
.lead{max-width:44ch;color:var(--muted);font-size:clamp(1.01rem,1.5vw,1.19rem)}
.row{display:flex;align-items:center;flex-wrap:wrap;gap:11px 18px;margin-top:20px}
.text-link{display:inline-block;color:var(--blue);font-size:.91rem;font-weight:800}
.hero-panel{background:var(--blue-dark);color:white;border-radius:12px;padding:clamp(22px,5vw,56px);position:relative}
.hero-panel .eyebrow{color:#dce3ff}
.hero-panel h2{margin:9px 0 17px;font-size:clamp(2.45rem,5.3vw,4.35rem)}
.hero-panel ol{padding:0;margin:0;list-style:none}
.hero-panel li{display:flex;gap:12px;align-items:baseline;padding:10px 0;border-top:1px solid #7783b7}
.hero-panel li span{color:#dce3ff;font-size:.8rem;flex:none}
.picture img{width:100%}
.section{padding-block:clamp(39px,6vw,85px)}
.heading{margin-bottom:clamp(18px,3vw,36px)}
.heading h2{margin-top:7px}
.directions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.direction{display:grid;grid-template-columns:1fr auto;gap:14px 12px;align-content:start;background:var(--white);border:1px solid var(--line);border-top:4px solid var(--blue);border-radius:9px;padding:23px;min-height:212px;text-decoration:none}
.direction:hover{background:var(--wash)}
.direction h3,.direction p{grid-column:1/-1}
.direction p,.topics p,.prose,.contact-grid p:not(.eyebrow){color:var(--muted)}
.num,.arrow{color:var(--blue);font-weight:800}
.arrow{grid-area:1/2;font-size:1.15rem}
.band{background:var(--blue-dark);color:white}
.band-grid,.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,5vw,70px);align-items:start}
.band-grid .heading{margin:0}
.band .eyebrow,.band .text-link{color:#e4e8ff}
.band .text-link{margin-top:13px}
.band-grid>div>p{max-width:55ch}
.photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.picture{display:block}
.picture img{border-radius:9px}
.photos figcaption,.entry figcaption{margin-top:8px;color:var(--muted);font-size:.86rem}
.below{margin-top:18px}
.viewer{width:min(94vw,960px);max-height:92dvh;padding:12px;border:0;border-radius:11px;background:var(--white);color:var(--ink)}
.viewer::backdrop{background:#10152cdd}
.viewer img{max-width:100%;max-height:62dvh;width:auto;object-fit:contain;margin:auto}
.viewer figcaption{text-align:center;margin-top:8px}
.viewer-head,.viewer-actions{display:flex;justify-content:flex-end;gap:8px;margin-bottom:8px}
.viewer-actions{justify-content:center;margin:9px 0 0}
.viewer button{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:7px;background:white;font-size:1.25rem}
.score-band,.intro{background:var(--wash)}
.rating{display:flex;align-items:center;flex-wrap:wrap;gap:8px 24px}
.rating-value{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;white-space:nowrap;color:var(--blue);font:700 4rem/1 var(--serif)}
.rating-value svg{flex:none}
.review-excerpt{margin-top:18px;padding:18px;border-left:3px solid var(--blue);background:var(--white);border-radius:0 8px 8px 0}
.score-band .review-excerpt{grid-column:1/-1;margin-top:0}
.review-excerpt blockquote{margin:0;font:700 clamp(1.6rem,3.2vw,2.45rem)/1.18 var(--serif)}
.review-excerpt figcaption{margin-top:9px;font-size:.86rem;color:var(--muted)}
.contact-grid .heading{margin-bottom:15px}
.contact-phone{display:block;width:fit-content;font-weight:800;font-size:1.2rem;margin-bottom:5px}
address{font-style:normal;margin-top:18px}
.outline{background:transparent;border-color:var(--line);color:var(--blue)}
.form-panel{background:var(--white);border:1px solid var(--line);border-radius:11px;padding:clamp(15px,3vw,32px)}
.form-panel h2{font-size:clamp(2.05rem,4.5vw,3.35rem);margin:7px 0 10px}
form{display:grid;gap:12px;margin-top:14px}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
label{font-size:.86rem;font-weight:800}
input:not([type=checkbox]),select{display:block;width:100%;min-width:0;min-height:46px;padding:8px 9px;margin-top:5px;background:var(--paper);border:1px solid #aab4d0;border-radius:6px}
.consent{display:grid;grid-template-columns:22px minmax(0,1fr);gap:7px;align-items:start}
.consent input{width:19px;height:19px;margin:3px 0 0;accent-color:var(--blue)}
.consent label{display:block;cursor:pointer}
.consent a{font-size:.85rem;color:var(--blue)}
form .button{justify-self:start}
html:not(.js) form .button{display:none}
[data-form-status]:empty{display:none}
.map{display:block;width:100%;height:310px;margin-top:24px;border:1px solid var(--line);border-radius:9px}
.entry{max-width:195px;margin-top:21px}
.entry img{border-radius:8px}
.intro .wrap{padding-block:clamp(28px,5.5vw,72px)}
.crumb{display:inline-block;margin-bottom:14px;font-size:.87rem}
.intro h1{max-width:940px;font-size:clamp(2.7rem,7.4vw,6.25rem);margin-block:9px 13px}
.topics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.topics article{background:white;border:1px solid var(--line);border-radius:9px;padding:20px}
.topics p,.prose p+p{margin-top:8px}
.foot{background:#18234e;color:white;padding:28px 0 17px}
.foot-grid{display:grid;grid-template-columns:1fr 1.55fr .8fr;gap:18px}
.foot .brand small{color:#d9dff6}
.foot nav{display:flex;flex-wrap:wrap;gap:6px 15px}
.foot-end{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 14px;border-top:1px solid #7e89af;margin-top:19px;padding-top:13px;font-size:.81rem}
@media(max-width:1040px){
 :root{--head:65px}
 .wrap{width:calc(100% - 36px)}
 .header{position:relative}
 .js .header{position:sticky}
 .head{flex-wrap:wrap;gap:7px}
 .js .head{flex-wrap:nowrap}
 .nav{order:3;width:100%;padding-bottom:7px;flex-wrap:wrap;gap:2px 12px}
 .nav a,.nav .nav-social{display:flex;align-items:center;gap:7px;min-height:44px}
 .js .nav{display:none;position:absolute;inset:100% 0 auto;background:white;padding:7px 18px 13px;border-bottom:1px solid var(--line)}
 .js .nav.open{display:flex;flex-direction:column;align-items:stretch}
 .js .actions .burger{display:inline-flex;flex-direction:column;gap:5px}
 .actions .desktop-social{display:none}
 .header-cta{padding-inline:9px;font-size:.79rem}
}
@media(max-width:670px){
 .hero-grid,.directions,.band-grid,.contact-grid,.topics,.foot-grid{grid-template-columns:minmax(0,1fr)}
 .hero-grid{gap:20px;padding-block:28px 24px}
 .hero h1{font-size:clamp(3.3rem,12vw,5rem);margin-block:11px 13px}
 .direction{min-height:auto;padding:15px;gap:8px 10px}
 .photos{grid-template-columns:minmax(0,1fr)}
 .map{height:260px}
 .fields{grid-template-columns:minmax(0,1fr)}
 .foot-grid{gap:12px}
}
@media(max-width:380px){
 .wrap{width:calc(100% - 28px)}
 .header .brand{gap:6px;font-size:.81rem;overflow-wrap:normal}
 .header .brand small{font-size:.66rem}
 .header .brand img{width:31px;height:31px}
 .actions{gap:4px}
 .actions .icon{width:44px;min-width:44px;min-height:44px}
 .header-cta{min-height:44px;padding:7px;font-size:.72rem}
 .intro h1{font-size:2.35rem}
}
