/* OvertimePayPro — design system
   Premium fintech look: ink navy + emerald money-green + amber highlight.
   System font stack only (zero webfont cost = speed). */
:root{
  --ink:#0b1220; --ink-2:#131c30; --paper:#f6f7f9; --card:#ffffff;
  --line:#e3e7ee; --text:#1c2434; --muted:#5b6577;
  --green:#0a9d68; --green-dark:#078052; --green-soft:#e6f6ef;
  --amber:#f5a623; --amber-soft:#fdf3e0;
  --red:#c0392b;
  --radius:16px; --radius-s:10px;
  --shadow:0 10px 30px rgba(11,18,32,.08), 0 2px 6px rgba(11,18,32,.05);
  --shadow-lg:0 24px 60px rgba(11,18,32,.14);
  --max:1120px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  background:var(--paper); color:var(--text); line-height:1.6; -webkit-font-smoothing:antialiased}
a{color:var(--green-dark); text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:var(--max); margin:0 auto; padding:0 20px}
h1,h2,h3{line-height:1.2; color:var(--ink); letter-spacing:-.01em}
h2{font-size:clamp(1.5rem,3vw,2rem); margin-bottom:.6rem}
h3{font-size:1.15rem}
p{margin-bottom:1rem}
.muted{color:var(--muted)}
.small{font-size:.86rem}

/* ---------- header ---------- */
.site-header{background:var(--ink); color:#fff; position:sticky; top:0; z-index:50;
  box-shadow:0 2px 12px rgba(0,0,0,.25)}
