/* ============================================================================
   GrowCommerce UI Kit — public pages (landing + docs) for Shoper App Store apps
   Self-contained, no build step. Theme per app by overriding the --gc-* vars
   in a :root block BEFORE this file (see brands.css). v1.0
   ----------------------------------------------------------------------------
   Design laws honored (impeccable): OKLCH neutrals tinted toward brand hue,
   no #000/#fff, "Committed" color strategy (gradient carries identity),
   ease-out motion, reduced-motion support. No gradient-text, no side-stripe
   borders, no glass-default, no em dashes.
   ============================================================================ */

/* ---- Tokens (override --gc-accent-1/2, --gc-star, --gc-brand-hue per app) -- */
:root{
  /* Brand — the ONLY three values most apps change */
  --gc-accent-1:#6366f1;            /* primary   (indigo)  */
  --gc-accent-2:#7c3aed;            /* secondary (violet)  */
  --gc-star:#f59e0b;                /* accent / rating (amber) */
  --gc-brand-hue:285;               /* OKLCH hue used to tint every neutral */

  /* Derived neutrals — tinted toward the brand hue, never pure black/white */
  --gc-bg:oklch(98.6% .007 var(--gc-brand-hue));
  --gc-surface:oklch(100% 0 0);
  --gc-surface-2:oklch(97% .01 var(--gc-brand-hue));
  --gc-ink:oklch(23% .035 var(--gc-brand-hue));
  --gc-ink-soft:oklch(36% .03 var(--gc-brand-hue));
  --gc-muted:oklch(52% .025 var(--gc-brand-hue));
  --gc-line:oklch(91% .012 var(--gc-brand-hue));
  --gc-dark:oklch(24% .03 var(--gc-brand-hue));
  --gc-dark-2:oklch(29% .03 var(--gc-brand-hue));

  /* Composed */
  --gc-grad:linear-gradient(135deg,var(--gc-accent-1),var(--gc-accent-2));
  --gc-ok:#15803d;                  /* success/verified */
  --gc-ok-bg:oklch(95% .06 150);

  --gc-shadow:0 1px 2px oklch(30% .04 var(--gc-brand-hue)/.06),0 12px 32px -8px oklch(40% .08 var(--gc-brand-hue)/.16);
  --gc-shadow-lg:0 2px 4px oklch(30% .04 var(--gc-brand-hue)/.05),0 36px 70px -22px oklch(45% .14 var(--gc-brand-hue)/.28);
  --gc-glow:0 10px 26px -8px oklch(55% .2 var(--gc-brand-hue)/.55);

  --gc-r:18px;                      /* card radius */
  --gc-r-sm:12px;
  --gc-r-lg:24px;
  --gc-ease:cubic-bezier(.16,1,.3,1);   /* ease-out-expo */
  --gc-wrap:1060px;
}

/* ---- Base ---------------------------------------------------------------- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--gc-bg);color:var(--gc-ink);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  line-height:1.6;overflow-x:hidden;
}
a{color:inherit}
img{max-width:100%;display:block}

/* Display type — load Bricolage Grotesque in the page <head>, see README */
.gc-disp{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:800;letter-spacing:-.02em;line-height:1.04}

.gc-wrap{max-width:var(--gc-wrap);margin:0 auto;padding:0 22px}

