/* ============================================================================
   Believers' Academy — invitation, curriculum, testimonies, enrolment.
   Faithful to the Vespers system; self-contained (no cross-page CSS deps).
   ========================================================================== */

/* Scoped helpers reused from other pages' stylesheets (kept self-contained). */
.acad .dev-eyebrow{display:inline-flex; align-items:center; gap:8px; font:700 .68rem/1 var(--font-body);
  letter-spacing:.18em; text-transform:uppercase; color:var(--accent-strong);}
.acad .dev-eyebrow vm-icon{color:var(--gilt-500);}
.acad .prq-opt{font:600 .72rem/1 var(--font-body); letter-spacing:.04em; text-transform:uppercase; color:var(--fg3);}
.acad-head{text-align:center; max-width:62ch; margin:0 auto clamp(28px,4vw,44px);}
.acad-head .dev-eyebrow{justify-content:center; margin-bottom:14px;}
.acad-head .lead{margin-top:12px;}

/* ── Hero ────────────────────────────────────────────────────────────────── */
.acad-hero{position:relative; isolation:isolate; overflow:hidden; background:var(--ink-900);
  padding:clamp(116px,17vh,196px) 0 clamp(56px,9vh,96px); text-align:center;}
.acad-hero-bg{position:absolute; inset:0; z-index:0;}
.acad-hero-bg img{width:100%; height:100%; object-fit:cover; opacity:.34; filter:saturate(.92);}
.acad-hero-scrim{position:absolute; inset:0; z-index:1;
  background:radial-gradient(120% 92% at 50% 6%, rgba(198,164,92,.18), transparent 60%),
    linear-gradient(180deg, rgba(20,22,46,.6), rgba(20,22,46,.93));}
.acad-hero .hero-arch{z-index:1;}
.acad-hero-inner{position:relative; z-index:2; max-width:820px; margin:0 auto;}
.acad-hero-inner .eyebrow{margin-bottom:18px;}
.acad-hero-inner h1{color:var(--on-dark-1); font-size:clamp(2.2rem,5vw,3.7rem); line-height:1.07;}
.acad-hero-inner h1 em{font-style:italic; color:var(--gilt-300);}
.acad-hero-inner .lead{color:var(--on-dark-2); margin:18px auto 0; max-width:60ch;}
.acad-hero-cta{display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:28px;}
.acad-hero-stats{list-style:none; display:flex; align-items:center; justify-content:center; gap:14px 22px;
  flex-wrap:wrap; margin:30px 0 0; padding:0; font:500 .92rem/1 var(--font-body); color:var(--on-dark-2);}
.acad-hero-stats li{display:inline-flex; align-items:center; gap:8px;}
.acad-hero-stats li:not(:last-child)::after{content:""; width:4px; height:4px; border-radius:50%;
  background:var(--gilt-500); opacity:.7; margin-left:14px;}
.acad-hero-stats b{font-family:var(--font-display); font-weight:600; font-size:1.5rem; color:var(--gilt-300);}

/* ── Welcome / heart ─────────────────────────────────────────────────────── */
.acad-welcome-grid{display:grid; grid-template-columns:1fr; gap:clamp(26px,4vw,52px); align-items:center;}
@media (min-width:880px){ .acad-welcome-grid{grid-template-columns:.85fr 1.15fr;} }
.acad-welcome-media .ph{display:block; width:100%; aspect-ratio:4/5; max-width:420px; margin:0 auto; overflow:hidden;}
.acad-welcome-media .ph img{width:100%; height:100%; object-fit:cover;}
.acad-welcome-text h2{margin-top:12px;}
.acad-welcome-text > p{color:var(--fg2); margin-top:16px; max-width:56ch;}
.acad-tagline{margin:22px 0 0; padding:16px 22px; border-left:3px solid var(--gilt-500);
  background:var(--surface-warm); border-radius:0 14px 14px 0;
  font:italic 500 clamp(1.1rem,1.7vw,1.32rem)/1.55 var(--font-display); color:var(--accent-strong);}
