/* Shared stylesheet for every product site: landing, /app chrome, auth and
   legal pages. Brand tokens (--ink, --flag, --wash, fonts) come from the
   generated /assets/theme.css, which loads first. One file on purpose: a fix
   here reaches all thirteen sites on the next generate + deploy. */

:root{
  --paper:#fff;
  --ok:#1b7348;
  --ok-wash:#e6f3ec;
  --line:color-mix(in srgb, var(--ink) 16%, transparent);
  --muted:color-mix(in srgb, var(--ink) 72%, white);
  --radius:10px;
  --radius-small:6px;
  --wrap:76rem;
  --step--1:0.875rem;
  --step-0:1.0625rem;
  --step-1:1.25rem;
  --step-2:1.6rem;
  --step-3:2.1rem;
  --step-hero:clamp(2.4rem, 1rem + 4.2vw, 4.1rem);
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:1rem;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--font-body);font-size:var(--step-0);line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;}
a{color:inherit;text-underline-offset:0.18em;}
h1,h2,h3{font-family:var(--font-head);font-weight:var(--font-head-weight);line-height:1.12;margin:0;letter-spacing:-0.015em;}
h2{font-size:var(--step-3);}
h3{font-size:var(--step-1);letter-spacing:-0.005em;}
p{margin:0;}
ul,ol{margin:0;padding:0;list-style:none;}
:focus-visible{outline:3px solid var(--flag);outline-offset:3px;border-radius:3px;}
[hidden]{display:none !important;}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 1.25rem;}
.wrap--narrow{max-width:46rem;}
.wrap--app{max-width:64rem;}
.skip-link{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--paper);padding:0.7rem 1rem;z-index:10;}
.skip-link:focus{left:0;}
.icon{width:1.35em;height:1.35em;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}

/* ---- buttons ---- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:0.5em;
  font:inherit;font-weight:600;text-decoration:none;cursor:pointer;
  padding:0.8em 1.35em;border-radius:var(--radius-small);
  border:2px solid var(--ink);background:transparent;color:var(--ink);
}
.btn:hover{background:var(--wash);}
.btn--primary{background:var(--ink);color:var(--paper);}
.btn--primary:hover{background:color-mix(in srgb, var(--ink) 86%, white);}
.btn--quiet{border-color:transparent;text-decoration:underline;padding-inline:0.4em;}
.btn--small{padding:0.5em 0.95em;font-size:var(--step--1);}
.btn--invert{background:var(--paper);color:var(--ink);border-color:var(--paper);}
.btn--invert:hover{background:var(--wash);}
.btn--ghost{border-color:color-mix(in srgb, var(--paper) 55%, transparent);color:var(--paper);}
.btn--ghost:hover{background:color-mix(in srgb, var(--paper) 12%, transparent);}
.link-quiet{font-weight:600;font-size:var(--step--1);text-decoration:none;}
.link-quiet:hover{text-decoration:underline;}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:0.75rem 1rem;}

/* ---- header / footer ---- */
.site-header{border-bottom:1px solid var(--line);background:var(--paper);}
.site-header__row{display:flex;align-items:center;gap:1.5rem;min-height:4rem;}
.logo{display:inline-flex;margin-right:auto;}
.logo img{height:30px;width:auto;display:block;}
.site-nav{display:none;gap:1.6rem;font-size:var(--step--1);font-weight:600;}
.site-nav a{text-decoration:none;}
.site-nav a:hover{text-decoration:underline;}
.site-header__auth{display:flex;align-items:center;gap:1rem;white-space:nowrap;}
@media (max-width:26rem){.logo img{height:24px;}.site-header__row{gap:0.75rem;}}
@media (min-width:52rem){.site-nav{display:flex;}}

.site-footer{border-top:1px solid var(--line);padding:2.5rem 0;font-size:var(--step--1);color:var(--muted);}
.site-footer__row{display:grid;gap:1.5rem;}
.site-footer p{margin-top:0.5rem;}
.site-footer ul{display:flex;flex-wrap:wrap;gap:0.4rem 1.4rem;}
@media (min-width:52rem){.site-footer__row{grid-template-columns:1fr auto;align-items:start;}.site-footer ul{justify-content:flex-end;max-width:26rem;}}