/* ---- Gradient-mesh background (decorative, fixed) ------------------------ */
.gc-mesh{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.gc-mesh::before{content:"";position:absolute;width:64vw;height:64vw;left:-16vw;top:-26vw;border-radius:50%;filter:blur(80px);opacity:.42;background:radial-gradient(circle,var(--gc-accent-1),transparent 62%)}
.gc-mesh::after{content:"";position:absolute;width:46vw;height:46vw;right:-12vw;top:-6vw;border-radius:50%;filter:blur(80px);opacity:.34;background:radial-gradient(circle,var(--gc-accent-2),transparent 62%)}

/* ---- Nav + brand mark --------------------------------------------------- */
.gc-nav{display:flex;align-items:center;justify-content:space-between;padding:22px 0}
.gc-brand{display:inline-flex;align-items:center;gap:11px;font-weight:700;font-size:18px;text-decoration:none}
.gc-mark{width:38px;height:38px;border-radius:11px;background:var(--gc-grad);display:grid;place-items:center;color:#fff;box-shadow:var(--gc-glow)}
.gc-mark svg{width:21px;height:21px}
.gc-navlink{font-weight:600;font-size:14.5px;color:var(--gc-accent-2);text-decoration:none}
.gc-pill{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gc-accent-2);background:var(--gc-surface);border:1px solid var(--gc-line);border-radius:999px;padding:6px 14px;box-shadow:var(--gc-shadow)}

/* ---- Hero --------------------------------------------------------------- */
.gc-hero{padding:48px 0 8px}
.gc-hero--center{text-align:center;max-width:720px;margin:0 auto}
.gc-hero--split{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.gc-hero h1{font-size:clamp(36px,5.6vw,58px);margin:20px 0 0}
.gc-lead{font-size:clamp(16px,2vw,19px);color:var(--gc-muted);margin:18px 0 0;max-width:54ch}
.gc-hero--center .gc-lead{margin-left:auto;margin-right:auto}

/* ---- Sections + headings ------------------------------------------------ */
.gc-section{padding:56px 0}
.gc-kicker{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:700;font-size:clamp(24px,3.4vw,34px);letter-spacing:-.02em;margin:0 0 6px}
.gc-sub{color:var(--gc-muted);margin:0 0 30px;font-size:15.5px}
.gc-tag{font-size:12.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--gc-accent-2)}

/* ---- Buttons ------------------------------------------------------------ */
.gc-btn{display:inline-flex;align-items:center;gap:8px;font-weight:650;border-radius:var(--gc-r-sm);padding:13px 24px;text-decoration:none;background:var(--gc-grad);color:#fff;box-shadow:var(--gc-glow);transition:transform .25s var(--gc-ease)}
.gc-btn:hover{transform:translateY(-2px)}
.gc-btn--ghost{background:var(--gc-surface-2);color:var(--gc-ink-soft);box-shadow:none;border:1px solid var(--gc-line)}
.gc-btn--ghost:hover{background:var(--gc-line);transform:none}

/* ---- Cards / surfaces --------------------------------------------------- */
.gc-card{background:var(--gc-surface);border:1px solid var(--gc-line);border-radius:var(--gc-r);box-shadow:var(--gc-shadow)}
.gc-card--lg{box-shadow:var(--gc-shadow-lg)}
.gc-pad{padding:26px 22px}

/* ---- Bento (varied tile sizes — NOT a uniform grid) --------------------- */
.gc-bento{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.gc-bento .gc-t{background:var(--gc-surface);border:1px solid var(--gc-line);border-radius:var(--gc-r);padding:24px;box-shadow:var(--gc-shadow)}
.gc-t-wide{grid-column:span 3}
.gc-t-sm{grid-column:span 2}
.gc-t-tall{grid-column:span 2;grid-row:span 2}
.gc-t h3{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:700;font-size:18px;margin:12px 0 6px}
.gc-t p{margin:0;color:var(--gc-muted);font-size:14px}
.gc-t-ico{width:40px;height:40px;border-radius:11px;background:var(--gc-grad);display:grid;place-items:center;color:#fff}
.gc-t-ico svg{width:20px;height:20px}

/* ---- Steps (numbered quick-start) --------------------------------------- */
.gc-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.gc-step{background:var(--gc-surface);border:1px solid var(--gc-line);border-radius:var(--gc-r);padding:26px 22px;box-shadow:var(--gc-shadow)}
.gc-step .gc-n{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:800;font-size:15px;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;background:var(--gc-grad);margin-bottom:14px}
.gc-step h3{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:700;font-size:18px;margin:0 0 6px}
.gc-step p{margin:0;color:var(--gc-muted);font-size:14.5px}
.gc-chip{display:inline-block;margin-top:12px;font-size:12px;font-weight:600;color:var(--gc-ok);background:var(--gc-ok-bg);border-radius:999px;padding:4px 11px}

/* ---- Feature rows (alternating text + visual) --------------------------- */
.gc-feat{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;padding:34px 0}
.gc-feat--rev .gc-ftext{order:2}
.gc-feat h3{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:700;font-size:clamp(22px,2.6vw,28px);margin:10px 0 10px;letter-spacing:-.01em}
.gc-feat p{margin:0;color:var(--gc-muted)}
.gc-feat ul{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.gc-feat li{display:flex;gap:9px;font-size:14.5px;color:var(--gc-ink-soft)}
.gc-feat li svg{flex:0 0 18px;margin-top:3px;color:var(--gc-ok)}

/* ---- Stars (rating) ----------------------------------------------------- */
.gc-stars{display:inline-flex;gap:2px}
.gc-stars svg{width:16px;height:16px;fill:var(--gc-star)}
.gc-stars .gc-empty{fill:oklch(90% .01 var(--gc-brand-hue))}

/* ---- Code card (copyable snippets) -------------------------------------- */
.gc-codecard{background:var(--gc-dark);border-radius:var(--gc-r);padding:8px;box-shadow:var(--gc-shadow-lg)}
.gc-codecard pre,.gc-codecard code{color:#e5e7eb}
.gc-codecard .gc-lbl{color:#94a3b8}
.gc-crow{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:12px}
.gc-crow+.gc-crow{margin-top:2px}
.gc-crow:hover{background:var(--gc-dark-2)}
.gc-crow .gc-lbl{color:oklch(82% .03 var(--gc-brand-hue));font-size:13.5px;flex:1;min-width:0}
.gc-crow code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;color:var(--gc-accent-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42%}
.gc-copy{background:oklch(40% .05 var(--gc-brand-hue));color:#fff;border:0;border-radius:8px;padding:7px 13px;font-size:12.5px;font-weight:600;cursor:pointer;flex:0 0 auto;transition:background .15s}
.gc-copy:hover{background:var(--gc-accent-1)}

/* ---- FAQ (accordion) ---------------------------------------------------- */
.gc-faq details{background:var(--gc-surface);border:1px solid var(--gc-line);border-radius:14px;padding:2px 18px;margin-bottom:10px}
.gc-faq summary{font-weight:650;cursor:pointer;list-style:none;padding:15px 0;display:flex;justify-content:space-between;align-items:center;gap:12px}
.gc-faq summary::-webkit-details-marker{display:none}
.gc-faq summary::after{content:"+";font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:22px;color:var(--gc-accent-2);transition:transform .2s var(--gc-ease)}
.gc-faq details[open] summary::after{transform:rotate(45deg)}
.gc-faq p{margin:0 0 16px;color:var(--gc-muted);font-size:14.5px}

/* ---- CTA card ----------------------------------------------------------- */
.gc-cta{text-align:center;background:var(--gc-surface);border:1px solid var(--gc-line);border-radius:var(--gc-r-lg);padding:44px 24px;box-shadow:var(--gc-shadow-lg)}
.gc-cta h3{font-size:clamp(24px,3.2vw,32px);margin:0 0 8px}
.gc-cta p{color:var(--gc-muted);margin:0 0 22px}

/* ---- Family / cross-promo (other GrowCommerce apps) --------------------- */
.gc-family{padding:40px 0}
.gc-family-head{text-align:center;margin-bottom:26px}
.gc-family-head .gc-kicker{margin:0}
.gc-family-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.gc-app{display:flex;gap:13px;align-items:flex-start;background:var(--gc-surface);border:1px solid var(--gc-line);border-radius:var(--gc-r-sm);padding:16px;text-decoration:none;transition:transform .25s var(--gc-ease),box-shadow .25s var(--gc-ease),border-color .25s}
.gc-app:hover{transform:translateY(-3px);box-shadow:var(--gc-shadow);border-color:transparent}
.gc-app-mark{flex:0 0 38px;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:#fff;
  /* each card sets its own --c1/--c2 inline for brand-true marks */
  background:linear-gradient(135deg,var(--c1,var(--gc-accent-1)),var(--c2,var(--gc-accent-2)))}
.gc-app-mark svg{width:20px;height:20px}
.gc-app-name{display:block;font-weight:700;font-size:14.5px;color:var(--gc-ink);line-height:1.2}
.gc-app-desc{display:block;font-size:12.5px;color:var(--gc-muted);margin-top:3px;line-height:1.4}

@media(max-width:480px){.gc-family-grid{grid-template-columns:1fr 1fr}.gc-app{flex-direction:column;gap:8px}}

/* ---- Footer ------------------------------------------------------------- */
.gc-footer{border-top:1px solid var(--gc-line);padding:26px 0;color:var(--gc-muted);font-size:13.5px;text-align:center}
.gc-footer a{color:var(--gc-accent-2);font-weight:600;text-decoration:none}

/* ---- Reveal-on-scroll helper (add .gc-reveal + .gc-in via tiny JS) ------- */
.gc-reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--gc-ease),transform .6s var(--gc-ease)}
.gc-reveal.gc-in{opacity:1;transform:none}

/* ---- Responsive --------------------------------------------------------- */
@media(max-width:860px){
  .gc-hero--split{grid-template-columns:1fr;gap:28px}
  .gc-bento{grid-template-columns:repeat(2,1fr)}
  .gc-t-wide,.gc-t-sm,.gc-t-tall{grid-column:span 1;grid-row:auto}
}
@media(max-width:820px){
  .gc-steps{grid-template-columns:1fr}
  .gc-feat{grid-template-columns:1fr;gap:24px}
  .gc-feat--rev .gc-ftext{order:0}
}
@media(max-width:420px){
  .gc-wrap{padding:0 16px}
  .gc-hero{padding-top:32px}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto}
  .gc-btn:hover{transform:none}
  .gc-reveal{opacity:1;transform:none;transition:none}
}
