:root{--ink:#14262f;--ink2:#1c3440;--cream:#f4efe6;--glass:#9cc3b6;--glass-d:#4f7d70;--mute:#5b6b70;--line:rgba(156,195,182,.28)}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{overflow-x:clip;font-family:'Jost',system-ui,sans-serif;font-size:1.05rem;line-height:1.7;color:var(--ink);background:var(--cream)}
h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;line-height:1.12;color:inherit}
h1{font-size:clamp(2.6rem,5.5vw,4.4rem)}
h2{font-size:clamp(2.1rem,4.4vw,3.2rem)}
h3{font-size:1.6rem}
.eyebrow,.navbar .nav-link,.btn,.label{font-family:'Jost',sans-serif;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase}
.eyebrow{color:var(--glass-d);margin-bottom:1rem}
.on-dark .eyebrow,.hero .eyebrow{color:var(--glass)}
.lead-i{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.4rem;opacity:.85;line-height:1.4}
section{padding:96px 0}
.on-dark{background:var(--ink);color:var(--cream)}
.on-dark2{background:var(--ink2);color:var(--cream)}
a{color:var(--glass-d)}
.wave{display:block;width:150px;height:22px;color:var(--glass);opacity:.8;margin:0 0 1.4rem}
.wave.c{margin-left:auto;margin-right:auto}
.wave-band{padding:0;line-height:0;color:var(--glass);opacity:.35}
.wave-band svg{width:100%;height:46px;display:block}
/* nav */
.navbar{background:rgba(20,38,47,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:.9rem 0}
.navbar-brand{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:1.55rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cream)!important;display:flex;flex-direction:column;align-items:center;margin:0 auto;line-height:1.1;text-align:center}
.navbar-brand small{font-family:'Jost',sans-serif;font-size:.58rem;letter-spacing:.36em;color:var(--glass);margin-top:.35rem}
.navbar .nav-link{color:rgba(244,239,230,.8)!important;padding:.4rem 1.1rem!important;transition:color .3s}
.navbar .nav-link:hover{color:var(--glass)!important}
.navbar.navbar-expand-lg .navbar-collapse{justify-content:center}
.navbar-toggler{border:1px solid var(--line);position:absolute;right:12px;top:18px}
.navbar-toggler-icon{filter:invert(1)}
.navbar .container{flex-direction:column;position:relative}
@media(max-width:991px){.navbar-brand{font-size:1.02rem;letter-spacing:.1em;align-items:flex-start;text-align:left;margin:0;padding-right:56px}}
/* buttons */
.btn{border-radius:0;padding:15px 36px;transition:.3s}
.btn-glass{background:var(--glass);color:var(--ink);border:1px solid var(--glass)}
.btn-glass:hover{background:transparent;color:var(--glass)}
.btn-ghost{border:1px solid rgba(244,239,230,.35);color:var(--cream)}
.btn-ghost:hover{border-color:var(--glass);color:var(--glass)}
.btn-ink{background:var(--ink);color:var(--cream);border:1px solid var(--ink)}
.btn-ink:hover{background:transparent;color:var(--ink)}
/* hero */
.hero{background:var(--ink);color:var(--cream);padding:90px 0 80px;position:relative;overflow:hidden}
.hero p.lead-i{max-width:34rem}
.arch{border-radius:999px 999px 0 0;overflow:hidden;border:1px solid var(--line);padding:10px;max-width:440px;margin-left:auto}
.arch img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:50% 10%;border-radius:999px 999px 0 0;display:block}
.hero .ghost-wave{position:absolute;right:-6%;bottom:-40px;width:70%;color:var(--glass);opacity:.07;pointer-events:none}
.notice{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.1rem 0;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.3rem;text-align:center;background:var(--ink2);color:var(--cream)}
.notice a{color:var(--glass)}
/* index list */
.idx{list-style:none;padding:0;margin:0}
.idx li{border-top:1px solid rgba(20,38,47,.18);padding:1.5rem 0;display:grid;grid-template-columns:minmax(0,1fr);gap:.3rem}
.idx li:last-child{border-bottom:1px solid rgba(20,38,47,.18)}
.idx h3{margin:0}
.idx p{margin:0;color:var(--mute)}
@media(min-width:768px){.idx li{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:2rem;align-items:baseline}}
.photo{width:100%;height:auto;display:block;border:1px solid var(--line);padding:8px}
.photo.tall{aspect-ratio:2/3;object-fit:cover}
.photo.wide{aspect-ratio:4/3;object-fit:cover}
.phototrio figure{margin:0}
.phototrio figcaption{font-size:.68rem;letter-spacing:.25em;text-transform:uppercase;color:var(--mute);margin-top:.7rem;text-align:center}
/* fees */
.fees{width:100%;border-collapse:collapse}
.fees th{font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;font-weight:400;color:var(--glass);padding:0 0 .8rem;border-bottom:1px solid var(--line)}
.fees td{padding:1.1rem 0;border-bottom:1px solid var(--line)}
.fees th:not(:first-child),.fees td:not(:first-child){text-align:right;white-space:nowrap;padding-left:1rem}
.fees td.p{font-family:'Cormorant Garamond',serif;font-size:1.7rem;line-height:1}
.fees td.m{opacity:.7}
.fact h3{font-size:1.35rem;margin-bottom:.4rem}
.fact{border-top:1px solid var(--line);padding-top:1.2rem;height:100%}
/* team */
.person img{width:100%;max-width:240px;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;border-radius:999px 999px 0 0;border:1px solid var(--line);padding:6px;display:block}
.person h3{margin:1.1rem 0 .2rem}
.person .label{color:var(--glass-d);display:block;margin-bottom:.8rem}
/* contact */
.hours td{padding:.35rem 1.5rem .35rem 0}
.map{border:1px solid var(--line);width:100%;height:100%;min-height:340px;display:block}
footer{background:var(--ink);color:rgba(244,239,230,.7);padding:48px 0;font-size:.85rem;text-align:center}
footer a{color:var(--glass);text-decoration:none}
footer .brand{font-family:'Cormorant Garamond',serif;font-size:1.3rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cream)}
@media(max-width:767px){section{padding:64px 0}.hero{padding:56px 0}.arch{margin:2rem auto 0}}