/* ---- hero ---- */
.hero{background:var(--wash);padding:2.25rem 0 3rem;overflow:hidden;}
.hero__grid{display:grid;gap:2rem;align-items:start;margin-top:1.5rem;}
.hero h1{font-size:var(--step-hero);line-height:1;letter-spacing:-0.03em;text-wrap:balance;}
.hero__sub{font-size:var(--step-1);line-height:1.45;max-width:34rem;margin:0 0 1.5rem;}
.facts{display:grid;gap:0.55rem;margin-top:1.75rem;font-size:var(--step--1);font-weight:600;}
.facts li{display:flex;align-items:center;gap:0.6rem;}
.facts .icon{color:var(--ok);}
@media (min-width:62rem){
  .hero{padding:2.75rem 0 4rem;}
  .hero__grid{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:3rem;margin-top:2rem;}
}

/* ---- demo: the product in miniature ---- */
.demo{
  background:var(--paper);border:1px solid var(--ink);border-radius:var(--radius);
  box-shadow:10px 10px 0 color-mix(in srgb, var(--ink) 12%, transparent);
  font-size:var(--step--1);min-width:0;
}
.demo__bar{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem 1rem;padding:0.6rem 0.9rem;border-bottom:1px solid var(--ink);}
.demo__title{font-family:var(--font-head);font-weight:var(--font-head-weight);margin-right:auto;}
.demo__tabs{display:flex;gap:0.25rem;}
.demo__tabs button{
  font:inherit;font-weight:600;cursor:pointer;padding:0.3em 0.8em;border-radius:999px;
  border:1px solid var(--line);background:transparent;color:var(--ink);
}
.demo__tabs button[aria-selected="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.demo__panel{display:grid;}
.demo__in{padding:0.9rem;background:var(--wash);border-bottom:1px solid var(--line);}
.demo__out{padding:0.9rem;min-width:0;}
.demo__label{font-weight:700;margin-bottom:0.6rem;}
.files{display:grid;gap:0.5rem;}
.files li{display:flex;gap:0.6rem;align-items:center;padding:0.55rem 0.65rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-small);}
.files b{display:block;font-weight:600;overflow-wrap:anywhere;line-height:1.25;}
.files small{color:var(--muted);font-size:0.8rem;}
@media (min-width:44rem){
  .demo__panel{grid-template-columns:12.5rem minmax(0,1fr);}
  .demo__in{border-bottom:0;border-right:1px solid var(--line);}
  .files{grid-template-columns:1fr;}
}

.result{width:100%;border-collapse:collapse;}
.result th{text-align:left;font-weight:600;color:var(--muted);font-size:0.8rem;padding:0 0.5rem 0.4rem 0;white-space:nowrap;}
.result td{padding:0.5rem 0.75rem 0.5rem 0;line-height:1.3;border-top:1px solid var(--line);vertical-align:middle;}
.result td:last-child,.result th:last-child{padding-right:0;text-align:right;}
.result__row[data-status="flag"] td{background:linear-gradient(var(--flag-wash),var(--flag-wash));}
.result__row[data-status="flag"] td:first-child{box-shadow:inset 3px 0 0 var(--flag);padding-left:0.55rem;}
.result__why td{border-top:0;padding:0 0 0.7rem;color:var(--muted);text-align:left !important;}
.chip{
  display:inline-flex;align-items:center;gap:0.3em;font:inherit;font-weight:700;font-size:0.8rem;
  white-space:nowrap;cursor:pointer;padding:0.25em 0.65em 0.25em 0.45em;border-radius:999px;border:1px solid transparent;
}
.chip .icon{width:1.05em;height:1.05em;stroke-width:2.4;}
.chip--ok{background:var(--ok-wash);color:var(--ok);}
.chip--flag{background:var(--flag);color:var(--flag-ink);}
.chip:hover{border-color:currentColor;}
.demo__sum{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0.4rem 1rem;margin-top:0.7rem;padding-top:0.7rem;border-top:1px solid var(--ink);font-weight:700;}
.demo__cost{font-variant-numeric:tabular-nums;}
.demo__note{padding:0.55rem 0.9rem;border-top:1px solid var(--line);color:var(--muted);font-size:0.8rem;}

