/* StitchDB marketing pages (02-marketing-site.md §8). Tokens only. */

/* ---------- sections ---------- */
.section{padding-block:96px}
.section--tint{background:var(--bg-2);border-block:1px solid var(--border)}
.section--flush-top{padding-top:0}
.section-head{max-width:720px;display:grid;gap:12px}
.section-head--center{text-align:center;margin-inline:auto}
.section-head .t-lead{margin:0}
.section-head .t-eyebrow{margin:0}
.section-body{margin-top:40px}
.section-text{margin:20px 0 0;color:var(--muted)}
.center-link{text-align:center;margin:28px 0 0}
@media (max-width:768px){.section{padding-block:64px}.section-body{margin-top:28px}}

/* ---------- hero ---------- */
.hero{padding-block:72px 48px;text-align:center}
.hero-copy{max-width:820px;margin:auto}
.hero-copy .t-display,.hero-copy .t-h1{margin-top:20px}
.hero-copy > .t-eyebrow + .t-h1{margin-top:12px}
.hero-copy .t-lead{margin:20px auto 0;max-width:680px}
.hero .ctas{justify-content:center;margin-top:32px}
.hero--home{background:radial-gradient(60% 50% at 50% 0%,var(--accent-soft),transparent)}
.hero-caption{margin:16px 0 0;font-size:13px;color:var(--faint)}
.hero-visual{margin-top:56px;max-width:1040px}
.hero--center{padding-block:80px 56px;background:radial-gradient(60% 60% at 50% 0%,var(--accent-soft),transparent)}
.hero--split{text-align:left;padding-block:72px;background:radial-gradient(50% 60% at 20% 0%,var(--accent-soft),transparent)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.hero-text .t-h1{margin-top:12px}
.hero-text .t-lead{margin:18px 0 0}
.hero--split .ctas{justify-content:flex-start}
.hero-side{min-width:0}
.hero-side .code{margin:0;box-shadow:var(--sh-3)}
@media (max-width:1024px){.hero-grid{grid-template-columns:1fr;gap:36px}}
@media (max-width:480px){.hero,.hero--split,.hero--center{padding-block:56px 40px}.hero-visual{margin-top:40px}}

/* ---------- fact band ---------- */
.fact-band-wrap{background:var(--bg-2);border-block:1px solid var(--border);padding-block:20px}
.fact-band{list-style:none;margin:0;padding:0;display:flex;gap:16px 32px;justify-content:center;flex-wrap:wrap;font-size:14px;color:var(--text-2)}
.fact-band li{display:flex;gap:8px;align-items:center}
.fact-band svg{color:var(--accent-text)}
.fact-line{display:flex;gap:8px;align-items:center;margin:20px 0 0;font-size:14px;color:var(--muted)}
.fact-line svg{color:var(--info);flex:none}

/* ---------- cards in marketing ---------- */
.feature-card{display:flex;flex-direction:column;align-items:flex-start}
.feature-card p{flex:1}
.doc-card h3{font-size:16px;font-weight:600}
.doc-card p{font-size:14.5px;color:var(--muted);margin:8px 0 14px}

/* ---------- split / steps ---------- */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:56px;align-items:center}
.split-code{min-width:0}
.split-code .code{margin:0;box-shadow:var(--sh-2)}
.split > div > .link-arrow{margin-top:24px}
@media (max-width:1024px){.split{grid-template-columns:1fr;gap:36px}}
.steps{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:20px}
.step{display:grid;grid-template-columns:28px minmax(0,1fr);gap:14px;align-items:start}
.step-n{width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--accent-border);display:grid;place-items:center;font-size:13px;font-weight:600}
.step h3{font-size:16px;font-weight:600;line-height:28px}
.step p{margin:2px 0 0;font-size:15px;color:var(--muted)}
.example-code .code{margin:0}

