/* =====================================================================
   TPH × BeyondSport Global — Canada Hockey Experience Program
   Premium editorial landing page · Navy / Gold / Ivory · Mobile-first
   Refined luxury redesign
   ===================================================================== */

:root{
  --navy:        #122036;
  --navy-deep:   #0A1322;
  --navy-soft:   #1D3050;
  --gold:        #BF9D55;
  --gold-soft:   #D8BE86;
  --gold-deep:   #9C7C3A;
  --ivory:       #F7F4EE;
  --ivory-2:     #EFEAE1;
  --ink:         #20262E;
  --slate:       #5C6675;
  --slate-soft:  #8A93A1;
  --line:        #E6E1D7;
  --line-soft:   #EFEBE3;
  --white:       #FFFFFF;

  --maxw: 1200px;
  --gutter: 26px;
  --radius: 4px;
  --radius-lg: 8px;
  --shadow-sm: 0 1px 3px rgba(18,32,54,.05), 0 8px 24px rgba(18,32,54,.05);
  --shadow:    0 20px 50px rgba(18,32,54,.10);
  --shadow-lg: 0 40px 90px rgba(10,19,34,.22);

  --sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont,
          "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
  --serif: "Cormorant Garamond", "Pretendard Variable", Pretendard, "Apple SD Gothic Neo", Georgia, serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; font-family:var(--sans); color:var(--ink); background:var(--white);
  line-height:1.75; font-size:16.5px; letter-spacing:-0.005em; overflow-x:hidden;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ margin:0; color:var(--navy); font-weight:700; line-height:1.22; letter-spacing:-0.02em; }

