@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Playfair+Display:ital,wght@0,400;0,700;1,400;1,700&display=swap');

/* =========================================================
   TAPLINK — PROFESSIONAL DESIGN SYSTEM v2
   Themes: slate · obsidian · forest · crimson · midnight
   ========================================================= */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
body { font-family: 'Inter', system-ui, -apple-system, sans-serif; font-size: 16px; line-height: 1.6; transition: background-color .3s, color .3s; }

/* ── Typography ── */
.font-display { font-family: 'Playfair Display', Georgia, serif; }

/* =========================================================
   THEME TOKENS
   ========================================================= */

/* SLATE — Clean professional blue-grey */
[data-theme="slate"], :root {
  --c-brand:        #2563EB;
  --c-brand-dark:   #1D4ED8;
  --c-brand-deeper: #1E40AF;
  --c-accent:       #0EA5E9;
  --c-accent-light: #E0F2FE;

  --c-bg:           #FFFFFF;
  --c-bg-subtle:    #F8FAFC;
  --c-bg-muted:     #F1F5F9;
  --c-bg-emphasis:  #E2E8F0;

  --c-surface:      #FFFFFF;
  --c-surface-raised: #FFFFFF;

  --c-border:       #E2E8F0;
  --c-border-strong: #CBD5E1;

  --c-text-primary:   #0F172A;
  --c-text-secondary: #475569;
  --c-text-muted:     #94A3B8;
  --c-text-inverse:   #FFFFFF;

  --c-nav-bg:     rgba(255,255,255,0.85);
  --c-nav-border: rgba(226,232,240,0.8);

  --grad-brand:   linear-gradient(135deg, #2563EB 0%, #0EA5E9 100%);
  --grad-subtle:  linear-gradient(160deg, #F8FAFC 0%, #FFFFFF 50%, #EFF6FF 100%);
  --grad-card:    linear-gradient(145deg, #FFFFFF 0%, #F8FAFC 100%);
  --grad-hero-glow: radial-gradient(ellipse 80% 60% at 60% 30%, rgba(37,99,235,.07) 0%, transparent 70%);

  --shadow-xs:  0 1px 2px rgba(0,0,0,.04);
  --shadow-sm:  0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md:  0 4px 6px rgba(0,0,0,.05), 0 2px 4px rgba(0,0,0,.04);
  --shadow-lg:  0 10px 15px rgba(0,0,0,.06), 0 4px 6px rgba(0,0,0,.04);
  --shadow-xl:  0 20px 25px rgba(0,0,0,.07), 0 8px 10px rgba(0,0,0,.04);
  --shadow-brand: 0 8px 24px rgba(37,99,235,.22);
  --shadow-card-hover: 0 16px 32px rgba(37,99,235,.12), 0 4px 8px rgba(0,0,0,.06);

  --radius-xs: 4px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 9999px;

  --pricing-popular-glow: 0 0 0 2px #2563EB, 0 16px 40px rgba(37,99,235,.18);
}

/* OBSIDIAN — Sophisticated dark */
[data-theme="obsidian"] {
  --c-brand:        #818CF8;
  --c-brand-dark:   #6366F1;
  --c-brand-deeper: #4F46E5;
  --c-accent:       #34D399;
  --c-accent-light: #064E3B;

  --c-bg:           #0A0A0F;
  --c-bg-subtle:    #111118;
  --c-bg-muted:     #18181F;
  --c-bg-emphasis:  #222230;

  --c-surface:      #111118;
  --c-surface-raised: #18181F;

  --c-border:       #1E1E2E;
  --c-border-strong: #2D2D42;

  --c-text-primary:   #F1F5FF;
  --c-text-secondary: #94A3B8;
  --c-text-muted:     #475569;
  --c-text-inverse:   #0A0A0F;

  --c-nav-bg:     rgba(10,10,15,0.88);
  --c-nav-border: rgba(30,30,46,0.9);

  --grad-brand:   linear-gradient(135deg, #6366F1 0%, #34D399 100%);
  --grad-subtle:  linear-gradient(160deg, #111118 0%, #0A0A0F 50%, #0D0D18 100%);
  --grad-card:    linear-gradient(145deg, #18181F 0%, #111118 100%);
  --grad-hero-glow: radial-gradient(ellipse 80% 60% at 60% 30%, rgba(99,102,241,.1) 0%, transparent 70%);

  --shadow-xs:  0 1px 2px rgba(0,0,0,.4);
  --shadow-sm:  0 1px 3px rgba(0,0,0,.5), 0 1px 2px rgba(0,0,0,.4);
  --shadow-md:  0 4px 6px rgba(0,0,0,.4), 0 2px 4px rgba(0,0,0,.3);
  --shadow-lg:  0 10px 15px rgba(0,0,0,.5), 0 4px 6px rgba(0,0,0,.4);
  --shadow-xl:  0 20px 25px rgba(0,0,0,.6), 0 8px 10px rgba(0,0,0,.5);
  --shadow-brand: 0 8px 24px rgba(99,102,241,.3);
  --shadow-card-hover: 0 16px 32px rgba(99,102,241,.15), 0 4px 8px rgba(0,0,0,.4);

  --radius-xs: 4px; --radius-sm: 8px; --radius-md: 12px;
  --radius-lg: 16px; --radius-xl: 24px; --radius-full: 9999px;
  --pricing-popular-glow: 0 0 0 2px #6366F1, 0 16px 40px rgba(99,102,241,.25);
}

/* FOREST — Organic premium green */
[data-theme="forest"] {
  --c-brand:        #059669;
  --c-brand-dark:   #047857;
  --c-brand-deeper: #065F46;
  --c-accent:       #F59E0B;
  --c-accent-light: #FEF3C7;

  --c-bg:           #FFFFFF;
  --c-bg-subtle:    #F7FDF9;
  --c-bg-muted:     #ECFDF5;
  --c-bg-emphasis:  #D1FAE5;

  --c-surface:      #FFFFFF;
  --c-surface-raised: #FFFFFF;

  --c-border:       #D1FAE5;
  --c-border-strong: #A7F3D0;

  --c-text-primary:   #022C22;
  --c-text-secondary: #065F46;
  --c-text-muted:     #6EE7B7;

  --c-nav-bg:     rgba(255,255,255,0.88);
  --c-nav-border: rgba(209,250,229,0.8);

  --grad-brand:   linear-gradient(135deg, #059669 0%, #F59E0B 100%);
  --grad-subtle:  linear-gradient(160deg, #F7FDF9 0%, #FFFFFF 50%, #FFFBEB 100%);
  --grad-card:    linear-gradient(145deg, #FFFFFF 0%, #F7FDF9 100%);
  --grad-hero-glow: radial-gradient(ellipse 80% 60% at 60% 30%, rgba(5,150,105,.07) 0%, transparent 70%);

  --shadow-xs:  0 1px 2px rgba(5,150,105,.06);
  --shadow-sm:  0 1px 3px rgba(5,150,105,.08), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md:  0 4px 6px rgba(5,150,105,.07), 0 2px 4px rgba(0,0,0,.04);
  --shadow-lg:  0 10px 15px rgba(5,150,105,.08), 0 4px 6px rgba(0,0,0,.04);
  --shadow-xl:  0 20px 25px rgba(5,150,105,.1), 0 8px 10px rgba(0,0,0,.04);
  --shadow-brand: 0 8px 24px rgba(5,150,105,.25);
  --shadow-card-hover: 0 16px 32px rgba(5,150,105,.14), 0 4px 8px rgba(0,0,0,.06);

  --radius-xs: 4px; --radius-sm: 8px; --radius-md: 12px;
  --radius-lg: 16px; --radius-xl: 24px; --radius-full: 9999px;
  --pricing-popular-glow: 0 0 0 2px #059669, 0 16px 40px rgba(5,150,105,.2);
}

/* CRIMSON — Executive bold red */
[data-theme="crimson"] {
  --c-brand:        #DC2626;
  --c-brand-dark:   #B91C1C;
  --c-brand-deeper: #991B1B;
  --c-accent:       #F97316;
  --c-accent-light: #FFF7ED;

  --c-bg:           #FFFFFF;
  --c-bg-subtle:    #FFF5F5;
  --c-bg-muted:     #FEF2F2;
  --c-bg-emphasis:  #FECACA;

  --c-surface:      #FFFFFF;
  --c-surface-raised: #FFFFFF;

  --c-border:       #FECACA;
  --c-border-strong: #FCA5A5;

  --c-text-primary:   #1C0A0A;
  --c-text-secondary: #78180E;
  --c-text-muted:     #FCA5A5;

  --c-nav-bg:     rgba(255,255,255,0.88);
  --c-nav-border: rgba(254,202,202,0.8);

  --grad-brand:   linear-gradient(135deg, #DC2626 0%, #F97316 100%);
  --grad-subtle:  linear-gradient(160deg, #FFF5F5 0%, #FFFFFF 50%, #FFF7ED 100%);
  --grad-card:    linear-gradient(145deg, #FFFFFF 0%, #FFF5F5 100%);
  --grad-hero-glow: radial-gradient(ellipse 80% 60% at 60% 30%, rgba(220,38,38,.07) 0%, transparent 70%);

  --shadow-xs:  0 1px 2px rgba(220,38,38,.06);
  --shadow-sm:  0 1px 3px rgba(220,38,38,.08), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md:  0 4px 6px rgba(220,38,38,.07), 0 2px 4px rgba(0,0,0,.04);
  --shadow-lg:  0 10px 15px rgba(220,38,38,.08), 0 4px 6px rgba(0,0,0,.04);
  --shadow-xl:  0 20px 25px rgba(220,38,38,.1), 0 8px 10px rgba(0,0,0,.04);
  --shadow-brand: 0 8px 24px rgba(220,38,38,.3);
  --shadow-card-hover: 0 16px 32px rgba(220,38,38,.14), 0 4px 8px rgba(0,0,0,.06);

  --radius-xs: 4px; --radius-sm: 8px; --radius-md: 12px;
  --radius-lg: 16px; --radius-xl: 24px; --radius-full: 9999px;
  --pricing-popular-glow: 0 0 0 2px #DC2626, 0 16px 40px rgba(220,38,38,.2);
}

/* MIDNIGHT — Deep luxury purple-dark */
[data-theme="midnight"] {
  --c-brand:        #C084FC;
  --c-brand-dark:   #A855F7;
  --c-brand-deeper: #9333EA;
  --c-accent:       #FB923C;
  --c-accent-light: #431407;

  --c-bg:           #07040F;
  --c-bg-subtle:    #0D0918;
  --c-bg-muted:     #130E20;
  --c-bg-emphasis:  #1D1630;

  --c-surface:      #0D0918;
  --c-surface-raised: #130E20;

  --c-border:       #1D1630;
  --c-border-strong: #2E2448;

  --c-text-primary:   #FAF5FF;
  --c-text-secondary: #A78BFA;
  --c-text-muted:     #4C3B72;

  --c-nav-bg:     rgba(7,4,15,0.9);
  --c-nav-border: rgba(29,22,48,0.9);

  --grad-brand:   linear-gradient(135deg, #A855F7 0%, #FB923C 100%);
  --grad-subtle:  linear-gradient(160deg, #0D0918 0%, #07040F 50%, #0F0918 100%);
  --grad-card:    linear-gradient(145deg, #130E20 0%, #0D0918 100%);
  --grad-hero-glow: radial-gradient(ellipse 80% 60% at 60% 30%, rgba(168,85,247,.12) 0%, transparent 70%);

  --shadow-xs:  0 1px 2px rgba(0,0,0,.5);
  --shadow-sm:  0 1px 3px rgba(0,0,0,.6), 0 1px 2px rgba(0,0,0,.5);
  --shadow-md:  0 4px 6px rgba(0,0,0,.5), 0 2px 4px rgba(0,0,0,.4);
  --shadow-lg:  0 10px 15px rgba(0,0,0,.6), 0 4px 6px rgba(0,0,0,.5);
  --shadow-xl:  0 20px 25px rgba(0,0,0,.7), 0 8px 10px rgba(0,0,0,.6);
  --shadow-brand: 0 8px 24px rgba(168,85,247,.35);
  --shadow-card-hover: 0 16px 32px rgba(168,85,247,.2), 0 4px 8px rgba(0,0,0,.5);

  --radius-xs: 4px; --radius-sm: 8px; --radius-md: 12px;
  --radius-lg: 16px; --radius-xl: 24px; --radius-full: 9999px;
  --pricing-popular-glow: 0 0 0 2px #A855F7, 0 16px 40px rgba(168,85,247,.3);
}

/* =========================================================
   BASE ELEMENTS
   ========================================================= */
body { background: var(--c-bg); color: var(--c-text-primary); }

/* ── Navbar ── */
.nav-bar {
  position: sticky; top: 0; z-index: 1000;
  background: var(--c-nav-bg);
  border-bottom: 1px solid var(--c-nav-border);
  backdrop-filter: blur(24px) saturate(200%);
  -webkit-backdrop-filter: blur(24px) saturate(200%);
  transition: box-shadow .3s ease;
}
.nav-bar.shadow { box-shadow: var(--shadow-lg); }
.nav-inner { display: flex; align-items: center; height: 64px; gap: 2rem; }
.nav-logo {
  font-family: 'Playfair Display', serif;
  font-size: 1.5rem; font-weight: 700;
  color: var(--c-brand); letter-spacing: -0.02em;
  text-decoration: none; flex-shrink: 0;
}
.nav-logo span { color: var(--c-accent); font-style: italic; }
.nav-links { display: flex; list-style: none; gap: 0; margin: 0 auto; padding: 0; }
.nav-links a {
  display: block; padding: .45rem .85rem;
  font-size: .8125rem; font-weight: 500; letter-spacing: .01em;
  color: var(--c-text-secondary);
  text-decoration: none; border-radius: var(--radius-sm);
  transition: color .15s, background .15s;
}
.nav-links a:hover { color: var(--c-brand); background: color-mix(in srgb, var(--c-brand) 8%, transparent); }
.nav-actions { display: flex; align-items: center; gap: .75rem; flex-shrink: 0; }

/* ── Theme Switcher ── */
.theme-strip { display: flex; align-items: center; gap: 5px; }
.theme-btn {
  width: 20px; height: 20px; border-radius: 50%;
  border: 2px solid transparent; cursor: pointer;
  transition: transform .15s, border-color .15s;
  outline: none;
}
.theme-btn:hover, .theme-btn.active { border-color: var(--c-text-primary); transform: scale(1.25); }
.theme-btn[data-theme-target="slate"]    { background: conic-gradient(#2563EB 0 50%, #0EA5E9 50%); }
.theme-btn[data-theme-target="obsidian"] { background: conic-gradient(#6366F1 0 50%, #34D399 50%); }
.theme-btn[data-theme-target="forest"]   { background: conic-gradient(#059669 0 50%, #F59E0B 50%); }
.theme-btn[data-theme-target="crimson"]  { background: conic-gradient(#DC2626 0 50%, #F97316 50%); }
.theme-btn[data-theme-target="midnight"] { background: conic-gradient(#A855F7 0 50%, #FB923C 50%); }

/* ── Buttons ── */
.btn {
  display: inline-flex; align-items: center; gap: .45rem;
  border: none; cursor: pointer; font-family: 'Inter', sans-serif;
  font-weight: 600; letter-spacing: .01em; text-decoration: none;
  transition: all .2s ease; white-space: nowrap;
}
.btn-primary {
  background: var(--grad-brand); color: #fff;
  padding: .65rem 1.5rem; border-radius: var(--radius-full);
  font-size: .875rem; box-shadow: var(--shadow-brand);
}
.btn-primary:hover { opacity: .92; transform: translateY(-1px); box-shadow: var(--shadow-xl); color: #fff; }
.btn-primary:active { transform: translateY(0); }
.btn-primary.lg { padding: .8rem 2rem; font-size: .9375rem; }
.btn-primary.xl { padding: 1rem 2.5rem; font-size: 1rem; }

.btn-ghost {
  background: transparent; color: var(--c-text-secondary);
  padding: .625rem 1.25rem; border-radius: var(--radius-full);
  font-size: .875rem; border: 1.5px solid var(--c-border-strong);
}
.btn-ghost:hover { background: var(--c-bg-subtle); color: var(--c-text-primary); border-color: var(--c-brand); }
.btn-ghost.lg { padding: .75rem 1.75rem; font-size: .9375rem; }
.btn-ghost.xl { padding: .9375rem 2.25rem; font-size: 1rem; }

/* ── Layout ── */
.section { padding: 5.5rem 0; }
.section-sm { padding: 4rem 0; }
.section-lg { padding: 7rem 0; }
.bg-subtle { background: var(--c-bg-subtle); }
.bg-muted  { background: var(--c-bg-muted); }
.bg-surface { background: var(--c-surface); }

/* ── Typography components ── */
.eyebrow {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .6875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--c-brand);
  background: color-mix(in srgb, var(--c-brand) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--c-brand) 20%, transparent);
  padding: .3rem .85rem; border-radius: var(--radius-full);
  margin-bottom: 1rem; user-select: none;
}
.heading-xl {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.5rem, 5.5vw, 4rem);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.02em;
  color: var(--c-text-primary);
}
.heading-xl em { font-style: italic; color: var(--c-brand); }
.heading-lg {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700; line-height: 1.12; letter-spacing: -0.02em;
  color: var(--c-text-primary);
}
.heading-lg em { font-style: italic; color: var(--c-brand); }
.heading-md {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.5rem, 2.8vw, 2rem);
  font-weight: 700; line-height: 1.2; letter-spacing: -0.015em;
  color: var(--c-text-primary);
}
.body-lg { font-size: 1.0625rem; line-height: 1.75; color: var(--c-text-secondary); }
.body-md { font-size: .9375rem; line-height: 1.7; color: var(--c-text-secondary); }
.body-sm { font-size: .8125rem; line-height: 1.65; color: var(--c-text-secondary); }

/* ── Cards ── */
.card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); border-color: color-mix(in srgb, var(--c-brand) 30%, transparent); }
.card-no-hover:hover { transform: none; box-shadow: none; border-color: var(--c-border); }

/* ── Feature card ── */
.feature-card { padding: 2rem; background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius-lg); transition: all .25s ease; position: relative; overflow: hidden; }
.feature-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--grad-brand); opacity: 0; transition: opacity .25s; }
.feature-card:hover::before { opacity: 1; }
.feature-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); border-color: color-mix(in srgb, var(--c-brand) 25%, transparent); }
.feature-icon { width: 48px; height: 48px; border-radius: var(--radius-md); background: color-mix(in srgb, var(--c-brand) 10%, transparent); display: flex; align-items: center; justify-content: center; margin-bottom: 1.25rem; }
.feature-icon i { font-size: 1.25rem; color: var(--c-brand); }
.feature-card h4 { font-size: .9375rem; font-weight: 700; color: var(--c-text-primary); margin-bottom: .5rem; letter-spacing: -0.01em; }
.feature-card p { font-size: .8125rem; color: var(--c-text-secondary); line-height: 1.65; }

/* ── Inputs ── */
.input {
  width: 100%; padding: .7rem 1rem; background: var(--c-bg-subtle);
  border: 1.5px solid var(--c-border); border-radius: var(--radius-sm);
  font-size: .9rem; font-family: inherit; color: var(--c-text-primary);
  outline: none; transition: border-color .15s, box-shadow .15s;
}
.input:focus { border-color: var(--c-brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-brand) 15%, transparent); background: var(--c-surface); }
.input::placeholder { color: var(--c-text-muted); }
.label { font-size: .8125rem; font-weight: 600; color: var(--c-text-primary); display: block; margin-bottom: .4rem; }
textarea.input { resize: vertical; }

/* ── Divider ── */
.divider { height: 1px; background: var(--c-border); }

/* ── Badge ── */
.badge { display: inline-flex; align-items: center; gap: .3rem; font-size: .6875rem; font-weight: 700; letter-spacing: .05em; padding: .25rem .65rem; border-radius: var(--radius-full); border: 1px solid; }
.badge-brand { color: var(--c-brand); background: color-mix(in srgb, var(--c-brand) 10%, transparent); border-color: color-mix(in srgb, var(--c-brand) 20%, transparent); }
.badge-accent { color: var(--c-accent); background: color-mix(in srgb, var(--c-accent) 10%, transparent); border-color: color-mix(in srgb, var(--c-accent) 20%, transparent); }
.badge-green { color: #059669; background: #ECFDF5; border-color: #A7F3D0; }
.badge-pop { background: var(--grad-brand); color: #fff; border: none; font-size: .7rem; }

/* ── Stat ── */
.stat-block { padding: 2rem 1.5rem; text-align: center; }
.stat-num { display: block; font-family: 'Playfair Display', serif; font-size: 2.75rem; font-weight: 700; color: var(--c-brand); line-height: 1; margin-bottom: .4rem; letter-spacing: -0.02em; }
.stat-label { font-size: .8125rem; font-weight: 500; color: var(--c-text-secondary); letter-spacing: .02em; }

/* ── Pricing ── */
.plan { background: var(--c-surface); border: 1.5px solid var(--c-border); border-radius: var(--radius-xl); padding: 2rem; transition: all .25s ease; position: relative; display: flex; flex-direction: column; }
.plan:hover { box-shadow: var(--shadow-lg); }
.plan.popular { box-shadow: var(--pricing-popular-glow); border-color: var(--c-brand); }
.plan-badge { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: var(--grad-brand); color: #fff; font-size: .6875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: .3rem 1.1rem; border-radius: var(--radius-full); white-space: nowrap; }
.plan-name { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--c-text-muted); margin-bottom: .75rem; }
.plan-price { font-family: 'Playfair Display', serif; font-size: 3rem; font-weight: 700; color: var(--c-text-primary); line-height: 1; letter-spacing: -0.02em; }
.plan-price sup { font-family: 'Inter', sans-serif; font-size: 1.1rem; vertical-align: top; margin-top: .6rem; font-weight: 600; }
.plan-price .freq { font-family: 'Inter', sans-serif; font-size: .875rem; color: var(--c-text-muted); font-weight: 400; }
.plan-feat { display: flex; align-items: flex-start; gap: .6rem; padding: .4rem 0; font-size: .875rem; color: var(--c-text-secondary); }
.plan-feat i { flex-shrink: 0; margin-top: .1rem; font-size: 1rem; }
.plan-feat i.ok { color: var(--c-accent); }
.plan-feat i.no { color: var(--c-border-strong); opacity: .5; }

/* ── FAQ ── */
.faq-list { border-top: 1px solid var(--c-border); }
.faq-item { border-bottom: 1px solid var(--c-border); }
.faq-toggle { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: 1.25rem 0; background: none; border: none; cursor: pointer; text-align: left; gap: 1.5rem; }
.faq-toggle span { font-size: .9375rem; font-weight: 600; color: var(--c-text-primary); }
.faq-toggle i { color: var(--c-brand); flex-shrink: 0; font-size: 1.1rem; transition: transform .3s ease; }
.faq-item.open .faq-toggle i { transform: rotate(45deg); }
.faq-body { max-height: 0; overflow: hidden; transition: max-height .38s ease, padding .28s; }
.faq-item.open .faq-body { max-height: 300px; padding-bottom: 1.25rem; }
.faq-body p { font-size: .9rem; color: var(--c-text-secondary); line-height: 1.75; }

/* ── Testimonial ── */
.testi { background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius-lg); padding: 1.75rem; }
.testi .stars { color: #F59E0B; font-size: .8125rem; letter-spacing: 2px; margin-bottom: 1rem; }
.testi blockquote { font-size: .9rem; color: var(--c-text-secondary); line-height: 1.75; margin-bottom: 1.25rem; font-style: italic; }
.testi-author { display: flex; align-items: center; gap: .75rem; }
.testi-avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--grad-brand); display: flex; align-items: center; justify-content: center; font-size: .75rem; font-weight: 700; color: #fff; flex-shrink: 0; }

/* ── Value grid ── */
.value-item { text-align: center; padding: 1.75rem 1.25rem; border: 1px solid var(--c-border); border-radius: var(--radius-lg); background: var(--c-surface); transition: all .2s ease; }
.value-item:hover { border-color: var(--c-brand); box-shadow: var(--shadow-md); transform: translateY(-2px); }
.value-item i { font-size: 1.75rem; color: var(--c-brand); display: block; margin-bottom: .75rem; }
.value-item strong { display: block; font-size: .875rem; font-weight: 700; color: var(--c-text-primary); margin-bottom: .3rem; }
.value-item span { font-size: .75rem; color: var(--c-text-muted); }

/* ── Solution tabs ── */
.sol-tabs { display: flex; flex-wrap: wrap; gap: .5rem; }
.sol-tab { padding: .5rem 1.1rem; border-radius: var(--radius-full); border: 1.5px solid var(--c-border-strong); background: var(--c-surface); color: var(--c-text-secondary); font-size: .8125rem; font-weight: 500; cursor: pointer; transition: all .15s ease; font-family: 'Inter', sans-serif; }
.sol-tab:hover { border-color: var(--c-brand); color: var(--c-brand); background: color-mix(in srgb, var(--c-brand) 5%, transparent); }
.sol-tab.active { background: var(--c-brand); border-color: var(--c-brand); color: #fff; }

/* ── Hero slider ── */
.slide-wrap { position: relative; min-height: 480px; }
.slide-item { position: absolute; top: 0; left: 0; width: 100%; opacity: 0; transform: translateX(20px); transition: opacity .5s ease, transform .5s ease; pointer-events: none; }
.slide-item.active { opacity: 1; transform: translateX(0); position: relative; pointer-events: auto; }
.slide-dots { display: flex; align-items: center; gap: 6px; margin-top: 2.5rem; }
.slide-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--c-border-strong); border: none; padding: 0; cursor: pointer; transition: all .3s ease; }
.slide-dot.active { background: var(--c-brand); width: 26px; border-radius: 4px; }

/* ── CTA strip ── */
.cta-strip { background: var(--grad-brand); border-radius: var(--radius-xl); padding: 5rem 4rem; text-align: center; position: relative; overflow: hidden; }
.cta-strip::before { content: ''; position: absolute; width: 600px; height: 600px; border-radius: 50%; background: rgba(255,255,255,.05); top: -200px; right: -200px; pointer-events: none; }
.cta-strip h2 { font-family: 'Playfair Display', serif; font-size: clamp(1.75rem, 3.5vw, 2.75rem); font-weight: 700; color: #fff; letter-spacing: -0.02em; margin-bottom: .875rem; }
.cta-strip p { font-size: 1.0625rem; color: rgba(255,255,255,.82); margin-bottom: 2.5rem; }
.btn-white { background: #fff; color: var(--c-brand); font-family: 'Inter', sans-serif; font-weight: 700; font-size: .9375rem; padding: .875rem 2.5rem; border-radius: var(--radius-full); display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; transition: all .2s ease; border: none; cursor: pointer; box-shadow: 0 4px 16px rgba(0,0,0,.15); }
.btn-white:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.2); opacity: .97; }

/* ── Footer ── */
.footer { background: var(--c-bg-subtle); border-top: 1px solid var(--c-border); padding: 5rem 0 2.5rem; }
.footer-brand { font-family: 'Playfair Display', serif; font-size: 1.5rem; font-weight: 700; color: var(--c-brand); letter-spacing: -0.02em; }
.footer-brand span { color: var(--c-accent); font-style: italic; }
.footer-head { font-size: .6875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--c-text-muted); margin-bottom: 1rem; }
.footer-link { display: block; font-size: .875rem; color: var(--c-text-secondary); text-decoration: none; padding: .25rem 0; transition: color .15s; }
.footer-link:hover { color: var(--c-brand); }
.social-btn { width: 36px; height: 36px; border-radius: var(--radius-sm); border: 1px solid var(--c-border); background: transparent; display: inline-flex; align-items: center; justify-content: center; color: var(--c-text-muted); font-size: .9rem; text-decoration: none; transition: all .15s ease; }
.social-btn:hover { border-color: var(--c-brand); color: var(--c-brand); background: color-mix(in srgb, var(--c-brand) 8%, transparent); }

/* ── Scroll animations ── */
[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .65s ease, transform .65s ease; }
[data-reveal].revealed { opacity: 1; transform: none; }

/* ── Mobile hamburger ── */
.hamburger { display: none; background: none; border: 1.5px solid var(--c-border); border-radius: var(--radius-sm); padding: .4rem .55rem; color: var(--c-text-secondary); cursor: pointer; }
@media (max-width: 991px) {
  .nav-links { display: none; flex-direction: column; position: absolute; top: 64px; left: 0; right: 0; background: var(--c-nav-bg); backdrop-filter: blur(24px); border-bottom: 1px solid var(--c-nav-border); padding: .75rem 1rem 1rem; gap: 0; margin: 0; }
  .nav-links.open { display: flex; }
  .nav-links a { padding: .65rem .85rem; font-size: .9rem; }
  .hamburger { display: block; }
  .nav-actions .btn-ghost { display: none; }
  .section { padding: 4rem 0; }
  .section-lg { padding: 4.5rem 0; }
  .cta-strip { padding: 3rem 2rem; }
}
@media (max-width: 576px) {
  .section { padding: 3rem 0; }
  .heading-xl { font-size: 2rem; }
  .heading-lg { font-size: 1.6rem; }
}

/* ── Float animation ── */
@keyframes floatUp { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
.float { animation: floatUp 5.5s ease-in-out infinite; }

/* ── Legal page ── */
.legal-hero { background: var(--grad-subtle); border-bottom: 1px solid var(--c-border); padding: 4rem 0; }
.legal-content { padding: 4rem 0; }
.legal-content h2 { font-family: 'Playfair Display', serif; font-size: 1.4rem; font-weight: 700; color: var(--c-text-primary); margin: 2.5rem 0 .75rem; padding-top: 2.5rem; border-top: 1px solid var(--c-border); }
.legal-content h2:first-of-type { border-top: none; margin-top: 0; padding-top: 0; }
.legal-content h3 { font-size: .9375rem; font-weight: 700; color: var(--c-text-primary); margin: 1.5rem 0 .5rem; }
.legal-content p { font-size: .9375rem; color: var(--c-text-secondary); line-height: 1.8; margin-bottom: 1rem; }
.legal-content ul { padding-left: 1.5rem; margin-bottom: 1rem; }
.legal-content ul li { font-size: .9375rem; color: var(--c-text-secondary); line-height: 1.7; margin-bottom: .35rem; }
.legal-content a { color: var(--c-brand); text-decoration: underline; text-underline-offset: 2px; }