/* ---------- studio mock ---------- */
.mock{border:1px solid var(--border);border-radius:12px;box-shadow:var(--sh-3);overflow:hidden;background:var(--surface);text-align:left}
.mock-bar{height:40px;background:var(--bg-2);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:7px;padding:0 14px}
.mock-bar i{width:10px;height:10px;border-radius:50%;background:var(--border-strong)}
.mock-bar span{margin-left:10px;font-size:12px;color:var(--faint)}
.mock-body{display:grid;grid-template-columns:52px minmax(0,1fr);min-height:260px}
.mock-rail{border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 0;background:var(--bg-2)}
.mock-rail span{width:32px;height:32px;display:grid;place-items:center;border-radius:6px;color:var(--faint)}
.mock-rail span.on{background:var(--accent-soft);color:var(--accent-text)}
.mock-main{min-width:0;padding:16px}
.mock-title{display:flex;align-items:center;gap:10px;font-size:14px;margin-bottom:14px}
.mock-title svg{color:var(--faint)}
.mock-btn{margin-left:auto;font-size:12.5px;font-weight:500;padding:5px 10px;border-radius:6px;background:var(--accent);color:var(--on-accent)}
.mock-table{overflow-x:auto;border:1px solid var(--border);border-radius:8px}
.mock-table table{width:100%;border-collapse:collapse;font:12.5px/1.4 var(--font-mono)}
.mock-table th{background:var(--bg-2);color:var(--muted);font-weight:500;text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);white-space:nowrap}
.mock-table td{padding:9px 12px;border-bottom:1px solid var(--border);white-space:nowrap;color:var(--text-2)}
.mock-table tr:last-child td{border-bottom:0}
.mock .yes{color:var(--success)} .mock .no{color:var(--faint)}
@media (max-width:480px){.mock-body{grid-template-columns:40px minmax(0,1fr)}.mock-rail span{width:28px;height:28px}.mock-main{padding:12px}.mock-btn{display:none}}

/* ---------- plans ---------- */
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;max-width:820px;margin-inline:auto}
.plan-grid .skel-card{height:340px}
.plan-card{display:flex;flex-direction:column;gap:12px;padding:28px}
.plan-card.is-featured{border-color:var(--accent-border);box-shadow:var(--sh-2)}
.plan-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.plan-top h3{font-size:20px;font-weight:600}
.plan-card .price{font-size:32px;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.plan-desc{margin:0 0 6px;color:var(--muted);font-size:15px}
.plan-list{list-style:none;margin:10px 0 0;padding:16px 0 0;border-top:1px solid var(--border);display:grid;gap:10px}
.plan-card ul li{display:flex;gap:10px;font-size:14px;align-items:flex-start}
.plan-card ul li svg{color:var(--accent-text);margin-top:3px;flex:none}
.plans-footnote{max-width:820px;margin:20px auto 0;font-size:13px;color:var(--muted);text-align:center}
@media (max-width:400px){.plan-grid{grid-template-columns:1fr}}

/* ---------- compare table ---------- */
.compare-wrap{max-width:960px;margin-inline:auto}
.compare-table th[scope="col"]{font-size:13px;color:var(--text)}
.compare-table th[scope="row"]{font-weight:500;color:var(--text-2);background:var(--surface);position:sticky;left:0;z-index:1;font-size:13.5px;white-space:normal;min-width:180px;text-align:left;padding:12px 14px;border-bottom:1px solid var(--border)}
.compare-table thead th:first-child{position:sticky;left:0;z-index:2}
.compare-table tr.group th{background:var(--bg-2);font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;color:var(--faint);position:static;padding:10px 14px;border-bottom:1px solid var(--border)}
.compare-table td{white-space:nowrap;font-variant-numeric:tabular-nums}
.compare-table .yes{color:var(--success);display:inline-flex}
.compare-table .no{color:var(--faint)}
.compare-table tbody tr:last-child th{border-bottom:0}

/* ---------- FAQ ---------- */
.faq-wrap{max-width:820px}
.faq{border-bottom:1px solid var(--border)}
.faq details{border-top:1px solid var(--border);padding:18px 0}
.faq summary{font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;font-size:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--muted);font-weight:500;font-size:20px;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:10px 0 0;color:var(--muted);font-size:15px;max-width:680px}

