:root{--ink:#101c2b;--ink2:#17283c;--cream:#f4efe6;--teal:#2a9aa0;--teal-d:#1d7479;--mute:#8d99a6}
img{max-width:100%;height:auto}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{font-family:'Jost',sans-serif;color:var(--ink);background:var(--cream);font-size:1.02rem;line-height:1.7}
h1,h2,h3,.display{font-family:'Cormorant Garamond',serif;font-weight:400;line-height:1.1}
.caps{font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;font-weight:500}
.eyebrow{color:var(--teal-d);display:block;margin-bottom:1rem}
.on-dark .eyebrow,.eyebrow.light{color:var(--teal)}
/* utility bar + nav */
.utility{background:#0b1522;color:#c9d1d9;padding:.45rem 0}
.utility a{color:#fff;text-decoration:none}
.utility a:hover{color:var(--teal)}
.navbar{background:rgba(16,28,43,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(42,154,160,.2);padding:.9rem 0}
.navbar-brand{font-family:'Cormorant Garamond',serif;font-size:1.45rem;letter-spacing:.2em;text-transform:uppercase;color:#fff;font-weight:500;display:flex;align-items:center;gap:.75rem;white-space:normal;line-height:1.1}
.navbar-brand:hover{color:#fff}
.brand-mark{display:inline-grid;grid-template-columns:7px 7px;gap:2px;align-items:end}
.brand-mark i{display:block;width:7px;background:var(--mute)}
.brand-mark i:first-child{height:20px;opacity:.7}.brand-mark i:last-child{height:26px;background:var(--teal)}
.navbar .nav-link{color:rgba(255,255,255,.8);padding:.5rem 1rem}
.navbar .nav-link:hover{color:var(--teal)}
.navbar-toggler{border-color:rgba(255,255,255,.35)}
.navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255,255,255,0.9)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}
.btn-brand{background:var(--teal);color:var(--ink);border:1px solid var(--teal);border-radius:0;padding:15px 36px;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;font-weight:600;transition:.3s}
.btn-brand:hover{background:transparent;color:#fff;border-color:var(--teal)}
.btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:0;padding:15px 36px;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;font-weight:500;transition:.3s}
.btn-ghost:hover{border-color:var(--teal);color:var(--teal)}
/* hero */
.hero{background:var(--ink);color:#fff;padding:64px 0 0;position:relative;overflow:hidden}
.hero h1{font-size:clamp(2.6rem,5.4vw,4.6rem);margin-bottom:1.2rem}
.hero h1 em{color:var(--teal);font-style:italic}
.hero .sub{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.3rem;opacity:.82;max-width:34rem}
.hero-photo{width:100%;max-height:min(66vh,480px);aspect-ratio:1/1;object-fit:cover;object-position:50% 20%;border-radius:2px;border:1px solid rgba(42,154,160,.4);display:block;margin-left:auto}
.hero-cap{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--mute);margin-top:.7rem;text-align:right}
.course{display:block;width:100%;height:46px;margin-top:56px}
.course rect{fill:var(--cream)}
/* sections */
section{padding:96px 0}
@media(max-width:767px){section{padding:64px 0}.hero{padding-top:40px}.course{margin-top:36px}}
.sec-title{font-size:clamp(2.2rem,4.4vw,3.6rem);margin-bottom:1rem}
.lede{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.3rem;opacity:.85;max-width:44rem}
.index{list-style:none;padding:0;margin:3rem 0 0;border-top:1px solid rgba(16,28,43,.18)}
.index li{border-bottom:1px solid rgba(16,28,43,.18);padding:1.5rem 0;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:1rem 2rem;align-items:baseline;transition:padding .3s,background .3s}
.index li:hover{padding-left:1rem}
.index h3{font-size:clamp(1.8rem,3.2vw,2.6rem);margin:0}
.index p{margin:0;opacity:.8}
@media(max-width:767px){.index li{grid-template-columns:1fr}}
.dark{background:var(--ink);color:#fff}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:3rem}
.gallery figure{margin:0;position:relative;overflow:hidden;border:1px solid rgba(42,154,160,.25)}
.gallery img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;transition:opacity .3s}
.gallery figure:hover img{opacity:.85}
.gallery figcaption{position:absolute;left:0;bottom:0;right:0;padding:.5rem .8rem;background:linear-gradient(transparent,rgba(11,21,34,.85));color:#fff}
@media(max-width:991px){.gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:575px){.gallery{grid-template-columns:repeat(2,1fr);gap:8px}}
.pillars{display:grid;gap:2rem}
.pillar{border-top:1px solid rgba(42,154,160,.5);padding-top:1rem}
.pillar h3{font-size:1.7rem}.pillar p{margin:0;opacity:.8}
.sig{font-family:'Cormorant Garamond',serif;font-size:2rem;font-style:italic;color:var(--teal);margin:0}
.review{border-top:1px solid rgba(16,28,43,.25);padding-top:1.2rem;height:100%}
.review p{font-family:'Cormorant Garamond',serif;font-size:1.35rem;line-height:1.35;font-style:italic}
.areas{display:flex;flex-wrap:wrap;gap:.5rem .6rem;list-style:none;padding:0;margin:2rem 0 0}
.areas li{border:1px solid rgba(255,255,255,.2);padding:.3rem .9rem;font-size:.8rem;letter-spacing:.06em;color:rgba(255,255,255,.85)}
.contact-big{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,4.2vw,3.2rem);color:var(--ink);text-decoration:none;display:block;line-height:1.15;word-break:break-word}
.contact-big:hover{color:var(--teal-d)}
.map{border:1px solid rgba(16,28,43,.25);width:100%;height:100%;min-height:340px}
footer{background:#0b1522;color:#c9d1d9;padding:56px 0 28px}
footer a{color:#fff;text-decoration:none}footer a:hover{color:var(--teal)}
.footer-logo{width:220px;height:auto}
.powered{border-top:1px solid rgba(255,255,255,.12);margin-top:2.5rem;padding-top:1.2rem;font-size:.8rem;color:var(--mute)}
@media(max-width:575px){.navbar-brand{font-size:1rem;letter-spacing:.1em;gap:.5rem;margin-right:.5rem}.navbar .container{flex-wrap:nowrap}}
