/* ==========================================================
   InvoiceKit — shared styles for the marketing pages
   (app.html is self-contained and does not use this file)
   ========================================================== */

:root{
  --accent:#2ca01c;
  --accent-dark:#238016;
  --accent-soft:rgba(44,160,28,.10);
  --ink:#14171c;
  --body:#3d444d;
  --gray:#6b7280;
  --line:#e5e7eb;
  --bg:#f7f8fa;
  --radius:12px;
  --shadow:0 14px 34px rgba(16,24,40,.10);
  --maxw:1120px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:#fff; color:var(--ink);
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  line-height:1.6; -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; }
a{ color:inherit; }
.container{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }
.center{ text-align:center; }
.muted{ color:var(--gray); }
.small{ font-size:13px; }

/* ---------- header ---------- */
header.site{
  position:sticky; top:0; z-index:40; background:rgba(255,255,255,.93);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--line);
}
header.site nav{ display:flex; align-items:center; gap:24px; padding:13px 0; }
.brand{ display:flex; align-items:center; gap:9px; text-decoration:none; font-weight:800; font-size:19px; letter-spacing:-.4px; margin-right:auto; color:var(--ink); }
.brand .mark{
  width:26px; height:26px; border-radius:7px; background:var(--accent); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:800;
}
.brand span{ color:var(--accent); }
nav .nav-links{ display:flex; gap:24px; align-items:center; }
nav a.nl{ text-decoration:none; color:var(--body); font-size:14.5px; font-weight:500; }
nav a.nl:hover{ color:var(--ink); }
nav a.nl.on{ color:var(--ink); font-weight:700; }
.burger{ display:none; background:none; border:none; font-size:22px; cursor:pointer; color:var(--ink); }

