/* Charis Creations client-page theme, DUSK sample: midnight blue + frosted glass.
   Layout idea: a private screening in warm darkness. Editorial serif headlines,
   clean Barlow for everything people read and tap, warm hairlines, soft film grain.
   Loaded last in <head>, on top of each page's own styles. Single dark look by design. */
:root{
  color-scheme:dark;
  --ink:#08101E;          /* midnight blue canvas */
  --panel:rgba(255,255,255,.06);  /* frosted glass */
  --panel-2:rgba(255,255,255,.09);
  --line:rgba(255,255,255,.13);
  --ember:#E8530A;        /* Charis orange */
  --ember-soft:#F2894A;   /* lighter orange for text on dark */
  --rose:#CC3366;         /* Charis magenta, used only in the glow */
  --cream:#F4EFE6;        /* headings */
  --text:#E4DED3;         /* body */
  --mute:#AEB6C6;         /* secondary */
  --serif:'Bodoni Moda','Didot','Bodoni 72',Georgia,serif;
  --sans:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;
  --cond:'Barlow Condensed','Barlow',sans-serif;

  /* map the old page tokens onto the new palette */
  --bg:var(--ink)!important;--dark:var(--ink)!important;--card:var(--panel)!important;--card2:var(--panel-2)!important;
  --border:var(--line)!important;--orange:var(--ember)!important;--orange-dim:var(--ember)!important;--purple:var(--ember-soft)!important;
  --muted:var(--mute)!important;--dim:#8790A3!important;
  --green:#6FBF8E!important;--amber:#E2B05A!important;--red:#E48A6E!important;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:#08101E}
body{background:var(--ink)!important;color:var(--text)!important;font-family:var(--sans)!important;font-size:16px;
  line-height:1.65;letter-spacing:.1px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  background-image:
    radial-gradient(720px 520px at 85% -80px,rgba(232,83,10,.38),transparent 65%),
    radial-gradient(620px 520px at -10% 18%,rgba(10,58,140,.34),transparent 65%),
    radial-gradient(800px 700px at 50% 110%,rgba(56,104,190,.22),transparent 70%),
    linear-gradient(180deg,#0B152A 0%,#08101E 45%,#060B16 100%)!important;
  background-attachment:fixed!important;
  background-repeat:no-repeat!important}
/* soft film grain over everything, never blocks taps */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:2147483000;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
body *{font-family:inherit}

/* Headlines: editorial serif. Labels: condensed caps. */
h1,.cx-display{font-family:var(--serif)!important;font-weight:600!important;color:var(--cream)!important;letter-spacing:-.2px!important;text-wrap:balance}
h1{line-height:1.1!important}
.cx-display{line-height:1.15!important}
h3{font-family:var(--sans)!important;font-weight:700!important;color:var(--cream)!important;line-height:1.3!important}
h1 span,.cx-display span,h1 em,.cx-display em{font-style:italic;color:var(--ember-soft)!important}
.logo-text,.brand,.logo-bar h1,.header .logo-text{font-family:var(--cond)!important;font-weight:800!important;letter-spacing:4px!important;
  text-transform:uppercase!important;font-size:18px!important;font-style:normal!important;color:var(--cream)!important}
.logo-text span{color:var(--ember)!important;font-style:normal!important}
.tagline,.logo-bar p{font-family:var(--cond)!important;letter-spacing:4px!important;color:var(--mute)!important;font-size:11.5px!important}
p,li{line-height:1.7}
a{color:var(--ember-soft)}
::selection{background:var(--ember);color:#fff}
strong,b{color:var(--cream)}

/* Forms: 16px stops iPhone zoom; generous, quiet fields */
label,.field label{font-size:13px!important;font-weight:600!important;letter-spacing:.6px!important;text-transform:uppercase;color:var(--mute)!important}
label .optional{text-transform:none;letter-spacing:0}
input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important;font-family:var(--sans)!important;
  background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.16)!important;color:var(--cream)!important;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-radius:14px!important;min-height:52px;padding:14px 16px!important;transition:border-color .2s,box-shadow .2s,background .2s}
textarea{min-height:110px}
input:focus,select:focus,textarea:focus{border-color:var(--ember)!important;background:rgba(232,83,10,.05)!important;
  box-shadow:0 0 0 4px rgba(232,83,10,.14)!important;outline:none!important}
input::placeholder,textarea::placeholder{color:#7F889B!important}
select option{background:#111A2D;color:var(--cream)}

/* Buttons: one warm, confident primary */
button,.btn{font-family:var(--sans)!important;border-radius:14px}
.btn-primary,.next-btn,.btn-next,.submit-btn,button[type=submit],.cta-btn{
  background:linear-gradient(180deg,#F0661F,#D9480A)!important;color:#fff!important;font-weight:700!important;letter-spacing:.4px;
  border:0!important;box-shadow:0 10px 26px -10px rgba(232,83,10,.65),inset 0 1px 0 rgba(255,255,255,.22)!important;
  min-height:52px;transition:transform .15s,box-shadow .2s}
.btn-primary:hover,.next-btn:hover,.btn-next:hover,.submit-btn:hover{transform:translateY(-1px);box-shadow:0 14px 30px -10px rgba(232,83,10,.75),inset 0 1px 0 rgba(255,255,255,.22)!important}
.btn-secondary,.btn-back,.nav-btn:not(.btn-next){background:rgba(255,255,255,.08)!important;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line)!important;color:var(--text)!important}
button:focus-visible,a:focus-visible{outline:2px solid var(--ember-soft);outline-offset:3px}

/* Cards: warm panels with a faint top light, used only where pages already have cards */
.card,.opt-card,.welcome-msg,.child-entry,.staff-entry,.pkg-card,.step-card,.tip,.callout,.check-item,.stat,.stat-card{
  background:linear-gradient(160deg,rgba(255,255,255,.10),rgba(255,255,255,.03))!important;
  border:1px solid rgba(255,255,255,.14)!important;border-radius:22px!important;
  -webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -1px 0 rgba(255,255,255,.04),0 18px 40px -22px rgba(0,0,0,.65)!important}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .card,.opt-card,.welcome-msg,.child-entry,.staff-entry,.pkg-card,.step-card,.tip,.callout,.check-item,.stat,.stat-card{background:#111A2D!important}}
.welcome-msg{border-left:1px solid var(--line)!important}
.opt-card.selected,.opt-card.active,.pkg-card.selected{border-color:var(--ember)!important;box-shadow:0 0 0 1px var(--ember),0 12px 30px -16px rgba(232,83,10,.6)!important}

/* Progress bars */
.progress-bar .step,.progress .dot,.step-bar,.prog-seg{background:var(--line)!important}
.progress-bar .step.active,.progress .dot.active,.progress-bar .step.done,.progress .dot.done{background:var(--ember)!important}

/* Section labels (small caps lines) */
.section-label,.eyebrow,.kicker,.label-sm,.sec-label{font-family:var(--cond)!important;letter-spacing:3px!important;text-transform:uppercase;color:var(--ember-soft)!important}

/* Line icons that replace emoji */
.cx-ico{display:inline-flex;align-items:center;justify-content:center;width:1.15em;height:1.15em;vertical-align:-.18em;color:var(--ember-soft)}
.cx-ico svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cx-ico.big{width:60px;height:60px;padding:16px;border-radius:50%;background:radial-gradient(circle,rgba(232,83,10,.16),rgba(232,83,10,.04));border:1px solid rgba(232,83,10,.35)}

/* Calm, branded message screens */
.error-screen h2,.state h2,.state-title,.err-title,.success-screen h2{color:var(--cream)!important}
.error-screen,.state,.success-screen{max-width:460px;margin:0 auto}

/* WhatsApp buttons stay recognisable but refined */
a[href*="wa.me"]{border-radius:14px!important}

hr,.divider,.section-divider{border:0!important;border-top:1px solid var(--line)!important}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ===== Button family (one system across every client page) ===== */
/* 1. Main action: warm orange, glowing, full height */
.btn-primary,.next-btn,.btn-next,.btn-submit,.submit-btn,button[type=submit],.cta-btn,.action-btn{
  display:inline-flex!important;align-items:center;justify-content:center;gap:8px;
  min-height:52px!important;padding:0 24px!important;border-radius:16px!important;
  font-size:16px!important;font-weight:700!important;letter-spacing:.3px!important;text-decoration:none!important;
  background:linear-gradient(180deg,#F26A22 0%,#DB4A0B 72%,#B83F08 100%)!important;color:#fff!important;border:0!important;
  box-shadow:0 12px 28px -12px rgba(232,83,10,.75),inset 0 1px 0 rgba(255,255,255,.28),inset 0 -2px 0 #8A2E05!important}
.action-btn{width:100%!important;margin-top:14px}
/* 2. Second action: frosted glass */
.btn-back,.btn-secondary,.btn-prev,.nav-btn:not(.btn-next){
  min-height:52px!important;border-radius:16px!important;font-size:16px!important;font-weight:600!important;
  background:rgba(255,255,255,.07)!important;color:var(--cream)!important;border:1px solid rgba(255,255,255,.16)!important;
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:inset 0 1px 0 rgba(255,255,255,.14)!important}
/* 3. WhatsApp: glass with a green mark, no neon fill */
.wa-btn,.btn-wa,a.wa-link,a[href*="wa.me"]:not(.l):not(.btn-primary):not(.action-btn){
  display:inline-flex!important;align-items:center;justify-content:center;gap:10px;min-height:52px!important;padding:0 22px!important;
  border-radius:16px!important;font-size:16px!important;font-weight:600!important;text-decoration:none!important;
  background:rgba(255,255,255,.07)!important;color:var(--cream)!important;border:1px solid rgba(37,211,102,.38)!important;
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 10px 26px -16px rgba(37,211,102,.45)!important}
.wa-btn .cx-ico,.btn-wa .cx-ico,a[href*="wa.me"] .cx-ico{color:#3DDC84!important}
.wa-btn:hover,.btn-wa:hover,a[href*="wa.me"]:hover{border-color:rgba(37,211,102,.7)!important}
/* 4. Choices: glass pills that light up when picked */
.toggle-btn,.slot-chip,.chip,.pill{display:inline-flex!important;align-items:center;justify-content:center;line-height:1.2!important;
  min-height:46px;border-radius:999px!important;padding:0 16px!important;font-size:15px!important;font-weight:600!important;
  background:rgba(255,255,255,.06)!important;color:var(--text)!important;border:1px solid rgba(255,255,255,.15)!important;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background .2s,border-color .2s,box-shadow .2s}
.toggle-btn.selected,.toggle-btn.active,.toggle-btn.on,.slot-chip.selected,.slot-chip.active,.chip.on,.chip.selected,.pill.on{
  background:linear-gradient(180deg,#F26A22,#DB4A0B)!important;border-color:transparent!important;color:#fff!important;
  box-shadow:0 8px 20px -10px rgba(232,83,10,.8),inset 0 1px 0 rgba(255,255,255,.25)!important}
/* 5. Small links: proper tap size, quiet underline */
.why-toggle,.contact-link,.text-link{display:inline-flex;align-items:center;min-height:40px;font-size:14px!important;
  color:var(--ember-soft)!important;text-decoration:underline;text-decoration-color:rgba(242,137,74,.45);text-underline-offset:4px}
button:active,.btn:active,.wa-btn:active,.toggle-btn:active{transform:scale(.985)}

/* Pressed state: burnt orange */
.btn-next:active,.action-btn:active,.btn-primary:active{background:linear-gradient(180deg,#DB4A0B,#8A2E05)!important;transform:translateY(1px)}
.glass,.card,.panel{background-color:rgba(17,34,78,.42)}

/* ===== v4 Studio Light: near-black with deep blue, Outfit type ===== */
:root{--ink:#0A0E18!important;--mute:#8A95A1!important}
html,body{background:#0A0E18!important;background-image:
 radial-gradient(900px 420px at 85% 108%,rgba(232,83,10,.30),transparent 62%),
 radial-gradient(900px 480px at 0% 118%,rgba(2,54,97,.75),transparent 65%),
 radial-gradient(520px 420px at -10% -5%,rgba(10,58,140,.22),transparent 70%),
 radial-gradient(520px 420px at 110% -5%,rgba(2,54,97,.30),transparent 70%)!important;background-attachment:fixed!important}
.header,header,.top,.hero,.progress-wrap,.nav-bar{background:rgba(10,14,24,.6)!important}
.intro,.card,.glass,.welcome-card{background:rgba(255,255,255,.04)!important;border-color:rgba(255,255,255,.10)!important}
input,select,textarea{background:rgba(255,255,255,.035)!important;border-color:rgba(255,255,255,.12)!important}
label,.label,.hint,small,::placeholder{color:#76828E!important}
h1,h2,.cx-display,.step-title{font-family:Outfit,sans-serif!important;font-weight:600!important;letter-spacing:-.3px!important}
body,input,select,textarea,button,p{font-family:Outfit,Barlow,sans-serif!important}
label,.label{font-family:Outfit,sans-serif!important;letter-spacing:1.2px!important}

/* 6 Oct 2026: timeline dots get a solid base so the journey line does not show through the icons */
.j-dot{background:linear-gradient(var(--panel),var(--panel)),var(--ink)!important}