.site-header .wrap{display:flex; align-items:center; justify-content:space-between; height:62px}
.logo{font-weight:800; font-size:1.25rem; color:#fff; letter-spacing:-.02em}
.logo:hover{text-decoration:none}
.logo .pro{color:var(--amber)}
.logo .dot{color:var(--green)}
.main-nav{display:flex; gap:26px}
.main-nav a{color:#cfd6e4; font-size:.95rem; font-weight:600}
.main-nav a:hover{color:#fff; text-decoration:none}
@media(max-width:720px){ .main-nav{display:none} }

/* ---------- hero ---------- */
.hero{background:linear-gradient(160deg,var(--ink) 0%,var(--ink-2) 70%,#1b2a47 100%); color:#e8ecf4;
  padding:52px 0 64px}
.hero h1{color:#fff; font-size:clamp(1.9rem,4.6vw,3rem); margin-bottom:.7rem}
.hero h1 .hl{color:var(--amber)}
.hero .sub{font-size:1.08rem; color:#b9c2d4; max-width:640px; margin-bottom:0}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:44px; align-items:start}
@media(max-width:900px){ .hero-grid{grid-template-columns:1fr} }
.hero-points{list-style:none; margin-top:26px; display:grid; gap:12px}
.hero-points li{display:flex; gap:10px; align-items:flex-start; color:#d5dbe8; font-size:.98rem}
.hero-points .tick{color:var(--green); font-weight:800}

/* ---------- calculator card ---------- */
.calc-card{background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow-lg);
  padding:26px; color:var(--text)}
.calc-card h2{font-size:1.25rem; margin-bottom:4px}
.calc-card .calc-sub{color:var(--muted); font-size:.9rem; margin-bottom:18px}
.field{margin-bottom:14px}
.field label{display:block; font-weight:600; font-size:.9rem; margin-bottom:6px; color:var(--ink)}
.field .hint{font-weight:400; color:var(--muted); font-size:.8rem}
.input-row{display:flex; align-items:stretch; border:1.5px solid var(--line); border-radius:var(--radius-s);
  overflow:hidden; background:#fff; transition:border-color .15s}
.input-row:focus-within{border-color:var(--green)}
.input-row .prefix,.input-row .suffix{display:flex; align-items:center; padding:0 12px;
  background:#f0f2f6; color:var(--muted); font-weight:700; font-size:.95rem}
.input-row input{flex:1; border:0; outline:0; padding:11px 12px; font-size:1.05rem; font-weight:600;
  color:var(--ink); min-width:0; font-variant-numeric:tabular-nums}
select.input{width:100%; padding:11px 12px; border:1.5px solid var(--line); border-radius:var(--radius-s);
  font-size:1rem; font-weight:600; color:var(--ink); background:#fff; outline:0}
select.input:focus{border-color:var(--green)}
.field-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px}
@media(max-width:520px){ .field-grid{grid-template-columns:1fr} }
details.advanced{margin:6px 0 14px; border-top:1px dashed var(--line); padding-top:10px}
details.advanced summary{cursor:pointer; font-weight:600; font-size:.9rem; color:var(--green-dark)}
details.advanced .inner{padding-top:12px}

.result-panel{background:var(--green-soft); border:1.5px solid #bfe8d6; border-radius:var(--radius);
  padding:18px; margin-top:6px}
.result-total{display:flex; justify-content:space-between; align-items:baseline; gap:10px;
  border-bottom:1px dashed #a9dcc6; padding-bottom:10px; margin-bottom:10px}
.result-total .lbl{font-weight:700; color:var(--ink)}
.result-total .val{font-size:1.9rem; font-weight:800; color:var(--green-dark);
  font-variant-numeric:tabular-nums; letter-spacing:-.02em}
.breakdown{display:grid; gap:6px; font-size:.95rem}
.breakdown .row{display:flex; justify-content:space-between; gap:10px}
.breakdown .row span:first-child{color:#33503f}
.breakdown .row span:last-child{font-weight:700; font-variant-numeric:tabular-nums; color:var(--ink)}
.breakdown .row.sub span:first-child{padding-left:14px; color:var(--muted); font-size:.88rem}
.period-row{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px}
.period-chip{background:#fff; border:1px solid #bfe8d6; border-radius:999px; padding:4px 12px;
  font-size:.82rem; font-weight:600; color:var(--ink)}
.period-chip b{color:var(--green-dark)}
.tax-estimate{margin-top:14px; background:var(--amber-soft); border:1.5px solid #f3d894;
  border-radius:var(--radius); padding:14px 16px; font-size:.93rem}
.tax-estimate b{color:#8a5d00}
.calc-note{margin-top:12px; font-size:.8rem; color:var(--muted)}

/* ---------- content sections ---------- */
.section{padding:56px 0}
.section.alt{background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.lede{font-size:1.06rem; color:#39435a; max-width:760px}
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:26px}
@media(max-width:820px){ .steps{grid-template-columns:1fr} }
.step{background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:20px; box-shadow:var(--shadow)}
.step .num{display:inline-flex; width:32px; height:32px; border-radius:50%; background:var(--green);
  color:#fff; font-weight:800; align-items:center; justify-content:center; margin-bottom:10px}
.formula-box{background:var(--ink); color:#e8ecf4; border-radius:var(--radius); padding:22px;
  font-size:1.02rem; margin:20px 0}
.formula-box code{color:var(--amber); font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.98em}
.example-box{background:var(--green-soft); border:1px solid #bfe8d6; border-radius:var(--radius);
  padding:22px; margin:20px 0}
table.data{width:100%; border-collapse:collapse; margin:16px 0; background:#fff;
  border:1px solid var(--line); border-radius:var(--radius-s); overflow:hidden}
table.data th,table.data td{padding:10px 14px; text-align:left; border-bottom:1px solid var(--line);
  font-size:.95rem}
table.data th{background:#f0f2f6; color:var(--ink)}
table.data td.num,table.data th.num{text-align:right; font-variant-numeric:tabular-nums}
table.data tr:last-child td{border-bottom:0}
ul.clean,ol.clean{margin:0 0 1rem 1.3rem}
ul.clean li,ol.clean li{margin-bottom:.45rem}
.mistake{border-left:4px solid var(--red); background:#fdf0ee; border-radius:0 var(--radius-s) var(--radius-s) 0;
  padding:14px 18px; margin:14px 0}
.mistake b{color:var(--red)}

/* tool grid */
.tool-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:26px}
@media(max-width:900px){ .tool-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:560px){ .tool-grid{grid-template-columns:1fr} }
.tool-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:20px; box-shadow:var(--shadow); display:block; color:var(--text)}
.tool-card:hover{text-decoration:none; border-color:var(--green); transform:translateY(-2px);
  transition:transform .15s, border-color .15s}
.tool-card .icon{font-size:1.5rem; margin-bottom:8px}
.tool-card h3{margin-bottom:4px}
.tool-card p{font-size:.9rem; color:var(--muted); margin:0}
.tool-card .badge{display:inline-block; background:var(--amber-soft); color:#8a5d00; font-size:.72rem;
  font-weight:800; border-radius:999px; padding:2px 9px; margin-bottom:8px; letter-spacing:.03em}

/* FAQ */
.faq{margin-top:20px; display:grid; gap:10px}
.faq details{background:#fff; border:1px solid var(--line); border-radius:var(--radius-s); padding:14px 18px}
.faq summary{cursor:pointer; font-weight:700; color:var(--ink)}
.faq details p{margin:10px 0 2px; color:#39435a}

/* breadcrumb + article */
.breadcrumb{font-size:.85rem; color:var(--muted); padding:16px 0 0}
.breadcrumb a{color:var(--muted)}
.page-hero{padding:26px 0 8px}
.page-hero h1{font-size:clamp(1.7rem,4vw,2.5rem); margin-bottom:.5rem}
.article{max-width:820px}
.article h2{margin-top:2rem}

/* footer */
.site-footer{background:var(--ink); color:#aeb8cc; padding:44px 0 30px; margin-top:0}
.site-footer .cols{display:grid; grid-template-columns:2fr 1fr 1fr; gap:30px}
@media(max-width:720px){ .site-footer .cols{grid-template-columns:1fr} }
.site-footer h4{color:#fff; margin-bottom:10px; font-size:.95rem}
.site-footer a{color:#aeb8cc; display:block; margin-bottom:6px; font-size:.92rem}
.site-footer a:hover{color:#fff}
.site-footer .fineprint{border-top:1px solid #232f4a; margin-top:28px; padding-top:16px; font-size:.8rem}

/* Narrow-screen blowout guards: grid/flex items default to min-width:auto,
   which lets a default-width input (~277px) force its field, card and grid
   track wider than a 360px phone. Allow them to shrink below content size. */
.hero-grid > *, .field-grid > * { min-width: 0; }
.result-total > *, .breakdown .row > * { min-width: 0; }
/* Tables use auto layout by default, so wide columns push the page sideways
   on phones. Fixed layout keeps every table inside the viewport. */
table.data { table-layout: fixed; width: 100%; }
table.data th, table.data td { overflow-wrap: anywhere; }
@media(max-width:400px){ .result-total .val{font-size:1.5rem} }

/* Mobile intent speed (kept last so it wins the cascade): on stacked layouts,
   skip the marketing bullets and tighten the hero so the calculator starts
   inside the first screenful — the visitor came to calculate, not to read. */
@media(max-width:900px){
  .hero{padding:32px 0 42px}
  .hero .sub{font-size:1rem}
  .hero-points{display:none}
}
