@import url('https://fonts.googleapis.com/css2?family=Spectral:wght@500;600&family=Work+Sans:wght@400;600&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Work Sans',system-ui,sans-serif;font-size:17px;line-height:1.7;color:#10161F;background:#F3F1EC;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:currentColor;text-decoration:none}
a:hover{color:#1E7F82}
ul{list-style:none}
button,input,select,textarea{font:inherit}

.surface-marble{background:#F3F1EC;color:#10161F}
.surface-navy{background:#10161F;color:#F3F1EC}
.surface-midnight{background:#1C2634;color:#F3F1EC}
.surface-teal{background:#1E7F82;color:#F3F1EC}

.container{width:min(1120px,92vw);margin-inline:auto}
.eyebrow{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#1E7F82;margin-bottom:1rem}
h1,h2,h3,h4{font-family:'Spectral',Georgia,serif;line-height:1.2;font-weight:600}
h1{font-size:clamp(2.1rem,4.8vw,4rem)}
h2{font-size:clamp(1.65rem,3.2vw,2.5rem);margin-bottom:1.25rem}
h3{font-size:1.3rem;margin-bottom:.75rem;font-weight:500}
p+p{margin-top:1rem}
.lead{font-size:1.125rem;max-width:560px;color:#1C2634}

.btn{display:inline-flex;align-items:center;justify-content:center;padding:.85rem 1.75rem;font-weight:600;font-size:.92rem;border-radius:1px;border:1px solid transparent;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}
.btn:hover{box-shadow:0 4px 18px rgba(16,22,31,.12)}
.btn-outline{background:transparent;border-color:currentColor}
.btn-group{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.75rem}

.meridian-line{height:1px;background:linear-gradient(90deg,transparent,#1E7F82 15%,#1E7F82 85%,transparent);position:relative}
.meridian-line::after{content:'';position:absolute;width:5px;height:5px;background:#1E7F82;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%)}
.column-rule{border-left:1px solid rgba(140,145,140,.45);padding-left:2rem}

.site-header{position:fixed;top:0;left:0;right:0;z-index:100;padding:1rem 0;transition:background .3s,box-shadow .3s,color .3s;background:transparent;color:#10161F}
.site-header.is-scrolled{background:#F3F1EC;color:#10161F;box-shadow:0 1px 0 rgba(16,22,31,.08)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.logo{font-family:'Spectral',Georgia,serif;font-weight:600;font-size:1.2rem;letter-spacing:.01em}
.nav-toggle{display:none;background:none;border:1px solid currentColor;padding:.4rem .65rem;cursor:pointer;border-radius:1px}
.nav-list{display:flex;gap:1.75rem;flex-wrap:wrap}
.nav-list a{font-size:.88rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}

.hero-editorial{min-height:90vh;padding:7rem 0 3rem}
.hero-editorial h1 em{font-style:normal;color:#1E7F82}
.masthead-top{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:1rem;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;margin-bottom:1rem}
.masthead-folio{display:flex;align-items:center;gap:.75rem;color:#8C918C}
.folio-mark{width:5px;height:5px;background:#1E7F82;border-radius:50%}
.masthead-hairline{border:none;height:1px;background:#10161F;margin-bottom:2.5rem}
.hero-plate{margin:2rem 0;border:1px solid #10161F;padding:4px}
.hero-plate img{width:100%;aspect-ratio:21/9;object-fit:cover}
.hero-trust{padding:1rem 0;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#8C918C;border-top:1px solid rgba(140,145,140,.35);margin-top:3rem}

.section{padding:5.5rem 0}
.section-lg{padding:7rem 0}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}

.drop-cap::first-letter{float:left;font-family:'Spectral',Georgia,serif;font-size:3.5rem;line-height:.85;font-weight:600;color:#1E7F82;margin:.08em .12em 0 0}
.pull-quote{font-family:'Spectral',Georgia,serif;font-size:1.45rem;line-height:1.45;font-weight:500;color:#1C2634;border-left:3px solid #1E7F82;padding:1rem 0 1rem 1.75rem;margin:2rem 0;font-style:italic}
.pull-quote cite{display:block;font-family:'Work Sans',sans-serif;font-size:.85rem;font-style:normal;color:#8C918C;margin-top:.75rem;letter-spacing:.04em}

.stat-card{padding:1.75rem;border:1px solid rgba(140,145,140,.3);background:rgba(243,241,236,.04)}
.stat-card .num{font-family:'Spectral',Georgia,serif;font-size:2.25rem;font-weight:600;color:#1E7F82;font-variant-numeric:tabular-nums}

.module-card{padding:1.5rem;border-top:2px solid #1E7F82}
.module-card .mod-num{font-size:.8rem;font-weight:600;color:#1E7F82;letter-spacing:.1em;margin-bottom:.5rem}

.meridian-rail{position:relative;padding-left:2rem;border-left:1px solid #1E7F82}
.meridian-item{padding:1.25rem 0 1.25rem 1.5rem;position:relative}
.meridian-item::before{content:'';position:absolute;left:-2.35rem;top:1.65rem;width:7px;height:7px;background:#1E7F82;border-radius:50%}
.meridian-item .mi-num{font-size:.78rem;color:#1E7F82;font-weight:600;letter-spacing:.08em}

.photo-frame{border-radius:1px;overflow:hidden}
.photo-caption{font-size:.85rem;margin-top:.5rem;color:#8C918C}

.disclaimer-box{padding:1.5rem;border-left:3px solid #1E7F82;font-size:.94rem;line-height:1.6;margin:2rem 0;background:rgba(30,127,130,.06)}
.mini-faq details{padding:1rem 0;border-bottom:1px solid rgba(140,145,140,.35)}
.mini-faq summary{cursor:pointer;font-weight:600;font-family:'Spectral',Georgia,serif;list-style:none}
.mini-faq summary::-webkit-details-marker{display:none}

.cta-band{text-align:center;padding:5rem 0}
.cta-band h2{margin-bottom:1rem}

.site-footer{padding:3.5rem 0 2rem;font-size:.9rem}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem;margin-bottom:2rem}
.footer-grid h4{font-family:'Spectral',Georgia,serif;font-size:1rem;margin-bottom:.75rem}
.footer-nav{display:flex;flex-direction:column;gap:.4rem}
.footer-disclaimer{font-size:.82rem;color:#8C918C;padding-top:1.5rem;border-top:1px solid rgba(140,145,140,.35);line-height:1.55}
.footer-copy{font-size:.8rem;color:#8C918C;margin-top:1rem}

.page-hero{padding:8rem 0 3rem}
.page-hero h1{margin-bottom:1rem}
.editorial-columns{column-count:2;column-gap:3rem;column-rule:1px solid rgba(140,145,140,.35)}
.editorial-columns p{break-inside:avoid}

.program-card,.service-card{padding:2rem;border:1px solid rgba(140,145,140,.3);margin-bottom:1.5rem;background:rgba(243,241,236,.5)}
.program-card .fee{font-weight:600;color:#1E7F82;margin-top:1rem}

.form-group{margin-bottom:1.25rem}
.form-group label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.4rem}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem 1rem;border:1px solid rgba(16,22,31,.18);background:#fff;color:#10161F;border-radius:1px}
.form-group textarea{min-height:140px;resize:vertical}
.form-check{display:flex;gap:.65rem;align-items:flex-start;font-size:.9rem}
.form-check input{margin-top:.25rem}
.form-success{padding:1rem 1.25rem;background:rgba(30,127,130,.12);border:1px solid #1E7F82;margin-bottom:1.5rem}
.form-error{padding:1rem 1.25rem;background:rgba(192,57,43,.08);border:1px solid #c0392b;margin-bottom:1.5rem;color:#10161F}

.legal-content h2{margin-top:2rem}
.legal-content h3{margin-top:1.5rem}
.legal-content ul,.legal-content ol{margin:1rem 0 1rem 1.5rem}
.legal-content li{margin-bottom:.5rem;list-style:disc}

.error-page{min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:6rem 1rem}

.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:200;padding:1.25rem;background:#1C2634;color:#F3F1EC;border-top:1px solid rgba(140,145,140,.4);box-shadow:0 -4px 24px rgba(0,0,0,.2)}
.cookie-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;max-width:1120px;margin:0 auto;width:92vw}
.cookie-actions{display:flex;flex-wrap:wrap;gap:.75rem}
.cookie-banner .btn{min-height:44px;padding:.75rem 1.35rem;font-size:.9rem;white-space:nowrap}
.cookie-banner .btn.surface-teal{background:#1E7F82;color:#F3F1EC;border:1px solid #4CBFC2;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.cookie-banner .btn.btn-outline{background:rgba(243,241,236,.12);color:#F3F1EC;border:1px solid rgba(243,241,236,.9)}
.cookie-banner .btn:hover{filter:brightness(1.12);box-shadow:0 4px 16px rgba(0,0,0,.35)}
.cookie-banner a{color:#7FD4D6;text-decoration:underline;text-underline-offset:2px}
.cookie-modal{position:fixed;inset:0;z-index:210;background:rgba(16,22,31,.75);display:none;align-items:center;justify-content:center;padding:1rem}
.cookie-modal.is-open{display:flex}
.cookie-panel{background:#F3F1EC;color:#10161F;padding:2rem;max-width:480px;width:100%;border-radius:1px}
.cookie-panel h3{margin-bottom:1rem}
.cookie-panel .btn.surface-teal{border:1px solid #166568}
.cookie-panel .btn.btn-outline{border:1px solid #10161F;color:#10161F;background:transparent}

.js .reveal{transform:none;transition:transform .75s ease,filter .75s ease}
@media (prefers-reduced-motion:no-preference){
  .js .reveal:not(.is-visible){transform:translateY(18px);filter:blur(2px)}
  .js .reveal.is-visible{transform:none;filter:none}
}
@media (prefers-reduced-motion:reduce){
  .js .reveal{transition:none}
}

@media(max-width:900px){
  .grid-2,.grid-3,.grid-4,.footer-grid{grid-template-columns:1fr}
  .editorial-columns{column-count:1}
  .nav-toggle{display:block}
  .nav-list{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;padding:1rem 4vw;background:#F3F1EC;color:#10161F;box-shadow:0 8px 24px rgba(0,0,0,.1)}
  .nav-list.is-open{display:flex}
  .hero-editorial{min-height:78vh;padding-top:6rem}
  .section,.section-lg{padding:4rem 0}
  .column-rule{border-left:none;padding-left:0}
}