/* On narrow screens each result row becomes a small card. */
@media (max-width:43.99rem){
  .result thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
  .result,.result tbody{display:block;}
  .result__row{display:grid;grid-template-columns:1fr auto;gap:0.1rem 0.75rem;padding:0.6rem 0;border-top:1px solid var(--line);}
  .result__row td{display:block;border:0;padding:0;}
  .result__row td:first-child{font-weight:600;grid-column:1;}
  .result__row td:last-child{grid-column:2;grid-row:1;}
  .result__row{grid-template-columns:1fr auto;grid-auto-flow:row;}
  .result__row td:not(:first-child):not(:last-child){display:none;color:var(--muted);}
  .result__row td:nth-last-child(2){display:block !important;grid-column:1 / -1;}
  .result__row td:nth-last-child(2)::before{content:attr(data-label) ": ";}
  .result__row[data-status="flag"]{padding-left:0.55rem;box-shadow:inset 3px 0 0 var(--flag);background:var(--flag-wash);}
  .result__row[data-status="flag"] td{background:none;box-shadow:none !important;padding-left:0 !important;}
  .result__why{display:block;}
  .result__why td{display:block;}
}

/* The one orchestrated moment: result rows arrive in order when the page
   loads and when a sample is switched. */
@media (prefers-reduced-motion:no-preference){
  .demo.is-running .result__row{animation:row-in 0.45s both;animation-delay:calc(var(--i, 0) * 0.16s + 0.15s);}
  @keyframes row-in{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
}

/* ---- sections ---- */
.band{padding:3.5rem 0;}
.band--wash{background:var(--wash);}
.band h2{margin-bottom:1.75rem;text-wrap:balance;}
.lede{font-size:var(--step-1);margin:-1rem 0 1.75rem;max-width:40rem;}

.steps{display:grid;gap:1.75rem;counter-reset:step;}
.steps li{counter-increment:step;display:grid;grid-template-columns:5rem 1fr;column-gap:1rem;align-content:start;}
.steps__art{
  grid-row:1 / span 2;position:relative;display:grid;place-items:center;height:5rem;
  border-radius:var(--radius);background:var(--wash);border:1px solid var(--line);
}
.steps__art .icon{width:2.2rem;height:2.2rem;stroke-width:1.4;}
.steps__art::before{
  content:counter(step);position:absolute;top:-0.6rem;left:-0.6rem;width:1.7rem;height:1.7rem;
  display:grid;place-items:center;border-radius:50%;background:var(--ink);color:var(--paper);
  font-size:0.8rem;font-weight:700;
}
.steps h3{align-self:end;}
.steps p{color:var(--muted);margin-top:0.25rem;}
@media (min-width:52rem){
  .steps{grid-template-columns:repeat(3,1fr);gap:0;}
  .steps li{grid-template-columns:1fr;padding-right:2.5rem;}
  .steps__art{grid-row:auto;height:8.5rem;margin-bottom:1.1rem;}
  .steps__art .icon{width:3.4rem;height:3.4rem;stroke-width:1.1;}
  /* the steps are a sequence: a rule runs from each tile to the next */
  .steps li:not(:last-child) .steps__art::after{
    content:"";position:absolute;left:100%;top:50%;width:2.5rem;border-top:2px dashed var(--ink);
  }
}

.tiles{display:grid;gap:1rem;}
.tiles li{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;}
.tiles .icon{width:2rem;height:2rem;margin-bottom:0.7rem;display:block;}
.tiles p{color:var(--muted);margin-top:0.3rem;font-size:var(--step--1);}
@media (min-width:44rem){.tiles{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));}}

.table-scroll{overflow-x:auto;}
.compare{width:100%;min-width:36rem;border-collapse:separate;border-spacing:0;font-size:var(--step--1);}
.compare th,.compare td{padding:0.8rem 1rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;}
.compare thead th{font-family:var(--font-head);font-size:var(--step-0);border-bottom:2px solid var(--ink);}
.compare tbody th{font-weight:600;color:var(--muted);width:30%;}
.compare .is-us{background:var(--wash);font-weight:600;}
.compare thead .is-us{border-radius:var(--radius) var(--radius) 0 0;}

.packs{display:grid;gap:0.9rem;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));}
.packs li{display:grid;gap:0.15rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem;}
.packs__credits{font-weight:600;}
.packs__price{font-family:var(--font-head);font-weight:var(--font-head-weight);font-size:var(--step-3);line-height:1.1;}
.packs__rate{color:var(--muted);font-size:var(--step--1);margin-bottom:0.8rem;}
.examples__title{font-weight:700;margin-top:2rem;}
.examples{display:flex;flex-wrap:wrap;gap:0.75rem 2.5rem;margin:0.6rem 0 0;}
.examples dt{font-size:var(--step--1);color:var(--muted);}
.examples dd{margin:0;font-weight:700;font-size:var(--step-1);font-variant-numeric:tabular-nums;}

