/*
 * ============================================================
 * MyWebGuy — styles.css
 * Global stylesheet for mywebguy.site
 *
 * Structure:
 *   1. CSS Reset & Base
 *   2. Style Themes (6 variable sets)
 *   3. Typography
 *   4. Layout Utilities
 *   5. Navigation
 *   6. Buttons & CTAs
 *   7. Cards & Surfaces
 *   8. Section Shared Styles
 *   9. Footer
 *  10. Style Switcher Panel
 *  11. Scroll Reveal
 *  12. Animations & Keyframes
 *  13. Responsive
 * ============================================================
 */


/* ============================================================
   1. CSS RESET & BASE
   ============================================================ */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--ink);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  transition: background 0.4s ease, color 0.35s ease;
}

a {
  text-decoration: none;
  color: inherit;
}

img {
  display: block;
  max-width: 100%;
}

button {
  cursor: pointer;
}

/* Focus styles for accessibility */
:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
  border-radius: 4px;
}


/* ============================================================
   2. STYLE THEMES
   Each theme sets CSS custom properties on [data-style].
   The page switches themes by setting data-style on <html>.
   ============================================================ */

/* ---- PLAYFUL (default) ---- */
[data-style="playful"] {
  /* Colors */
  --bg:           #FFFFFF;
  --bg2:          #F8FAFC;
  --ink:          #0A0F1E;
  --slate:        #475569;
  --muted:        #94A3B8;
  --border:       #E2E8F0;
  --accent:       #2563EB;
  --accent-d:     #1D4ED8;
  --accent-l:     #EFF6FF;
  --accent-m:     #DBEAFE;
  --success:      #16A34A;
  --success-l:    #DCFCE7;
  --error:        #DC2626;
  --error-l:      #FEE2E2;

  /* Typography */
  --font:         'Plus Jakarta Sans', system-ui, sans-serif;
  --font-display: 'Plus Jakarta Sans', system-ui, sans-serif;
  --fw-head:      900;
  --ls-head:      -0.04em;
  --italic-style: normal;

  /* Components */
  --radius:       20px;
  --radius-sm:    12px;
  --radius-xs:    8px;
  --radius-pill:  100px;
  --card-bg:      #FFFFFF;
  --card-border:  #E2E8F0;
  --card-shadow:  0 4px 0 #E2E8F0, 0 2px 16px rgba(0,0,0,0.05);
  --card-hover:   0 24px 48px rgba(37,99,235,0.16), 0 4px 0 #2563EB;
  --card-hover-t: translateY(-10px);
  --btn-shadow:   0 8px 24px rgba(37,99,235,0.4);
  --btn-hover-t:  translateY(-3px) scale(1.02);

  /* Nav */
  --nav-bg:       rgba(255,255,255,0.93);
  --nav-border:   #E2E8F0;
  --nav-link:     #475569;
  --nav-link-h:   #2563EB;

  /* Footer */
  --footer-bg:    #0A0F1E;
  --footer-text:  #64748B;
  --footer-head:  #3B82F6;
  --footer-hover: #FFFFFF;

  /* Switcher button */
  --sw-bg:        #0A0F1E;
  --sw-dots:      #2563EB, #EC4899, #F97316;
}

/* ---- CLEAN ---- */
[data-style="clean"] {
  --bg:           #FFFFFF;
  --bg2:          #FAFAFA;
  --ink:          #111111;
  --slate:        #555555;
  --muted:        #999999;
  --border:       #E8E8E8;
  --accent:       #1A56DB;
  --accent-d:     #1040B0;
  --accent-l:     #F0F5FF;
  --accent-m:     #D8E7FF;
  --success:      #16A34A;
  --success-l:    #DCFCE7;
  --error:        #DC2626;
  --error-l:      #FEE2E2;

  --font:         'Plus Jakarta Sans', system-ui, sans-serif;
  --font-display: 'Plus Jakarta Sans', system-ui, sans-serif;
  --fw-head:      700;
  --ls-head:      -0.03em;
  --italic-style: normal;

  --radius:       10px;
  --radius-sm:    6px;
  --radius-xs:    4px;
  --radius-pill:  6px;
  --card-bg:      #FFFFFF;
  --card-border:  #E8E8E8;
  --card-shadow:  0 1px 4px rgba(0,0,0,0.06), 0 2px 0 #E8E8E8;
  --card-hover:   0 12px 32px rgba(0,0,0,0.1), 0 2px 0 #1A56DB;
  --card-hover-t: translateY(-8px);
  --btn-shadow:   0 4px 14px rgba(26,86,219,0.3);
  --btn-hover-t:  translateY(-2px);

  --nav-bg:       rgba(255,255,255,0.97);
  --nav-border:   #E8E8E8;
  --nav-link:     #555555;
  --nav-link-h:   #1A56DB;

  --footer-bg:    #111111;
  --footer-text:  #666666;
  --footer-head:  #4A90E2;
  --footer-hover: #FFFFFF;

  --sw-bg:        #111111;
  --sw-dots:      #1A56DB, #E8E8E8, #FAFAFA;
}

