/* PayRiseCalc shared styles. One file for every page. */

/* ---------- Design tokens ---------- */
:root{
  --ink:#0b2545;--muted:#4a5b70;--page:#f4f6fb;--card:#fff;--border:#dde3ee;--field:#c9d3e3;
  --primary:#2f5bea;--primary-hover:#2449c4;--money:#3730a3;--deduction:#9a3412;--logo:#4f46e5;--soft:#eef2ff;
  --line:linear-gradient(90deg,#2f5bea,#7a5af8,#f59e7a);
  --display:"Bricolage Grotesque","Instrument Sans",system-ui,sans-serif;
  --body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  /* Icon tile gradients */
  --g-blue:linear-gradient(135deg,#3b6cf0,#6366f1);--g-green:linear-gradient(135deg,#10b981,#34d399);
  --g-violet:linear-gradient(135deg,#8b5cf6,#d946ef);--g-lime:linear-gradient(135deg,#22c55e,#84cc16);
  --g-orange:linear-gradient(135deg,#f97316,#fbbf24);--g-indigo:linear-gradient(135deg,#6366f1,#a78bfa);
  --g-teal:linear-gradient(135deg,#14b8a6,#38bdf8);--g-purple:linear-gradient(135deg,#a855f7,#818cf8);
  --g-pink:linear-gradient(135deg,#ec4899,#fb923c);
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:400 17px/1.55 var(--body);color:var(--ink);background-color:var(--page);
  background-image:radial-gradient(55% 420px at 88% 0,rgba(124,77,255,.16),transparent 70%),radial-gradient(45% 380px at 6% 2%,rgba(47,91,234,.14),transparent 70%),radial-gradient(40% 320px at 55% 0,rgba(255,160,120,.16),transparent 70%);
  background-repeat:no-repeat}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-.02em;line-height:1.08;margin:0}
.w{max-width:1200px;margin:0 auto;padding:0 32px}
.mut{color:var(--muted)}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Header ---------- */
.nav{display:flex;justify-content:space-between;align-items:center;min-height:72px;flex-wrap:wrap;gap:16px}
.nav nav{display:flex;gap:32px;font-weight:500;flex-wrap:wrap;align-items:center}
.nav nav a:not(.btn2):hover{color:var(--primary)}
.logo{font-family:var(--display);font-weight:700;font-size:24px;letter-spacing:-.02em}
.logo i{font-style:normal;color:var(--logo)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border-radius:10px;border:0;background:var(--primary);color:#fff;font:inherit;font-weight:600;box-shadow:0 4px 12px rgba(47,91,234,.25);cursor:pointer}
.btn:hover{background:var(--primary-hover)}
.btn2{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 20px;border-radius:10px;background:#fff;border:1px solid var(--field);font:inherit;font-weight:600;color:var(--ink);cursor:pointer}
.btn2:hover{border-color:var(--primary);color:var(--primary)}

/* ---------- Cards and tiles ---------- */
.card{display:block;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:24px;position:relative}
a.card:hover{border-color:#b9c7f5;box-shadow:0 12px 32px rgba(47,91,234,.12)}
.tile{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex:none}
.tile.s{width:40px;height:40px;border-radius:10px}
.tile svg{stroke:#fff}
.pill{position:absolute;top:-12px;right:16px;background:var(--primary);color:#fff;font-size:13px;font-weight:600;border-radius:99px;padding:4px 12px}
.tcard .head{display:flex;gap:16px;align-items:center}
.tcard h3{font-size:22px}
.tcard p{margin:16px 0;font-size:16px}
.go{font-weight:600;color:var(--primary)}
.soon{opacity:.72}
.soon .go{color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:32px 24px}

/* ---------- Search and chips ---------- */
.srch{display:flex;align-items:center;gap:12px;background:#fff;border:2px solid var(--field);border-radius:12px;min-height:56px;padding:0 8px 0 16px;box-shadow:0 8px 24px rgba(47,91,234,.08)}
.srch:focus-within{border-color:var(--primary)}
.srch svg{flex:none}
.srch input{flex:1;border:0;font:inherit;background:transparent;min-width:0;color:var(--ink);outline:0;min-height:44px}
.srch .btn{min-height:40px;padding:0 16px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.chip{display:inline-flex;align-items:center;min-height:40px;background:#fff;border:1px solid var(--border);border-radius:99px;padding:0 16px;font-weight:500;font-size:15px}
.chip:hover{border-color:var(--primary);color:var(--primary)}

/* ---------- Payslip ---------- */
.slip{position:relative;background:#fff;padding:32px;border-radius:12px 12px 0 0;box-shadow:0 16px 40px rgba(11,37,69,.10)}
.slip:before{content:"";position:absolute;left:0;right:0;top:0;height:6px;border-radius:12px 12px 0 0;background:var(--line)}
.slip:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:8px;background:radial-gradient(circle at 8px 0,#fff 6px,transparent 6.5px) 0 0/16px 8px repeat-x}
a.slip{display:block}
a.slip:hover{box-shadow:0 20px 48px rgba(47,91,234,.18)}
.slip .cap{font-size:15px;margin:8px 0 16px}
.ln{display:flex;align-items:baseline;gap:8px;padding:8px 0;font-variant-numeric:tabular-nums}
.ln u{flex:1;border-bottom:2px dotted #c3cddb;text-decoration:none;transform:translateY(-4px);min-width:16px}
.ded{color:var(--deduction)}
.total{border-top:2px solid var(--ink);margin-top:16px;padding-top:16px}
.big{font-family:var(--display);font-weight:700;font-size:clamp(40px,7vw,56px);letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums;color:var(--money)}

/* ---------- Sections ---------- */
.sec{margin-top:96px}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:40px}
.sec-head h2{font-size:40px}
.band{background:linear-gradient(120deg,#e6edff,#efe7ff 50%,#ffe9e0);border:1px solid #d9dffa;border-radius:24px;padding:64px 48px}
.band h2{font-size:clamp(32px,4vw,44px);max-width:620px}
.band p{font-size:19px;margin:16px 0 32px;max-width:560px}
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:32px}
.feat > div{display:flex;gap:16px}
.feat h3{font-family:var(--body);font-size:18px;font-weight:600;letter-spacing:0;margin:0 0 4px}
.feat p{margin:0;font-size:16px}

/* ---------- Home hero ---------- */
.hero{padding-top:48px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:64px;align-items:center}
.hero h1{font-size:clamp(44px,6vw,72px)}
.hero .lead{font-size:20px;margin:24px 0 32px;max-width:520px}
.hero .slip{max-width:460px;justify-self:center;width:100%}

/* ---------- All calculators ---------- */
.hub-top{padding-top:48px}
.hub-top h1{font-size:clamp(40px,5vw,56px)}
.hub-top .lead{font-size:19px;margin:16px 0 32px;max-width:600px}
.hub{display:flex;gap:48px;flex-wrap:wrap;margin-top:48px;align-items:flex-start}
.side{flex:0 0 240px;padding:8px}
.side button{display:flex;justify-content:space-between;width:100%;min-height:44px;align-items:center;padding:0 16px;border-radius:10px;border:0;background:transparent;font:inherit;color:var(--ink);cursor:pointer;text-align:left}
.side button:hover{background:#f1f4fa}
.side button[aria-pressed="true"]{background:#e6edff;color:var(--primary);font-weight:600}
.list{flex:1 1 520px;min-width:0}
.list h2{font-size:28px;margin:0 0 16px}
.list .group{margin-bottom:40px}
.rows{display:grid;gap:12px}
.row{display:flex;gap:16px;align-items:center;padding:16px 20px}
.row .t{flex:1;min-width:0}
.row .t b{display:block;font-weight:600}
.row .t span{font-size:15px}
.row .st{font-size:14px;font-weight:600;white-space:nowrap}
.empty{padding:24px}

/* ---------- Calculator page ---------- */
.crumb{font-size:15px;margin:24px 0}
.crumb a{text-decoration:underline;text-underline-offset:3px}
.title{display:flex;gap:16px;align-items:center}
.title h1{font-size:clamp(34px,5vw,56px)}
.answer{margin:32px 0 48px;max-width:760px;background:var(--soft);border-color:#d9dffa}
.calc{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:48px;align-items:start}
.form{padding:32px}
.tabs{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}
.tab{min-height:44px;padding:0 20px;border-radius:10px;border:1px solid var(--field);background:#fff;color:var(--ink);font:inherit;font-weight:600;cursor:pointer}
.tab:hover{border-color:var(--primary)}
.tab[aria-selected="true"]{background:var(--primary);border-color:var(--primary);color:#fff}
.form label{font-weight:600;display:block}
.in{display:flex;align-items:center;min-height:48px;margin:8px 0 24px;border:2px solid var(--field);border-radius:10px;background:#fff}
.in:focus-within{border-color:var(--primary)}
.in span{padding-left:16px;color:var(--muted)}
.in input{flex:1;min-width:0;width:100%;border:0;background:transparent;font:inherit;color:var(--ink);padding:0 16px;min-height:44px;outline:0}
.hint{font-size:15px;margin:-16px 0 24px}
.err{color:var(--deduction);font-weight:500;margin:0}
.err:empty{display:none}
.ad{margin-top:48px} /* Ad slot: below the result, never inside the calculator */
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:64px;margin-top:64px}
.two h2,.rel h2{font-size:32px;margin-bottom:16px}
details{border-top:1px solid var(--border)}
details:last-of-type{border-bottom:1px solid var(--border)}
summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;font-weight:600;cursor:pointer;list-style:none;min-height:48px}
summary::-webkit-details-marker{display:none}
summary:after{content:"+";font-size:22px;line-height:1}
details[open] summary:after{content:"−"}
details p{margin:0 0 16px}
.rel{margin-top:64px}

/* ---------- Footer ---------- */
.foot{position:relative;background:var(--ink);color:#c5d0de;padding:64px 0 32px;font-size:15px;margin-top:96px}
.foot:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--line)}
.foot h4{margin:0 0 16px;color:#fff;font-size:16px;font-weight:600}
.foot a{display:block;color:#dbe4f0;padding:4px 0}
.foot a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.foot .logo{color:#fff}
.foot .logo i{color:#a5b4fc}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:48px}
.fbar{border-top:1px solid #29426a;margin-top:48px;padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* ---------- Phone ---------- */
@media (max-width:640px){
  .w{padding:0 16px}
  .nav{padding-top:8px;padding-bottom:8px}
  /* Header stays on one line: logo left, links and a slimmer button right */
  .nav{flex-wrap:nowrap;gap:8px}
  .nav .logo{font-size:20px;flex:none}
  .nav nav{flex-wrap:nowrap;gap:10px;font-size:13px}
  .nav nav a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}
  .nav .btn2{padding:0 10px}
  /* Calculator tabs: two equal-width buttons side by side */
  .tabs{flex-wrap:nowrap}
  .tab{flex:1 1 0;min-width:0;padding:0 8px;font-size:15px}
  .form,.slip{padding:24px}
  .band{padding:40px 24px}
  .sec{margin-top:64px}
  .sec-head h2{font-size:32px}
  .side{flex-basis:100%}
}
@media (max-width:399px){
  .nav nav a:not(.btn2){display:none} /* too narrow for Pay, Tax, Property: keep All calculators */
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ---------- Text pages (About, Contact, Privacy, Terms, How we check rates) ---------- */
/* Added after handoff. Uses existing tokens only; nothing above was changed. */
.prose{max-width:760px}
.prose h1{font-size:clamp(40px,5vw,56px)}
.prose .lead{font-size:19px;margin:16px 0 0}
.prose .upd{font-size:15px;margin:16px 0 0}
.prose h2{font-size:28px;margin:48px 0 12px}
.prose p,.prose li{margin:0 0 16px}
.prose ul,.prose ol{padding-left:24px;margin:0 0 16px}
.prose li{margin-bottom:8px}
.prose a:not(.btn):not(.btn2){color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.prose a:not(.btn):not(.btn2):hover{color:var(--primary-hover)}
.prose .answer{margin:32px 0 0}
