/* =========================================================================
   Relvage — Shared cinematic design layer (all pages except paycheck-control)
   Scopes:
     .cine        -> premium visual styling (buttons, cards, heroes, aurora)
     .cine-motion -> pages driven by the cinematic engine in home.js
   Brand preserved: purple #5E17EB, Playfair Display + Inter, glass aesthetic.
   Loaded after styles.css.
   ========================================================================= */

.cine {
  --home-ink: #15101f;
  --home-violet: #5e17eb;
  --home-violet-deep: #3a0fa0;
  --home-glow: rgba(94, 23, 235, 0.16);
  --home-card: rgba(255, 255, 255, 0.72);
  --home-card-strong: rgba(255, 255, 255, 0.9);
  --home-hairline: rgba(94, 23, 235, 0.16);
  --home-radius-xl: 28px;
  --home-shadow-soft: 0 24px 60px rgba(20, 12, 40, 0.1);
  --home-shadow-lift: 0 32px 70px rgba(64, 18, 160, 0.18);
}

/* ---- Ambient aurora background -------------------------------------------- */
.cine {
  position: relative;
  background:
    radial-gradient(1100px 620px at 82% -8%, rgba(94, 23, 235, 0.12), transparent 60%),
    radial-gradient(900px 600px at -10% 12%, rgba(94, 23, 235, 0.08), transparent 55%),
    var(--surface);
}

.cine::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(680px 680px at 12% 78%, rgba(101, 44, 214, 0.07), transparent 60%),
    radial-gradient(560px 560px at 95% 60%, rgba(94, 23, 235, 0.06), transparent 60%);
}

/* ---- Cinematic reveal: hide targets before JS animates them ---------------
   Only active on .cine-motion pages with <html class="cinematic"> (set by an
   inline head script that first checks prefers-reduced-motion). If GSAP fails,
   home.js removes the class so everything shows. */
html.cinematic .cine-motion .page-hero > .eyebrow,
html.cinematic .cine-motion .page-hero > .danger-pill,
html.cinematic .cine-motion .page-hero > .pill,
html.cinematic .cine-motion .page-hero > h1,
html.cinematic .cine-motion .page-hero > p,
html.cinematic .cine-motion .page-hero .center-copy > *,
html.cinematic .cine-motion .contact-hero .center-copy > *,
html.cinematic .cine-motion .contact-hero .contact-form,
html.cinematic .cine-motion .section-heading > *,
html.cinematic .cine-motion .center-copy > *,
html.cinematic .cine-motion .proof-label,
html.cinematic .cine-motion .glass-card,
html.cinematic .cine-motion .glass-panel,
html.cinematic .cine-motion .timeline-card,
html.cinematic .cine-motion .partner-grid article,
html.cinematic .cine-motion .matrix-grid article,
html.cinematic .cine-motion .price-card,
html.cinematic .cine-motion .combo-panel,
html.cinematic .cine-motion .metric,
html.cinematic .cine-motion .process-step,
html.cinematic .cine-motion .homepage-visual,
html.cinematic .cine-motion .proof-logo {
  opacity: 0;
}

/* ---- Skip link ------------------------------------------------------------ */
.skip-link {
  position: fixed;
  top: -120px;
  left: 16px;
  z-index: 200;
  padding: 12px 20px;
  border-radius: 999px;
  background: var(--home-violet);
  color: #fff;
  font-weight: 700;
  box-shadow: 0 10px 30px rgba(94, 23, 235, 0.4);
  transition: top var(--duration-hover) var(--ease-premium);
}

.skip-link:focus {
  top: 16px;
}

/* ---- Section rhythm + eyebrows -------------------------------------------- */
.cine .section-block {
  padding-block: 96px;
}

/* Editorial kicker: a short rule + uppercase, letter-spaced label (no pill). */
.cine .eyebrow,
.cine .pill,
.cine .danger-pill {
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--home-ink);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2em;
}

.cine .eyebrow::before,
.cine .pill::before,
.cine .danger-pill::before {
  content: "";
  flex: none;
  width: 40px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--home-violet), rgba(94, 23, 235, 0.15));
}

/* Dark surfaces need a light label + light rule */
.cine .cta-band .eyebrow,
.cine .price-card .eyebrow {
  color: rgba(255, 255, 255, 0.92);
}