/* ---- DARK PRO ---- */
[data-style="dark"] {
  --bg:           #060B18;
  --bg2:          #0D1525;
  --ink:          #F0F6FF;
  --slate:        #94A3B8;
  --muted:        #475569;
  --border:       #1E2D45;
  --accent:       #3B82F6;
  --accent-d:     #2563EB;
  --accent-l:     rgba(59,130,246,0.1);
  --accent-m:     rgba(59,130,246,0.15);
  --success:      #10B981;
  --success-l:    rgba(16,185,129,0.12);
  --error:        #EF4444;
  --error-l:      rgba(239,68,68,0.12);

  --font:         'Space Grotesk', 'Plus Jakarta Sans', system-ui, sans-serif;
  --font-display: 'Space Grotesk', 'Plus Jakarta Sans', system-ui, sans-serif;
  --fw-head:      700;
  --ls-head:      -0.03em;
  --italic-style: normal;

  --radius:       16px;
  --radius-sm:    10px;
  --radius-xs:    6px;
  --radius-pill:  100px;
  --card-bg:      #0D1525;
  --card-border:  #1E2D45;
  --card-shadow:  0 4px 0 #1E2D45, 0 8px 32px rgba(0,0,0,0.5);
  --card-hover:   0 24px 48px rgba(59,130,246,0.2), 0 4px 0 #3B82F6;
  --card-hover-t: translateY(-8px);
  --btn-shadow:   0 8px 24px rgba(59,130,246,0.4);
  --btn-hover-t:  translateY(-3px);

  --nav-bg:       rgba(6,11,24,0.96);
  --nav-border:   #1E2D45;
  --nav-link:     #94A3B8;
  --nav-link-h:   #3B82F6;

  --footer-bg:    #030712;
  --footer-text:  #475569;
  --footer-head:  #3B82F6;
  --footer-hover: #F0F6FF;

  --sw-bg:        #1E2D45;
  --sw-dots:      #3B82F6, #8B5CF6, #0D1525;
}

/* ---- RETRO ---- */
[data-style="retro"] {
  --bg:           #FFF8F0;
  --bg2:          #FFF0DC;
  --ink:          #1A0A00;
  --slate:        #5C3D1E;
  --muted:        #A0856A;
  --border:       #E8C99A;
  --accent:       #E85D04;
  --accent-d:     #C44D00;
  --accent-l:     #FFF0DC;
  --accent-m:     #FFD9A8;
  --success:      #2D6A2D;
  --success-l:    #D4EDDA;
  --error:        #C0392B;
  --error-l:      #FADBD8;

  --font:         'Plus Jakarta Sans', system-ui, sans-serif;
  --font-display: 'Fraunces', Georgia, serif;
  --fw-head:      700;
  --ls-head:      -0.02em;
  --italic-style: italic;

  --radius:       6px;
  --radius-sm:    4px;
  --radius-xs:    2px;
  --radius-pill:  4px;
  --card-bg:      #FFFAF4;
  --card-border:  #1A0A00;
  --card-shadow:  4px 4px 0 #1A0A00;
  --card-hover:   8px 8px 0 #E85D04;
  --card-hover-t: translate(-4px, -4px);
  --btn-shadow:   4px 4px 0 #1A0A00;
  --btn-hover-t:  translate(-3px, -3px);

  --nav-bg:       rgba(255,248,240,0.97);
  --nav-border:   #E8C99A;
  --nav-link:     #5C3D1E;
  --nav-link-h:   #E85D04;

  --footer-bg:    #1A0A00;
  --footer-text:  #8B6A4A;
  --footer-head:  #E85D04;
  --footer-hover: #FFF8F0;

  --sw-bg:        #1A0A00;
  --sw-dots:      #E85D04, #FCD34D, #FFFAF4;
}

/* ---- ELEGANT ---- */
[data-style="elegant"] {
  --bg:           #FDFAF5;
  --bg2:          #F5EFE0;
  --ink:          #1A1410;
  --slate:        #5C4F3A;
  --muted:        #A8957A;
  --border:       #E8D9C0;
  --accent:       #9A7A2E;
  --accent-d:     #7A5E1E;
  --accent-l:     #FAF3E0;
  --accent-m:     #F0E0B0;
  --success:      #5A7A2E;
  --success-l:    #EAF3DE;
  --error:        #9B2335;
  --error-l:      #FADBD8;

  --font:         'Plus Jakarta Sans', system-ui, sans-serif;
  --font-display: 'Playfair Display', Georgia, serif;
  --fw-head:      700;
  --ls-head:      -0.01em;
  --italic-style: italic;

  --radius:       4px;
  --radius-sm:    2px;
  --radius-xs:    2px;
  --radius-pill:  2px;
  --card-bg:      #FDFAF5;
  --card-border:  #E8D9C0;
  --card-shadow:  0 2px 16px rgba(154,122,46,0.08), 0 2px 0 #E8D9C0;
  --card-hover:   0 20px 40px rgba(154,122,46,0.14), 0 2px 0 #9A7A2E;
  --card-hover-t: translateY(-6px);
  --btn-shadow:   0 6px 20px rgba(154,122,46,0.3);
  --btn-hover-t:  translateY(-2px);

  --nav-bg:       rgba(253,250,245,0.97);
  --nav-border:   #E8D9C0;
  --nav-link:     #5C4F3A;
  --nav-link-h:   #9A7A2E;

  --footer-bg:    #1A1410;
  --footer-text:  #6B5844;
  --footer-head:  #9A7A2E;
  --footer-hover: #FDFAF5;

  --sw-bg:        #1A1410;
  --sw-dots:      #9A7A2E, #E8D9C0, #FDFAF5;
}

/* ---- BOLD ---- */
[data-style="bold"] {
  --bg:           #F5F5F5;
  --bg2:          #EBEBEB;
  --ink:          #000000;
  --slate:        #333333;
  --muted:        #777777;
  --border:       #000000;
  --accent:       #FF2D55;
  --accent-d:     #D91A3E;
  --accent-l:     #FFF0F3;
  --accent-m:     #FFD0DA;
  --success:      #00C853;
  --success-l:    #E0F7E0;
  --error:        #D50000;
  --error-l:      #FFEBEE;

  --font:         'Plus Jakarta Sans', system-ui, sans-serif;
  --font-display: 'Plus Jakarta Sans', system-ui, sans-serif;
  --fw-head:      900;
  --ls-head:      -0.05em;
  --italic-style: normal;

  --radius:       0px;
  --radius-sm:    0px;
  --radius-xs:    0px;
  --radius-pill:  0px;
  --card-bg:      #FFFFFF;
  --card-border:  #000000;
  --card-shadow:  3px 3px 0 #000000;
  --card-hover:   7px 7px 0 #FF2D55;
  --card-hover-t: translate(-4px, -4px);
  --btn-shadow:   3px 3px 0 #000000;
  --btn-hover-t:  translate(-2px, -2px);

  --nav-bg:       rgba(245,245,245,0.97);
  --nav-border:   #000000;
  --nav-link:     #333333;
  --nav-link-h:   #FF2D55;

  --footer-bg:    #000000;
  --footer-text:  #555555;
  --footer-head:  #FF2D55;
  --footer-hover: #FFFFFF;

  --sw-bg:        #000000;
  --sw-dots:      #FF2D55, #000000, #F5F5F5;
}