.acad-welcome-text .qlink{margin-top:22px;}
.acad-welcome-text > .btn{margin-top:26px;}

/* ── Value pillars ───────────────────────────────────────────────────────── */
.acad-pillars--bg{position:relative; isolation:isolate; overflow:hidden;}
.acad-pillars-bg{position:absolute; inset:0; z-index:-2;}
.acad-pillars-bg img{width:100%; height:100%; object-fit:cover; opacity:.5; filter:saturate(.92);}
.acad-pillars-scrim{position:absolute; inset:0; z-index:-1;
  background:radial-gradient(90% 70% at 50% 0%, rgba(198,164,92,.16), transparent 58%),
    linear-gradient(180deg, rgba(90,95,140,.78), rgba(38,42,82,.9));
  transition:background-color 1.6s var(--ease-veil), opacity 1.6s var(--ease-veil);}
.acad-pillars--bg.is-tinted .acad-pillars-scrim{
  background:radial-gradient(90% 70% at 50% 0%, rgba(198,164,92,.18), transparent 60%),
    linear-gradient(180deg, rgba(53,59,110,.82), rgba(20,22,46,.94));}
.acad-pillars--bg .acad-head h2{color:var(--on-dark-1); transition:color 1.6s var(--ease-veil);}
.acad-pillars--bg .acad-head h2 em{color:var(--gilt-300);}
.acad-pillars--bg.is-tinted .acad-head h2{color:var(--on-dark-1);}
.acad-pillar-grid{display:grid; grid-template-columns:1fr; gap:clamp(14px,1.6vw,20px);}
@media (min-width:560px){ .acad-pillar-grid{grid-template-columns:repeat(2,1fr);} }
@media (min-width:980px){ .acad-pillar-grid{grid-template-columns:repeat(4,1fr);} }
.acad-pillar{padding:clamp(22px,2.6vw,30px); background:var(--surface); border:1px solid var(--border);
  border-radius:18px; box-shadow:var(--shadow-sm); transition:transform .35s var(--ease), box-shadow .35s, border-color .35s;}
.acad-pillar-ic{display:inline-flex; align-items:center; justify-content:center; width:52px; height:58px;
  color:var(--gilt-500); border:1.5px solid var(--hairline-gold); background:var(--surface-warm); border-radius:var(--arch);}
.acad-pillar h3{margin:16px 0 0; font:600 1.22rem/1.2 var(--font-display); color:var(--fg1);}
.acad-pillar p{margin:8px 0 0; font:400 .94rem/1.6 var(--font-body); color:var(--fg2);}
@media (hover:hover){ .acad-pillar:hover{transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--hairline-gold);} }

/* ── Curriculum accordion ────────────────────────────────────────────────── */
.acad-curric-list{display:flex; flex-direction:column; gap:14px; max-width:880px; margin:0 auto;}
.acad-grp{background:var(--surface); border:1px solid var(--border); border-radius:18px; overflow:hidden;
  box-shadow:var(--shadow-sm); transition:border-color .3s, box-shadow .3s;}
.acad-grp[open]{border-color:var(--hairline-gold); box-shadow:var(--shadow-md);}
.acad-grp-sum{list-style:none; cursor:pointer; display:grid; grid-template-columns:auto 1fr auto auto; gap:16px;
  align-items:center; padding:clamp(16px,2.2vw,22px) clamp(18px,2.4vw,26px); outline:none;}
.acad-grp-sum::-webkit-details-marker{display:none;}
.acad-grp-sum:focus-visible{outline:2px solid var(--gilt-500); outline-offset:-3px; border-radius:14px;}
.acad-grp-ic{display:inline-flex; align-items:center; justify-content:center; width:48px; height:54px; flex:0 0 auto;
  color:var(--gilt-500); border:1.5px solid var(--hairline-gold); background:var(--surface-warm); border-radius:var(--arch);}