.cine .cta-band .eyebrow::before,
.cine .price-card .eyebrow::before {
  background: linear-gradient(90deg, #c4b5fd, rgba(196, 181, 253, 0.2));
}

.cine .section-heading h2 {
  font-size: clamp(34px, 4.6vw, 50px);
  letter-spacing: -0.01em;
}

.cine .section-heading p {
  color: var(--muted);
}

/* ---- Page heroes ---------------------------------------------------------- */
.cine .page-hero {
  padding-block: 80px 52px;
}

.cine .page-hero h1,
.cine .contact-hero h1 {
  font-size: clamp(40px, 5.6vw, 66px);
  letter-spacing: -0.02em;
  line-height: 1.04;
}

.cine .page-hero > .eyebrow,
.cine .page-hero > .danger-pill,
.cine .page-hero .center-copy > .eyebrow,
.cine .contact-hero .center-copy > .eyebrow {
  margin-bottom: 20px;
}

.cine .page-hero > p,
.cine .page-hero .center-copy > p,
.cine .contact-hero .center-copy > p {
  font-size: 19px;
  line-height: 1.65;
}

/* ---- Buttons -------------------------------------------------------------- */
.cine .button {
  min-height: 54px;
  border-radius: 14px;
  background: linear-gradient(135deg, #6a25f0, #5500ff);
  box-shadow: 0 14px 30px rgba(85, 0, 255, 0.24);
  letter-spacing: 0.01em;
}

.cine .button:hover {
  box-shadow: 0 20px 44px rgba(85, 0, 255, 0.34), 0 0 0 1px rgba(94, 23, 235, 0.3);
}

.cine .button-secondary {
  background: rgba(255, 255, 255, 0.7);
  border-color: var(--home-hairline);
  color: var(--home-violet);
  box-shadow: 0 10px 26px rgba(20, 12, 40, 0.06);
  backdrop-filter: blur(10px);
}

.cine .button-secondary:hover {
  background: rgba(94, 23, 235, 0.08);
  border-color: rgba(94, 23, 235, 0.4);
}

/* ---- Card category tags (editorial outline chip) -------------------------- */
.cine .number-tag {
  padding: 6px 12px;
  border: 1px solid rgba(94, 23, 235, 0.35);
  border-radius: 6px;
  background: none;
  color: var(--home-violet);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
}

/* ---- Feature icon tile ---------------------------------------------------- */
.cine .feature-icon {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  margin-bottom: 24px;
  border-radius: 16px;
  border: 1px solid var(--home-hairline);
  background: linear-gradient(150deg, rgba(94, 23, 235, 0.14), rgba(94, 23, 235, 0.04));
  color: var(--home-violet);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
  transition: transform var(--duration-hover) var(--ease-premium),
    box-shadow var(--duration-hover) var(--ease-premium);
}

.cine .feature-icon svg {
  width: 27px;
  height: 27px;
}

.cine .feature-icon-sm {
  flex: none;
  width: 44px;
  height: 44px;
  margin-bottom: 0;
  border-radius: 12px;
}

.cine .feature-icon-sm svg {
  width: 22px;
  height: 22px;
}

/* ---- Glass cards ---------------------------------------------------------- */
.cine .glass-card {
  isolation: isolate;
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 22px;
  background: var(--home-card);
  box-shadow: var(--home-shadow-soft);
  transition: transform var(--duration-hover) var(--ease-premium),
    box-shadow var(--duration-hover) var(--ease-premium),
    border-color var(--duration-hover) var(--ease-premium);
}

.cine .glass-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  z-index: 2;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(94, 23, 235, 0.45), transparent);
  opacity: 0.7;
}

/* Cursor-follow spotlight (position fed by home.js; sits below content) */
.cine .glass-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(
    280px circle at var(--mx, 50%) var(--my, 0%),
    rgba(94, 23, 235, 0.14),
    transparent 62%
  );
  opacity: 0;
  transition: opacity 320ms var(--ease-premium);
}

.cine .glass-card:hover::after {
  opacity: 1;
}

.cine .glass-card:hover {
  transform: translateY(-6px);
  border-color: rgba(94, 23, 235, 0.32);
  box-shadow: var(--home-shadow-lift);
}

.cine .glass-card:hover .feature-icon {
  transform: translateY(-3px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 12px 26px rgba(94, 23, 235, 0.22);
}

/* ---- Media network -------------------------------------------------------- */
.cine .proof-section {
  background: rgba(255, 255, 255, 0.5);
  border-block: 1px solid var(--home-hairline);
}

.cine .proof-logo {
  border: 1px solid rgba(20, 12, 40, 0.06);
  border-radius: 14px;
  box-shadow: 0 10px 26px rgba(20, 12, 40, 0.05);
  transition: transform var(--duration-hover) var(--ease-premium),
    box-shadow var(--duration-hover) var(--ease-premium);
}

.cine .proof-logo img {
  filter: none;
}

.cine .proof-logo:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(94, 23, 235, 0.14);
}

/* ---- FAQ ------------------------------------------------------------------ */
.cine .faq-panel {
  padding: 56px;
  border-radius: var(--home-radius-xl);
}

.cine .faq-grid details {
  border-radius: 18px;
  transition: border-color var(--duration-hover) var(--ease-premium),
    background var(--duration-hover) var(--ease-premium);
}

.cine .faq-grid details[open] {
  border-color: rgba(94, 23, 235, 0.3);
  background: rgba(94, 23, 235, 0.04);
}

/* ---- CTA band ------------------------------------------------------------- */
.cine .cta-band {
  padding-block: 110px;
}

.cine .cta-band::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(620px 320px at 50% 0%, rgba(124, 58, 237, 0.34), transparent 60%);
  opacity: 0.85;
  pointer-events: none;
}

.cine .cta-band h2 {
  font-size: clamp(32px, 4.6vw, 52px);
}

.cine .cta-band .button {
  margin-top: 12px;
  background: linear-gradient(135deg, #7c3aed, #5500ff);
}

/* ---- Responsive ----------------------------------------------------------- */
@media (max-width: 680px) {
  .cine .section-block {
    padding-block: 64px;
  }

  .cine .faq-panel {
    padding: 32px 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .skip-link {
    transition: none;
  }
}