/* ============================================================
   3. TYPOGRAPHY
   ============================================================ */

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: var(--fw-head);
  letter-spacing: var(--ls-head);
  line-height: 1.05;
  color: var(--ink);
  transition: color 0.35s;
}

p, span, label, li, td, th {
  font-family: var(--font);
  color: var(--slate);
  transition: color 0.35s;
}

/* Display serif helper — italic accent on headings */
.serif {
  font-family: var(--font-display);
  font-style: var(--italic-style);
  color: var(--accent);
}

.mono {
  font-family: 'Space Grotesk', monospace;
}


/* ============================================================
   4. LAYOUT UTILITIES
   ============================================================ */

.wrap {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 32px;
}

.section {
  padding: 100px 0;
}

.section-alt {
  background: var(--bg2);
  transition: background 0.4s;
}

/* Section header block */
.section-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  background: var(--accent-l);
  padding: 6px 14px;
  border-radius: var(--radius-pill);
  margin-bottom: 20px;
  transition: background 0.4s, color 0.35s, border-radius 0.4s;
}

[data-style="bold"] .section-tag {
  border: 2px solid var(--ink);
  background: var(--accent);
  color: white;
}

[data-style="retro"] .section-tag {
  border: 2px solid #1A0A00;
  background: #FCD34D;
  color: #1A0A00;
}

[data-style="elegant"] .section-tag {
  background: transparent;
  padding-left: 0;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
}

.section-headline {
  font-family: var(--font-display);
  font-size: clamp(30px, 4vw, 52px);
  font-weight: var(--fw-head);
  letter-spacing: var(--ls-head);
  color: var(--ink);
  line-height: 1.04;
  margin-bottom: 16px;
  transition: color 0.35s;
}

.section-sub {
  font-family: var(--font);
  font-size: 16px;
  color: var(--slate);
  line-height: 1.75;
  max-width: 560px;
  transition: color 0.35s;
}


/* ============================================================
   5. NAVIGATION
   ============================================================ */

.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  height: 68px;
  background: var(--nav-bg);
  border-bottom: 1px solid transparent;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  transition: border-color 0.3s, background 0.4s, box-shadow 0.3s;
}

.nav.scrolled {
  border-bottom-color: var(--nav-border);
  box-shadow: 0 4px 24px rgba(0,0,0,0.07);
}

.nav-inner {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 32px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

/* Logo */
.nav-logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.nav-logo img {
  height: 52px;
  width: auto;
  object-fit: contain;
  /* Invert to white on dark theme */
  transition: filter 0.4s;
}

[data-style="dark"] .nav-logo img {
  filter: brightness(1.15);
}

[data-style="dark"] .nav-logo span {
  color: var(--ink);
}

/* Desktop links */
.nav-links {
  display: flex;
  align-items: center;
  gap: 28px;
  list-style: none;
}

.nav-links a {
  font-family: var(--font);
  font-size: 14px;
  font-weight: 600;
  color: var(--nav-link);
  transition: color 0.2s;
  white-space: nowrap;
}

.nav-links a:hover,
.nav-links a.active {
  color: var(--nav-link-h);
}

/* Nav CTA button */
.nav-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font);
  font-size: 13px;
  font-weight: 800;
  color: white !important;
  background: var(--accent);
  padding: 10px 20px;
  border-radius: var(--radius-sm);
  box-shadow: var(--btn-shadow);
  transition: background 0.2s, transform 0.15s, border-radius 0.4s, box-shadow 0.4s;
  white-space: nowrap;
}

.nav-cta:hover {
  background: var(--accent-d);
  transform: translateY(-2px);
}

/* Hamburger */
.nav-hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  padding: 4px;
}

.nav-hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--ink);
  border-radius: 2px;
  transition: transform 0.3s, opacity 0.3s, background 0.4s;
}

.nav-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity: 0; }
.nav-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile drawer */
.nav-drawer {
  display: none;
  position: fixed;
  top: 68px;
  left: 0;
  right: 0;
  background: var(--bg);
  border-bottom: 2px solid var(--nav-border);
  padding: 20px 28px 28px;
  z-index: 999;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.25s, transform 0.25s, background 0.4s;
  pointer-events: none;
}

.nav-drawer.open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: all;
}

.nav-drawer-links {
  list-style: none;
  display: flex;
  flex-direction: column;
}

.nav-drawer-links li {
  border-bottom: 1px solid var(--border);
}

.nav-drawer-links a {
  display: block;
  padding: 14px 0;
  font-family: var(--font);
  font-size: 15px;
  font-weight: 600;
  color: var(--nav-link);
  transition: color 0.2s;
}

.nav-drawer-links a:hover { color: var(--accent); }

.nav-drawer-cta {
  display: block;
  text-align: center;
  margin-top: 20px;
  background: var(--accent);
  color: white;
  font-family: var(--font);
  font-weight: 800;
  font-size: 15px;
  padding: 14px;
  border-radius: var(--radius-sm);
  transition: background 0.2s, border-radius 0.4s;
}

.nav-drawer-cta:hover { background: var(--accent-d); }


/* ============================================================
   6. BUTTONS & CTAs
   ============================================================ */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--font);
  font-weight: 800;
  white-space: nowrap;
  border: none;
  cursor: pointer;
  transition: background 0.2s, transform 0.15s, box-shadow 0.2s, border-radius 0.4s;
}

