/* =====================================================================
   AI CINEMATIC VIDEO TRAINING — Landing Page Styles
   ---------------------------------------------------------------------
   Mobile-first. All breakpoints use min-width media queries.

   QUICK EDITS:
   - Colours .............. see :root below (--blue, --violet, --gold)
   - Fonts ................ --f-display / --f-body in :root
   - Max page width ....... --maxw in :root
   - Corner radius ........ --r / --r-sm in :root

   SECTION MAP:
   1.  TOKENS              2.  TYPE
   3.  GLOW / BACKDROP     4.  BUTTONS
   5.  PILLS / BADGES      6.  PRICE
   7.  HERO                8.  PROBLEM
   9.  GRID CARDS          10. VALUE STACK
   11. FOR / NOT FOR       12. FAQ
   13. FINAL CTA           14. FOOTER
   15. STICKY MOBILE CTA   16. REVEAL

   BREAKPOINTS USED:
   560px / 620px / 640px / 700px / 768px / 860px / 960px
   ===================================================================== */

/* =====================================================
   TOKENS
   ===================================================== */
:root{
  --ink:#06060C;
  --ink-2:#0B0B15;
  --panel:#11111F;
  --panel-2:#171729;
  --line:rgba(255,255,255,.10);
  --line-2:rgba(255,255,255,.18);

  --blue:#2E7CF6;
  --violet:#8B5CF6;
  --cyan:#22D3EE;
  --gold:#FFC94A;
  --green:#34D399;
  --red:#F87171;

  --text:#F3F4F8;
  --muted:#9CA3B4;
  --muted-2:#6F778A;

  --grad:linear-gradient(115deg,#2E7CF6 0%,#6D5DF6 48%,#A855F7 100%);
  --grad-soft:linear-gradient(115deg,rgba(46,124,246,.16),rgba(168,85,247,.16));

  --f-display:"Sora","Segoe UI",system-ui,sans-serif;
  --f-body:"Inter","Segoe UI",system-ui,sans-serif;

  --maxw:1120px;
  --r:18px;
  --r-sm:12px;
  color-scheme:dark;
}
:root:not([data-theme="light"]){color-scheme:dark;}
:root[data-theme="dark"]{color-scheme:dark;}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

body{
  margin:0;
  background:var(--ink);
  color:var(--text);
  font-family:var(--f-body);
  font-size:16px;
  line-height:1.68;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  padding-bottom:84px; /* room for sticky mobile CTA */
}
@media (min-width:860px){ body{padding-bottom:0;} }

a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
::selection{background:var(--violet);color:#fff;}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px;}

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 20px;}
@media (min-width:768px){ .wrap{padding:0 32px;} }

section{position:relative;}
.band{padding:62px 0;}
@media (min-width:768px){ .band{padding:92px 0;} }
.band--alt{background:var(--ink-2);}
.band--panel{background:linear-gradient(180deg,var(--ink) 0%,#0C0C18 100%);}

/* =====================================================
   TYPE
   ===================================================== */
h1,h2,h3,h4{font-family:var(--f-display);letter-spacing:-.025em;margin:0 0 14px;line-height:1.1;}
h1{font-size:clamp(2rem,7.6vw,3.9rem);font-weight:800;line-height:1.04;}
h2{font-size:clamp(1.65rem,5.4vw,2.7rem);font-weight:700;}
h3{font-size:clamp(1.08rem,3.4vw,1.3rem);font-weight:600;}
p{margin:0 0 16px;}
.lede{font-size:clamp(1rem,2.6vw,1.16rem);color:#D6D9E3;}
.muted{color:var(--muted);}
.small{font-size:14px;}
.center{text-align:center;}
.grad-text{
  background:var(--grad);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.eyebrow{
  display:inline-block;font-family:var(--f-body);font-size:12.5px;font-weight:600;
  letter-spacing:.06em;color:var(--cyan);margin-bottom:14px;
}
.section-head{max-width:720px;margin-bottom:34px;}
.section-head.center{margin-left:auto;margin-right:auto;}

/* =====================================================
   GLOW / BACKDROP
   ===================================================== */
.glow{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none;z-index:0;opacity:.5;}
.glow-a{width:440px;height:440px;background:rgba(46,124,246,.45);top:-140px;left:-130px;}
.glow-b{width:400px;height:400px;background:rgba(168,85,247,.38);top:120px;right:-160px;}

/* =====================================================
   BUTTONS
   ===================================================== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--f-body);font-weight:700;font-size:16px;line-height:1.25;
  padding:18px 26px;border-radius:14px;border:1px solid transparent;
  min-height:56px;width:100%;text-align:center;cursor:pointer;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease;
}
@media (min-width:620px){ .btn{width:auto;} }
.btn-primary{
  background:var(--grad);color:#fff;
  box-shadow:0 10px 34px rgba(90,80,246,.38);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 42px rgba(90,80,246,.5);}
.btn-primary:active{transform:translateY(0);}
.btn-ghost{background:rgba(255,255,255,.04);border-color:var(--line-2);color:var(--text);}
.btn-ghost:hover{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.07);}
.btn-sub{display:block;font-size:13.5px;color:var(--muted);margin-top:12px;}

.cta-block{margin-top:30px;}
.cta-row{display:flex;flex-direction:column;gap:12px;}
@media (min-width:620px){ .cta-row{flex-direction:row;flex-wrap:wrap;align-items:center;} }

/* =====================================================
   PILLS / BADGES
   ===================================================== */
.pill{
  display:inline-flex;align-items:center;gap:9px;
  padding:8px 15px;border-radius:999px;
  background:rgba(255,255,255,.05);border:1px solid var(--line-2);
  font-size:12.5px;font-weight:600;color:#D8DCE8;letter-spacing:.02em;
}
.pill .ping{
  width:8px;height:8px;border-radius:50%;background:var(--green);flex:none;
  box-shadow:0 0 0 0 rgba(52,211,153,.6);animation:ping 2.4s infinite;
}
@keyframes ping{
  0%{box-shadow:0 0 0 0 rgba(52,211,153,.55);}
  70%{box-shadow:0 0 0 9px rgba(52,211,153,0);}
  100%{box-shadow:0 0 0 0 rgba(52,211,153,0);}
}
@media (prefers-reduced-motion:reduce){ .ping{animation:none;} }

/* =====================================================
   PRICE
   ===================================================== */
.price-line{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:22px 0 4px;}
.price-old{font-size:1.25rem;color:var(--muted-2);text-decoration:line-through;font-weight:500;}
.price-new{
  font-family:var(--f-display);font-weight:800;line-height:1;
  font-size:clamp(2.6rem,10vw,3.5rem);color:var(--gold);letter-spacing:-.03em;
}
.price-tag{font-size:13px;font-weight:700;color:var(--ink);background:var(--gold);padding:5px 11px;border-radius:7px;letter-spacing:.02em;}

/* =====================================================
   HERO
   ===================================================== */
.hero{
  position:relative;overflow:hidden;
  padding:54px 0 62px;
  background:
    radial-gradient(90% 60% at 50% -10%, rgba(109,93,246,.22) 0%, rgba(6,6,12,0) 70%),
    var(--ink);
}
@media (min-width:768px){ .hero{padding:78px 0 92px;} }
.hero .wrap{position:relative;z-index:2;}
.hero h1{margin:16px 0 18px;}
.hero .lede{max-width:56ch;}
.hero-points{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:10px;}
.hero-points li{display:flex;gap:11px;align-items:flex-start;font-size:15.2px;color:#CDD2DF;}
.hero-points .tick{color:var(--green);flex:none;font-weight:700;}
.hero-strip{
  margin-top:34px;display:flex;flex-wrap:wrap;gap:9px;
}
.chip{
  font-size:12.5px;padding:7px 13px;border-radius:999px;
  background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--muted);
}

/* =====================================================
   PROBLEM
   ===================================================== */
.problem-list{list-style:none;padding:0;margin:0;display:grid;gap:12px;}
.problem-list li{
  display:flex;gap:13px;align-items:flex-start;
  padding:16px 18px;border-radius:var(--r-sm);
  background:rgba(248,113,113,.05);border:1px solid rgba(248,113,113,.16);
  font-size:15.2px;color:#D3D7E2;
}
.problem-list .x{color:var(--red);flex:none;font-weight:700;}
.pivot{
  margin-top:30px;padding:24px;border-radius:var(--r);
  background:var(--grad-soft);border:1px solid rgba(139,92,246,.3);
}
.pivot p:last-child{margin-bottom:0;}

/* =====================================================
   GRID CARDS
   ===================================================== */
.grid{display:grid;gap:14px;}
.grid-2{grid-template-columns:1fr;}
.grid-3{grid-template-columns:1fr;}
@media (min-width:640px){
  .grid-2{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:960px){
  .grid-3{grid-template-columns:repeat(3,1fr);}
}
.card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:22px 20px;
  transition:border-color .18s ease,transform .18s ease;
}
.card:hover{border-color:var(--line-2);}
.card h3{margin-bottom:7px;}
.card p{font-size:14.8px;color:var(--muted);margin:0;}
.card .ico{font-size:24px;line-height:1;margin-bottom:13px;display:block;}

/* =====================================================
   VALUE STACK
   ===================================================== */
.stack{
  background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r);
  overflow:hidden;max-width:660px;margin:0 auto;
}
.stack-row{
  display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  padding:18px 20px;border-bottom:1px solid var(--line);
}
.stack-row span:first-child{font-size:15px;color:#D5D9E4;}
.stack-row span:last-child{font-family:var(--f-display);font-weight:600;font-size:15px;color:var(--muted);white-space:nowrap;}
.stack-total{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:18px 20px;background:rgba(255,255,255,.04);border-bottom:1px solid var(--line);
}
.stack-total span:first-child{font-family:var(--f-display);font-weight:700;font-size:16px;}
.stack-total span:last-child{font-family:var(--f-display);font-weight:700;font-size:17px;color:var(--muted-2);text-decoration:line-through;}
.stack-today{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:22px 20px;background:var(--grad-soft);
}
.stack-today span:first-child{font-family:var(--f-display);font-weight:700;font-size:16px;}
.stack-today span:last-child{font-family:var(--f-display);font-weight:800;font-size:2rem;color:var(--gold);line-height:1;}

/* =====================================================
   FOR / NOT FOR
   ===================================================== */
.fit{
  border-radius:var(--r);padding:24px 22px;border:1px solid var(--line);
  background:var(--panel);
}
.fit.yes{border-color:rgba(52,211,153,.28);background:rgba(52,211,153,.045);}
.fit.no{border-color:rgba(248,113,113,.26);background:rgba(248,113,113,.04);}
.fit h3{margin-bottom:16px;}
.fit ul{list-style:none;padding:0;margin:0;display:grid;gap:11px;}
.fit li{display:flex;gap:11px;align-items:flex-start;font-size:15px;color:#CDD2DF;}
.fit .mark{flex:none;font-weight:700;}
.fit.yes .mark{color:var(--green);}
.fit.no .mark{color:var(--red);}

/* =====================================================
   FAQ
   ===================================================== */
.faq{max-width:780px;margin:0 auto;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item:first-child{border-top:1px solid var(--line);}
.faq-q{
  width:100%;background:none;border:none;color:var(--text);
  font-family:var(--f-body);font-size:16px;font-weight:600;text-align:left;
  padding:20px 46px 20px 0;cursor:pointer;position:relative;line-height:1.45;
  min-height:60px;
}
.faq-q::after{
  content:"";position:absolute;right:8px;top:50%;width:11px;height:11px;
  border-right:2px solid var(--cyan);border-bottom:2px solid var(--cyan);
  transform:translateY(-70%) rotate(45deg);transition:transform .22s ease;
}
.faq-item.open .faq-q::after{transform:translateY(-30%) rotate(-135deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .28s ease;}
@media (prefers-reduced-motion:reduce){ .faq-a{transition:none;} }
.faq-a p{font-size:15px;color:var(--muted);padding-bottom:20px;margin:0;max-width:64ch;}

/* =====================================================
   FINAL CTA
   ===================================================== */
.final{
  position:relative;overflow:hidden;text-align:center;
  padding:72px 0 86px;
  background:radial-gradient(85% 70% at 50% 0%, rgba(109,93,246,.26) 0%, rgba(6,6,12,0) 72%), var(--ink-2);
}
.final .wrap{position:relative;z-index:2;}
.final h2{max-width:18ch;margin-left:auto;margin-right:auto;}
.final-lines{margin:20px auto 26px;max-width:40ch;}
.final-lines p{font-size:clamp(1.05rem,3.4vw,1.3rem);color:#D6DAE5;margin:0 0 6px;font-family:var(--f-display);font-weight:600;}
.final .price-line{justify-content:center;}
.final .cta-row{justify-content:center;}

/* =====================================================
   FOOTER
   ===================================================== */
footer{padding:34px 0 40px;border-top:1px solid var(--line);background:var(--ink);}
footer .wrap{display:flex;flex-direction:column;gap:12px;text-align:center;}
@media (min-width:700px){ footer .wrap{flex-direction:row;justify-content:space-between;text-align:left;} }
footer p{font-size:13.4px;color:var(--muted-2);margin:0;}

/* =====================================================
   VIDEO SHOWCASE (added — matches existing .card/.grid tokens)
   ===================================================== */
.video-card{
  padding:0;
  overflow:hidden;
}
.showcase-video{
  display:block;
  width:100%;
  aspect-ratio:9/16;
  max-height:520px;
  object-fit:cover;
  background:var(--panel);
  border-radius:var(--r);
}

/* =====================================================
   STICKY MOBILE CTA
   ===================================================== */
.sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  padding:11px 16px calc(11px + env(safe-area-inset-bottom));
  background:rgba(8,8,16,.93);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-top:1px solid var(--line-2);
  display:flex;align-items:center;gap:13px;
  transform:translateY(110%);transition:transform .3s ease;
}
.sticky.show{transform:translateY(0);}
@media (prefers-reduced-motion:reduce){ .sticky{transition:none;} }
.sticky-price{flex:none;line-height:1.15;}
.sticky-price b{display:block;font-family:var(--f-display);font-size:19px;font-weight:800;color:var(--gold);}
.sticky-price s{font-size:11.5px;color:var(--muted-2);}
.sticky .btn{flex:1;padding:14px 16px;font-size:14.5px;min-height:50px;}
@media (min-width:860px){ .sticky{display:none;} }

/* =====================================================
   REVEAL
   ===================================================== */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
}