/* ---------- buttons ---------- */
.btn{
  display:inline-block; background:var(--accent); color:#fff; text-decoration:none;
  padding:11px 20px; border-radius:9px; font-size:14.5px; font-weight:700; border:1px solid var(--accent);
  cursor:pointer; font-family:inherit; transition:filter .12s, transform .12s;
}
.btn:hover{ filter:brightness(.92); }
.btn:active{ transform:translateY(1px); }
.btn.ghost{ background:#fff; color:var(--ink); border-color:#cfd4da; }
.btn.ghost:hover{ border-color:#9aa2ab; filter:none; }
.btn.dark{ background:var(--ink); border-color:var(--ink); }
.btn.big{ padding:15px 30px; font-size:16px; }
.btn.wide{ display:block; text-align:center; width:100%; }

/* ---------- typography ---------- */
h1{ font-size:clamp(32px,4.6vw,50px); line-height:1.08; letter-spacing:-1.4px; margin:0 0 18px; }
h2{ font-size:clamp(25px,3vw,33px); line-height:1.18; letter-spacing:-.8px; margin:0 0 12px; }
h3{ font-size:17px; margin:0 0 8px; letter-spacing:-.2px; }
.lede{ color:var(--gray); font-size:17px; margin:0 auto 34px; max-width:46em; }
.eyebrow{ text-transform:uppercase; letter-spacing:1.4px; font-size:12px; font-weight:800; color:var(--accent); margin:0 0 10px; }

/* ---------- sections ---------- */
section{ padding:70px 0; }
section.tight{ padding:52px 0; }
section.alt{ background:var(--bg); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.head{ max-width:44em; margin-bottom:36px; }
.head.center{ margin-left:auto; margin-right:auto; text-align:center; }

/* ---------- hero ---------- */
.hero{ padding:74px 0 60px; background:linear-gradient(180deg,#fff,var(--bg)); border-bottom:1px solid var(--line); }
.hero-grid{ display:grid; grid-template-columns:1.02fr .98fr; gap:52px; align-items:center; }
.cta-row{ display:flex; gap:12px; flex-wrap:wrap; }
.ticks{ list-style:none; padding:0; margin:22px 0 0; display:flex; gap:20px; flex-wrap:wrap; font-size:13.5px; color:var(--gray); }
.ticks li::before{ content:'\2713'; color:var(--accent); font-weight:800; margin-right:7px; }

/* trust strip */
.trust{ border-bottom:1px solid var(--line); background:#fff; }
.trust .row{ display:flex; gap:44px; flex-wrap:wrap; justify-content:center; padding:22px 0; }
.trust b{ display:block; font-size:22px; letter-spacing:-.5px; }
.trust span{ font-size:12.5px; color:var(--gray); }

/* ---------- cards / grids ---------- */
.grid{ display:grid; gap:22px; }
.g2{ grid-template-columns:repeat(2,1fr); }
.g3{ grid-template-columns:repeat(3,1fr); }
.g4{ grid-template-columns:repeat(4,1fr); }
.card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px; }
.card p{ margin:0; color:var(--gray); font-size:14.5px; }
.card.hoverable:hover{ box-shadow:var(--shadow); transform:translateY(-2px); transition:.15s; }
.ico{
  width:38px; height:38px; border-radius:10px; background:var(--accent-soft); color:var(--accent);
  display:flex; align-items:center; justify-content:center; font-size:18px; margin-bottom:14px;
}

/* chips */
.chips{ display:flex; flex-wrap:wrap; gap:10px; }
.chip{ text-decoration:none; border:1px solid var(--line); background:#fff; border-radius:999px; padding:9px 18px; font-size:14px; font-weight:600; }
.chip:hover{ border-color:var(--accent); color:var(--accent); }

/* steps */
ol.steps{ counter-reset:s; list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
ol.steps li{ counter-increment:s; }
ol.steps li::before{
  content:counter(s); display:flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:50%; background:var(--accent); color:#fff; font-weight:800; font-size:14px; margin-bottom:12px;
}
ol.steps b{ display:block; margin-bottom:4px; font-size:16px; }
ol.steps span{ color:var(--gray); font-size:14.5px; }

/* ---------- pricing ---------- */
.tiers{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:start; }
.tier{ border:1px solid var(--line); border-radius:14px; padding:28px 24px; background:#fff; display:flex; flex-direction:column; }
.tier.featured{ border-color:var(--accent); box-shadow:var(--shadow); position:relative; }
.tier.featured::before{
  content:'Most popular'; position:absolute; top:-12px; left:24px; background:var(--accent); color:#fff;
  font-size:11px; font-weight:800; letter-spacing:.6px; text-transform:uppercase; padding:4px 10px; border-radius:999px;
}
.tier h3{ font-size:15px; text-transform:uppercase; letter-spacing:1px; color:var(--gray); margin-bottom:12px; }
.price{ font-size:42px; font-weight:800; letter-spacing:-1.6px; line-height:1; }
.price small{ font-size:14px; font-weight:500; color:var(--gray); letter-spacing:0; }
.tier .sub{ color:var(--gray); font-size:14px; margin:10px 0 20px; min-height:42px; }
.tier ul{ list-style:none; padding:0; margin:0 0 24px; font-size:14.5px; }
.tier li{ padding:7px 0 7px 25px; position:relative; color:var(--body); }
.tier li::before{ content:'\2713'; position:absolute; left:0; color:var(--accent); font-weight:800; }
.tier li.off{ color:#a6acb4; }
.tier li.off::before{ content:'\2013'; color:#c6cbd1; }
.tier .foot{ margin-top:auto; }

/* comparison table */
table.cmp{ width:100%; border-collapse:collapse; font-size:14.5px; background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
table.cmp th, table.cmp td{ padding:13px 16px; border-bottom:1px solid var(--line); text-align:left; }
table.cmp thead th{ background:var(--bg); font-size:13px; text-transform:uppercase; letter-spacing:.7px; color:var(--gray); }
table.cmp td:not(:first-child), table.cmp th:not(:first-child){ text-align:center; width:15%; }
table.cmp tbody tr:last-child td{ border-bottom:none; }
.yes{ color:var(--accent); font-weight:800; }
.no{ color:#c6cbd1; }
table.cmp td.grp{
  background:var(--bg); font-size:12px; font-weight:800; text-transform:uppercase;
  letter-spacing:1px; color:var(--gray); padding:10px 16px; text-align:left;
}
.tier li b{ color:var(--ink); font-weight:700; }
.tier li i{ font-style:italic; }

/* ---------- services ---------- */
.svc{ display:grid; grid-template-columns:1fr auto; gap:24px; align-items:start; border:1px solid var(--line); border-radius:14px; padding:26px; background:#fff; }
.svc h3{ font-size:20px; letter-spacing:-.4px; }
.svc p{ color:var(--gray); font-size:15px; margin:0 0 14px; }
.svc ul{ margin:0; padding-left:20px; color:var(--body); font-size:14.5px; }
.svc li{ padding:3px 0; }
.svc .tag{ text-align:right; min-width:190px; }
.svc .tag .from{ font-size:12px; color:var(--gray); text-transform:uppercase; letter-spacing:.8px; }
.svc .tag .amt{ font-size:30px; font-weight:800; letter-spacing:-1px; }
.svc .tag .per{ font-size:13px; color:var(--gray); margin-bottom:14px; }

/* ---------- testimonials ---------- */
.quote{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:24px; }
.quote p{ margin:0 0 16px; font-size:15px; }
.quote .who{ display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--gray); }
.quote .av{ width:32px; height:32px; border-radius:50%; background:var(--accent-soft); color:var(--accent); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:13px; }

/* ---------- faq ---------- */
details.faq{ border-bottom:1px solid var(--line); padding:16px 0; }
details.faq summary{ cursor:pointer; font-weight:600; font-size:15.5px; list-style:none; }
details.faq summary::-webkit-details-marker{ display:none; }
details.faq summary::after{ content:'+'; float:right; color:var(--gray); font-weight:400; }
details.faq[open] summary::after{ content:'\2013'; }
details.faq p{ color:var(--gray); font-size:14.5px; margin:10px 0 0; max-width:60em; }

/* ---------- final cta ---------- */
.final{ background:var(--ink); color:#fff; text-align:center; padding:72px 0; }
.final h2{ color:#fff; }
.final p{ color:#aab2bb; max-width:40em; margin:0 auto 26px; }
.final .btn.ghost{ background:transparent; color:#fff; border-color:#4a525c; }

/* ---------- footer ---------- */
footer.site{ background:#fff; border-top:1px solid var(--line); padding:44px 0 30px; font-size:14px; }
footer.site .cols{ display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:28px; }
footer.site h4{ font-size:12.5px; text-transform:uppercase; letter-spacing:1px; color:var(--gray); margin:0 0 12px; }
footer.site a{ display:block; text-decoration:none; color:var(--body); padding:4px 0; }
footer.site a:hover{ color:var(--accent); }
footer.site .legal{ margin-top:34px; padding-top:18px; border-top:1px solid var(--line); color:var(--gray); font-size:13px; display:flex; gap:16px; flex-wrap:wrap; }
footer.site .legal .sp{ margin-left:auto; }

/* ---------- miniature invoice preview ---------- */
.paper{ background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); padding:26px 24px; font-size:11px; color:var(--ink); }
.paper.tilt{ transform:rotate(-1.2deg); }
.pv-top{ display:flex; justify-content:space-between; align-items:flex-start; }
.pv-logo{ width:70px; height:32px; background:#eef1f4; border-radius:5px; }
.pv-title{ font-size:23px; font-weight:300; letter-spacing:1px; color:var(--accent); }
.pv-co{ margin-top:10px; line-height:1.5; color:var(--gray); }
.pv-co b{ color:var(--ink); }
.pv-meta{ display:flex; justify-content:space-between; margin-top:16px; }
.pv-dates{ text-align:right; line-height:1.9; color:var(--gray); }
.pv-due{ background:#f2f2f2; padding:2px 6px; color:var(--ink); font-weight:700; }
table.pv{ width:100%; border-collapse:collapse; margin-top:18px; }
table.pv th{ background:var(--accent); color:#fff; font-weight:400; text-align:left; padding:5px 8px; font-size:10px; }
table.pv th.r, table.pv td.r{ text-align:right; }
table.pv td{ padding:6px 8px; border-bottom:1px solid var(--line); }
.pv-tot{ margin-top:14px; text-align:right; color:var(--gray); line-height:1.8; }
.pv-tot b{ color:var(--ink); font-size:13px; }

/* ---------- responsive ---------- */
@media (max-width:980px){
  .hero-grid, .g3, .g4, .g2, .tiers, ol.steps, footer.site .cols{ grid-template-columns:1fr; }
  .paper.tilt{ transform:none; }
  .svc{ grid-template-columns:1fr; }
  .svc .tag{ text-align:left; }
  nav .nav-links{ display:none; }
  nav .nav-links.open{
    display:flex; flex-direction:column; gap:0; position:absolute; top:56px; left:0; right:0;
    background:#fff; border-bottom:1px solid var(--line); padding:8px 24px 16px;
  }
  nav .nav-links.open a.nl{ padding:11px 0; border-bottom:1px solid var(--line); }
  .burger{ display:block; order:3; }
  header.site nav{ position:relative; }
}
@media (max-width:600px){
  section{ padding:52px 0; }
  .trust .row{ gap:26px; }
}