.btn-primary {
  font-size: 15px;
  color: white;
  background: var(--accent);
  padding: 15px 28px;
  border-radius: var(--radius-sm);
  box-shadow: var(--btn-shadow);
  position: relative;
  overflow: hidden;
}

.btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.12) 0%, transparent 60%);
  pointer-events: none;
  transition: opacity 0.2s;
}

.btn-primary:hover {
  background: var(--accent-d);
  transform: var(--btn-hover-t);
}

.btn-primary:active { transform: scale(0.98); }

.btn-secondary {
  font-size: 15px;
  color: var(--ink);
  background: var(--bg);
  border: 2px solid var(--border);
  padding: 13px 24px;
  border-radius: var(--radius-sm);
  box-shadow: 0 2px 0 var(--border);
  transition: border-color 0.2s, color 0.2s, transform 0.15s, background 0.4s, border-radius 0.4s;
}

.btn-secondary:hover {
  border-color: var(--accent);
  color: var(--accent);
  transform: var(--card-hover-t);
}

.btn-white {
  font-size: 15px;
  color: var(--accent);
  background: white;
  padding: 14px 26px;
  border-radius: var(--radius-sm);
  box-shadow: 0 8px 24px rgba(0,0,0,0.18);
  transition: background 0.2s, transform 0.15s, border-radius 0.4s;
}

.btn-white:hover {
  background: #F0F0F0;
  transform: translateY(-3px);
}

[data-style="bold"] .btn-white { color: black; }

.btn-ghost {
  font-size: 14px;
  font-weight: 700;
  color: rgba(255,255,255,0.8);
  border: 2px solid rgba(255,255,255,0.2);
  padding: 12px 22px;
  border-radius: var(--radius-sm);
  transition: border-color 0.2s, color 0.2s, transform 0.15s, border-radius 0.4s;
}

.btn-ghost:hover {
  border-color: rgba(255,255,255,0.6);
  color: white;
  transform: translateY(-2px);
}

/* Width helpers */
.btn-full { width: 100%; }

/* SVG arrow inside buttons */
.btn svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
  transition: none;
}


/* ============================================================
   7. CARDS & SURFACES
   ============================================================ */

.card {
  background: var(--card-bg);
  border: 2px solid var(--card-border);
  border-radius: var(--radius);
  box-shadow: var(--card-shadow);
  transition: transform 0.35s cubic-bezier(0.22,1,0.36,1),
              box-shadow 0.35s,
              border-color 0.25s,
              background 0.4s,
              border-radius 0.4s;
}

.card:hover {
  transform: var(--card-hover-t);
  box-shadow: var(--card-hover);
  border-color: var(--accent);
}

/* Card with colored top border on hover */
.card-accent::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--accent), var(--accent-d));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s cubic-bezier(0.22,1,0.36,1);
  border-radius: var(--radius) var(--radius) 0 0;
}

.card-accent { position: relative; overflow: hidden; }
.card-accent:hover::after { transform: scaleX(1); }

/* Card icon box */
.card-icon {
  width: 52px;
  height: 52px;
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  transition: transform 0.4s cubic-bezier(0.34,1.56,0.64,1), border-radius 0.4s;
}

.card:hover .card-icon {
  transform: scale(1.15) rotate(-8deg);
}

.card-icon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.card-title {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: var(--fw-head);
  color: var(--ink);
  margin-bottom: 8px;
  letter-spacing: var(--ls-head);
  transition: color 0.35s;
}

.card-desc {
  font-family: var(--font);
  font-size: 13px;
  color: var(--slate);
  line-height: 1.7;
  transition: color 0.35s;
}

/* Stat box inside hero card */
.stat-box {
  background: var(--bg2);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 14px 8px;
  text-align: center;
  transition: transform 0.25s cubic-bezier(0.34,1.56,0.64,1),
              box-shadow 0.25s,
              border-color 0.2s,
              background 0.4s,
              border-radius 0.4s;
}

.stat-box:hover {
  transform: translateY(-6px) scale(1.05);
  border-color: var(--accent);
  background: var(--accent-l);
}

[data-style="bold"] .stat-box:hover,
[data-style="retro"] .stat-box:hover {
  transform: translate(-3px,-3px);
  box-shadow: 5px 5px 0 var(--accent);
}

.stat-num {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: var(--fw-head);
  color: var(--accent);
  letter-spacing: var(--ls-head);
  line-height: 1;
  margin-bottom: 4px;
  transition: color 0.35s;
}

.stat-label {
  font-family: var(--font);
  font-size: 9px;
  font-weight: 800;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  transition: color 0.35s;
}


/* ============================================================
   8. SECTION SHARED — STEPS, WHY CARDS, TIERS
   ============================================================ */

/* Steps grid */
.steps-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 52px;
}

.step-card {
  background: var(--card-bg);
  border: 2px solid var(--card-border);
  border-radius: var(--radius);
  padding: 28px 22px;
  box-shadow: var(--card-shadow);
  transition: transform 0.35s cubic-bezier(0.22,1,0.36,1),
              box-shadow 0.35s,
              border-color 0.25s,
              background 0.4s,
              border-radius 0.4s;
}

.step-card:hover {
  transform: var(--card-hover-t) rotate(-1.5deg);
  box-shadow: var(--card-hover);
  border-color: var(--accent);
}

[data-style="clean"] .step-card:hover,
[data-style="elegant"] .step-card:hover { transform: var(--card-hover-t); }

.step-number {
  font-family: var(--font);
  font-size: 11px;
  font-weight: 900;
  color: white;
  background: var(--accent);
  width: 36px;
  height: 36px;
  border-radius: var(--radius-xs);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  box-shadow: var(--btn-shadow);
  transition: background 0.4s, border-radius 0.4s, box-shadow 0.4s;
}

.step-icon {
  width: 52px;
  height: 52px;
  background: var(--accent-l);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  transition: transform 0.35s cubic-bezier(0.34,1.56,0.64,1), background 0.25s, border-radius 0.4s;
}