.trust{display:grid;gap:1.4rem;}
.trust li{display:flex;gap:0.9rem;align-items:flex-start;}
.trust .icon{width:1.9rem;height:1.9rem;margin-top:0.1rem;}
.trust h3{font-size:var(--step-0);}
.trust p{color:var(--muted);font-size:var(--step--1);}
@media (min-width:44rem){.trust{grid-template-columns:repeat(2,1fr);gap:1.75rem 3rem;}}
@media (min-width:68rem){.trust{grid-template-columns:repeat(4,1fr);}.trust li{display:block;}.trust .icon{margin-bottom:0.6rem;}}

.faq{border-top:1px solid var(--line);}
.faq:last-of-type{border-bottom:1px solid var(--line);}
.faq summary{cursor:pointer;font-weight:600;padding:1rem 2rem 1rem 0;list-style:none;position:relative;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";position:absolute;right:0.25rem;top:0.85rem;font-size:1.3rem;font-weight:400;line-height:1;}
.faq[open] summary::after{content:"\2212";}
.faq p{padding:0 2rem 1.1rem 0;color:var(--muted);}
.faq__more{margin-top:1.25rem;}

.closing{background:var(--ink);color:var(--paper);padding:4rem 0;}
.closing h2{font-size:clamp(1.9rem, 1rem + 3vw, 3rem);text-wrap:balance;max-width:24ch;}
.closing p{margin:0.9rem 0 1.6rem;font-size:var(--step-1);opacity:0.9;}

/* ---- simple pages: legal, contact ----
   Prose rules are scoped to <main> with :where(), which keeps their specificity
   where it was but stops them reaching the shared header and footer. */
.page-doc main{padding:2.5rem 0 3.5rem;}
.page-doc .wrap{max-width:46rem;}
.page-doc :where(main) h1{font-size:var(--step-3);margin-bottom:0.4rem;}
.page-doc :where(main) h2{font-size:var(--step-2);margin:2rem 0 0.6rem;}
.page-doc :where(main) h3{margin:1.4rem 0 0.4rem;}
.page-doc :where(main) p,.page-doc :where(main) ul,.page-doc :where(main) ol{margin:0 0 1em;}
.page-doc :where(main) ul,.page-doc :where(main) ol{padding-left:1.3rem;list-style:revert;}
.page-doc :where(main) li{margin-bottom:0.35em;}
.page-doc :where(main) table{border-collapse:collapse;width:100%;margin:0 0 1.5em;font-size:var(--step--1);}
.page-doc :where(main) th,.page-doc :where(main) td{border:1px solid var(--line);padding:0.5em 0.75em;text-align:left;vertical-align:top;}
.last-updated{color:var(--muted);font-size:var(--step--1);margin-bottom:1.5rem !important;}
.company-box{background:var(--wash);border-radius:var(--radius);padding:1.25rem 1.5rem;margin:0 0 1.5em;}
.company-box p{margin:0 0 0.4em;}
.company-box p:last-child{margin-bottom:0;}
.field{margin-bottom:1.1em;}
.field label{display:block;font-weight:600;font-size:var(--step--1);margin-bottom:0.3em;}
.field input,.field textarea{width:100%;padding:0.65em 0.8em;font:inherit;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--paper);color:var(--ink);}
.field textarea{min-height:8em;resize:vertical;}
.obf-x{display:none;}
.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.contact-status{margin-top:0.75em;font-size:var(--step--1);min-height:1.3em;}
.contact-status--success{color:var(--ok);}
.contact-status--error{color:#b3261e;}
.no-js .js-only{display:none;}
.page-doc .btn:disabled{opacity:0.6;cursor:default;}

/* ---- auth pages and /app chrome ---- */
.page-auth{background:var(--wash);min-height:100vh;display:flex;flex-direction:column;}
.page-auth main{flex:1;width:100%;max-width:27rem;margin:0 auto;padding:2.5rem 1.25rem 3rem;}
.page-auth .site-footer{padding:1.75rem 0;}
.notice{margin:1rem 0;padding:0.75rem 1rem;border:1px solid var(--line);border-radius:var(--radius-small);}
.page-app{background:var(--wash);}
.page-app main{padding-top:2rem;padding-bottom:4rem;min-height:70vh;}
