/* ---------- Brand tokens (For Good style sheet, exact values) ---------- */
:root{
  --ocean-deep:   #0F4C5C;
  --ocean-deep-2: #0B3B48;   /* darker shade of ocean deep, for depth/gradients only */
  --seafoam:      #7FB8A2;
  --sandy-shore:  #EAD9C6;
  --sunset-clay:  #C97A56;
  --driftwood:    #2E3A3F;
  --cream:        #FBF8F3;   /* tint of sandy shore, for page background */
  --white:        #FFFFFF;

  --font-head: 'Montserrat', sans-serif;
  --font-body: 'Lato', sans-serif;

  --max: 1180px;
  --edge: clamp(24px, 5vw, 64px);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--driftwood);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:var(--font-head);margin:0;color:var(--driftwood);}
p{margin:0;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

:focus-visible{
  outline:3px solid var(--sunset-clay);
  outline-offset:3px;
}

.wrap{max-width:var(--max); margin:0 auto; padding-left:var(--edge); padding-right:var(--edge);}

/* ---------- NAV ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  padding:18px var(--edge);
}
.nav-inner{
  max-width:var(--max); margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  background:rgba(251,248,243,0.72);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border:1px solid rgba(46,58,63,0.08);
  border-radius:100px;
  padding:10px 10px 10px 18px;
  box-shadow:0 8px 30px rgba(15,76,92,0.08);
}
.brand{display:flex; align-items:center; gap:10px;}
.brand img{height:30px; width:auto;}
.brand span{font-family:var(--font-head); font-weight:700; font-size:1.02rem; letter-spacing:0.01em; color:var(--driftwood); white-space:nowrap;}
.brand small{display:block; font-family:var(--font-body); font-weight:400; font-size:0.62rem; letter-spacing:0.06em; color:var(--ocean-deep); margin-top:-2px;}

.nav-links{display:flex; gap:34px; font-size:0.94rem; font-weight:600;}
.nav-links a{position:relative; padding:6px 0; color:var(--driftwood); transition:color .2s ease;}
.nav-links a:hover, .nav-links a[aria-current="page"]{color:var(--ocean-deep);}
.nav-links a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--sunset-clay); transform:scaleX(0); transform-origin:left;
  transition:transform .25s ease;
}
.nav-links a:hover::after, .nav-links a[aria-current="page"]::after{transform:scaleX(1);}

.nav-right{display:flex; align-items:center; gap:18px;}
.link-quiet{font-size:0.9rem; font-weight:600; color:var(--ocean-deep); opacity:0.85;}
.link-quiet:hover{opacity:1;}

.nav-toggle{
  display:none; background:none; border:none; cursor:pointer;
  padding:6px; margin:-6px; color:var(--driftwood);
  align-items:center; justify-content:center;
}
.nav-toggle svg{width:23px; height:23px; display:block;}
.nav-toggle .icon-close{display:none;}
.nav-toggle.is-open .icon-menu{display:none;}
.nav-toggle.is-open .icon-close{display:block;}

.mobile-menu{
  display:none;
}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-head); font-weight:700; font-size:0.92rem;
  padding:12px 24px; border-radius:100px; border:none; cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  white-space:nowrap;
}
.btn-clay{
  background:var(--sunset-clay); color:var(--white);
  box-shadow:0 6px 18px rgba(201,122,86,0.35);
}
.btn-clay:hover{transform:translateY(-2px); box-shadow:0 10px 24px rgba(201,122,86,0.45);}
.btn-dark{
  background:rgba(255,255,255,0.1); color:var(--white);
  border:1.5px solid rgba(255,255,255,0.55);
}
.btn-dark:hover{background:rgba(255,255,255,0.18); transform:translateY(-2px);}
.btn-outline{
  background:transparent; color:var(--driftwood); border:1.5px solid var(--driftwood);
}
.btn-outline:hover{background:var(--driftwood); color:var(--white);}

.play-ico{
  width:16px; height:16px; border-radius:50%; background:var(--white);
  display:flex; align-items:center; justify-content:center; flex:none;
}
.play-ico svg{width:7px; height:7px; margin-left:1px;}

/* ---------- HOME HERO ---------- */
.hero{
  position:relative;
  min-height:100vh;
  background:
    radial-gradient(ellipse 120% 70% at 20% 0%, rgba(201,122,86,0.28), transparent 60%),
    linear-gradient(180deg, var(--ocean-deep) 0%, var(--ocean-deep-2) 62%, #082e38 100%);
  overflow:hidden;
  display:flex; align-items:center;
  padding-top:120px;
}
.hero::before, .page-hero::before{ /* grain */
  content:""; position:absolute; inset:0; opacity:0.5; mix-blend-mode:overlay; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E");
}

.hero-sun{
  position:absolute; top:-14vw; right:-6vw; width:52vw; height:52vw; max-width:760px; max-height:760px;
  border-radius:50%;
  background:radial-gradient(circle at 42% 42%, var(--sunset-clay), #a85f3f 78%);
  opacity:0.9;
  filter:blur(0.5px);
}
.hero-horizon{
  position:absolute; left:0; right:0; bottom:22%; height:1px; background:rgba(234,217,198,0.12);
}

.hero-waves{position:absolute; left:0; right:0; bottom:0; width:100%; line-height:0;}
.hero-waves svg{width:100%; display:block;}

.hero-content{
  position:relative; z-index:3;
  max-width:var(--max); margin:0 auto; padding:0 var(--edge);
  width:100%;
}
.hero h1{
  color:var(--white);
  font-weight:800;
  font-size:clamp(2.6rem, 6.6vw, 5.6rem);
  line-height:1.03;
  letter-spacing:-0.01em;
  max-width:16ch;
}
.hero-sub{
  margin-top:26px;
  font-size:clamp(1.05rem,1.6vw,1.28rem);
  color:var(--sandy-shore);
  max-width:40ch;
  line-height:1.55;
  font-weight:300;
}
.hero-ctas{display:flex; gap:16px; margin-top:42px; flex-wrap:wrap;}

.hero-scroll{
  position:absolute; left:var(--edge); bottom:34px; z-index:3;
  display:flex; align-items:center; gap:10px; color:rgba(251,248,243,0.6);
  font-size:0.78rem; letter-spacing:0.08em; font-weight:600;
}
.hero-scroll .line{width:1px; height:34px; background:linear-gradient(to bottom, rgba(251,248,243,0.7), transparent);}

@keyframes riseIn{
  from{opacity:0; transform:translateY(22px);}
  to{opacity:1; transform:translateY(0);}
}
.hero h1, .hero-sub, .hero-ctas{
  animation:riseIn .9s cubic-bezier(.2,.7,.2,1) both;
}
.hero-sub{animation-delay:.14s;}
.hero-ctas{animation-delay:.26s;}

/* ---------- SUBPAGE HERO ---------- */
.page-hero{
  position:relative;
  background:linear-gradient(180deg, var(--ocean-deep) 0%, var(--ocean-deep-2) 100%);
  color:var(--white);
  padding:168px var(--edge) 84px;
  overflow:hidden;
}
.page-hero-inner{max-width:var(--max); margin:0 auto; position:relative; z-index:2;}
.page-hero h1{color:var(--white); font-weight:800; font-size:clamp(2.3rem,4.6vw,3.6rem); letter-spacing:-0.01em;}
.page-hero p{margin-top:16px; max-width:46ch; color:var(--sandy-shore); font-size:1.1rem; line-height:1.6; font-weight:300;}
.page-hero .hero-waves{opacity:0.9;}

/* ---------- QUOTE BREAK ---------- */
.quote-section{
  background:var(--driftwood);
  color:var(--sandy-shore);
  padding:120px var(--edge) 110px;
  position:relative;
}
.quote-inner{max-width:900px; margin:0 auto; text-align:left;}
.quote-mark{
  font-family:var(--font-head); font-size:5rem; color:var(--sunset-clay); line-height:0.4; display:block; margin-bottom:12px;
}
.quote-inner p.quote{
  font-family:var(--font-head); font-weight:600; font-size:clamp(1.5rem,3vw,2.35rem); line-height:1.35; color:var(--white);
}
.quote-sign{
  margin-top:30px; display:flex; align-items:center; gap:14px;
}
.quote-sign .name{font-family:var(--font-head); font-weight:700; font-size:1.02rem; color:var(--seafoam);}
.quote-sign .role{font-size:0.85rem; color:rgba(234,217,198,0.7); border-left:1px solid rgba(234,217,198,0.35); padding-left:14px;}

/* ---------- SECTION helpers ---------- */
section{padding:110px var(--edge);}
.section-head{max-width:640px; margin-bottom:56px;}
.section-head h2{font-size:clamp(1.9rem,3.4vw,2.7rem); font-weight:700; line-height:1.15;}
.section-head p{margin-top:16px; font-size:1.08rem; color:#5b6a6f; line-height:1.6; max-width:52ch;}

/* ---------- VIDEO VAULT ---------- */
.vault{
  background:var(--cream);
}
.vault-grid{
  display:grid; grid-template-columns: 1.1fr 0.9fr; gap:56px; align-items:center;
}
.vault-card{
  position:relative; border-radius:22px; overflow:hidden;
  aspect-ratio:16/11;
  background:linear-gradient(160deg, var(--ocean-deep), #123d49 55%, var(--driftwood));
  box-shadow:0 30px 60px -20px rgba(15,76,92,0.35);
}
.vault-card::before{
  content:""; position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.25'/%3E%3C/svg%3E");
  mix-blend-mode:overlay; opacity:0.6;
}
.vault-tag{
  position:absolute; top:20px; left:20px; z-index:2;
  background:rgba(251,248,243,0.9); color:var(--driftwood);
  font-family:var(--font-head); font-weight:700; font-size:0.72rem; letter-spacing:0.03em;
  padding:7px 14px; border-radius:100px;
}
.vault-play{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center; z-index:2;
  cursor:pointer; background:transparent; border:none;
}
.vault-play .disc{
  width:74px; height:74px; border-radius:50%;
  background:rgba(251,248,243,0.94);
  display:flex; align-items:center; justify-content:center;
  transition:transform .25s ease;
  box-shadow:0 10px 30px rgba(0,0,0,0.25);
}
.vault-play:hover .disc{transform:scale(1.08);}
.vault-play svg{width:20px; height:20px; margin-left:3px;}
.vault-caption{
  position:absolute; left:20px; bottom:20px; right:20px; z-index:2;
  color:var(--white);
}
.vault-caption .title{font-family:var(--font-head); font-weight:700; font-size:1.15rem;}
.vault-caption .meta{font-size:0.82rem; opacity:0.75; margin-top:4px;}

.vault-copy h2{margin-bottom:18px;}
.vault-copy p{color:#5b6a6f; font-size:1.06rem; line-height:1.65; margin-bottom:26px;}
.vault-list{display:flex; flex-direction:column; gap:14px; margin-bottom:32px;}
.vault-list li{display:flex; gap:12px; font-size:0.98rem; color:var(--driftwood); align-items:flex-start;}
.vault-list .dot{
  width:7px; height:7px; border-radius:50%; background:var(--sunset-clay); margin-top:8px; flex:none;
}

/* ---------- EXPLORE GRID (program pages) ---------- */
.explore{background:var(--sandy-shore);}
.explore .section-head p{color:#6b5a48;}
.explore-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.explore-card{
  background:var(--white); border-radius:18px; padding:30px 26px;
  border:1px solid rgba(46,58,63,0.08);
  box-shadow:0 16px 30px -18px rgba(46,58,63,0.3);
  transition:transform .2s ease, box-shadow .2s ease;
  display:flex; flex-direction:column;
}
.explore-card:hover{transform:translateY(-5px); box-shadow:0 22px 36px -16px rgba(46,58,63,0.35);}
.explore-card .num{
  width:34px; height:34px; border-radius:50%; background:var(--ocean-deep); color:var(--white);
  font-family:var(--font-head); font-weight:700; font-size:0.85rem;
  display:flex; align-items:center; justify-content:center; margin-bottom:18px;
}
.explore-card h3{font-size:1.15rem; font-weight:700;}
.explore-card p{margin-top:10px; font-size:0.94rem; line-height:1.55; color:#5b6a6f; flex:1;}
.explore-card .go{
  margin-top:18px; font-family:var(--font-head); font-weight:700; font-size:0.88rem; color:var(--ocean-deep);
  display:inline-flex; align-items:center; gap:6px;
}
.explore-card .go svg{width:12px; height:12px; transition:transform .2s ease;}
.explore-card:hover .go svg{transform:translateX(3px);}

/* ---------- SPLIT (two-column content) ---------- */
.split{background:var(--white);}
.split-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px; align-items:start;}
.split-grid.reverse{grid-template-columns:1.15fr 0.85fr;}
.split-grid.reverse .split-figure{order:2;}
.split-figure{
  position:relative; border-radius:20px; overflow:hidden; aspect-ratio:4/5;
  background:linear-gradient(200deg, var(--seafoam) 0%, var(--ocean-deep) 100%);
}
.split-figure svg{position:absolute; inset:0; width:100%; height:100%;}
.split-caption{
  position:absolute; left:24px; bottom:24px; right:24px; color:var(--white);
  font-family:var(--font-head); font-weight:700; font-size:1.1rem;
}
.split-copy h2, .split-copy h3{font-size:clamp(1.5rem,2.4vw,1.9rem); font-weight:700; margin-bottom:14px;}
.split-copy p{color:#5b6a6f; font-size:1.05rem; line-height:1.7; margin-bottom:16px; max-width:56ch;}
.split-copy p:last-of-type{margin-bottom:0;}

/* ---------- FEATURE LIST (stacked info rows) ---------- */
.feature-list{background:var(--cream);}
.feature-rows{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.feature-row{
  background:var(--white); border-radius:18px; padding:28px 26px;
  border:1px solid rgba(46,58,63,0.08);
}
.feature-row .step{
  font-family:var(--font-head); font-weight:800; font-size:0.8rem; color:var(--sunset-clay); margin-bottom:12px;
}
.feature-row h3{font-size:1.08rem; font-weight:700; margin-bottom:10px;}
.feature-row p{font-size:0.94rem; color:#5b6a6f; line-height:1.55;}

/* ---------- CTA BAND ---------- */
.cta-band{
  background:var(--ocean-deep);
  color:var(--white);
  text-align:left;
  position:relative;
  overflow:hidden;
}
.cta-band .wave-deco{
  position:absolute; right:-4%; bottom:-30%; width:60%; opacity:0.14;
}
.cta-inner{
  display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap;
  position:relative; z-index:2;
}
.cta-inner h2{color:var(--white); font-size:clamp(1.8rem,3vw,2.5rem); max-width:16ch;}
.cta-inner p{color:var(--sandy-shore); margin-top:12px; max-width:44ch; font-size:1.02rem;}
.cta-actions{display:flex; gap:16px; flex-wrap:wrap;}

/* ---------- FOOTER ---------- */
footer{
  background:var(--driftwood); color:var(--sandy-shore); padding:70px var(--edge) 34px;
}
.foot-top{
  display:grid; grid-template-columns: 1.3fr 0.9fr 0.9fr 1fr; gap:40px;
  padding-bottom:50px; border-bottom:1px solid rgba(234,217,198,0.15);
}
.foot-brand{display:flex; flex-direction:column;}
.foot-brand .foot-mark{display:flex; align-items:center; gap:10px; margin-bottom:16px;}
.foot-brand .foot-mark img{height:28px; width:auto;}
.foot-brand .foot-mark span{font-family:var(--font-head); font-weight:700; font-size:1.05rem; color:var(--white);}
.foot-brand p{font-size:0.92rem; line-height:1.6; color:rgba(234,217,198,0.75); max-width:32ch;}
.foot-col h4{font-family:var(--font-head); font-size:0.85rem; letter-spacing:0.02em; color:var(--white); margin-bottom:16px; font-weight:700;}
.foot-col ul{display:flex; flex-direction:column; gap:10px;}
.foot-col a{font-size:0.92rem; color:rgba(234,217,198,0.75); transition:color .2s;}
.foot-col a:hover{color:var(--seafoam);}
.foot-bottom{
  display:flex; justify-content:space-between; align-items:center; padding-top:26px; flex-wrap:wrap; gap:12px;
  font-size:0.82rem; color:rgba(234,217,198,0.55);
}

/* ---------- PRICING ---------- */
.pricing{background:var(--cream);}
.pricing-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:stretch;}
.price-card{
  background:var(--white); border-radius:22px; padding:36px 30px;
  border:1px solid rgba(46,58,63,0.1);
  box-shadow:0 16px 30px -20px rgba(46,58,63,0.3);
  display:flex; flex-direction:column;
  position:relative;
}
.price-card.featured{
  border:2px solid var(--sunset-clay);
  box-shadow:0 24px 44px -20px rgba(201,122,86,0.35);
  transform:translateY(-10px);
}
.price-tag{
  position:absolute; top:-14px; right:28px;
  background:var(--sunset-clay); color:var(--white);
  font-family:var(--font-head); font-weight:700; font-size:0.72rem; letter-spacing:0.03em;
  padding:6px 14px; border-radius:100px;
}
.price-card h3{font-size:1.15rem; font-weight:700;}
.price-card .price-sub{margin-top:6px; font-size:0.92rem; color:#5b6a6f;}
.price-card .price-amount{
  margin-top:22px; display:flex; align-items:baseline; gap:6px;
  font-family:var(--font-head); font-weight:800; font-size:2.4rem; color:var(--driftwood);
}
.price-card .price-amount span{font-family:var(--font-body); font-weight:400; font-size:0.95rem; color:#5b6a6f;}
.price-card ul{margin-top:26px; display:flex; flex-direction:column; gap:13px; flex:1;}
.price-card ul li{display:flex; gap:10px; font-size:0.94rem; color:var(--driftwood); align-items:flex-start; line-height:1.4;}
.price-card ul li svg{width:15px; height:15px; margin-top:2px; flex:none; color:var(--seafoam);}
.price-card .btn{margin-top:28px; width:100%;}
.pricing-note{
  margin-top:36px; text-align:center; font-size:0.92rem; color:#5b6a6f;
}

/* ---------- FAQ ---------- */
.faq{background:var(--white);}
.faq-list{max-width:820px;}
.faq-item{
  padding:26px 0; border-bottom:1px solid rgba(46,58,63,0.1);
}
.faq-item:first-child{padding-top:0;}
.faq-item h3{font-size:1.05rem; font-weight:700; margin-bottom:10px;}
.faq-item p{font-size:0.98rem; color:#5b6a6f; line-height:1.65; max-width:64ch;}

/* ---------- RESPONSIVE ---------- */
@media (max-width:920px){
  .nav-links{display:none;}
  .nav-right .link-quiet{display:none;}
  .nav-toggle{display:inline-flex;}
  .mobile-menu{
    display:block;
    max-width:var(--max); margin:10px auto 0; padding:0 20px;
    max-height:0; opacity:0; overflow:hidden;
    background:rgba(251,248,243,0.98);
    backdrop-filter:blur(14px) saturate(140%);
    -webkit-backdrop-filter:blur(14px) saturate(140%);
    border:1px solid rgba(46,58,63,0.08);
    border-radius:22px;
    transition:max-height .35s ease, opacity .3s ease, padding .35s ease, margin .35s ease;
  }
  .mobile-menu.open{
    max-height:420px; opacity:1; padding:14px 20px 20px;
    box-shadow:0 20px 40px rgba(15,76,92,0.15);
  }
  .mobile-menu a{
    display:block; padding:13px 4px; font-family:var(--font-head); font-weight:600; font-size:1.02rem;
    color:var(--driftwood); border-bottom:1px solid rgba(46,58,63,0.08);
  }
  .mobile-menu a[aria-current="page"]{color:var(--ocean-deep);}
  .mobile-menu .mobile-actions{display:flex; flex-direction:column; gap:12px; margin-top:16px;}
  .mobile-menu .mobile-actions .link-quiet-mobile{
    border-bottom:none; text-align:center; font-weight:600; color:var(--ocean-deep); padding:8px 4px;
  }
  .mobile-menu .mobile-actions .btn{
    width:100%; display:flex; align-items:center; justify-content:center;
    border-bottom:none; color:var(--white);
  }
  .vault-grid, .split-grid, .split-grid.reverse{grid-template-columns:1fr; gap:40px;}
  .split-grid.reverse .split-figure{order:0;}
  .foot-top{grid-template-columns:1fr 1fr; gap:32px;}
  .explore-grid{grid-template-columns:repeat(2,1fr);}
  .feature-rows{grid-template-columns:1fr;}
  .pricing-grid{grid-template-columns:1fr; max-width:420px; margin:0 auto;}
  .price-card.featured{transform:none;}
}
@media (max-width:600px){
  .foot-top{grid-template-columns:1fr;}
  .cta-inner{flex-direction:column; align-items:flex-start;}
  .link-quiet{display:none;}
  .nav-right .btn-clay{display:none;}
  section{padding:80px var(--edge);}
  .quote-section{padding:90px var(--edge) 80px;}
  .explore-grid{grid-template-columns:1fr;}
  .page-hero{padding:150px var(--edge) 70px;}
}