/* ---------- product switcher ---------- */
.switcher-band{padding-block:56px;border-top:1px solid var(--border)}
.switcher{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-top:20px}
.switcher-item{display:flex;gap:12px;align-items:center;padding:14px}
.switcher-item .tile{width:32px;height:32px}
.switcher-item .tile svg{width:16px;height:16px}
.switcher-text{min-width:0}
.switcher-text b{display:block;font-size:14px;font-weight:600}
.switcher-text span{display:block;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.switcher-item.is-current{border-color:var(--accent);background:var(--accent-soft)}
@media (max-width:1024px){.switcher{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:768px){.switcher{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:400px){.switcher{grid-template-columns:1fr}}

/* ---------- CTA band ---------- */
.cta-band{background:var(--text);color:var(--inverse);text-align:center;padding-block:88px}
.cta-band p{margin:14px 0 0;font-size:17px;opacity:.8}
.cta-band .ctas{justify-content:center;margin-top:28px}
.cta-band .btn-inverse{border-color:rgba(255,255,255,.35);color:inherit;background:transparent}
.cta-band .btn-inverse:hover{background:rgba(255,255,255,.08)}
:root[data-theme="dark"] .cta-band{background:var(--surface-2);color:var(--text)}
:root[data-theme="dark"] .cta-band .btn-inverse{border-color:var(--border-strong)}
@media (max-width:768px){.cta-band{padding-block:64px}}

/* ---------- why: diagram ---------- */
.diagram-wrap{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-4);padding:20px;box-shadow:var(--sh-2)}
.diagram{width:100%;height:auto}
.diagram .d-project{fill:var(--accent-soft);stroke:var(--accent-border);stroke-width:1.5}
.diagram .d-tile{fill:var(--surface);stroke:var(--border-strong)}
.diagram .d-ext{fill:var(--bg-2);stroke:var(--border-strong);stroke-dasharray:4 3}
.diagram .d-title{fill:var(--accent-text);font:600 14px var(--font-sans)}
.diagram .d-label{fill:var(--text);font:600 13px var(--font-sans)}
.diagram .d-sub{fill:var(--muted);font:400 11px var(--font-mono)}
.diagram .d-line{stroke:var(--muted);stroke-width:1.5}
.diagram .d-arrowhead{fill:var(--muted)}
.split--diagram{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
@media (max-width:1024px){.split--diagram{grid-template-columns:1fr}}

/* ---------- header/footer details ---------- */
.mega-text{min-width:0}
.mega-downloads .code{margin:6px 0 0;font-size:11.5px}
.mega-downloads .code pre{padding:10px 12px;white-space:pre-wrap;word-break:break-all}
.drawer-downloads{margin:8px 0 16px}
.footer-tag{display:block;color:var(--text);font-weight:600;margin-bottom:6px}
.footer-bottom .theme-toggle{width:32px;height:32px}

/* ---------- not found ---------- */
.notfound{max-width:520px;margin:40px auto;text-align:center;padding:40px 28px}
.notfound p{margin:12px 0 0}
.notfound .ctas{justify-content:center;margin-top:24px}
.plan-card .price small{font-size:15px;font-weight:500;color:var(--muted);letter-spacing:0}

/* real dashboard screenshots */
.shot{margin:0;overflow:hidden}
.shot img{display:block;width:100%;height:auto;background:var(--bg-2)}
.hero-visual .shot{max-width:1120px;margin-inline:auto}
.showcase{display:grid;gap:20px;justify-items:center}
.showcase-tabs{flex-wrap:wrap;justify-content:center}
.showcase-frame{width:100%;max-width:1120px}
.showcase-frame [hidden]{display:none}
/* Screenshots follow the theme: light shots in light mode, dark shots in dark mode. */
.shot .shot-dark{display:none}
:root[data-theme="dark"] .shot .shot-light{display:none}
:root[data-theme="dark"] .shot .shot-dark{display:block}

/* ---------- phone layout ---------- */
@media (max-width:640px){
  .section{padding-block:48px}
  .section-body{margin-top:20px}
  .section-head{gap:8px}
  .hero,.hero--split,.hero--center{padding-block:40px 32px}
  .hero-copy .t-lead,.hero-text .t-lead{font-size:16px;margin-top:14px}
  .hero .ctas{margin-top:24px}
  .hero-visual{margin-top:32px}
  .fact-band-wrap{padding-block:16px}
  .fact-band{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;font-size:13px}
  .fact-band li{align-items:flex-start;line-height:1.4}
  .fact-band svg{flex:none;margin-top:1px}
  /* screenshots: show the top-left at a readable size; swipe to see the rest */
  .mock-bar{height:34px;padding:0 12px}
  .mock-bar span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .shot{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
  .shot::-webkit-scrollbar{display:none}
  .shot .mock-bar{position:sticky;left:0;width:100%}
  .shot img{width:180%;max-width:none}
  .showcase{gap:14px;justify-items:stretch;grid-template-columns:minmax(0,1fr)}
  .showcase-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;max-width:100%;scrollbar-width:none}
  .showcase-tabs::-webkit-scrollbar{display:none}
  .showcase-tabs [role="tab"]{flex:none}
  .doc-card p{margin:6px 0 10px}
  .steps{margin-top:20px;gap:16px}
  .step p{font-size:14.5px}
  .plan-card{padding:20px;gap:10px}
  .plan-card .price{font-size:28px}
  .plan-list{gap:8px;padding-top:12px}
  .compare-wrap .table-wrap{overflow:visible}
  .compare-table{table-layout:fixed}
  .compare-table thead th:first-child,.compare-table th[scope="row"]{width:44%;min-width:0;padding:10px;font-size:13px}
  .compare-table thead th,.compare-table td{padding:10px 8px;font-size:13px;white-space:normal;overflow-wrap:anywhere}
  .compare-table tr.group th{padding:8px 10px;font-size:11px}
  .faq details{padding:14px 0}
  .faq summary{font-size:15px}
  .cta-band{padding-block:48px}
  .cta-band p{font-size:16px}
  .switcher-band{padding-block:40px}
  .switcher,.switcher[class]{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .switcher-item{padding:10px;gap:10px}
  .switcher-text span{display:none}
  .diagram-wrap{padding:12px;overflow-x:auto}
  .diagram{min-width:560px}
}
@media (max-width:360px){.compare-table thead th:first-child,.compare-table th[scope="row"]{width:38%;padding:10px 8px}.compare-table thead th,.compare-table td{padding:10px 5px;font-size:12.5px;overflow-wrap:normal}}

/* ================= frame, cells and panels ================= */
:root{--frame:var(--border-strong);--glow-1:#047857;--glow-2:#059669;--glow-3:#6EE7B7}
:root[data-theme="dark"]{--glow-1:#064E3B;--glow-2:#047857;--glow-3:#34D399}
.site-main{overflow-x:clip}
/* dashed guide lines framing the content column */
.site-main .section{padding-block:0;border-top:1px dashed var(--frame)}
.site-main .section > .container{border-inline:1px dashed var(--frame);padding-block:96px}
.site-main .section--tint{background:var(--bg);border-block:0;border-top:1px dashed var(--frame)}
.site-main .section--flush-top > .container{padding-top:0}
.site-main .section > .container > .section-head{text-align:center;margin-inline:auto}
.site-main .section > .container > .section-head .t-lead{margin-inline:auto}

/* hairline cell grids instead of separate rounded cards */
.site-main .section-body.grid-2,.site-main .section-body.grid-3,.site-main .section-body.grid-4,.site-main .switcher,.site-main .plan-grid{
  gap:1px;background:var(--border);border-block:1px solid var(--border);margin-inline:calc(var(--gutter) * -1)}
.site-main .section-body > .card,.site-main .switcher > .card,.site-main .plan-grid > .card{border:0;border-radius:0;background:var(--bg);box-shadow:none;padding:32px}
.site-main .section-body > .card-link:hover,.site-main .switcher > .card-link:hover{transform:none;box-shadow:none;background:var(--bg-2)}
.site-main .feature-card .tile,.site-main .switcher-item .tile{width:auto;height:auto;background:none;border:0;border-radius:0;color:var(--text);display:block}
.site-main .feature-card .tile svg{width:26px;height:26px;stroke-width:1.5}
.site-main .feature-card h3{font-size:18px;font-weight:500;margin-top:18px;letter-spacing:-.01em}
.site-main .feature-card p{font-size:15px;line-height:1.55}
.site-main .doc-card h3{font-size:17px;font-weight:500}
.site-main .link-arrow{font-weight:500}

/* plans as cells */
.site-main .plan-grid{max-width:none;margin-inline:calc(var(--gutter) * -1)}
.site-main .plan-card{padding:36px 32px}
.site-main .plan-card.is-featured{background:linear-gradient(var(--accent-soft),var(--bg) 160px);box-shadow:inset 0 2px 0 var(--accent)}
.site-main .plan-top h3{font-weight:500}
.site-main .plan-card .price{font-weight:500;font-size:40px;letter-spacing:-.03em}

/* highlights row as cells */
.fact-band-wrap{background:var(--bg);border-block:0;padding-block:0}
.fact-band-wrap > .container{border-inline:1px dashed var(--frame);padding-inline:0}
.fact-band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border);border-block:1px solid var(--border);justify-content:stretch}
.fact-band li{background:var(--bg);padding:20px 24px;font-size:14.5px;color:var(--text)}

/* segmented pill tabs */
.site-main .tabs--pill{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);padding:4px;gap:2px}
.site-main .tabs--pill [role="tab"]{border-radius:var(--r-pill);padding:8px 16px;font-size:14px;color:var(--text-2)}
.site-main .tabs--pill [aria-selected="true"]{background:var(--accent);color:var(--on-accent);box-shadow:none}

/* hero: rounded colour panel set in from the edges */
.hero--home{background:none;padding:8px 8px 0;text-align:center}
.hero--home > .hero-copy{max-width:none;margin:0;border-radius:24px;padding:104px 24px 220px;color:#fff;position:relative;overflow:hidden;
  background:radial-gradient(rgba(255,255,255,.10) 1px,transparent 1.2px) 0 0/7px 7px,radial-gradient(55% 45% at 50% 108%,var(--glow-3),transparent 70%),linear-gradient(180deg,var(--glow-1),var(--glow-2))}
.hero--home .t-display{max-width:940px;margin-inline:auto;color:#fff}
.hero--home .t-lead{color:rgba(255,255,255,.88)}
.hero--home .hero-caption{color:rgba(255,255,255,.75)}
.hero--home .pill{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.45);color:#fff;height:36px;padding:0 6px 0 16px}
.hero--home .pill b{color:#fff}
.hero--home .pill svg{width:24px;height:24px;padding:5px;border-radius:50%;background:#fff;color:var(--glow-1)}
.hero--home .btn-primary{background:#fff;border-color:#fff;color:#0B2E22}
.hero--home .btn-primary:hover{background:#ECFDF5;border-color:#ECFDF5}
.hero--home .btn:not(.btn-primary){background:transparent;border-color:rgba(255,255,255,.55);color:#fff}
.hero--home .btn:not(.btn-primary):hover{background:rgba(255,255,255,.1)}
.hero--home > .hero-visual{margin-top:-170px;position:relative;z-index:1;max-width:1120px}
.hero--home + .fact-band-wrap > .container{padding-top:56px}
.hero--home + .fact-band-wrap .fact-band{border-top:1px solid var(--border)}
.hero--center,.hero--split{margin:8px;border-radius:24px;background:radial-gradient(70% 90% at 50% 0%,var(--accent-soft),transparent),var(--bg-2)}

/* closing call to action as a matching panel */
.cta-band{margin:8px;border-radius:24px;color:#fff;
  background:radial-gradient(rgba(255,255,255,.10) 1px,transparent 1.2px) 0 0/7px 7px,radial-gradient(50% 70% at 50% 120%,var(--glow-3),transparent 70%),linear-gradient(180deg,var(--glow-1),var(--glow-2))}
:root[data-theme="dark"] .cta-band{background:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1.2px) 0 0/7px 7px,radial-gradient(50% 70% at 50% 120%,var(--glow-3),transparent 70%),linear-gradient(180deg,var(--glow-1),var(--glow-2));color:#fff}
.cta-band h2{font-weight:500;letter-spacing:-.03em}
.cta-band .btn-primary{background:#fff;border-color:#fff;color:#0B2E22}
.cta-band .btn-primary:hover{background:#ECFDF5}
.cta-band .btn-inverse,:root[data-theme="dark"] .cta-band .btn-inverse{border-color:rgba(255,255,255,.55);color:#fff}

/* product switcher cells */
.site-main .switcher{margin-top:24px}
.site-main .switcher-item{padding:18px 16px;border-radius:0}
.site-main .switcher-item.is-current{background:var(--accent-soft);box-shadow:inset 0 -2px 0 var(--accent)}
.switcher-band{border-top:1px dashed var(--frame)}

@media (max-width:1024px){.fact-band{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .site-main .section > .container{padding-block:56px}
  .site-main .section-body > .card,.site-main .switcher > .card,.site-main .plan-grid > .card{padding:24px 20px}
  .site-main .feature-card h3{margin-top:14px;font-size:17px}
  .fact-band li{padding:14px 16px;font-size:13.5px}
  .hero--home{padding:6px 6px 0}
  .hero--home > .hero-copy{border-radius:20px;padding:56px 18px 150px}
  .hero--home > .hero-visual{margin-top:-120px}
  .hero--center,.hero--split{margin:6px;border-radius:20px}
  .cta-band{margin:6px;border-radius:20px}
  .site-main .tabs--pill [role="tab"]{padding:7px 13px;font-size:13.5px}
}
.site-main .section-body > .card,.site-main .plan-grid > .card,.site-main .switcher > .card{margin:0}
.mega-panel.container{padding-inline:0}
.site-footer{background:var(--bg);border-top:1px dashed var(--frame)}
/* links inside running text must not rely on colour alone */
.step p .link,.section-text .link{text-decoration:underline;text-underline-offset:2px}