.step-card:hover .step-icon { transform: scale(1.15) rotate(8deg); background: var(--accent-m); }

.step-icon svg {
  width: 22px;
  height: 22px;
  stroke: var(--accent);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: stroke 0.4s;
}

.step-title {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: var(--fw-head);
  color: var(--ink);
  margin-bottom: 8px;
  transition: color 0.35s;
}

.step-desc {
  font-family: var(--font);
  font-size: 13px;
  color: var(--slate);
  line-height: 1.65;
  transition: color 0.35s;
}

/* Why grid */
.why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 52px;
}

.why-card {
  background: var(--card-bg);
  border: 2px solid var(--card-border);
  border-radius: var(--radius);
  padding: 28px 24px;
  box-shadow: var(--card-shadow);
  transition: transform 0.35s cubic-bezier(0.22,1,0.36,1),
              box-shadow 0.35s,
              border-color 0.25s,
              background 0.4s,
              border-radius 0.4s;
}

/* Alternating tilt on playful */
[data-style="playful"] .why-card:nth-child(odd):hover  { transform: translateY(-10px) rotate(0.8deg); }
[data-style="playful"] .why-card:nth-child(even):hover { transform: translateY(-10px) rotate(-0.8deg); }

.why-card:hover {
  box-shadow: var(--card-hover);
  border-color: var(--accent);
  transform: var(--card-hover-t);
}

.why-icon {
  width: 54px;
  height: 54px;
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  transition: transform 0.4s cubic-bezier(0.34,1.56,0.64,1), border-radius 0.4s;
}

.why-card:hover .why-icon { transform: scale(1.2) rotate(-10deg); }

.why-icon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Tier strip */
.tier-strip {
  background: var(--card-bg);
  border: 2px solid var(--card-border);
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 24px;
  box-shadow: var(--card-shadow);
  transition: box-shadow 0.3s, transform 0.3s, background 0.4s, border-radius 0.4s;
}

.tier-strip:hover {
  transform: translateY(-4px);
  box-shadow: var(--card-hover);
}

.tier-strip-header {
  padding: 16px 28px;
  border-bottom: 1px solid var(--border);
  background: var(--bg2);
  transition: background 0.4s, border-color 0.35s;
}

.tier-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  background: var(--border);
  gap: 1px;
  transition: background 0.35s;
}

.tier-cell {
  background: var(--card-bg);
  padding: 22px 18px;
  transition: background 0.2s;
}

.tier-cell:hover { background: var(--accent-l); }

.tier-cell.featured {
  background: var(--ink);
  position: relative;
  transition: background 0.4s;
}

.tier-cell.featured::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--accent);
  transition: background 0.4s;
}

.tier-cell-popular {
  font-family: var(--font);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 5px;
  transition: color 0.35s;
}

.tier-cell-name {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: var(--fw-head);
  color: var(--ink);
  margin-bottom: 4px;
  transition: color 0.35s;
}

.featured .tier-cell-name { color: white; }

.tier-cell-pages {
  font-family: var(--font);
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 8px;
  font-weight: 600;
  transition: color 0.35s;
}

.featured .tier-cell-pages { color: #64748B; }

.tier-cell-desc {
  font-family: var(--font);
  font-size: 12px;
  color: var(--slate);
  line-height: 1.55;
  transition: color 0.35s;
}

.featured .tier-cell-desc { color: #94A3B8; }

/* CTA row below tier strip */
.tier-cta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.tier-cta-text {
  font-family: var(--font);
  font-size: 13px;
  color: var(--slate);
  line-height: 1.6;
  max-width: 520px;
  transition: color 0.35s;
}

.tier-cta-text strong { color: var(--ink); transition: color 0.35s; }


/* ============================================================
   9. FOOTER
   ============================================================ */

.footer {
  background: var(--footer-bg);
  padding: 72px 0 0;
  transition: background 0.4s;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.8fr 1fr 1fr 1fr;
  gap: 48px;
  padding-bottom: 56px;
}

.footer-logo img {
  height: 80px;
  width: auto;
  object-fit: contain;
  margin-bottom: 14px;
  border-radius: 12px;
  transition: opacity 0.3s;
}

.footer-logo img:hover { opacity: 0.85; }

/* No filters — logo has its own background, inversion makes it a white blob */
[data-style="playful"] .footer-logo img,
[data-style="clean"]   .footer-logo img,
[data-style="dark"]    .footer-logo img,
[data-style="retro"]   .footer-logo img,
[data-style="elegant"] .footer-logo img,
[data-style="bold"]    .footer-logo img {
  filter: none;
}

.footer-desc {
  font-family: var(--font);
  font-size: 13px;
  color: var(--footer-text);
  line-height: 1.75;
  max-width: 240px;
  margin-bottom: 20px;
  transition: color 0.35s;
}

.footer-contact a {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font);
  font-size: 13px;
  color: var(--footer-text);
  margin-bottom: 10px;
  font-weight: 500;
  transition: color 0.2s;
}

.footer-contact a:hover { color: var(--footer-hover); }

.footer-contact a svg {
  width: 14px;
  height: 14px;
  stroke: var(--footer-head);
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  flex-shrink: 0;
  transition: stroke 0.4s;
}

.footer-col h4 {
  font-family: var(--font);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--footer-head);
  margin-bottom: 18px;
  transition: color 0.35s;
}

.footer-col ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer-col ul li a {
  font-family: var(--font);
  font-size: 13px;
  color: var(--footer-text);
  font-weight: 500;
  transition: color 0.2s;
}

.footer-col ul li a:hover { color: var(--footer-hover); }

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.06);
  padding: 20px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.footer-copy {
  font-family: var(--font);
  font-size: 12px;
  color: var(--footer-text);
  opacity: 0.6;
  transition: color 0.35s;
}

.footer-legal {
  display: flex;
  gap: 20px;
}

.footer-legal a {
  font-family: var(--font);
  font-size: 12px;
  color: var(--footer-text);
  opacity: 0.6;
  transition: color 0.2s, opacity 0.2s;
}