.acad-grp-meta{min-width:0;}
.acad-grp-level{display:block; font:700 .64rem/1 var(--font-body); letter-spacing:.16em; text-transform:uppercase; color:var(--accent-strong);}
.acad-grp-name{display:block; margin-top:5px; font:600 clamp(1.2rem,2vw,1.5rem)/1.18 var(--font-display); color:var(--fg1); letter-spacing:-.01em;}
.acad-grp-dek{display:block; margin-top:4px; font:400 .9rem/1.45 var(--font-body); color:var(--fg2);}
.acad-grp-count{flex:0 0 auto; font:700 .66rem/1 var(--font-body); letter-spacing:.08em; text-transform:uppercase;
  color:var(--fg3); padding:7px 12px; border:1px solid var(--border); border-radius:999px; white-space:nowrap;}
.acad-grp-chev{flex:0 0 auto; color:var(--gilt-500); transition:transform .35s var(--ease);}
.acad-grp[open] .acad-grp-chev{transform:rotate(180deg);}
@media (max-width:620px){
  .acad-grp-sum{grid-template-columns:auto 1fr auto; gap:13px;}
  .acad-grp-count{display:none;}
}
.acad-courses{list-style:none; margin:0; padding:0 clamp(18px,2.4vw,26px) clamp(16px,2.2vw,24px);
  display:grid; grid-template-columns:1fr; gap:2px;}
@media (min-width:680px){ .acad-courses{grid-template-columns:1fr 1fr; gap:2px 26px;} }
.acad-course{display:flex; gap:14px; align-items:flex-start; padding:13px 4px; border-top:1px solid var(--border);}
.acad-course-n{flex:0 0 auto; font:600 .95rem/1.4 var(--font-display); color:var(--gilt-500); min-width:1.6em;}
.acad-course-txt{min-width:0;}
.acad-course-t{display:block; font:600 1rem/1.3 var(--font-body); color:var(--fg1);}
.acad-course-d{display:block; margin-top:3px; font:400 .85rem/1.45 var(--font-body); color:var(--fg3);}

/* ── Student testimonies ─────────────────────────────────────────────────── */
.acad-testi-grid{display:grid; grid-template-columns:1fr; gap:clamp(14px,1.8vw,22px);}
@media (min-width:620px){ .acad-testi-grid{grid-template-columns:repeat(2,1fr);} }
@media (min-width:980px){ .acad-testi-grid{grid-template-columns:repeat(3,1fr);} }
.acad-tcard{position:relative; margin:0; padding:clamp(22px,2.6vw,30px); background:var(--surface);
  border:1px solid var(--border); border-radius:18px; box-shadow:var(--shadow-sm); display:flex; flex-direction:column;}
.acad-tcard-q{color:var(--gilt-500); opacity:.5; margin-bottom:8px;}
.acad-tcard blockquote{margin:0; font:italic 500 1.06rem/1.6 var(--font-display); color:var(--fg1); flex:1 1 auto;}
.acad-tcard-who{display:flex; align-items:center; gap:12px; margin-top:18px; padding-top:16px; border-top:1px solid var(--border);}
.acad-tcard-who .ph{flex:0 0 auto; width:48px; height:48px; border-radius:50%; overflow:hidden; border:1.5px solid var(--hairline-gold);}
.acad-tcard-who .ph img{width:100%; height:100%; object-fit:cover;}
.acad-tcard-nm{display:block; font:700 .95rem/1.2 var(--font-body); color:var(--fg1);}
.acad-tcard-ro{display:flex; align-items:center; gap:6px; margin-top:2px; font:400 .82rem/1.2 var(--font-body); color:var(--fg3);}
.acad-tcard-ro .ro-flag{font-size:1rem; line-height:1;}

