/* ============================================================================
   NoCodeAppGuide — shared design system
   Identity: a 6-color "tool spectrum". Bright, light, crisp, distinctive.
   Type: Bricolage Grotesque (display) · Plus Jakarta Sans (body) · JetBrains Mono (data)
   ============================================================================ */

:root{
  /* tool accents — each tool owns a hue (the spectrum) */
  --lovable:#FB5A7D;  --lovable-soft:#FFEAF0;
  --replit:#F4641E;   --replit-soft:#FFEBDF;
  --bolt:#F0A818;     --bolt-soft:#FCF1D6;
  --v0:#0FB880;       --v0-soft:#DDF6EC;
  --base44:#3B6EF5;   --base44-soft:#E4ECFF;
  --cursor:#7C5CFC;   --cursor-soft:#ECE6FF;
  --hostinger:#6643E6;--hostinger-soft:#ECE7FD;
  --bubble:#0E9DB5;   --bubble-soft:#DCF3F7;

  /* base */
  --bg:#FFFFFF;
  --bg-tint:#F5F7FC;
  --bg-tint-2:#EEF2FB;
  --ink:#16162A;
  --ink-2:#2C2D44;
  --slate:#5E6480;
  --slate-2:#8A8FA6;
  --line:#E7EAF3;
  --line-strong:#D6DAE8;

  --radius:16px;
  --radius-sm:11px;
  --radius-lg:24px;
  --shadow-sm:0 1px 2px rgba(22,22,42,.04), 0 4px 12px rgba(22,22,42,.05);
  --shadow:0 2px 6px rgba(22,22,42,.05), 0 16px 40px rgba(22,22,42,.08);
  --shadow-lg:0 8px 24px rgba(22,22,42,.08), 0 28px 70px rgba(22,22,42,.12);

  --maxw:1140px;
  --font-display:"Bricolage Grotesque",system-ui,sans-serif;
  --font-body:"Plus Jakarta Sans",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,monospace;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--font-body);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.08;letter-spacing:-.02em;margin:0;font-weight:700;}
p{margin:0;}
a{color:var(--base44);text-decoration:none;}
a:hover{text-decoration:underline;text-underline-offset:2px;}
img{max-width:100%;display:block;}
.mono{font-family:var(--font-mono);}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.narrow{max-width:820px;margin:0 auto;padding:0 24px;}
.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);}
.center{text-align:center;}

/* ---- skip link / a11y ---- */
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:10px 16px;border-radius:0 0 10px 0;z-index:100;}
.skip:focus{left:0;}
:focus-visible{outline:2.5px solid var(--base44);outline-offset:3px;border-radius:5px;}

