:root {
  --purple: #7c3aed;
  --purple-dark: #2a1b3d;
  --purple-soft: #f3e8ff;
  --cream: #fef9f0;
  --gold: #fbbf24;
}
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--purple-dark); overflow-x: hidden; }
img { max-width: 100%; height: auto; }
a[aria-disabled="true"] { cursor: default; }
.site-nav { width: 100%; }
.site-nav__inner { position: relative; }
.site-menu-toggle {
  display: none;
  appearance: none;
  border: 1px solid #ddd6fe;
  border-radius: 999px;
  background: #fff;
  color: #2a1b3d;
  font: 600 14px/1 'Fredoka', sans-serif;
  padding: 10px 15px;
  cursor: pointer;
}
.site-menu a:focus-visible,
.site-menu-toggle:focus-visible,
[role="button"]:focus-visible {
  outline: 3px solid rgba(124,58,237,.35);
  outline-offset: 3px;
}

@media (max-width: 900px) {
  .site-nav__inner { padding: 0 18px !important; }
  .site-menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
  .site-menu {
    display: none !important;
    position: absolute;
    top: calc(100% + 12px);
    left: 18px;
    right: 18px;
    background: rgba(254,249,240,.98);
    border: 1px solid #e9d5ff;
    border-radius: 18px;
    box-shadow: 0 20px 50px rgba(42,27,61,.16);
    padding: 16px;
    flex-direction: column;
    align-items: stretch !important;
    gap: 8px !important;
  }
  .site-menu.is-open { display: flex !important; }
  .site-menu a { padding: 10px 12px !important; text-align: center; }

  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns:1fr 1.2fr"],
  [style*="grid-template-columns:1.2fr 1fr"],
  [style*="grid-template-columns:repeat(2"],
  [style*="grid-template-columns:repeat(3"],
  [style*="grid-template-columns:repeat(4"] {
    grid-template-columns: 1fr !important;
  }
  [style*="position:sticky; top:100px"] { position: relative !important; top: auto !important; }
  h1[style] { font-size: clamp(38px, 10vw, 52px) !important; }
  h2[style] { font-size: clamp(30px, 8vw, 42px) !important; }
  [style*="padding:100px 32px"] { padding: 72px 22px !important; }
  [style*="padding:80px 32px"] { padding-left: 22px !important; padding-right: 22px !important; }
  [style*="padding:80px 32px 120px"] { padding: 64px 22px 88px !important; }
  [style*="gap:80px"] { gap: 46px !important; }
  [style*="gap:60px"] { gap: 38px !important; }
  [style*="width:380px"], [style*="width:360px"] { width: min(340px, 82vw) !important; }
}

@media (max-width: 600px) {
  .site-brand span { font-size: 17px !important; }
  [style*="padding:0 32px"] { padding-left: 18px !important; padding-right: 18px !important; }
  [style*="padding:40px 32px"] { padding: 30px 22px !important; }
  [style*="padding:32px"] { padding: 24px !important; }
  [style*="display:flex; justify-content:space-between"] { flex-wrap: wrap !important; gap: 18px !important; }
  [style*="display:flex; gap:24px"] { flex-wrap: wrap !important; }
  [style*="font-size:22px"] { font-size: 19px !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}