/* ── Enrolment ───────────────────────────────────────────────────────────── */
.acad-enroll{background:linear-gradient(180deg, var(--surface-warm), var(--surface));}
.acad-enroll-head{text-align:center; max-width:60ch; margin:0 auto clamp(26px,4vw,40px);}
.acad-enroll-head .dev-eyebrow{justify-content:center; margin-bottom:12px;}
.acad-enroll-head .lead{margin-top:12px;}

.acad-form-card{display:grid; grid-template-columns:1fr; gap:clamp(20px,3vw,30px); align-items:start;
  background:var(--surface); border:1px solid var(--hairline-gold); border-radius:24px;
  box-shadow:var(--shadow-lg); padding:clamp(22px,3.4vw,40px);}
@media (min-width:960px){ .acad-form-card{grid-template-columns:1.6fr .9fr;} }
.acad-hp{position:absolute; left:-9999px;}
.acad-form{min-width:0;}

.acad-fs{border:0; padding:0; margin:0 0 clamp(20px,3vw,30px);}
.acad-fs legend{display:flex; align-items:center; gap:10px; padding:0; margin-bottom:14px;
  font:700 .72rem/1.3 var(--font-body); letter-spacing:.14em; text-transform:uppercase; color:var(--accent-strong);}
.acad-fs-n{display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%;
  background:var(--ink-900); color:var(--gilt-300); font:700 .8rem/1 var(--font-body); letter-spacing:0;}
.acad-grid2{display:grid; grid-template-columns:1fr; gap:14px 18px;}
.acad-grid3{display:grid; grid-template-columns:1fr; gap:14px 18px;}
@media (min-width:560px){ .acad-grid2{grid-template-columns:1fr 1fr;} .acad-grid3{grid-template-columns:1fr 1fr 1fr;} }
.acad-fs .vmm-field{margin:0;}
.acad-fs .acad-grid2 + .vmm-field,
.acad-fs .acad-grid3 + .vmm-field,
.acad-fs .vmm-field + .vmm-field{margin-top:14px;}
/* Keep paired controls aligned on desktop even when one label wraps to two
   lines (e.g. "How long have you been a Christian?" beside "Are you born
   again?"). The field is a flex column stretched to the row height; pushing the
   control to the bottom bottom-aligns the inputs across the pair. */
@media (min-width:560px){
  .acad-grid2 > .vmm-field > .vmm-input,
  .acad-grid2 > .vmm-field > .acad-phone,
  .acad-grid3 > .vmm-field > .vmm-input,
  .acad-grid3 > .vmm-field > .acad-phone{margin-top:auto;}
}

/* Selects styled like inputs, with a gilt caret. */
.acad-select{appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23C6A45C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; padding-right:40px;}

/* Combined phone field — country dial-code selector + number, one border */
.acad-phone{position:relative; display:flex; align-items:stretch; border:1px solid var(--border);
  border-radius:12px; background:var(--surface); transition:border-color .2s, box-shadow .2s;}