.footer-legal a:hover { opacity: 1; color: var(--footer-hover); }

/* CTA banner that appears above footer */
.cta-banner {
  background: var(--accent);
  padding: 90px 0;
  position: relative;
  overflow: hidden;
  transition: background 0.4s;
}

[data-style="dark"] .cta-banner    { background: #0D1525; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
[data-style="bold"] .cta-banner    { background: var(--ink); }
[data-style="retro"] .cta-banner   { background: #1A0A00; }
[data-style="elegant"] .cta-banner { background: var(--ink); }

.cta-banner::before {
  content: '';
  position: absolute;
  width: 600px; height: 600px;
  border-radius: 50%;
  background: rgba(0,0,0,0.08);
  top: -250px; right: -150px;
  pointer-events: none;
}

.cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}

.cta-headline {
  font-family: var(--font-display);
  font-size: clamp(26px, 3.5vw, 46px);
  font-weight: var(--fw-head);
  color: white;
  letter-spacing: var(--ls-head);
  line-height: 1.04;
  margin-bottom: 12px;
  transition: font-family 0.4s;
}

.cta-sub {
  font-family: var(--font);
  font-size: 16px;
  color: rgba(255,255,255,0.65);
  line-height: 1.65;
  max-width: 480px;
}

.cta-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  flex-wrap: wrap;
}


/* ============================================================
   10. STYLE SWITCHER PANEL
   ============================================================ */

.switcher {
  position: fixed;
  bottom: 32px;
  right: 24px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}

/* The pill button */
.switcher-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #0A0F1E;
  border: none;
  cursor: pointer;
  padding: 13px 20px;
  border-radius: 100px;
  box-shadow: 0 8px 28px rgba(0,0,0,0.3), 0 2px 8px rgba(0,0,0,0.15);
  transition: transform 0.2s, box-shadow 0.2s;
  position: relative;
  z-index: 2;
  white-space: nowrap;
}

.switcher-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 36px rgba(0,0,0,0.35);
}

.sw-dots {
  display: flex;
  gap: 4px;
  align-items: center;
}

.sw-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  transition: transform 0.3s;
}

.switcher-btn:hover .sw-dot:nth-child(1) { transform: translateY(-3px); transition-delay: 0s; }
.switcher-btn:hover .sw-dot:nth-child(2) { transform: translateY(-3px); transition-delay: 0.05s; }
.switcher-btn:hover .sw-dot:nth-child(3) { transform: translateY(-3px); transition-delay: 0.1s; }

.sw-label {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 800;
  color: white;
  letter-spacing: 0.02em;
}

.sw-arrow {
  font-size: 11px;
  color: rgba(255,255,255,0.45);
  transition: transform 0.25s;
  line-height: 1;
}

.switcher-btn.open .sw-arrow { transform: rotate(180deg); }

/* The panel */
.switcher-panel {
  background: white;
  border-radius: 20px;
  box-shadow: 0 24px 64px rgba(0,0,0,0.22), 0 4px 16px rgba(0,0,0,0.1);
  padding: 22px;
  width: 300px;
  opacity: 0;
  transform: translateY(14px) scale(0.95);
  pointer-events: none;
  transition: opacity 0.25s cubic-bezier(0.22,1,0.36,1),
              transform 0.25s cubic-bezier(0.22,1,0.36,1);
}

.switcher-panel.open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: all;
}

.sw-panel-title {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #94A3B8;
  margin-bottom: 16px;
}

/* Style option grid */
.sw-styles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 16px;
}

.sw-style {
  border: 2px solid #E2E8F0;
  border-radius: 14px;
  padding: 10px 8px;
  cursor: pointer;
  background: white;
  transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
}

.sw-style:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
}

.sw-style.active {
  border-width: 2.5px;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,0,0,0.1);
}

/* Style preview swatch */
.sw-swatch {
  width: 100%;
  height: 38px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  overflow: hidden;
  position: relative;
}

.sw-swatch-dot {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  flex-shrink: 0;
}

.sw-style-name {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: #475569;
  text-align: center;
  line-height: 1.2;
}

