:root{--navy:#03225b;--navy2:#021844;--green:#0d6b46;--green2:#095236;--sun:#f5c518;--sand:#f3f1ea;--ink:#12203f;--mute:#4d5a74;--rule:#d9d5c8}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{font-family:'Overpass',system-ui,sans-serif;color:var(--ink);background:#fff;font-size:1.06rem;line-height:1.65}
h1,h2,h3,h4,.brand b{font-family:'Fraunces',Georgia,serif;font-weight:600;line-height:1.08;letter-spacing:-.01em}
a{color:var(--navy)}
.sr{position:absolute;left:-9999px}
.shield{width:2.4rem;height:2.6rem;flex:none;vertical-align:middle}
/* utility bar */
.util{background:var(--navy2);color:#dbe4f7;font-size:.9rem}
.util a{color:#fff;text-decoration:none;font-weight:600}
.util .in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1.5rem;padding:.45rem 0}
.util .routes{display:flex;align-items:center;gap:.4rem}
.util .routes .shield{width:1.3rem;height:1.45rem}
/* nav */
.navbar{background:#fff;border-bottom:1px solid var(--rule);padding:.6rem 0}
.brand{display:flex;flex-direction:column;text-decoration:none;color:var(--navy);line-height:1}
.brand b{font-size:1.6rem;color:var(--navy)}
.brand small{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--green);font-weight:700;margin-top:.3rem}
.navbar .nav-link{color:var(--ink);font-weight:600;font-size:.98rem;padding:.5rem .8rem}
.navbar .nav-link:hover{color:var(--green)}
.btn-sun{background:var(--sun);color:#1a1a1a;font-weight:800;border:2px solid #1a1a1a;border-radius:.4rem;padding:.7rem 1.4rem}
.btn-sun:hover{background:#ffd84a;color:#000}
.btn-line{border:2px solid #fff;color:#fff;font-weight:700;border-radius:.4rem;padding:.7rem 1.4rem}
.btn-line:hover{background:#fff;color:var(--navy)}
/* hero */
.hero{background:var(--navy);color:#fff;overflow:hidden;position:relative}
.hero .row{min-height:min(78vh,720px)}
.hero .copy{padding-top:4rem;padding-bottom:3rem}
.eyebrow{font-weight:800;letter-spacing:.2em;text-transform:uppercase;font-size:.8rem;color:var(--sun)}
.hero h1{font-size:clamp(2.6rem,6.2vw,5rem);color:#fff;margin:.8rem 0 1.2rem}
.hero h1 em{font-style:italic;font-weight:400;color:#cfe0ff}
.hero p.lead{color:#d5e0f7;max-width:34rem;font-size:1.2rem}
.hero .portrait{align-self:end;position:relative;text-align:center}
.hero .portrait img{display:block;width:100%;max-width:520px;height:auto;margin:0 auto;aspect-ratio:1/1;-webkit-mask-image:linear-gradient(to bottom,#000 88%,#000);}
.hero .tag{position:absolute;left:50%;bottom:1.2rem;transform:translateX(-50%);background:var(--green);border:3px solid #fff;border-radius:.5rem;padding:.5rem 1.1rem;text-align:left;white-space:nowrap;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.hero .tag b{display:block;font-family:'Fraunces',serif;font-size:1.15rem}
.hero .tag span{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.hero .big-shield{position:absolute;right:-2rem;top:3rem;width:15rem;opacity:.06;pointer-events:none}
.stat-strip{background:var(--green);color:#fff}
.stat-strip .c{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.stat-strip div div{padding:1.1rem 1rem;text-align:center;border-right:1px solid rgba(255,255,255,.25)}
.stat-strip div div:last-child{border:0}
.stat-strip b{display:block;font-family:'Fraunces',serif;font-size:1.7rem;line-height:1.1}
.stat-strip span{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
/* sections */
section{padding:5rem 0}
.sec-h{margin-bottom:2.5rem}
.sec-h h2{font-size:clamp(2rem,4.4vw,3.2rem);color:var(--navy)}
.sec-h p{color:var(--mute);max-width:40rem}
.sand{background:var(--sand)}
/* guide-sign practice list */
.signs .accordion-item{background:transparent;border:0;margin-bottom:1rem}
.signs .accordion-button{background:var(--green);color:#fff;font-family:'Fraunces',serif;font-weight:600;font-size:clamp(1.3rem,2.6vw,1.8rem);border:4px solid #fff;outline:3px solid var(--green);border-radius:.6rem;padding:1.05rem 1.3rem;box-shadow:none;gap:1rem}
.signs .accordion-button .pa-tag{margin-left:auto;margin-right:1rem;font-family:'Overpass',sans-serif;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;opacity:.85}
.signs .accordion-button::after{filter:brightness(0) invert(1);margin-left:0}
.signs .accordion-button:not(.collapsed){background:var(--green2)}
.signs .accordion-button:focus-visible{outline:3px solid var(--sun)}
.signs .accordion-body{background:#fff;border:1px solid var(--rule);border-radius:.6rem;margin-top:.7rem;padding:1.6rem}
.signs h4{font-size:1.15rem;color:var(--green);margin:1.2rem 0 .4rem;font-family:'Overpass',sans-serif;text-transform:uppercase;letter-spacing:.1em;font-weight:800}
.signs ul.ck{padding-left:0;list-style:none;columns:2;column-gap:2rem}
.signs ul.ck li{padding-left:1.4rem;position:relative;margin-bottom:.35rem;break-inside:avoid}
.signs ul.ck li:before{content:"";position:absolute;left:0;top:.62em;width:.6rem;height:.6rem;background:var(--sun);border:2px solid var(--green);border-radius:50%}
.qa dt{font-weight:800;color:var(--navy);margin-top:.9rem}
.qa dd{margin:.15rem 0 0;color:#2b3956}
/* about */
.about .ph{background:var(--navy);border-radius:50% 50% .8rem .8rem/36% 36% .8rem .8rem;overflow:hidden;max-width:380px;margin:0 auto;border:6px solid #fff;box-shadow:0 0 0 3px var(--green)}
.about .ph img{display:block;width:100%;height:auto}
dl.bio dt{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green);font-weight:800;margin-top:1.1rem}
dl.bio dd{margin:.2rem 0 0}
dl.bio ul{padding-left:1.1rem;margin:0}
/* badges */
.badges{background:#fff;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:2.2rem 0}
.badges .row{align-items:center}
.badges img{width:100%;max-width:110px;height:auto;display:block;margin:0 auto}
.badges p{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--mute);text-align:center;margin:1.2rem 0 0}
/* quote band */
.band{background:var(--navy);color:#fff;padding:4.5rem 0;text-align:center}
.band blockquote{font-family:'Fraunces',serif;font-size:clamp(1.7rem,3.8vw,2.8rem);line-height:1.2;max-width:50rem;margin:0 auto}
.band cite{display:block;margin-top:1.2rem;font-style:normal;letter-spacing:.16em;text-transform:uppercase;font-size:.8rem;color:var(--sun);font-weight:800}
/* reviews */
.rate{display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap;margin-bottom:2rem}
.rate b{font-family:'Fraunces',serif;font-size:3.4rem;color:var(--navy);line-height:1}
.stars{color:#c98f00;letter-spacing:.1em;font-size:1.3rem}
.rev{background:#fff;border:1px solid var(--rule);border-left:6px solid var(--green);border-radius:.5rem;padding:1.3rem 1.4rem;margin:0 0 1.2rem;break-inside:avoid}
.rev p{margin:0 0 .6rem}
.rev cite{font-style:normal;font-weight:800;color:var(--navy);font-size:.92rem}
.revs{columns:3;column-gap:1.2rem}
/* faq */
.faq .accordion-button{font-weight:700;color:var(--navy);background:#fff;font-size:1.05rem}
.faq .accordion-button:not(.collapsed){background:var(--sand);color:var(--navy);box-shadow:none}
.faq .accordion-item{border-color:var(--rule)}
.faq h3{font-size:1.6rem;color:var(--green);margin:2.2rem 0 1rem}
/* destinations */
.dest{background:var(--green);color:#fff;border:6px solid #fff;outline:4px solid var(--green);border-radius:.8rem;padding:1.6rem 1.8rem}
.dest h3{color:#fff;font-size:1.5rem;margin-bottom:1rem}
.dest ul{list-style:none;padding:0;margin:0}
.dest li{display:flex;align-items:center;gap:.8rem;font-family:'Fraunces',serif;font-size:1.5rem;padding:.55rem 0;border-bottom:2px dashed rgba(255,255,255,.35)}
.dest li:last-child{border:0}
.dest li:before{content:"→";font-family:'Overpass',sans-serif;font-weight:800;color:var(--sun)}
/* forms */
.res a{display:block;text-decoration:none;background:#fff;border:1px solid var(--rule);border-radius:.5rem;padding:.8rem 1rem;margin-bottom:.6rem;font-weight:600;color:var(--navy)}
.res a:hover{border-color:var(--green);color:var(--green)}
.res a:after{content:" ↗";color:var(--green)}
.res h3{font-size:1.4rem;color:var(--navy);margin-bottom:.4rem}
.res p{color:var(--mute);font-size:.98rem}
/* contact */
.contact{background:var(--navy);color:#fff}
.contact h2{color:#fff;font-size:clamp(2.2rem,5vw,3.6rem)}
.contact .big{display:block;font-family:'Fraunces',serif;font-size:clamp(2rem,5.5vw,3.6rem);color:var(--sun);text-decoration:none;line-height:1.1}
.contact .mail{color:#fff;font-size:1.2rem;font-weight:600}
.contact address{font-style:normal;font-size:1.2rem;margin:1.2rem 0}
.map{border:6px solid #fff;border-radius:.6rem;overflow:hidden;height:100%;min-height:340px;background:#fff}
.map iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
.disc-note{font-size:.85rem;color:#b6c4e2;margin-top:1.4rem}
footer{background:var(--navy2);color:#b6c4e2;padding:2.5rem 0 1.5rem;font-size:.95rem}
footer a{color:#fff}
footer .chip{background:#fff;border-radius:.5rem;padding:.5rem .8rem;display:inline-block}
footer .chip img{display:block;width:230px;height:auto}
@media(max-width:991px){
 .revs{columns:2}
 .stat-strip .c{grid-template-columns:repeat(2,1fr)}
 .stat-strip div div:nth-child(2){border-right:0}
 .stat-strip div div:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.25)}
 .hero .row{min-height:0}
 .hero .copy{padding-top:3rem;padding-bottom:1rem}
 .hero .portrait img{max-width:400px}
}
@media(max-width:767px){
 section{padding:3.5rem 0}
 .revs{columns:1}
 .signs ul.ck{columns:1}
 .signs .accordion-button .pa-tag{display:none}
 .util .in{justify-content:center;text-align:center}
 .hero .tag{white-space:normal;width:86%}
 .brand b{font-size:1.4rem}
}