.acad-phone:focus-within{border-color:var(--gilt-500); box-shadow:0 0 0 3px rgba(198,164,92,.16);}
.acad-phone:has(.acad-phone-input.is-invalid){border-color:#b3261e;}
.acad-phone-country{position:relative; flex:0 0 auto; display:flex; align-items:stretch;}
/* Native select — no-JS fallback (hidden once JS enhances) */
.acad-phone-native{flex:0 0 auto; appearance:none; -webkit-appearance:none; border:0; border-right:1px solid var(--border);
  background:transparent; padding:0 32px 0 14px; max-width:150px; min-height:46px;
  font:600 .9rem/1 var(--font-body); color:var(--fg1); cursor:pointer; border-radius:12px 0 0 12px;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23C6A45C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center;}
.acad-phone.is-enhanced .acad-phone-native{position:absolute; opacity:0; pointer-events:none; width:1px; height:1px; max-width:1px; padding:0; border:0;}
/* Enhanced trigger (flag + dial code) */
.acad-phone-trigger{display:none;}
.acad-phone.is-enhanced .acad-phone-trigger{display:inline-flex; align-items:center; gap:7px; padding:0 12px 0 14px;
  background:transparent; border:0; border-right:1px solid var(--border); cursor:pointer; color:var(--fg1);
  font:600 .92rem/1 var(--font-body); white-space:nowrap; border-radius:12px 0 0 12px;}
.acad-phone-trigger:focus-visible{outline:2px solid var(--gilt-500); outline-offset:-3px;}
.acad-phone-flag{font-size:1.15rem; line-height:1;}
.acad-phone-dial{font-weight:700; letter-spacing:.01em;}
.acad-phone-caret{display:inline-flex; color:var(--gilt-500); transition:transform .25s var(--ease);}
.acad-phone.is-open .acad-phone-caret{transform:rotate(180deg);}
/* Number input — outer wrapper carries the border */
.acad-phone .acad-phone-input{flex:1 1 auto; min-width:0; border:0 !important; border-radius:0 12px 12px 0 !important;
  background:transparent !important; box-shadow:none !important;}
.acad-phone .acad-phone-input:focus, .acad-phone .acad-phone-input:focus-visible{outline:none !important; box-shadow:none !important;}
/* Listbox */
.acad-phone-list{position:absolute; z-index:60; top:calc(100% + 6px); left:0; width:320px; max-width:86vw;
  max-height:300px; overflow-y:auto; margin:0; padding:6px; list-style:none;
  background:var(--surface); border:1px solid var(--hairline-gold); border-radius:14px; box-shadow:var(--shadow-lg);}
.acad-phone-list[hidden]{display:none;}
.acad-phone-opt{display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:9px; cursor:pointer;
  font:500 .9rem/1.2 var(--font-body); color:var(--fg1);}
.acad-phone-opt .fl{flex:0 0 auto; font-size:1.15rem; line-height:1;}
.acad-phone-opt .nm{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.acad-phone-opt .cc{margin-left:auto; flex:0 0 auto; color:var(--fg3); font-weight:700;}
.acad-phone-opt.is-active{background:var(--surface-warm);}
.acad-phone-opt[aria-selected="true"]{color:var(--accent-strong);}
@media (hover:hover){ .acad-phone-opt:hover{background:var(--surface-warm);} }

/* Commitment checkbox */
.acad-commit{display:flex; gap:14px; align-items:flex-start; padding:18px; margin:0 0 22px;
  background:var(--surface-warm); border:1px solid var(--hairline-gold); border-radius:16px; cursor:pointer;}
.acad-commit input{position:absolute; opacity:0; width:1px; height:1px;}
.acad-commit-box{flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px;
  border:1.6px solid var(--border); border-radius:8px; background:var(--surface); color:transparent; transition:all .2s var(--ease);}
.acad-commit input:checked + .acad-commit-box{background:var(--gilt-500); border-color:var(--gilt-500); color:var(--ink-900);}
.acad-commit input:focus-visible + .acad-commit-box{outline:2px solid var(--gilt-500); outline-offset:2px;}
.acad-commit input.is-invalid + .acad-commit-box{border-color:#b3261e;}
.acad-commit-txt{font:400 .88rem/1.6 var(--font-body); color:var(--fg2);}

.acad-form-actions{display:flex; flex-wrap:wrap; align-items:center; gap:14px;}
/* Block, never flex — see the note on .mcreg-privacy in masterclass.css: a flex
   container makes the inline Privacy Policy link its own item, so it drops onto
   a line of its own and the trailing full stop becomes a third item. */
.acad-form-privacy{display:block; margin:14px 0 0; font:500 .8rem/1.5 var(--font-body); color:var(--fg3);}
.acad-form-privacy > vm-icon{vertical-align:-.15em; margin-right:7px; color:var(--gilt-500);}

/* Aside */
.acad-aside{display:flex; flex-direction:column; gap:16px;}
.acad-aside-card{padding:clamp(20px,2.6vw,26px); border-radius:18px; border:1px solid var(--hairline-gold);
  background:linear-gradient(180deg, var(--ink-900), var(--ink-800)); color:var(--on-dark-1); text-align:center;}
.acad-aside-ic{display:inline-flex; align-items:center; justify-content:center; width:46px; height:52px; margin:0 auto;
  color:var(--gilt-300); border:1.5px solid var(--hairline-gold); background:rgba(226,203,148,.08); border-radius:var(--arch);}
.acad-aside-card h3{margin:14px 0 0; font:600 1.25rem/1.2 var(--font-display); color:var(--on-dark-1);}
.acad-aside-card p{margin:8px 0 16px; font:400 .9rem/1.6 var(--font-body); color:var(--on-dark-2);}
.acad-aside-card--quiet{background:var(--surface-warm); color:var(--fg1); text-align:left;}
.acad-aside-card--quiet .acad-aside-ic{color:var(--gilt-500); background:var(--surface);}
/* Photo variant — ministry image behind a dark scrim */
.acad-aside-card--photo{position:relative; isolation:isolate; overflow:hidden; background:var(--ink-900);}
.acad-aside-photo{position:absolute; inset:0; z-index:0;}
.acad-aside-photo img{width:100%; height:100%; object-fit:cover; opacity:.55;}
.acad-aside-photo-scrim{position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(20,22,46,.66), rgba(20,22,46,.9));}
.acad-aside-card--photo > .acad-aside-ic,
.acad-aside-card--photo > h3,
.acad-aside-card--photo > p,
.acad-aside-card--photo > a{position:relative; z-index:2;}
.acad-aside-card--photo .acad-aside-ic{background:rgba(226,203,148,.12);}
.acad-aside-list{list-style:none; margin:14px 0 0; padding:0; display:flex; flex-direction:column; gap:11px;}
.acad-aside-list li{display:flex; align-items:flex-start; gap:9px; font:500 .9rem/1.45 var(--font-body); color:var(--fg2);}
.acad-aside-list li vm-icon{flex:0 0 auto; color:var(--gilt-500); margin-top:1px;}

/* Success */
.acad-success{position:relative; text-align:center; max-width:620px; margin:0 auto; padding:clamp(30px,5vw,52px) clamp(20px,3vw,40px);
  background:var(--surface); border:1px solid var(--hairline-gold); border-radius:24px; box-shadow:var(--shadow-lg);}
.acad-success[hidden]{display:none !important;}
.acad-success-close{position:absolute; top:14px; right:14px; width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center;
  color:var(--fg2); background:var(--surface-warm); border:1px solid var(--border); border-radius:50%; cursor:pointer;
  transition:color .2s var(--ease), background-color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);}
.acad-success-close:hover{color:var(--accent-strong); border-color:var(--hairline-gold); transform:rotate(90deg);}
.acad-success-close:focus-visible{outline:2px solid var(--gilt-500); outline-offset:2px;}
.acad-success-mark{display:inline-flex; align-items:center; justify-content:center; width:74px; height:74px; margin:0 auto 16px;
  border-radius:50%; color:var(--gilt-500); background:var(--surface-warm); border:1.5px solid var(--hairline-gold);}
.acad-success h2{margin:0; font:600 clamp(1.5rem,3vw,2.2rem)/1.14 var(--font-display); color:var(--fg1);}
.acad-success p{margin:12px auto 0; max-width:48ch; color:var(--fg2);}
.acad-success-cta{display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:24px;}

/* Section CTAs (curriculum + testimonies) */
.acad-curric-cta, .acad-testi-cta{display:flex; flex-wrap:wrap; gap:12px; justify-content:center;
  margin-top:clamp(26px,4vw,42px);}

@media (prefers-reduced-motion:reduce){
  .acad-pillar, .acad-grp, .acad-grp-chev, .acad-commit-box, .acad-phone-caret,
  .acad-pillars-scrim, .acad-pillars--bg .acad-head h2{transition:none;}
}