.sw-style.active .sw-style-name { color: #0A0F1E; font-weight: 800; }

/* Active border colors */
.sw-style[data-sw="playful"].active  { border-color: #2563EB; }
.sw-style[data-sw="clean"].active    { border-color: #1A56DB; }
.sw-style[data-sw="dark"].active     { border-color: #3B82F6; }
.sw-style[data-sw="retro"].active    { border-color: #E85D04; }
.sw-style[data-sw="elegant"].active  { border-color: #9A7A2E; }
.sw-style[data-sw="bold"].active     { border-color: #FF2D55; }

/* Divider */
.sw-divider {
  height: 1px;
  background: #E2E8F0;
  margin: 14px 0;
}

/* Note text */
.sw-note {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 11px;
  color: #94A3B8;
  line-height: 1.55;
}

.sw-note strong {
  color: #475569;
}


/* ============================================================
   11. SCROLL REVEAL
   ============================================================ */

.reveal {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 0.75s cubic-bezier(0.22,1,0.36,1),
              transform 0.75s cubic-bezier(0.22,1,0.36,1);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.delay-1 { transition-delay: 0.1s; }
.delay-2 { transition-delay: 0.2s; }
.delay-3 { transition-delay: 0.3s; }
.delay-4 { transition-delay: 0.4s; }
.delay-5 { transition-delay: 0.5s; }


/* ============================================================
   12. ANIMATIONS & KEYFRAMES
   ============================================================ */

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes badgePop {
  from { opacity: 0; transform: scale(0.7) translateY(10px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.35; }
}

@keyframes cardFloat {
  0%, 100% { transform: perspective(1000px) rotateY(-5deg) rotateX(2deg) translateY(0); }
  50%       { transform: perspective(1000px) rotateY(-5deg) rotateX(2deg) translateY(-10px); }
}

@keyframes orbBounce {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50%       { transform: translateY(-14px) rotate(180deg); }
}

@keyframes shimmer {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* Hero entrance animations */
.hero-badge    { animation: badgePop 0.6s cubic-bezier(0.34,1.56,0.64,1) 0.1s both; }
.hero-headline { animation: fadeUp 0.7s cubic-bezier(0.22,1,0.36,1) 0.2s both; }
.hero-sub      { animation: fadeUp 0.7s cubic-bezier(0.22,1,0.36,1) 0.32s both; }
.hero-actions  { animation: fadeUp 0.7s cubic-bezier(0.22,1,0.36,1) 0.44s both; }
.hero-trust    { animation: fadeUp 0.7s cubic-bezier(0.22,1,0.36,1) 0.54s both; }


/* ============================================================
   13. RESPONSIVE
   ============================================================ */

@media (max-width: 1024px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .section { padding: 72px 0; }
}

@media (max-width: 768px) {
  /* Nav */
  .nav-links,
  .nav-cta { display: none; }
  .nav-hamburger { display: flex; }
  .nav-drawer    { display: block; }
  .nav-inner { padding: 0 20px; }
  .nav-logo span { font-size: 17px; }

  /* Sections */
  .section { padding: 56px 0; }
  .wrap { padding: 0 20px; }

  /* ALL grids → single column */
  .steps-grid  { grid-template-columns: 1fr; gap: 12px; }
  .why-grid    { grid-template-columns: 1fr; gap: 12px; }

  /* Tier strip — single column on mobile */
  .tier-strip { overflow: visible; }
  .tier-grid  { grid-template-columns: 1fr !important; min-width: unset !important; }

  /* Headlines */
  .section-headline { font-size: clamp(24px, 5vw, 36px); }
  .section-sub { font-size: 15px; }

  /* CTA */
  .cta-inner   { flex-direction: column; align-items: flex-start; }
  .cta-actions { flex-wrap: wrap; gap: 10px; width: 100%; }
  .btn-white, .btn-ghost { width: 100%; justify-content: center; }

  /* Footer */
  .footer-grid   { grid-template-columns: 1fr; gap: 28px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 8px; }

  /* Switcher */
  .switcher       { bottom: 16px; right: 16px; }
  .switcher-panel { width: 260px; }
  .switcher-btn   { padding: 11px 16px; }
}

@media (max-width: 560px) {
  /* Buttons full-width */
  .btn-primary,
  .btn-secondary { width: 100%; justify-content: center; }

  /* Section spacing */
  .section { padding: 40px 0; }

  /* Footer */
  .footer { padding-top: 40px; }

  /* CTA Banner */
  .cta-headline { font-size: clamp(22px, 6vw, 32px); }
  .cta-sub      { font-size: 14px; }

  /* Switcher label hidden on tiny screens */
  .sw-label { display: none; }
  .switcher-btn { padding: 12px 14px; }
}

@media (max-width: 480px) {
  .sw-styles { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 380px) {
  .switcher-panel { width: 220px; }
}


/* ============================================================
   14. PLAYFUL — DISTINCTIVE OVERRIDES
   These go far beyond variable swaps to make Playful feel
   like a completely different world from Clean.
   ============================================================ */

/* ── Gradient headlines ── */
[data-style="playful"] .hero-headline {
  background: linear-gradient(135deg, #0A0F1E 20%, #2563EB 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

[data-style="playful"] .hero-serif {
  background: linear-gradient(135deg, #2563EB, #8B5CF6, #EC4899);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

[data-style="playful"] .hero-serif::after {
  /* Squiggle still shows under gradient text */
  bottom: -10px;
}

[data-style="playful"] .section-headline {
  background: linear-gradient(135deg, #0A0F1E 0%, #1D4ED8 140%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

[data-style="playful"] .section-headline .serif,
[data-style="playful"] .serif {
  background: linear-gradient(135deg, #2563EB, #8B5CF6);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

[data-style="playful"] .cta-headline {
  /* CTA is white-on-gradient so keep white */
  background: none;
  -webkit-text-fill-color: white;
}

[data-style="playful"] .cta-headline .serif {
  background: none;
  -webkit-text-fill-color: #93C5FD;
}

/* ── Gradient section alternates ── */
[data-style="playful"] .section-alt {
  background: linear-gradient(160deg, #EFF6FF 0%, #FDF2F8 55%, #FFF7ED 100%);
}

/* ── Gradient primary button ── */
[data-style="playful"] .btn-primary,
[data-style="playful"] .nav-cta {
  background: linear-gradient(135deg, #2563EB 0%, #7C3AED 100%);
  box-shadow: 0 8px 24px rgba(37,99,235,0.4), 0 2px 0 rgba(124,58,237,0.3);
}

[data-style="playful"] .btn-primary:hover,
[data-style="playful"] .nav-cta:hover {
  background: linear-gradient(135deg, #1D4ED8 0%, #6D28D9 100%);
  box-shadow: 0 16px 36px rgba(37,99,235,0.5);
  transform: translateY(-4px) scale(1.03);
}

/* ── Gradient CTA banner ── */
[data-style="playful"] .cta-banner {
  background: linear-gradient(135deg, #1D4ED8 0%, #7C3AED 50%, #DB2777 100%);
}

/* ── Cards pre-tilted at rest ── */
[data-style="playful"] .why-card:nth-child(1),
[data-style="playful"] .why-card:nth-child(4) { transform: rotate(0.6deg); }
[data-style="playful"] .why-card:nth-child(2),
[data-style="playful"] .why-card:nth-child(5) { transform: rotate(-0.6deg); }
[data-style="playful"] .why-card:nth-child(3),
[data-style="playful"] .why-card:nth-child(6) { transform: rotate(0.4deg); }

[data-style="playful"] .step-card:nth-child(odd)  { transform: rotate(-0.7deg); }
[data-style="playful"] .step-card:nth-child(even) { transform: rotate(0.7deg); }

/* ── Why cards — unique color hover per card ── */
[data-style="playful"] .why-card:nth-child(1):hover {
  border-color: #3B82F6;
  box-shadow: 0 28px 56px rgba(59,130,246,0.22), 0 6px 0 #3B82F6;
  transform: translateY(-14px) rotate(0deg);
}
[data-style="playful"] .why-card:nth-child(2):hover {
  border-color: #10B981;
  box-shadow: 0 28px 56px rgba(16,185,129,0.22), 0 6px 0 #10B981;
  transform: translateY(-14px) rotate(0deg);
}
[data-style="playful"] .why-card:nth-child(3):hover {
  border-color: #F97316;
  box-shadow: 0 28px 56px rgba(249,115,22,0.22), 0 6px 0 #F97316;
  transform: translateY(-14px) rotate(0deg);
}
[data-style="playful"] .why-card:nth-child(4):hover {
  border-color: #8B5CF6;
  box-shadow: 0 28px 56px rgba(139,92,246,0.22), 0 6px 0 #8B5CF6;
  transform: translateY(-14px) rotate(0deg);
}
[data-style="playful"] .why-card:nth-child(5):hover {
  border-color: #EC4899;
  box-shadow: 0 28px 56px rgba(236,72,153,0.22), 0 6px 0 #EC4899;
  transform: translateY(-14px) rotate(0deg);
}
[data-style="playful"] .why-card:nth-child(6):hover {
  border-color: #14B8A6;
  box-shadow: 0 28px 56px rgba(20,184,166,0.22), 0 6px 0 #14B8A6;
  transform: translateY(-14px) rotate(0deg);
}

/* ── Step badge — each a different color ── */
[data-style="playful"] .step-card:nth-child(1) .step-number {
  background: #3B82F6;
  box-shadow: 0 4px 14px rgba(59,130,246,0.5);
}
[data-style="playful"] .step-card:nth-child(2) .step-number {
  background: #10B981;
  box-shadow: 0 4px 14px rgba(16,185,129,0.5);
}
[data-style="playful"] .step-card:nth-child(3) .step-number {
  background: #F97316;
  box-shadow: 0 4px 14px rgba(249,115,22,0.5);
}
[data-style="playful"] .step-card:nth-child(4) .step-number {
  background: #8B5CF6;
  box-shadow: 0 4px 14px rgba(139,92,246,0.5);
}

/* ── Step cards — each icon bg matches badge color ── */
[data-style="playful"] .step-card:nth-child(1) .step-icon { background: #EFF6FF; }
[data-style="playful"] .step-card:nth-child(2) .step-icon { background: #ECFDF5; }
[data-style="playful"] .step-card:nth-child(3) .step-icon { background: #FFF7ED; }
[data-style="playful"] .step-card:nth-child(4) .step-icon { background: #F5F3FF; }

[data-style="playful"] .step-card:nth-child(1) .step-icon svg { stroke: #3B82F6; }
[data-style="playful"] .step-card:nth-child(2) .step-icon svg { stroke: #10B981; }
[data-style="playful"] .step-card:nth-child(3) .step-icon svg { stroke: #F97316; }
[data-style="playful"] .step-card:nth-child(4) .step-icon svg { stroke: #8B5CF6; }

/* ── Step cards hover — color-matched ── */
[data-style="playful"] .step-card:hover {
  transform: translateY(-12px) rotate(0deg);
}
[data-style="playful"] .step-card:nth-child(1):hover { border-color: #3B82F6; box-shadow: 0 24px 48px rgba(59,130,246,0.18), 0 6px 0 #3B82F6; }
[data-style="playful"] .step-card:nth-child(2):hover { border-color: #10B981; box-shadow: 0 24px 48px rgba(16,185,129,0.18), 0 6px 0 #10B981; }
[data-style="playful"] .step-card:nth-child(3):hover { border-color: #F97316; box-shadow: 0 24px 48px rgba(249,115,22,0.18), 0 6px 0 #F97316; }
[data-style="playful"] .step-card:nth-child(4):hover { border-color: #8B5CF6; box-shadow: 0 24px 48px rgba(139,92,246,0.18), 0 6px 0 #8B5CF6; }

/* ── Section tags — gradient in playful ── */
[data-style="playful"] .section-tag {
  background: linear-gradient(135deg, #EFF6FF, #F5F3FF);
  border: 1px solid rgba(37,99,235,0.15);
}

/* ── Stat boxes — gradient on hover ── */
[data-style="playful"] .stat-box:hover {
  background: linear-gradient(135deg, #EFF6FF, #F5F3FF);
  border-color: #8B5CF6;
  box-shadow: 0 12px 28px rgba(139,92,246,0.2);
}

/* ── Scrolled nav gets subtle gradient ── */
[data-style="playful"] .nav.scrolled {
  background: linear-gradient(to right, rgba(239,246,255,0.95), rgba(245,243,255,0.95));
  box-shadow: 0 4px 24px rgba(37,99,235,0.1);
}

/* ── wwd cards — each accent color ── */
[data-style="playful"] .wwd-grid .card:nth-child(1):hover { border-color: #2563EB; box-shadow: 0 28px 56px rgba(37,99,235,0.16), 0 4px 0 #2563EB; }
[data-style="playful"] .wwd-grid .card:nth-child(2):hover { border-color: #10B981; box-shadow: 0 28px 56px rgba(16,185,129,0.16), 0 4px 0 #10B981; }
[data-style="playful"] .wwd-grid .card:nth-child(3):hover { border-color: #F97316; box-shadow: 0 28px 56px rgba(249,115,22,0.16), 0 4px 0 #F97316; }

/* ── Tier strip header gradient ── */
[data-style="playful"] .tier-strip-header {
  background: linear-gradient(135deg, #EFF6FF, #F5F3FF);
}

/* ── Footer gradient ── */
[data-style="playful"] .footer {
  background: linear-gradient(135deg, #0A0F1E 0%, #12082A 100%);
}