/* ============ DISCLOSURE BAR ============ */
.disclosure{
  background:var(--ink);color:#C9CCE0;font-family:var(--font-mono);
  font-size:12px;letter-spacing:.01em;text-align:center;padding:8px 24px;
}
.disclosure a{color:#fff;text-decoration:underline;text-underline-offset:2px;}

/* ============ HEADER / NAV ============ */
.site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.82);backdrop-filter:blur(12px) saturate(1.4);border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px;gap:24px;}
.logo{display:flex;align-items:center;gap:11px;font-family:var(--font-display);font-weight:800;font-size:19px;letter-spacing:-.03em;color:var(--ink);}
.logo:hover{text-decoration:none;}
.logo svg{width:34px;height:34px;flex:none;}
.logo .nc{color:var(--slate-2);}
.nav-links{display:flex;gap:4px;align-items:center;}
.nav-links a{color:var(--ink-2);font-size:15px;font-weight:500;padding:8px 14px;border-radius:9px;}
.nav-links a:hover{background:var(--bg-tint);text-decoration:none;color:var(--ink);}
.nav-links a.active{color:var(--base44);}
.nav-cta{background:var(--ink);color:#fff!important;padding:9px 18px!important;border-radius:10px!important;font-weight:600!important;}
.nav-cta:hover{background:var(--ink-2);}
.menu-btn{display:none;background:none;border:1px solid var(--line-strong);border-radius:9px;width:42px;height:42px;cursor:pointer;align-items:center;justify-content:center;}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{content:"";display:block;width:18px;height:2px;background:var(--ink);position:relative;}
.menu-btn span::before{position:absolute;top:-6px;}.menu-btn span::after{position:absolute;top:6px;}
@media(max-width:860px){
  .nav-links{display:none;position:absolute;top:68px;left:0;right:0;background:#fff;flex-direction:column;padding:12px 24px 20px;border-bottom:1px solid var(--line);gap:2px;box-shadow:var(--shadow);}
  .nav-links.open{display:flex;}
  .nav-links a{padding:12px 14px;}
  .menu-btn{display:flex;}
}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;font-family:var(--font-body);font-weight:600;font-size:15px;padding:13px 22px;border-radius:11px;border:none;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,background .14s ease;text-align:center;}
.btn:hover{text-decoration:none;transform:translateY(-1px);}
.btn-ink{background:var(--ink);color:#fff;}
.btn-ink:hover{background:var(--ink-2);box-shadow:0 10px 24px rgba(22,22,42,.18);}
.btn-ghost{background:#fff;color:var(--ink);border:1px solid var(--line-strong);}
.btn-ghost:hover{border-color:var(--slate-2);box-shadow:var(--shadow-sm);}
.btn-lg{padding:15px 28px;font-size:16px;}
.btn-block{display:flex;width:100%;}
/* tool-accent CTA: set --c inline */
.btn-tool{background:var(--c,var(--ink));color:#fff;}
.btn-tool:hover{filter:brightness(1.05);box-shadow:0 10px 24px color-mix(in srgb,var(--c,#000) 35%,transparent);}

/* ============ HERO ============ */
.hero{padding:74px 0 30px;position:relative;overflow:hidden;}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(60% 50% at 12% 0%,var(--lovable-soft),transparent 60%),
  radial-gradient(55% 45% at 88% 8%,var(--base44-soft),transparent 60%),
  radial-gradient(50% 40% at 60% 0%,var(--bolt-soft),transparent 55%);
  opacity:.7;z-index:-1;}
.hero h1{font-size:clamp(38px,6vw,68px);font-weight:800;max-width:16ch;letter-spacing:-.035em;}
.hero h1 .spectrum-text{background:linear-gradient(90deg,var(--lovable),var(--replit),var(--bolt),var(--v0),var(--base44),var(--cursor));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.hero .lede{font-size:clamp(18px,2.2vw,22px);color:var(--slate);max-width:50ch;margin-top:24px;}
.hero-actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:34px;}
.hero-trust{display:flex;flex-wrap:wrap;gap:18px;margin-top:30px;font-family:var(--font-mono);font-size:12.5px;color:var(--slate);}
.hero-trust span{display:inline-flex;align-items:center;gap:7px;}
.tick{width:15px;height:15px;flex:none;}

/* ============ TOOL SPECTRUM (signature) ============ */
.spectrum{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:52px 0 8px;}
@media(max-width:900px){.spectrum{grid-template-columns:repeat(3,1fr);}}
@media(max-width:520px){.spectrum{grid-template-columns:repeat(2,1fr);}}
.tool-tile{position:relative;display:block;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 18px 18px;box-shadow:var(--shadow-sm);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;overflow:hidden;}
.tool-tile:hover{text-decoration:none;transform:translateY(-3px);box-shadow:var(--shadow);border-color:transparent;}
.tool-tile::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--c);}
.tool-tile .badge{width:38px;height:38px;border-radius:10px;background:color-mix(in srgb,var(--c) 14%,#fff);color:var(--c);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:18px;margin-bottom:14px;}
.tool-tile h3{font-size:18px;color:var(--ink);}
.tool-tile .role{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--slate);margin-top:5px;text-transform:uppercase;}
.tool-tile .pill{position:absolute;top:16px;right:16px;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--c);color:#fff;}

/* ============ SECTIONS ============ */
section{padding:62px 0;}
.tint{background:var(--bg-tint);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.sec-head{max-width:640px;margin-bottom:36px;}
.sec-head.center{margin-left:auto;margin-right:auto;}
.sec-head h2{font-size:clamp(28px,4vw,40px);font-weight:800;letter-spacing:-.03em;}
.sec-head p{color:var(--slate);margin-top:14px;font-size:17px;}

/* ============ METHODOLOGY / EEAT band ============ */
.method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
@media(max-width:820px){.method-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:480px){.method-grid{grid-template-columns:1fr;}}
.method-item{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-sm);}
.method-item .ic{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;margin-bottom:13px;}
.method-item h3{font-size:17px;}
.method-item p{font-size:14px;color:var(--slate);margin-top:7px;line-height:1.55;}

/* ============ COMPARISON TABLE ============ */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);background:#fff;-webkit-overflow-scrolling:touch;}
table.compare{width:100%;border-collapse:separate;border-spacing:0;font-size:14.5px;min-width:760px;}
table.compare th,table.compare td{padding:16px 16px;border-bottom:1px solid var(--line);text-align:center;vertical-align:middle;}
table.compare thead th{position:sticky;top:0;background:#fff;z-index:2;border-bottom:2px solid var(--line-strong);}
table.compare thead .tool-h{font-family:var(--font-display);font-weight:800;font-size:16px;color:var(--ink);}
table.compare thead .tool-h .dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--c);margin-right:6px;vertical-align:middle;}
table.compare tbody th{text-align:left;font-family:var(--font-body);font-weight:600;color:var(--ink-2);white-space:nowrap;}
table.compare td:first-child,table.compare th:first-child{position:sticky;left:0;background:#fff;text-align:left;z-index:1;box-shadow:1px 0 0 var(--line);}
table.compare thead th:first-child{z-index:3;}
table.compare tbody tr:hover td{background:var(--bg-tint);}
.price{font-family:var(--font-mono);font-weight:600;font-size:14px;}
.price small{display:block;font-weight:400;color:var(--slate);font-size:11px;letter-spacing:.02em;margin-top:2px;}
.yes{color:var(--v0);font-weight:700;}
.partial{color:var(--bolt);font-weight:700;}
.no{color:var(--slate-2);}
.rate-chip{font-family:var(--font-mono);font-weight:600;font-size:13px;padding:4px 9px;border-radius:8px;background:color-mix(in srgb,var(--c) 12%,#fff);color:var(--c);display:inline-block;}
.cmp-cta{padding-top:8px!important;padding-bottom:18px!important;}

/* ============ REVIEW / TOOL CARDS ============ */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:880px){.cards{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.cards{grid-template-columns:1fr;}}
.tcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:transform .16s ease,box-shadow .16s ease;}
.tcard:hover{transform:translateY(-3px);box-shadow:var(--shadow);}
.tcard .top{padding:22px 22px 0;}
.tcard .accent-bar{height:5px;background:var(--c);}
.tcard .head{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.tcard .badge{width:42px;height:42px;border-radius:11px;background:color-mix(in srgb,var(--c) 14%,#fff);color:var(--c);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:19px;}
.tcard h3{font-size:20px;}
.tcard .role{font-family:var(--font-mono);font-size:11px;color:var(--slate);text-transform:uppercase;letter-spacing:.05em;margin-top:3px;}
.tcard .body{padding:0 22px;color:var(--ink-2);font-size:14.5px;flex:1;}
.tcard .meta{display:flex;justify-content:space-between;padding:16px 22px;margin-top:14px;border-top:1px solid var(--line);font-size:13px;}
.tcard .meta .k{color:var(--slate);font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;}
.tcard .meta .v{font-weight:700;font-family:var(--font-mono);}
.tcard .foot{padding:0 22px 22px;display:flex;gap:10px;}

/* ============ DECISION GUIDE ============ */
.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media(max-width:820px){.guide-grid{grid-template-columns:1fr;}}
.gcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-sm);border-left:4px solid var(--c,var(--base44));}
.gcard .q{font-family:var(--font-display);font-weight:700;font-size:18px;margin-bottom:9px;}
.gcard .a{font-size:14.5px;color:var(--slate);}
.gcard .a strong{color:var(--ink);}

/* ============ ARTICLE / EEAT ============ */
.article-head{padding:54px 0 8px;}
.breadcrumb{font-family:var(--font-mono);font-size:12px;color:var(--slate);margin-bottom:18px;}
.breadcrumb a{color:var(--slate);}
.article-head h1{font-size:clamp(32px,5vw,52px);font-weight:800;max-width:20ch;letter-spacing:-.03em;}
.article-head .standfirst{font-size:20px;color:var(--slate);margin-top:20px;max-width:60ch;}
.byline{display:flex;align-items:center;gap:14px;margin-top:26px;flex-wrap:wrap;font-size:13.5px;color:var(--slate);}
.byline .author{display:flex;align-items:center;gap:10px;}
.byline .avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--base44),var(--cursor));color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:15px;}
.byline .sep{width:1px;height:26px;background:var(--line-strong);}
.byline strong{color:var(--ink);font-weight:600;}
.prose{max-width:760px;margin:0 auto;font-size:17.5px;line-height:1.72;color:var(--ink-2);}
.prose>h2{font-family:var(--font-display);font-size:30px;font-weight:800;color:var(--ink);margin:48px 0 16px;letter-spacing:-.025em;}
.prose>h3{font-size:22px;font-weight:700;color:var(--ink);margin:34px 0 12px;}
.prose p{margin:0 0 18px;}
.prose ul,.prose ol{margin:0 0 18px;padding-left:24px;}
.prose li{margin:8px 0;}
.prose strong{color:var(--ink);}
.prose blockquote{margin:24px 0;padding:18px 24px;border-left:4px solid var(--base44);background:var(--bg-tint);border-radius:0 12px 12px 0;color:var(--ink-2);font-size:16.5px;}
.toc{background:var(--bg-tint);border:1px solid var(--line);border-radius:var(--radius);padding:22px 26px;margin:8px 0 36px;}
.toc h4{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin-bottom:12px;}
.toc ol{margin:0;padding-left:20px;columns:2;gap:30px;font-size:14.5px;}
.toc li{margin:5px 0;}
@media(max-width:560px){.toc ol{columns:1;}}

/* verdict box in article */
.verdict-box{background:linear-gradient(165deg,#fff,var(--bg-tint));border:1px solid var(--line-strong);border-radius:var(--radius-lg);padding:30px;margin:34px 0;box-shadow:var(--shadow);}
.verdict-box .tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--base44);}
.verdict-box h3{font-size:24px;margin:10px 0 0;}

/* tool deep-dive block in article */
.dd{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;margin:30px 0;box-shadow:var(--shadow-sm);}
.dd .dd-head{padding:22px 26px;display:flex;align-items:center;gap:14px;background:color-mix(in srgb,var(--c) 7%,#fff);border-bottom:1px solid var(--line);}
.dd .dd-badge{width:46px;height:46px;border-radius:12px;background:var(--c);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:21px;flex:none;}
.dd .dd-head h3{font-size:22px;margin:0;}
.dd .dd-head .role{font-family:var(--font-mono);font-size:11px;color:var(--slate);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;}
.dd .dd-head .rank{margin-left:auto;font-family:var(--font-mono);font-size:13px;color:var(--slate);}
.dd .dd-body{padding:24px 26px;}
.dd .dd-body>p{font-size:16px;margin-bottom:18px;}
.proscons{display:grid;grid-template-columns:1fr 1fr;gap:10px 26px;margin:6px 0 4px;}
@media(max-width:560px){.proscons{grid-template-columns:1fr;}}
.proscons h4{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin:0 0 6px;}
.proscons ul{list-style:none;margin:0 0 8px;padding:0;font-size:14.5px;}
.proscons li{position:relative;padding-left:24px;margin:7px 0;line-height:1.45;}
.proscons .pros li::before{content:"+";position:absolute;left:5px;color:var(--v0);font-weight:800;}
.proscons .cons li::before{content:"–";position:absolute;left:6px;color:var(--replit);font-weight:800;}
.dd-plans{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 4px;}
.plan-chip{border:1px solid var(--line);border-radius:10px;padding:9px 14px;font-size:13px;background:#fff;}
.plan-chip .pn{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--slate);display:block;}
.plan-chip .pp{font-family:var(--font-mono);font-weight:700;font-size:15px;color:var(--ink);}
.dd .dd-cta{margin-top:20px;padding-top:20px;border-top:1px solid var(--line);display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.dd .dd-cta .note{font-family:var(--font-mono);font-size:11px;color:var(--slate);}

/* ============ FAQ ============ */
.faq details{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;background:#fff;overflow:hidden;box-shadow:var(--shadow-sm);}
.faq summary{font-family:var(--font-display);font-weight:700;font-size:17.5px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;padding:20px 24px;align-items:center;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";color:var(--base44);font-weight:700;font-size:24px;line-height:1;flex:none;}
.faq details[open] summary::after{content:"–";}
.faq details[open] summary{border-bottom:1px solid var(--line);}
.faq .faq-a{padding:18px 24px;color:var(--ink-2);font-size:16px;line-height:1.65;}

/* ============ FINAL CTA ============ */
.final{background:linear-gradient(160deg,#1B1B33,#16162A);border-radius:var(--radius-lg);padding:54px 44px;text-align:center;color:#fff;position:relative;overflow:hidden;}
.final::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--lovable),var(--replit),var(--bolt),var(--v0),var(--base44),var(--cursor));}
.final h2{font-size:clamp(26px,4vw,38px);font-weight:800;color:#fff;max-width:18ch;margin:0 auto;letter-spacing:-.03em;}
.final p{color:#B6B9D4;max-width:50ch;margin:16px auto 28px;}

/* ============ FOOTER ============ */
.site-footer{background:var(--ink);color:#A7AAC4;font-size:14px;padding:54px 0 36px;margin-top:60px;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px;margin-bottom:30px;}
@media(max-width:760px){.footer-grid{grid-template-columns:1fr 1fr;gap:28px;}}
.site-footer .logo{color:#fff;margin-bottom:14px;}
.site-footer .logo .nc{color:#6F73A0;}
.site-footer p{font-size:13.5px;line-height:1.6;color:#9396B6;max-width:34ch;}
.fcol h4{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#6F73A0;margin:0 0 14px;}
.fcol a{display:block;color:#B6B9D4;font-size:14px;margin:9px 0;}
.fcol a:hover{color:#fff;}
.footer-disc{border:1px solid #2B2B45;background:#1C1C33;border-radius:var(--radius);padding:18px 22px;font-size:13px;line-height:1.6;color:#9396B6;margin-bottom:24px;}
.footer-disc strong{color:#fff;}
.footer-legal{border-top:1px solid #2B2B45;padding-top:20px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-family:var(--font-mono);font-size:12px;color:#6F73A0;}

/* spectrum rule divider */
.spectrum-rule{height:4px;border:0;border-radius:4px;background:linear-gradient(90deg,var(--lovable),var(--replit),var(--bolt),var(--v0),var(--base44),var(--cursor));margin:0;}

/* reveal — progressive enhancement: visible by default, animates only when JS adds .js to <html> */
.reveal{opacity:1;transform:none;}
html.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease;}
html.js .reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  html.js .reveal{opacity:1;transform:none;transition:none;}
  .btn,.tool-tile,.tcard{transition:none;}
  html{scroll-behavior:auto;}
}
