:root{
  --side-pad: clamp(18px, 4vw, 36px);
  --bg:#180B14;
  --panel:#1E1420;
  --muted:#94a3b8;
  --text:#e5e7eb;
  --brand:#fb7185;
  --brand-2:#f472b6;
  --line:#3b1d2e;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,Arial,sans-serif;line-height:1.6}
a{color:#93c5fd;text-decoration:none}
a:hover{text-decoration:underline}
p,li,a,span,small,code{overflow-wrap:anywhere;word-break:break-word}
.container{max-width:1100px;margin:0 auto;padding:24px var(--side-pad);padding-left:calc(var(--side-pad) + env(safe-area-inset-left));padding-right:calc(var(--side-pad) + env(safe-area-inset-right))}
.site-header{position:sticky;top:0;z-index:20;background:rgba(11,18,32,.7);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.site-header .brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;color:var(--text)}
.site-header .nav{display:flex;gap:18px;font-weight:500}
.site-header .container{display:flex;justify-content:space-between;align-items:center}
.hero{padding:56px 0;background:radial-gradient(1200px 400px at 10% -20%, rgba(96,165,250,.25), transparent), radial-gradient(900px 300px at 80% 0%, rgba(110,231,183,.25), transparent)}
.hero-inner{display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:center}
.hero-copy h1{font-size:44px;line-height:1.1;margin:0 0 12px}
.lead{font-size:18px;color:#cbd5e1;margin:0 0 12px}
.pill-list{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:14px 0 0;list-style:none}
.pill-list li{padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.03)}
.hero-art img{width:100%;border-radius:12px;border:1px solid var(--line);box-shadow:0 10px 30px rgba(0,0,0,.3)}
.calcx .card, .tips.card, .card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid-2 .full{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}
label span{display:block;font-weight:600;margin:2px 0 6px}
input[type="date"], input[type="number"]{width:100%;padding:12px;border-radius:10px;border:1px solid var(--line);background:#0b1220;color:var(--text)}
.btn{background:linear-gradient(90deg,var(--brand),var(--brand-2));padding:10px 14px;border:none;border-radius:10px;color:#0b1220;font-weight:700;cursor:pointer}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--text)}
.btn.small{padding:8px 12px;font-size:14px}
.results{margin-top:18px}
.result-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.big{font-size:20px;font-weight:700;margin:.2rem 0 0}
.milestones{margin-top:14px}
.milestone-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:0;list-style:none}
.milestone-list li{border:1px dashed #334155;border-radius:12px;padding:12px}
.note{margin-top:12px;color:#cbd5e1}
.tips{margin-top:16px}
.trust{padding:24px 0}
.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.trust-item{background:var(--panel);border:1px solid var(--line);padding:16px;border-radius:12px}
.section-head{display:flex;justify-content:space-between;align-items:center;margin-top:18px}
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:12px}
.card.link{display:block}
.card.link .read{display:inline-block;margin-top:8px;color:#93c5fd}
.site-footer{border-top:1px solid var(--line);margin-top:40px}
.site-footer .footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:16px}
.brand-mini{display:flex;align-items:center;gap:8px;font-weight:700}
.fine-print{border-top:1px solid var(--line);margin-top:16px;padding-top:12px;color:var(--muted);font-size:14px}
.muted{color:#94a3b8}
/* Blog */
.blog-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.blog-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column}
.blog-card h3{margin-top:0}
.blog-card footer{margin-top:auto;color:var(--muted);font-size:14px}
.article{max-width:760px;margin:0 auto}
.article h1{margin-top:0}
.breadcrumbs{font-size:14px;color:var(--muted)}
.article img{max-width:100%;border-radius:10px;border:1px solid var(--line)}
.article .byline{color:var(--muted);font-size:14px}
/* Forms */
form .field{margin-bottom:10px}
input, textarea{font-family:inherit}
textarea{width:100%;min-height:140px;padding:12px;border-radius:10px;border:1px solid var(--line);background:#0b1220;color:var(--text)}
/* Responsive */
@media (max-width:980px){
  .hero-inner{grid-template-columns:1fr}
  .result-grid{grid-template-columns:repeat(2,1fr)}
  .milestone-list{grid-template-columns:1fr}
  .cards-3, .blog-list{grid-template-columns:1fr}
  .site-footer .footer-grid{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
}

/* Inline logo next to main title */
.hero-title{display:flex;align-items:center;gap:12px}
.hero-title-logo{border-radius:12px;border:1px solid var(--line)}
/* Remove extra spacing from old hero image */
.hero-inner{grid-template-columns:1fr !important}


/* Blog index grid */
.post-list { list-style: none; margin: 0; padding: 0; }
.post-list.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
}
.post-list .card { padding: 16px; }
.post-list .card a { display: block; text-decoration: none; color: inherit; }


/* === Mobile hardening (non-destructive) === */
:root {
  --tap: 44px;              /* recommended minimum touch target */
  --gap: 16px;
}
html { -webkit-text-size-adjust: 100%; }
img, video { max-width: 100%; height: auto; display: block; }
.container { padding-left: 16px; padding-right: 16px; }

/* Buttons & inputs: make finger-friendly and avoid iOS zoom by using >=16px font */
button, .btn, input, select, textarea {
  min-height: var(--tap);
  font-size: 16px;
  line-height: 1.2;
}
input[type="date"], input[type="number"], input[type="text"] {
  padding: 10px 12px;
  width: 100%;
  box-sizing: border-box;
}

/* Card spacing on lists (blog index) */
.post-list { list-style: none; margin: 0; padding: 0; }
.post-list.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--gap);
}
.post-list .card { padding: 18px; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; box-shadow: none; }
.post-list .card h3 { margin-top: 0; }

/* Header/nav wrapping on small screens */
.site-header .nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
}

/* Footer links spacing for easier taps */
.site-footer .legal, .site-footer .legal li { display: inline-block; margin: 8px 12px 0 0; }

/* Article typography */
.article h1 { line-height: 1.2; }
.article p { margin: 0 0 1rem; }
.article .byline, .muted { opacity: .85; }

/* Prevent layout shift when webfonts load (rough fallback line-height) */
body { line-height: 1.5; }

/* Small screens */
@media (max-width: 640px) {
  h1 { font-size: 1.75rem; }
  h2 { font-size: 1.25rem; }
  .site-header .container, .site-footer .container { padding-top: 10px; padding-bottom: 10px; }
  .brand span { font-size: 1rem; }
  /* Calculator layout: stack nicely */
  #calculator .row, .calc-grid { display: block; }
  #calculator label { display: block; margin: 0 0 6px; }
  #calculator .field { margin-bottom: 12px; }
}

/* Extra small devices */
@media (max-width: 360px) {
  h1 { font-size: 1.5rem; }
  .post-list .card { padding: 12px; }
}

.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}
.table{width:100%;border-collapse:collapse}
.table td{padding:12px 14px;border-top:1px solid var(--line);vertical-align:top}
.table tr:first-child td{border-top:none}

.updated-line{margin-top:10px}


/* Contrast + readability for light callouts (e.g., homepage educational notice) */
.disclaimer-bar{
  background: rgba(255,255,255,.06) !important;
  border: 1px solid var(--line) !important;
  color: var(--text) !important;
}
.disclaimer-bar a{
  color:#93c5fd !important;
  font-weight:700;
}

/* Button visibility + accessibility */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-decoration:none;
  color:#111827;
  box-shadow:0 10px 18px rgba(0,0,0,.18);
}
.btn:hover{filter:brightness(1.06)}
.btn:active{transform:translateY(1px)}
.btn:focus-visible{
  outline:3px solid rgba(251,113,133,.55);
  outline-offset:3px;
}

/* Blog index CTA buttons (dark theme, high contrast) */
.btn-outline{
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.18);
  color: var(--text);
  padding: 10px 14px;
  border-radius: 12px;
  font-weight: 700;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.btn-outline:hover{ background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.26); }
.btn-outline:focus-visible{ outline: 2px solid rgba(255,255,255,.35); outline-offset: 3px; }

.post-card h3{ margin: 0 0 .35rem; }
.post-card h3 a{ color: var(--text); text-decoration: none; }
.post-card h3 a:hover{ text-decoration: underline; }
.post-card .card-actions{ margin-top: .9rem; display: flex; justify-content: flex-start; }
.post-card .card-actions .btn-outline{ width: auto; }
@media (max-width: 520px){
  .post-card .card-actions .btn-outline{ width: 100%; justify-content: center; }
}


/* Ensure outline buttons are never overridden by .btn */
.btn.btn-outline{background: rgba(255,255,255,.05) !important; border: 1px solid rgba(255,255,255,.18) !important; color: var(--text) !important;}
.btn.btn-outline:hover{background: rgba(255,255,255,.08) !important; border-color: rgba(255,255,255,.26) !important;}

/* Blog index CTA buttons: brand gradient, high contrast, easy to spot */
.blog-cta{
  background: linear-gradient(90deg,var(--brand),var(--brand-2)) !important;
  color: #0b1220 !important;
  border: none !important;
  padding: 10px 14px !important;
  border-radius: 12px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
}

.blog-cta:hover{ filter: brightness(1.06); }
.blog-cta:focus-visible{ outline: 2px solid rgba(251,113,133,.55); outline-offset: 3px; }

/* Make blog cards read nicer */
.post-card p.muted{ line-height: 1.55; }
.post-card .card-actions{ margin-top: 1rem; display:flex; justify-content:flex-start; }
@media (max-width: 520px){
  .post-card .card-actions .blog-cta{ width:100%; }
}

.post-list .card a.blog-cta{ display: inline-flex !important; color: #0b1220 !important; }