.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter); }
.section{ padding:108px 0; background:var(--white); position:relative; }
.section--tight{ padding:64px 0; }
.section--ivory, .section--ice{ background:var(--ivory); }
.section--navy{ background:var(--navy); color:#CBD5E5; }
.section--navy h2,.section--navy h3,.section--navy h4{ color:#fff; }

/* ---------- Editorial primitives ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:12px;
  font-size:11.5px; font-weight:600; letter-spacing:.32em; text-transform:uppercase;
  color:var(--gold-deep); margin-bottom:22px;
}
.eyebrow::before{ content:""; width:28px; height:1px; background:var(--gold); opacity:.8; }
.center .eyebrow::after{ content:""; width:28px; height:1px; background:var(--gold); opacity:.8; }
.section--navy .eyebrow{ color:var(--gold-soft); }
.section--navy .eyebrow::before,.section--navy .eyebrow::after{ background:var(--gold-soft); opacity:.6; }

.h-sec{ font-size:clamp(28px,4.4vw,46px); font-weight:700; line-height:1.18; letter-spacing:-0.025em; }
.lead{ font-size:clamp(16.5px,1.9vw,19px); line-height:1.78; color:var(--slate); max-width:62ch; font-weight:400; }
.section--navy .lead{ color:#A9B7CC; }
.center{ text-align:center; }
.center .eyebrow{ justify-content:center; }
.center .lead{ margin-left:auto; margin-right:auto; }
.serif{ font-family:var(--serif); font-weight:600; letter-spacing:0; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-weight:700; font-size:14.5px; line-height:1; letter-spacing:-0.01em;
  padding:16px 30px; border-radius:8px; border:1px solid transparent;
  transition:transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s, background .25s, color .25s, border-color .25s, filter .25s;
  white-space:nowrap; position:relative;
}
.btn:active{ transform:translateY(1px); }
.btn--gold{
  background:linear-gradient(135deg,#EAD08A 0%, #D2AF63 46%, #BB934A 100%);
  color:#23190A; border:0;
  box-shadow:0 10px 26px rgba(176,140,60,.40), inset 0 1px 0 rgba(255,255,255,.45);
}
.btn--gold:hover{ filter:brightness(1.06) saturate(1.05); transform:translateY(-2px);
  box-shadow:0 16px 38px rgba(176,140,60,.52), inset 0 1px 0 rgba(255,255,255,.55); }
.btn--navy{ background:linear-gradient(135deg,#22375A 0%, #142339 100%); color:#fff; border:0;
  box-shadow:0 10px 26px rgba(10,19,34,.28); }
.btn--navy:hover{ filter:brightness(1.12); transform:translateY(-2px); box-shadow:0 16px 36px rgba(10,19,34,.36); }
.btn--outline{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.45); color:#fff; backdrop-filter:blur(2px); }
.btn--outline:hover{ background:rgba(255,255,255,.12); border-color:#fff; transform:translateY(-2px); }
.btn--ghost{ background:#fff; border:1px solid var(--line); color:var(--navy); box-shadow:var(--shadow-sm); }
.btn--ghost:hover{ border-color:var(--gold); color:var(--gold-deep); transform:translateY(-2px); box-shadow:0 10px 24px rgba(18,32,54,.10); }
.btn--lg{ padding:18px 38px; font-size:15.5px; }
.btn--block{ width:100%; }

/* ---------- Header ---------- */
.header{
  position:sticky; top:0; z-index:60;
  background:rgba(255,255,255,.82); backdrop-filter:saturate(150%) blur(16px);
  border-bottom:1px solid var(--line-soft);
}
.header__bar{ display:flex; align-items:center; justify-content:space-between; height:84px; gap:20px; }
.brand{ display:flex; align-items:center; flex-shrink:0; }
.brand img{ height:48px; width:auto; display:block; }
.nav{ display:flex; align-items:center; gap:34px; margin-left:auto; }
.nav a{ font-size:14.5px; font-weight:500; color:var(--ink); letter-spacing:-0.01em; position:relative; padding:4px 0; transition:color .2s; }
.nav a::after{ content:""; position:absolute; left:0; right:100%; bottom:-2px; height:1px; background:var(--gold); transition:right .3s ease; }
.nav a:hover{ color:var(--navy); }
.nav a:hover::after{ right:0; }
.header__cta{ display:flex; gap:10px; align-items:center; }
.header__cta .btn{ padding:12px 20px; font-size:13.5px; }
.navtoggle{ display:none; background:none; border:0; padding:8px; }
.navtoggle span{ display:block; width:24px; height:1.5px; background:var(--navy); margin:6px 0; border-radius:2px; transition:.25s; }

/* ---------- Hero (fixed / parallax background) ---------- */
.hero{ position:relative; color:#fff; }
.hero__bg{ position:fixed; inset:0; z-index:-1; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; object-position:center 26%; }
.hero__bg::after{ content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(10,19,34,.52) 0%, rgba(10,19,34,.64) 48%, rgba(10,19,34,.92) 100%),
    radial-gradient(130% 90% at 12% 14%, rgba(18,32,54,.35), transparent 55%);
}
.hero__inner{ padding:118px var(--gutter) 104px; max-width:calc(830px + var(--gutter)*2); }
.hero__badge{
  display:inline-flex; align-items:center; gap:10px; font-size:11px; font-weight:600;
  letter-spacing:.28em; text-transform:uppercase; color:var(--gold-soft);
  margin-bottom:30px;
}
.hero__badge::before{ content:""; width:30px; height:1px; background:var(--gold-soft); opacity:.7; }
.hero h1{ color:#fff; font-weight:800;
  font-size:clamp(31px,5.4vw,60px); line-height:1.18; letter-spacing:-0.025em; }
.hero h1 .gold{ color:var(--gold-soft); display:block; font-weight:800; margin-top:6px; }
.hero__facts{ list-style:none; margin:44px 0 0; padding:28px 0 0; border-top:1px solid rgba(255,255,255,.2);
  display:flex; flex-wrap:wrap; gap:24px 0; }
.hero__facts li{ flex:1 1 200px; min-width:170px; padding-left:26px; border-left:1px solid rgba(216,190,134,.38);
  display:flex; flex-direction:column; gap:8px; }
.hero__facts li:first-child{ padding-left:0; border-left:0; }
.hero__facts .k{ font-size:10.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-soft); }
.hero__facts .v{ font-size:15.5px; font-weight:600; color:#fff; letter-spacing:-0.01em; line-height:1.4; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:14px; margin:42px 0 0; }
.hero__seo{ margin:30px 0 0; font-size:12.5px; color:#7E8EA6; letter-spacing:.04em; font-weight:500; }

/* ---------- Section header helper ---------- */
.sec-head{ max-width:64ch; }
.center.sec-head{ margin:0 auto; }

/* ---------- Empathy ---------- */
.empathy h2{ font-size:clamp(24px,3.4vw,38px); max-width:22ch; line-height:1.28; }
.empathy__body{ margin-top:26px; display:grid; gap:20px; max-width:64ch; }
.empathy__body p{ margin:0; }
.points{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:0; margin-top:54px;
  border-top:1px solid var(--line); }
.point{ padding:26px 24px 26px 0; display:flex; gap:16px; align-items:flex-start;
  border-bottom:1px solid var(--line); }
.point .ic{ flex-shrink:0; width:30px; height:30px; color:var(--gold-deep); display:grid; place-items:center; }
.point .ic svg{ width:22px; height:22px; }
.point p{ margin:0; font-weight:500; font-size:15.5px; color:var(--navy); line-height:1.5; }

/* ---------- Program overview ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.split__media img{ border-radius:var(--radius-lg); box-shadow:var(--shadow); width:100%; aspect-ratio:3/2; object-fit:cover; }
.infocards{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; margin-top:32px;
  border-top:1px solid var(--line); }
.infocard{ padding:20px 22px 20px 0; border-bottom:1px solid var(--line); }
.infocard:nth-child(odd){ padding-right:22px; border-right:1px solid var(--line); }
.infocard:nth-child(even){ padding-left:22px; }
.infocard dt{ font-size:11px; font-weight:600; letter-spacing:.16em; color:var(--gold-deep); text-transform:uppercase; margin-bottom:7px; }
.infocard dd{ margin:0; font-size:15.5px; font-weight:500; color:var(--navy); line-height:1.45; }
.tbd{ color:var(--slate-soft); font-weight:500; font-style:italic; font-size:14.5px; }

/* ---------- Why : value grid ---------- */
.values{ display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
.value{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s, border-color .35s; }
.value:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--line-soft); }
.value__media{ aspect-ratio:16/10; overflow:hidden; }
.value__media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.value:hover .value__media img{ transform:scale(1.05); }
.value__b{ padding:30px 30px 34px; }
.value__num{ font-size:11px; font-weight:600; letter-spacing:.2em; color:var(--gold-deep); text-transform:uppercase; }
.value h3{ font-size:22px; margin:14px 0 11px; font-weight:700; }
.value p{ margin:0; color:var(--slate); font-size:15px; line-height:1.7; }

/* ---------- Schedule timeline ---------- */
.timeline{ max-width:820px; margin:0 auto; }
.tl{ display:grid; grid-template-columns:130px 1fr; gap:28px; padding:24px 0; border-bottom:1px solid rgba(255,255,255,.12); }
.tl:first-child{ border-top:1px solid rgba(255,255,255,.12); }
.tl__day{ font-family:var(--serif); font-style:italic; font-weight:600; color:var(--gold-soft); font-size:21px; }
.tl__txt{ color:#C2CEDF; font-size:16px; line-height:1.6; }
.tl__txt b{ color:#fff; font-weight:600; font-size:16.5px; }
.schedule__note{ margin-top:34px; text-align:center; font-size:13.5px; color:#8295AE; letter-spacing:.01em; }

/* ---------- Eligibility ---------- */
.eligibility .lead + .lead{ margin-top:14px; }
.elig-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:0; margin-top:38px;
  border-top:1px solid var(--line); }
.elig{ padding:24px 24px 24px 0; border-bottom:1px solid var(--line); }
.elig span{ font-size:11px; font-weight:600; color:var(--gold-deep); text-transform:uppercase; letter-spacing:.16em; }
.elig strong{ display:block; margin-top:9px; font-size:18px; color:var(--navy); font-weight:600; }
.callout{ margin-top:34px; display:flex; gap:16px; align-items:flex-start;
  background:var(--ivory); border:1px solid var(--line); border-left:2px solid var(--gold);
  border-radius:var(--radius); padding:22px 26px; }
.callout svg{ flex-shrink:0; width:22px; height:22px; color:var(--gold-deep); margin-top:2px; }
.callout p{ margin:0; font-weight:500; color:var(--navy); font-size:16px; line-height:1.6; }

/* ---------- Safety ---------- */
.safety__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:44px; }
.safety__item{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); border-radius:var(--radius-lg);
  padding:28px 24px; display:flex; align-items:center; gap:17px; transition:border-color .3s, background .3s; }
.safety__item:hover{ border-color:rgba(216,190,134,.4); background:rgba(255,255,255,.06); }
.safety__item .ic{ flex-shrink:0; width:44px; height:44px; border-radius:50%; border:1px solid rgba(216,190,134,.35);
  color:var(--gold-soft); display:grid; place-items:center; }
.safety__item .ic svg{ width:22px; height:22px; }
.safety__item h3{ font-size:16.5px; margin:0; font-weight:600; }
.safety__note{ text-align:center; margin-top:34px; color:#8295AE; font-size:14px; letter-spacing:.01em; }

/* ---------- Process steps ---------- */
.steps{ display:grid; grid-template-columns:repeat(5,1fr); gap:0; border-top:1px solid var(--line); }
.step{ position:relative; padding:34px 22px 30px 0; border-bottom:1px solid var(--line); border-right:1px solid var(--line); }
.step:last-child{ border-right:0; }
.step{ padding-left:22px; }
.step:first-child{ padding-left:0; }
.step__n{ font-family:var(--serif); font-style:italic; font-size:30px; font-weight:600; color:var(--gold); line-height:1; margin-bottom:16px; }
.step h3{ font-size:15.5px; line-height:1.5; font-weight:600; }

/* ---------- CTA strip ---------- */
.ctastrip{ background:var(--navy); color:#fff; }
.ctastrip .wrap{ display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.ctastrip h3{ color:#fff; font-size:clamp(21px,2.6vw,29px); font-weight:600; line-height:1.3; }
.ctastrip p{ margin:10px 0 0; color:#A9B7CC; font-size:15.5px; }
.ctastrip__btns{ display:flex; gap:12px; flex-wrap:wrap; }

/* ---------- Gallery ---------- */
.gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.gallery figure{ margin:0; position:relative; border-radius:var(--radius-lg); overflow:hidden; }
.gallery img{ width:100%; aspect-ratio:3/2; object-fit:cover; display:block; transition:transform .7s cubic-bezier(.2,.7,.3,1); }
.gallery figure:hover img{ transform:scale(1.06); }
.gallery figure::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(10,19,34,.32)); opacity:0; transition:opacity .35s; }
.gallery figure:hover::after{ opacity:1; }

/* ---------- Form (generous / touch-friendly) ---------- */
.formwrap{ max-width:920px; margin:56px auto 0; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius-lg); box-shadow:var(--shadow); overflow:hidden; }
.formwrap__head{ background:var(--navy); color:#fff; padding:42px 48px; }
.formwrap__head h3{ color:#fff; font-size:27px; font-weight:600; letter-spacing:-0.01em; }
.formwrap__head p{ margin:11px 0 0; color:#A9B7CC; font-size:15.5px; }
.form{ padding:46px 48px 50px; }
.fieldset{ border:0; padding:0; margin:0 0 44px; }
.fieldset:last-of-type{ margin-bottom:30px; }
.fieldset > legend{ font-size:13px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold-deep); padding:0; margin-bottom:24px; display:flex; align-items:center; gap:16px; width:100%; }
.fieldset > legend::after{ content:""; flex:1; height:1px; background:var(--line); }
.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.grid3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:22px; }
.field{ display:flex; flex-direction:column; gap:10px; margin-bottom:22px; }
.field label{ font-size:15px; font-weight:600; color:var(--navy); }
.field label .req{ color:#B23B30; margin-left:3px; }
.field .opt{ color:var(--slate-soft); font-weight:400; font-size:12.5px; }
.field input, .field select, .field textarea{
  font-family:inherit; font-size:16px; color:var(--ink); min-height:54px;
  border:1px solid var(--line); border-radius:var(--radius); padding:15px 17px; background:#fff;
  transition:border-color .2s, box-shadow .2s; width:100%;
}
.field textarea{ resize:vertical; min-height:128px; }
.field input:focus, .field select:focus, .field textarea:focus{
  outline:0; border-color:var(--gold); box-shadow:0 0 0 4px rgba(191,157,85,.16); }
.field input::placeholder, .field textarea::placeholder{ color:#AEB5BF; }
.consent{ display:flex; gap:14px; align-items:flex-start; background:var(--ivory); border:1px solid var(--line);
  border-radius:var(--radius); padding:20px 22px; margin-bottom:28px; }
.consent input{ margin-top:2px; width:22px; height:22px; flex-shrink:0; accent-color:var(--navy); }
.consent label{ font-size:14.5px; color:var(--ink); font-weight:400; line-height:1.65; }
.consent a{ color:var(--gold-deep); text-decoration:underline; }
.form__submit{ display:flex; flex-direction:column; gap:16px; }
.form .btn--block{ padding:20px 32px; font-size:16.5px; }
.form__hint{ text-align:center; font-size:13.5px; color:var(--slate); line-height:1.65; }
.formstatus{ display:none; margin-top:14px; padding:15px 17px; border-radius:var(--radius); font-weight:500; font-size:14.5px; }
.formstatus.ok{ display:block; background:#ECF5EF; color:#1E6B3A; border:1px solid #C4E2CF; }
.formstatus.err{ display:block; background:#FBEEEC; color:#9B2C22; border:1px solid #EFC9C4; }
.formdone{ display:none; padding:56px 36px; text-align:center; }
.formdone.show{ display:block; }
.formdone .check{ width:66px; height:66px; border-radius:50%; background:#ECF5EF; color:#1E6B3A;
  display:grid; place-items:center; margin:0 auto 22px; }
.formdone .check svg{ width:32px; height:32px; }
.formdone h3{ font-size:24px; font-weight:600; }
.formdone p{ color:var(--slate); margin-top:12px; line-height:1.7; }

/* ---------- FAQ ---------- */
.faq{ max-width:840px; margin:48px auto 0; border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{ list-style:none; cursor:pointer; padding:26px 4px; font-weight:600; color:var(--navy);
  font-size:17.5px; display:flex; justify-content:space-between; gap:18px; align-items:center; letter-spacing:-0.01em; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary .plus{ flex-shrink:0; width:22px; height:22px; position:relative; transition:transform .3s; }
.faq summary .plus::before,.faq summary .plus::after{ content:""; position:absolute; background:var(--gold-deep);
  top:50%; left:50%; transform:translate(-50%,-50%); }
.faq summary .plus::before{ width:14px; height:1.5px; }
.faq summary .plus::after{ width:1.5px; height:14px; transition:opacity .25s; }
.faq details[open] summary .plus::after{ opacity:0; }
.faq .ans{ padding:0 4px 28px; color:var(--slate); font-size:15.5px; line-height:1.8; max-width:74ch; }
.faq .ans p{ margin:0 0 10px; }
.faq .ans p:last-child{ margin-bottom:0; }

/* ---------- Final CTA ---------- */
.final{ position:relative; color:#fff; text-align:center; isolation:isolate; }
.final__bg{ position:absolute; inset:0; z-index:-2; }
.final__bg img{ width:100%; height:100%; object-fit:cover; }
.final::after{ content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg,rgba(10,19,34,.82),rgba(10,19,34,.92)); }
.final__inner{ padding:130px var(--gutter); max-width:calc(720px + var(--gutter)*2); margin:0 auto; }
.final h2{ color:#fff; font-family:var(--serif); font-weight:600; font-size:clamp(30px,5vw,52px); line-height:1.12; }
.final p{ color:#C2CEDF; margin:22px auto 0; font-size:17.5px; max-width:52ch; line-height:1.7; font-weight:400; }
.final p + p{ margin-top:14px; }
.final__cta{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:40px; }

/* ---------- Footer ---------- */
.footer{ background:var(--navy-deep); color:#8295AE; padding:72px 0 120px; font-size:14px; }
.footer__top{ display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; margin-bottom:40px;
  padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.08); }
.footer .brand__txt{ display:flex; flex-direction:column; gap:4px; }
.footer .brand__name{ color:#fff; font-family:var(--serif); font-weight:600; font-size:22px; letter-spacing:0; }
.footer .brand__tag{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-soft); font-weight:500; }
.footer__tag{ max-width:44ch; margin-top:16px; color:#6F8298; line-height:1.7; }
.footer__links{ display:flex; gap:30px; flex-wrap:wrap; }
.footer__links a{ color:#A2B2C8; font-weight:500; font-size:14.5px; transition:color .2s; }
.footer__links a:hover{ color:var(--gold-soft); }
.footer__bottom{ display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; color:#5E7088; font-size:12.5px; }
.footer__contact{ display:flex; flex-direction:column; gap:7px; margin-top:20px; }
.footer__contact a{ color:#C9D4E3; font-size:14.5px; font-weight:500; letter-spacing:.01em; }
.footer__contact a:hover{ color:var(--gold-soft); }

/* ---------- Sessions (1차 / 2차 모집) ---------- */
.sessions{ display:grid; grid-template-columns:1fr 1fr; gap:18px; max-width:800px; margin:42px auto 0; }
.session{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.13); border-radius:var(--radius-lg);
  padding:30px 32px; }
.session--open{ border-color:rgba(216,190,134,.55); background:rgba(216,190,134,.08); }
.session__tag{ font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-soft); }
.session__date{ display:block; font-size:24px; font-weight:700; color:#fff; margin:13px 0 8px; letter-spacing:-0.015em; }
.session p{ margin:0; color:#A9B7CC; font-size:14.5px; }
.sched-sub{ text-align:center; color:#fff; font-size:13px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; margin:58px 0 4px; }

/* ---------- Managers (safety) ---------- */
.managers{ display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:920px; margin:48px auto 0; }
.mgr{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.13); border-radius:var(--radius-lg);
  padding:36px 36px 32px; transition:border-color .3s, transform .3s; }
.mgr:hover{ border-color:rgba(216,190,134,.4); transform:translateY(-4px); }
.mgr__role{ font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-soft); }
.mgr h3{ font-size:25px; margin:11px 0 24px; color:#fff; font-weight:700; }
.mgr-list{ list-style:none; padding:0; margin:0; display:grid; gap:15px; }
.mgr-list li{ position:relative; padding-left:32px; color:#CBD5E5; font-size:15.5px; line-height:1.5; }
.mgr-list li::before{ content:""; position:absolute; left:0; top:0; width:21px; height:21px; border-radius:50%;
  background:rgba(216,190,134,.16); border:1px solid rgba(216,190,134,.4); }
.mgr-list li::after{ content:""; position:absolute; left:6.5px; top:6px; width:7px; height:3.5px;
  border-left:1.5px solid var(--gold-soft); border-bottom:1.5px solid var(--gold-soft); transform:rotate(-45deg); }
.highlights{ list-style:none; padding:0; margin:42px auto 0; max-width:920px; display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.highlights li{ font-size:14px; font-weight:600; color:#EAEFF6; background:rgba(255,255,255,.06);
  border:1px solid rgba(216,190,134,.32); border-radius:999px; padding:11px 21px; }

/* ---------- Process badges ---------- */
.proc-badges{ display:flex; gap:11px; justify-content:center; flex-wrap:wrap; margin:20px 0 24px; }
.proc-badge{ font-size:13.5px; font-weight:700; color:var(--gold-deep); background:#fff;
  border:1px solid rgba(191,157,85,.5); border-radius:999px; padding:10px 20px; box-shadow:var(--shadow-sm); }

/* ---------- Mobile sticky CTA ---------- */
.mobcta{ display:none; position:fixed; left:0; right:0; bottom:0; z-index:70;
  background:rgba(255,255,255,.97); backdrop-filter:blur(12px); border-top:1px solid var(--line);
  padding:11px 14px calc(11px + env(safe-area-inset-bottom)); gap:10px; box-shadow:0 -8px 28px rgba(18,32,54,.10); }
.mobcta .btn{ flex:1; padding:15px 10px; font-size:14px; }

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .section{ padding:80px 0; }
  .split{ grid-template-columns:1fr; gap:38px; }
  .steps{ grid-template-columns:repeat(2,1fr); }
  .step{ border-right:0; padding-left:0; }
  .step:nth-child(odd){ border-right:1px solid var(--line); padding-right:22px; }
  .step:nth-child(even){ padding-left:22px; }
  .gallery{ grid-template-columns:repeat(2,1fr); }
  .safety__grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:820px){
  .nav, .header__cta{ display:none; }
  .header.open .nav{ display:flex; position:absolute; top:84px; left:0; right:0; flex-direction:column;
     align-items:flex-start; gap:0; background:#fff; border-bottom:1px solid var(--line); padding:8px 26px 20px; box-shadow:var(--shadow); }
  .header.open .nav a{ padding:15px 0; width:100%; border-bottom:1px solid var(--line-soft); }
  .header.open .header__cta{ display:flex; position:absolute; top:100%; left:0; right:0; padding:14px 26px; background:#fff; gap:12px; }
  .header.open .header__cta .btn{ flex:1; }
  .navtoggle{ display:block; }
  .values{ grid-template-columns:1fr; }
  .safety__grid{ grid-template-columns:1fr; }
  .sessions{ grid-template-columns:1fr; }
  .managers{ grid-template-columns:1fr; }
  .grid2,.grid3{ grid-template-columns:1fr; }
  .infocards{ grid-template-columns:1fr; }
  .infocard:nth-child(odd){ border-right:0; padding-right:0; }
  .infocard:nth-child(even){ padding-left:0; }
  .mobcta{ display:flex; }
  .footer{ padding-bottom:104px; }
  .ctastrip .wrap{ flex-direction:column; align-items:flex-start; }
  .hero__inner{ padding:88px var(--gutter) 80px; }
}
@media (max-width:560px){
  .section{ padding:64px 0; }
  .brand img{ height:40px; }
  .gallery{ grid-template-columns:1fr; }
  .steps{ grid-template-columns:1fr; }
  .step{ border-right:0!important; padding-left:0!important; padding-right:0!important; }
  .points{ grid-template-columns:1fr; }
  .elig-grid{ grid-template-columns:1fr; }
  .formwrap__head{ padding:28px 22px; }
  .form{ padding:28px 22px 32px; }
  .hero__badge{ letter-spacing:.16em; font-size:10px; flex-wrap:wrap; }
  .hero h1{ overflow-wrap:break-word; }
  .hero__facts{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
  .hero__facts li{ padding-left:0; border-left:0; }
  .hero__cta .btn{ flex:1; }
}
@media (prefers-reduced-motion:reduce){ *{ scroll-behavior:auto; animation:none!important; transition:none!important; } }

/* reveal on scroll */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }
