/* ===== Shared base for all calculator sites ===== */
:root, [data-theme='light'] {
  --color-bg: #f7f6f2;
  --color-surface: #ffffff;
  --color-surface-2: #fbfbf9;
  --color-surface-offset: #f0efeb;
  --color-divider: #e2e0da;
  --color-border: #d9d6ce;
  --color-text: #201f1a;
  --color-text-muted: #6b6a63;
  --color-text-faint: #a6a49c;
  --color-text-inverse: #f9f8f4;
  --color-primary: #d1477a;
  --color-primary-hover: #b23a68;
  --color-primary-active: #952f56;
  --color-primary-highlight: #fbdce9;
  --color-success: #1a7f4f;
  --color-danger: #b3402e;
  --shadow-sm: 0 1px 2px rgba(20,18,12,0.06);
  --shadow-md: 0 4px 16px rgba(20,18,12,0.08);
  --shadow-lg: 0 12px 32px rgba(20,18,12,0.12);
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 20px;
}
[data-theme='dark'] {
  --color-bg: #15140f;
  --color-surface: #1c1b16;
  --color-surface-2: #201f19;
  --color-surface-offset: #262520;
  --color-divider: #34322b;
  --color-border: #3c3a32;
  --color-text: #f3f1ea;
  --color-text-muted: #a6a49c;
  --color-text-faint: #6b6a63;
  --color-text-inverse: #15140f;
  --color-primary: #f472a6;
  --color-primary-hover: #f9a8c9;
  --color-primary-active: #fbcfe0;
  --color-primary-highlight: #4a1f33;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.3);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.4);
  --shadow-lg: 0 12px 32px rgba(0,0,0,0.5);
}

:root{
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.25rem);
  --space-1: .25rem; --space-2: .5rem; --space-3: .75rem; --space-4: 1rem;
  --space-5: 1.25rem; --space-6: 1.5rem; --space-8: 2rem; --space-10: 2.5rem;
  --space-12: 3rem; --space-16: 4rem; --space-20: 5rem; --space-24: 6rem;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;}
body{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  background:var(--color-bg); color:var(--color-text);
  font-size:var(--text-base); line-height:1.6;
  -webkit-font-smoothing:antialiased;
  transition:background .2s ease, color .2s ease;
}
a{color:var(--color-primary); text-decoration:none;}
a:hover{text-decoration:underline;}
img,svg{display:block;max-width:100%;}
button{font-family:inherit;}

.wrap{max-width:920px;margin:0 auto;padding-inline:var(--space-6);}

/* Header */
.site-header{
  border-bottom:1px solid var(--color-divider);
  padding-block:var(--space-4);
  position:sticky; top:0; z-index:20;
  background:color-mix(in oklab, var(--color-bg) 88%, transparent);
  backdrop-filter:blur(8px);
}
.site-header .wrap{display:flex; align-items:center; justify-content:space-between; gap:var(--space-4);}
.brand{display:flex; align-items:center; gap:var(--space-2); font-weight:700; font-size:var(--text-base); color:var(--color-text);}
.brand svg{width:28px;height:28px;color:var(--color-primary);}
.theme-toggle{
  border:1px solid var(--color-border); background:var(--color-surface); color:var(--color-text);
  border-radius:999px; width:38px; height:38px; display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background .15s ease;
}
.theme-toggle:hover{background:var(--color-surface-offset);}
.theme-toggle svg{width:18px;height:18px;}
.theme-toggle .sun{display:none;}
[data-theme='dark'] .theme-toggle .moon{display:none;}
[data-theme='dark'] .theme-toggle .sun{display:block;}

/* Hero */
.hero{padding-block:var(--space-16) var(--space-10); text-align:center;}
.hero h1{
  font-size:var(--text-2xl); font-weight:800; letter-spacing:-0.02em; line-height:1.08;
  margin-bottom:var(--space-4);
}
.hero p{color:var(--color-text-muted); font-size:var(--text-lg); max-width:640px; margin:0 auto;}

/* Calculator card */
.calc-card{
  background:var(--color-surface); border:1px solid var(--color-border);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-md);
  padding:var(--space-8); margin-block:var(--space-8);
}
.field-grid{display:grid; grid-template-columns:1fr 1fr; gap:var(--space-5);}
@media (max-width:560px){.field-grid{grid-template-columns:1fr;}}
.field{display:flex; flex-direction:column; gap:var(--space-2);}
.field.full{grid-column:1/-1;}
.field label{font-size:var(--text-sm); font-weight:600; color:var(--color-text-muted);}
.field input, .field select{
  border:1px solid var(--color-border); border-radius:var(--radius-sm);
  padding:var(--space-3) var(--space-4); font-size:var(--text-base);
  background:var(--color-surface-2); color:var(--color-text);
  width:100%;
}
.field input:focus, .field select:focus{outline:2px solid var(--color-primary); outline-offset:1px;}
.seg{display:flex; border:1px solid var(--color-border); border-radius:var(--radius-sm); overflow:hidden;}
.seg button{
  flex:1; padding:var(--space-3) var(--space-4); background:var(--color-surface-2); color:var(--color-text-muted);
  border:none; cursor:pointer; font-size:var(--text-sm); font-weight:600; transition:.15s ease;
}
.seg button.active{background:var(--color-primary); color:var(--color-text-inverse);}

.btn-primary{
  margin-top:var(--space-6); width:100%; padding:var(--space-4);
  background:var(--color-primary); color:var(--color-text-inverse);
  border:none; border-radius:var(--radius-sm); font-size:var(--text-base); font-weight:700;
  cursor:pointer; transition:background .15s ease;
}
.btn-primary:hover{background:var(--color-primary-hover);}

.result{
  margin-top:var(--space-6); padding:var(--space-6); border-radius:var(--radius-md);
  background:var(--color-primary-highlight); border:1px solid var(--color-primary);
  display:none;
}
.result.visible{display:block;}
.result .big{font-size:var(--text-xl); font-weight:800; color:var(--color-text);}
.result .label{font-size:var(--text-sm); color:var(--color-text-muted); font-weight:600; text-transform:uppercase; letter-spacing:.04em;}
.result-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-4); margin-top:var(--space-4);}
@media (max-width:560px){.result-grid{grid-template-columns:1fr;}}
.result-row{display:flex; justify-content:space-between; padding-block:var(--space-2); border-bottom:1px dashed var(--color-border);}
.result-row span:last-child{font-weight:700;}
.result-list{display:flex; flex-direction:column; gap:var(--space-3); margin-top:var(--space-4);}
.result-list .item{
  display:flex; justify-content:space-between; align-items:center;
  padding:var(--space-4); border-radius:var(--radius-sm); background:var(--color-surface);
  border:1px solid var(--color-border);
}
.result-list .item .time{font-size:var(--text-lg); font-weight:800;}

.disclaimer{font-size:var(--text-xs); color:var(--color-text-faint); margin-top:var(--space-4);}

/* Ad slots */
.ad-slot{
  margin-block:var(--space-8); padding:var(--space-4); border:1px dashed var(--color-border);
  border-radius:var(--radius-sm); text-align:center; color:var(--color-text-faint); font-size:var(--text-xs);
  min-height:90px; display:flex; align-items:center; justify-content:center; background:var(--color-surface-offset);
}

/* Content sections */
.content-section{padding-block:var(--space-12); border-top:1px solid var(--color-divider);}
.content-section h2{font-size:var(--text-lg); font-weight:800; margin-bottom:var(--space-4);}
.content-section p{color:var(--color-text-muted); margin-bottom:var(--space-4);}
.content-section ul{color:var(--color-text-muted); padding-left:var(--space-6); margin-bottom:var(--space-4);}
.content-section li{margin-bottom:var(--space-2);}

.faq-item{border-bottom:1px solid var(--color-divider); padding-block:var(--space-5);}
.faq-item h3{font-size:var(--text-base); font-weight:700; margin-bottom:var(--space-2);}
.faq-item p{color:var(--color-text-muted); margin:0;}

/* Footer */
.site-footer{border-top:1px solid var(--color-divider); padding-block:var(--space-10); margin-top:var(--space-10);}
.site-footer .wrap{display:flex; flex-direction:column; gap:var(--space-3); align-items:center; text-align:center;}
.site-footer p{color:var(--color-text-faint); font-size:var(--text-xs); max-width:640px;}
.footer-links{display:flex; gap:var(--space-5);}
.footer-links a{color:var(--color-text-muted); font-size:var(--text-sm);}


/* Blog */
.blog-grid{display:grid; grid-template-columns:1fr; gap:var(--space-5);}
.blog-card{
  background:var(--color-surface); border:1px solid var(--color-border);
  border-radius:var(--radius-md); padding:var(--space-6); box-shadow:var(--shadow-sm);
  display:block; transition:box-shadow .15s ease, transform .15s ease;
}
.blog-card:hover{box-shadow:var(--shadow-md); transform:translateY(-1px);}
.blog-card h2{font-size:var(--text-lg); font-weight:800; margin-bottom:var(--space-2); color:var(--color-text);}
.blog-card p{color:var(--color-text-muted); margin:0;}
.blog-card .date{display:block; font-size:var(--text-xs); color:var(--color-text-faint); margin-bottom:var(--space-2); text-transform:uppercase; letter-spacing:.04em;}
