/* ═══ 1. CSS RESET ═════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { min-height: 100vh; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img:not(.rtc-app *), picture:not(.rtc-app *), video:not(.rtc-app *), canvas:not(.rtc-app *), svg:not(.rtc-app *) { display: block; max-width: 100%; }
input, button, textarea, select { font: inherit; color: inherit; }
button:not(.rtc-app *) { cursor: pointer; border: none; background: none; }
a { color: inherit; text-decoration: none; }
ul:not(.rtc-app *), ol:not(.rtc-app *) { list-style: none; }
table:not(.rtc-app *) { border-collapse: collapse; border-spacing: 0; }
h1:not(.rtc-app *), h2:not(.rtc-app *), h3:not(.rtc-app *), h4:not(.rtc-app *), h5:not(.rtc-app *), h6:not(.rtc-app *) { overflow-wrap: break-word; font-weight: 700; }
p { overflow-wrap: break-word; }

/* ═══ 2. CUSTOM PROPERTIES ═════════════════════════════ */
:root {
  --green: #005D48;
  --green-dark: #004a38;
  --green-xdark: #003628;
  --green-light: #e0f0eb;
  --green-xlight: #eef7f4;
  --text-1: #0d1117;
  --text-2: #57606a;
  --text-3: #8c959f;
  --text-inv: #ffffff;
  --bg: #ffffff;
  --surface-1: #f6f8fa;
  --surface-2: #eaeef2;
  --surface-3: #dde1e7;
  --border-1: #d0d7de;
  --border-2: #e8eaed;
  --danger: #cf222e;
  --warning: #9a6700;
  --success: #1a7f37;
  --info: #0969da;
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 20px;
  --sp-6: 24px; --sp-8: 32px; --sp-10: 40px; --sp-12: 48px; --sp-16: 64px; --sp-20: 80px;
  --r-sm: 8px; --r-md: 16px; --r-lg: 24px; --r-xl: 40px; --r-pill: 9999px;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.06);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.10), 0 2px 4px rgba(0,0,0,0.06);
  --shadow-lg: 0 20px 40px rgba(0,0,0,0.12), 0 8px 16px rgba(0,0,0,0.06);
  --t-fast: 150ms ease; --t-normal: 250ms ease; --t-slow: 400ms ease;
  --font-sans: 'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', 'Courier New', monospace;
  --text-xs: 12px; --text-sm: 13px; --text-base: 15px; --text-md: 17px;
  --text-lg: 20px; --text-xl: 24px; --text-2xl: 30px; --text-3xl: 36px;
  --text-4xl: clamp(32px, 5vw, 48px); --text-hero: clamp(48px, 7vw, 76px);
  --lh-tight: 1.15; --lh-snug: 1.35; --lh-normal: 1.55; --lh-loose: 1.75;
}

/* ═══ 3. DARK MODE OVERRIDES ══════════════════════════ */
[data-theme="dark"] {
  --text-1: #e6edf3; --text-2: #8b949e; --text-3: #6e7681;
  --bg: #0d1117; --surface-1: #161b22; --surface-2: #1c2128; --surface-3: #252b33;
  --border-1: #30363d; --border-2: #21262d;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.4);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.5);
  --shadow-lg: 0 10px 30px rgba(0,0,0,0.6);
  --green: #00D09E;
  --green-dark: #00B186;
  --green-light: rgba(0,208,158,0.18);
  --green-xlight: rgba(0,208,158,0.10);
  --text-inv: #0d1117;
}

/* ═══ 4. BASE TYPOGRAPHY ══════════════════════════════ */
body { font-family: var(--font-sans); font-size: var(--text-base); line-height: var(--lh-normal); color: var(--text-1); background-color: var(--bg); transition: background-color var(--t-normal), color var(--t-normal); }
h1:not(.rtc-app *) { font-size: var(--text-4xl); line-height: var(--lh-tight); font-weight: 900; letter-spacing: -0.04em; }
h2:not(.rtc-app *) { font-size: var(--text-2xl); line-height: var(--lh-snug); font-weight: 900; letter-spacing: -0.04em; }
h3:not(.rtc-app *) { font-size: var(--text-lg); line-height: var(--lh-snug); font-weight: 900; letter-spacing: -0.04em; }
h4:not(.rtc-app *) { font-size: var(--text-md); line-height: var(--lh-snug); font-weight: 900; letter-spacing: -0.04em; }
.text-green { color: var(--green); }
.font-mono { font-family: var(--font-mono); }
.section-heading { text-align: center; margin-bottom: var(--sp-2); }
.section-subheading { text-align: center; color: var(--text-2); font-size: var(--text-md); margin-bottom: var(--sp-10); max-width: 540px; margin-left: auto; margin-right: auto; }

/* ═══ 5. LAYOUT UTILITIES ════════════════════════════ */
.container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.section { padding: 80px 0; }
.section--alt { background: var(--surface-1); }
.grid-2 { display: grid; grid-template-columns: 1fr; gap: var(--sp-8); }
.grid-3 { display: grid; grid-template-columns: 1fr; gap: 18px; }
.grid-4 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-6); }
.flex-center { display: flex; align-items: center; justify-content: center; }
.flex-between { display: flex; align-items: center; justify-content: space-between; }
.text-center { text-align: center; }
.mx-auto { margin-left: auto; margin-right: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border-width: 0; }

/* ═══ 6. BUTTON COMPONENTS ═══════════════════════════ */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-2); font-weight: 900; font-size: 13px; border-radius: var(--r-md); transition: all var(--t-normal); cursor: pointer; white-space: nowrap; height: 48px; padding: 0 var(--sp-6); border: 2px solid transparent; text-decoration: none; letter-spacing: 0.1em; text-transform: uppercase; }
.btn--primary { background: var(--green); color: var(--text-inv); border-color: var(--green); box-shadow: 0 8px 24px rgba(29,185,84,0.3); }
.btn--primary:hover { background: var(--green-dark); border-color: var(--green-dark); transform: translateY(-1px); box-shadow: 0 12px 32px rgba(29,185,84,0.4); }
.btn--secondary { background: transparent; color: var(--green); border-color: var(--green); }
.btn--secondary:hover { background: var(--green); color: var(--text-inv); transform: translateY(-1px); }
.btn--ghost { background: transparent; color: var(--text-2); border-color: transparent; }
.btn--ghost:hover { background: var(--surface-1); color: var(--text-1); }
.btn--danger { background: var(--danger); color: var(--text-inv); border-color: var(--danger); }
.btn--sm { height: 40px; padding: 0 var(--sp-4); font-size: 11px; }
.btn--md { height: 42px; }
.btn--lg { height: 52px; padding: 0 var(--sp-8); font-size: var(--text-md); }
.btn--full { width: 100%; }
.btn--icon { width: 42px; padding: 0; }
.btn-icon { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: var(--r-md); border: 1px solid var(--border-1); background: var(--bg); color: var(--text-2); transition: all var(--t-normal); }
.btn-icon:hover { border-color: var(--green); color: var(--green); }

/* ═══ 7. FORM COMPONENTS ════════════════════════════ */
.form-group { margin-bottom: var(--sp-5); }
.form-label { display: block; font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-3); margin-bottom: var(--sp-2); }
.form-input { width: 100%; height: 46px; padding: 0 var(--sp-4); font-size: var(--text-base); background: var(--bg); border: 1px solid var(--border-1); border-radius: var(--r-md); color: var(--text-1); transition: border-color var(--t-fast); }
.form-input:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(29,185,84,0.12); }
.form-input::placeholder { color: var(--text-3); }
textarea.form-input { height: auto; min-height: 120px; padding: var(--sp-3) var(--sp-4); resize: vertical; }
select.form-input { appearance: none; background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%238c959f' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }
.form-error { font-size: var(--text-xs); color: var(--danger); margin-top: var(--sp-1); display: none; }
.form-success { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-4); background: var(--green-light); border-radius: var(--r-md); color: var(--green-xdark); font-weight: 600; font-size: var(--text-sm); }
.form-success__icon { width: 28px; height: 28px; border-radius: 50%; background: var(--green); color: white; display: flex; align-items: center; justify-content: center; font-size: 14px; flex-shrink: 0; }
.honeypot { position: absolute; left: -9999px; }

/* Calculator form overrides */
.calc-label { display: block; font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-3); margin-bottom: var(--sp-2); }
.calc-input-wrap { position: relative; display: flex; align-items: center; }
.calc-prefix { position: absolute; left: 14px; color: var(--text-3); font-weight: 600; font-size: var(--text-base); pointer-events: none; }
.calc-suffix { position: absolute; right: 14px; color: var(--text-3); font-weight: 600; font-size: var(--text-base); pointer-events: none; }
.calc-input { width: 100%; height: 50px; padding: 0 var(--sp-4); font-size: var(--text-md); font-family: var(--font-mono); font-weight: 500; background: var(--surface-1); border: 1.5px solid var(--border-1); border-radius: var(--r-md); color: var(--text-1); transition: border-color var(--t-fast); }
.calc-input:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(29,185,84,0.12); }
.calc-input-wrap .calc-input { padding-left: 36px; }
.calc-input-wrap .calc-input:has(~ .calc-suffix) { padding-right: 36px; }
.calc-field { margin-bottom: var(--sp-5); }

/* Range input */
input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 4px; background: var(--surface-3); border-radius: var(--r-pill); outline: none; cursor: pointer; margin: var(--sp-3) 0; }
input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; background: var(--green); border-radius: 50%; border: 2px solid white; box-shadow: var(--shadow-sm); cursor: pointer; transition: transform var(--t-fast); }
input[type="range"]::-webkit-slider-thumb:hover { transform: scale(1.15); }
input[type="range"]::-moz-range-thumb { width: 18px; height: 18px; background: var(--green); border-radius: 50%; border: 2px solid white; box-shadow: var(--shadow-sm); cursor: pointer; }

/* ═══ 8. CARD COMPONENTS ════════════════════════════ */
.card { background: var(--bg); border: 1px solid var(--border-1); border-radius: var(--r-lg); box-shadow: var(--shadow-sm); transition: all var(--t-normal); overflow: hidden; }
.card:hover { box-shadow: var(--shadow-md); }
.card--hover:hover { transform: translateY(-3px); border-color: var(--green); }
.card__body { padding: var(--sp-6); }

/* ═══ 9. BADGE / PILL COMPONENTS ════════════════════ */
.pill { display: inline-flex; align-items: center; gap: var(--sp-2); padding: var(--sp-1) var(--sp-3); border-radius: var(--r-pill); font-size: var(--text-xs); font-weight: 600; }
.pill--green { background: var(--green-light); color: var(--green); border: 1px solid var(--green); }
.pill--outline { background: transparent; border: 1px solid var(--green); color: var(--green); }
.badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: var(--r-pill); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.badge--ai { background: var(--green-light); color: var(--green); }
.badge--cat { background: var(--green-light); color: var(--green); }

/* ═══ 10. NAVBAR ═════════════════════════════════════ */
.navbar { position: sticky; top: 0; z-index: 1000; height: 64px; background: var(--bg); border-bottom: 1px solid var(--border-1); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); background-color: rgba(255,255,255,0.92); transition: transform var(--t-normal), border-color var(--t-normal), background-color var(--t-normal); }
[data-theme="dark"] .navbar { background-color: rgba(13,17,23,0.92); }
.navbar__inner { display: flex; align-items: center; justify-content: space-between; height: 100%; }
.navbar__logo { display: flex; align-items: center; gap: var(--sp-2); font-size: 24px; font-weight: 900; letter-spacing: -0.04em; text-decoration: none; }
.navbar__logo-icon { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.navbar__logo-icon svg, .navbar__logo-icon img { height: 100%; width: 100%; object-fit: contain; }
.navbar__logo-text { color: var(--text-1); }
.logo-cash { color: var(--green); }
.logo-luom {
  background-image: url('data:image/svg+xml;utf8,<svg width="100" height="30" xmlns="http://www.w3.org/2000/svg"><defs><mask id="m"><rect width="100" height="30" fill="white"/><g stroke="black" stroke-width="2.5"><line x1="45" y1="35" x2="65" y2="-5"/><line x1="55" y1="35" x2="75" y2="-5"/><line x1="42" y1="5" x2="60" y2="15"/><line x1="48" y1="15" x2="68" y2="25"/><line x1="54" y1="25" x2="76" y2="35"/></g></mask></defs><rect width="100" height="30" fill="%23FECB00" mask="url(%23m)"/></svg>');
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-position: center;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.navbar__nav { display: none; align-items: center; gap: var(--sp-2); }
.navbar__links { display: flex; align-items: center; gap: var(--sp-1); }
.navbar__item--dropdown, .navbar__links li { list-style: none; }
.navbar__link { display: inline-flex; align-items: center; gap: 4px; padding: var(--sp-2) var(--sp-4); font-size: 13px; font-weight: 900; color: var(--text-2); border-radius: var(--r-sm); transition: color var(--t-fast), background var(--t-fast); text-decoration: none; background: none; border: none; cursor: pointer; letter-spacing: 0.1em; text-transform: uppercase; }
.navbar__link:hover, .navbar__link.active { color: var(--text-1); }
.navbar__link .icon-chevron { width: 14px; height: 14px; transition: transform var(--t-fast); }
.navbar__actions { display: flex; align-items: center; gap: var(--sp-3); }
.navbar__separator { width: 1px; height: 24px; background: var(--border-1); display: none; margin: 0 var(--sp-2); }
.navbar__cta { display: none; height: 42px; font-size: 11px; padding: 0 var(--sp-6); letter-spacing: 0.1em; border-radius: var(--r-md); }
.navbar__hamburger { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--r-md); color: var(--text-2); transition: background var(--t-fast); }
.navbar__hamburger:hover { background: var(--surface-1); }

/* Dropdown */
.navbar__item--dropdown { position: relative; }
.navbar__dropdown { position: absolute; top: calc(100% + 8px); left: -12px; width: 280px; background: var(--bg); border: 1px solid var(--border-1); border-radius: var(--r-xl); box-shadow: var(--shadow-lg); padding: var(--sp-3); opacity: 0; visibility: hidden; transform: translateY(-4px); transition: all var(--t-fast); z-index: 100; }
.navbar__dropdown.open { opacity: 1; visibility: visible; transform: translateY(0); }
.dropdown__item { display: flex; align-items: center; gap: var(--sp-4); padding: var(--sp-3) var(--sp-4); border-radius: var(--r-md); transition: all var(--t-fast); text-decoration: none; }
.dropdown__item:hover { background: var(--green-xlight); }
.dropdown__icon { font-size: 24px; line-height: 1; display: flex; align-items: center; justify-content: center; }
.dropdown__label { font-size: 13px; font-weight: 900; color: var(--text-1); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 2px; }
.dropdown__desc { font-size: 10px; color: var(--text-3); font-weight: 500; }
.dropdown__item:hover .dropdown__desc { color: var(--text-2); }

/* ═══ 11. MOBILE DRAWER ══════════════════════════════ */
.navbar__mobile-drawer { position: fixed; top: 56px; left: 0; right: 0; background: var(--bg); border-bottom: 1px solid var(--border-1); padding: var(--sp-6) var(--sp-5); transform: translateY(-100%); opacity: 0; visibility: hidden; transition: all var(--t-normal); z-index: 999; max-height: calc(100vh - 56px); overflow-y: auto; }
.navbar__mobile-drawer.open { transform: translateY(0); opacity: 1; visibility: visible; }
.navbar__overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.4); opacity: 0; visibility: hidden; transition: all var(--t-normal); z-index: 998; }
.navbar__overlay.open { opacity: 1; visibility: visible; }
.mobile-nav__link { display: block; padding: var(--sp-3) 0; font-size: var(--text-md); font-weight: 500; color: var(--text-1); border-bottom: 1px solid var(--border-2); }
.mobile-nav__link:last-child { border-bottom: none; }
.mobile-nav__sub { padding-left: var(--sp-4); }
.mobile-nav__sub a { display: block; padding: var(--sp-2) 0; font-size: var(--text-sm); color: var(--text-2); }
.mobile-nav__sub a:hover { color: var(--green); }
.mobile-nav__cta { margin-top: var(--sp-5); }
.mobile-nav__theme { display: flex; align-items: center; justify-content: space-between; padding: var(--sp-3) 0; margin-top: var(--sp-3); font-size: var(--text-sm); color: var(--text-2); }

/* ═══ 12. HERO SECTION ═══════════════════════════════ */
.hero { padding: 80px 0 60px; background: var(--surface-1); position: relative; overflow: hidden; }
.hero__grid { display: grid; grid-template-columns: 1fr; gap: var(--sp-10); align-items: center; }
.hero__pill { margin-bottom: var(--sp-5); }
.hero h1 { font-size: var(--text-hero); font-weight: 800; line-height: var(--lh-tight); margin-bottom: var(--sp-5); }
.hero h1 em { font-style: italic; color: var(--green); }
.hero__desc { font-size: var(--text-md); line-height: var(--lh-loose); color: var(--text-2); margin-bottom: var(--sp-6); max-width: 520px; }
/* Hero search bar */
.hero-search { position: relative; margin-bottom: var(--sp-3); max-width: 420px; }
.hero-search__icon { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--text-3); pointer-events: none; }
.hero-search__input { width: 100%; height: 48px; padding: 0 var(--sp-4) 0 46px; font-size: var(--text-base); background: #ffffff; border: 1px solid var(--border-1); border-radius: var(--r-pill); color: #000000; transition: border-color var(--t-fast); box-shadow: var(--shadow-sm); }
.hero-search__input:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(29,185,84,0.12); }
/* Popular tags */
.hero-popular { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); margin-bottom: var(--sp-6); font-size: var(--text-xs); }
.hero-popular__label { font-weight: 700; color: var(--text-1); text-transform: uppercase; letter-spacing: 0.04em; }
.hero-popular__tag { color: var(--text-2); transition: color var(--t-fast); }
.hero-popular__tag:hover { color: var(--green); text-decoration: underline; }
.hero__buttons { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin-bottom: var(--sp-8); }
.hero__trust { display: flex; flex-wrap: wrap; gap: var(--sp-6); }
.hero__trust-item { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--text-xs); font-weight: 700; color: var(--text-1); letter-spacing: 0.03em; }
.hero__trust-icon { color: var(--green); flex-shrink: 0; }

/* ═══ 13. INTERACTIVE WIDGET ═════════════════════════ */
.hero-widget { background: var(--bg); border: 1px solid var(--border-1); border-radius: var(--r-xl); box-shadow: var(--shadow-lg); padding: 32px; position: relative; }
[data-theme="dark"] .hero-widget { background: var(--surface-2); }
.hero-widget__header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: var(--sp-8); }
.hero-widget__title-group { display: flex; align-items: center; gap: var(--sp-3); }
.hero-widget__icon { width: 40px; height: 40px; background: var(--green-light); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: var(--green); }
.hero-widget__title { font-size: 13px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-1); }
.hero-widget__subtitle { font-size: 10px; font-weight: 700; color: var(--text-3); margin-top: 2px; text-transform: uppercase; letter-spacing: 0.1em; }
.hero-widget__refresh { width: 36px; height: 36px; border-radius: var(--r-sm); display: flex; align-items: center; justify-content: center; color: var(--text-3); transition: all var(--t-fast); }
.hero-widget__refresh:hover { background: var(--surface-1); color: var(--text-1); }
.hero-widget__slider { margin-bottom: var(--sp-6); }
.hero-widget__slider-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--sp-2); }
.hero-widget__slider-label { font-size: 11px; font-weight: 900; text-transform: uppercase; color: var(--text-2); letter-spacing: 0.1em; }
.hero-widget__slider-value { font-family: var(--font-sans); font-weight: 900; font-size: 16px; color: var(--text-1); }
.hero-widget__slider input[type="range"] { height: 8px; border-radius: 4px; accent-color: var(--green); }
.hero-widget__results { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); margin-top: var(--sp-8); }
.hero-widget__result-card { background: var(--surface-1); border-radius: var(--r-lg); padding: var(--sp-6); text-align: center; border: 1px solid var(--border-2); }
.hero-widget__result-value { font-family: var(--font-sans); font-size: 32px; font-weight: 900; color: var(--text-1); line-height: 1.1; letter-spacing: -0.04em; }
.hero-widget__result-label { font-size: 10px; font-weight: 900; color: var(--green); margin-top: var(--sp-1); text-transform: uppercase; letter-spacing: 0.1em; }
.hero-widget__note { display: flex; align-items: center; justify-content: center; gap: var(--sp-2); font-size: 10px; font-weight: 900; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.1em; margin-top: var(--sp-5); padding-top: var(--sp-4); }
.hero-widget__cta { margin-top: var(--sp-6); height: 56px; font-size: 13px; font-weight: 900; letter-spacing: 0.1em; border-radius: var(--r-md); width: 100%; box-shadow: 0 10px 30px rgba(29,185,84,0.2); }

/* ═══ 14. FEATURE BAR ════════════════════════════════ */
.feature-bar { padding: 48px 0; border-top: 1px solid var(--border-2); border-bottom: 1px solid var(--border-2); }
.feature-bar__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-8); }
.feature-bar__item { display: flex; gap: var(--sp-4); }
.feature-bar__icon { width: 44px; height: 44px; border-radius: var(--r-md); background: var(--green-light); display: flex; align-items: center; justify-content: center; color: var(--green); flex-shrink: 0; }
.feature-bar__title { font-size: var(--text-md); font-weight: 700; color: var(--text-1); margin-bottom: 2px; }
.feature-bar__category { font-size: 10px; font-weight: 700; color: var(--green); text-transform: uppercase; letter-spacing: 0.05em; }
.feature-bar__desc { font-size: var(--text-xs); color: var(--text-3); text-transform: uppercase; letter-spacing: 0.03em; margin-top: 2px; }
/* Legacy stats bar */
.stats-bar { background: #0d1117; padding: 32px 0; }
.stats-bar__inner { display: flex; flex-wrap: wrap; justify-content: center; gap: 32px; }
.stats-bar__item { text-align: center; }
.stats-bar__number { font-family: var(--font-mono); font-size: 28px; font-weight: 700; color: var(--green); }
.stats-bar__label { font-size: var(--text-sm); color: #8b949e; margin-top: 2px; }

/* ═══ 15. TOOLS GRID ════════════════════════════════ */
.tools-section { padding: 80px 0; }
.tools-section__header { display: flex; flex-direction: column; gap: var(--sp-6); margin-bottom: var(--sp-12); }
.tools-section__title { font-size: clamp(32px, 5vw, 40px); font-weight: 900; letter-spacing: -0.04em; }
.tools-section__title em { font-style: italic; color: var(--green); }
.tools-section__desc { font-size: var(--text-lg); font-weight: 500; color: var(--text-2); line-height: var(--lh-normal); max-width: 600px; }
.tools-grid { display: grid; grid-template-columns: 1fr; gap: 32px; }
.tool-card { background: var(--bg); border: 1px solid var(--border-1); border-radius: var(--r-xl); padding: 32px; box-shadow: var(--shadow-sm); transition: all var(--t-normal); display: flex; flex-direction: column; position: relative; overflow: hidden; }
.tool-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--green); }
.tool-card__sparkle { position: absolute; top: 24px; right: 24px; opacity: 0.2; transform: scale(1.5); }
.tool-card__top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: var(--sp-6); }
.tool-card__icon { width: 56px; height: 56px; background: var(--green-light); border-radius: var(--r-md); display: flex; align-items: center; justify-content: center; color: var(--green); font-size: 24px; }
.tool-card h3 { font-size: 20px; font-weight: 900; color: var(--text-1); margin-bottom: var(--sp-2); letter-spacing: -0.02em; }
.tool-card__desc { font-size: 15px; font-weight: 500; color: var(--text-2); line-height: 1.6; margin-bottom: auto; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tool-card__footer { display: flex; align-items: center; justify-content: space-between; padding-top: var(--sp-6); margin-top: var(--sp-6); }
.tool-card__link { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 900; color: var(--green); transition: all var(--t-fast); text-transform: uppercase; letter-spacing: 0.1em; }
.tool-card__link:hover { gap: 12px; }
.tool-card__traffic { font-size: 10px; font-weight: 700; color: var(--text-3); letter-spacing: 0.1em; opacity: 0.6; text-transform: uppercase; }
/* AI card */
.tool-card--ai { background: linear-gradient(135deg, var(--green), var(--green-dark)); border-color: var(--green); }
.tool-card--ai, .tool-card--ai h3, .tool-card--ai p, .tool-card--ai .tool-card__link { color: white; }
.tool-card--ai .tool-card__icon { background: rgba(255,255,255,0.2); color: white; }
.tool-card--ai .tool-card__footer { border-color: rgba(255,255,255,0.2); }
.tool-card--ai:hover { transform: translateY(-3px); box-shadow: 0 10px 30px rgba(29,185,84,0.3); border-color: var(--green); }
.tool-card--ai .btn { background: white; color: var(--green); border-color: white; }
/* Suggest card */
.tool-card--suggest { justify-content: center; align-items: center; text-align: center; background: var(--surface-1); border-style: dashed; }
.tool-card--suggest:hover { border-style: solid; }
.tool-card__suggest-icon { width: 52px; height: 52px; border-radius: 50%; background: var(--surface-2); display: flex; align-items: center; justify-content: center; color: var(--text-3); margin-bottom: var(--sp-4); }
.tool-card--suggest h3 { font-size: 20px; font-weight: 900; letter-spacing: -0.02em; }
.tool-card--suggest .tool-card__desc { text-align: center; font-size: 14px; font-weight: 500; }
.tool-card--suggest .tool-card__footer { justify-content: center; border: none; padding-top: 0; margin-top: var(--sp-4); }
.tool-card--suggest .btn { background: var(--surface-1); border: 1px solid var(--border-1); color: var(--text-1); }
.tool-card--suggest .btn:hover { border-color: var(--green); color: var(--green); }

/* ═══ 16. NEWSLETTER SECTION ════════════════════════ */
.newsletter { padding: 80px 0; background: linear-gradient(135deg, var(--green-xlight), var(--green-light)); }
[data-theme="dark"] .newsletter { background: linear-gradient(135deg, rgba(29,185,84,0.05), rgba(29,185,84,0.1)); }
.newsletter__grid { display: grid; grid-template-columns: 1fr; gap: var(--sp-10); align-items: center; }
.newsletter__pill { margin-bottom: var(--sp-4); }
.newsletter h2 { font-size: var(--text-3xl); font-weight: 800; line-height: var(--lh-snug); margin-bottom: var(--sp-4); }
.newsletter h2 em { font-style: italic; color: var(--green); }
.newsletter__desc { font-size: var(--text-base); font-weight: 600; color: var(--text-2); line-height: var(--lh-loose); margin-bottom: var(--sp-6); }
.newsletter__badges { display: flex; gap: var(--sp-6); }
.newsletter__badge { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--text-sm); font-weight: 700; color: var(--text-2); }
.newsletter__badge svg { color: var(--green); }
.newsletter__card { background: var(--bg); border-radius: var(--r-lg); box-shadow: var(--shadow-md); padding: 36px; }
.newsletter__fine { font-size: var(--text-xs); color: var(--text-3); text-align: center; margin-top: var(--sp-3); text-transform: uppercase; letter-spacing: 0.02em; }

/* ═══ 17. TRUST SECTION ══════════════════════════════ */
.trust { padding: 70px 0; border-top: 1px solid var(--border-2); }
.trust__grid { display: grid; grid-template-columns: 1fr; gap: var(--sp-8); }
.trust__item { text-align: center; }
.trust__icon { width: 48px; height: 48px; border-radius: 50%; background: var(--green-light); display: flex; align-items: center; justify-content: center; font-size: 22px; margin: 0 auto var(--sp-4); }
.trust__item h3 { font-size: var(--text-lg); font-weight: 600; margin-bottom: var(--sp-2); }
.trust__item p { font-size: var(--text-sm); color: var(--text-2); line-height: var(--lh-normal); max-width: 320px; margin: 0 auto; }

/* ═══ 18. BLOG PREVIEW ══════════════════════════════ */
.blog-preview { padding: 80px 0; background: var(--bg); }
.blog-preview__header { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--sp-4); margin-bottom: var(--sp-12); }
.blog-preview__title { font-size: clamp(32px, 5vw, 40px); font-weight: 900; letter-spacing: -0.04em; margin-bottom: var(--sp-3); }
.blog-preview__title em { font-style: italic; color: var(--green); }
.blog-preview__desc { font-size: var(--text-lg); font-weight: 500; color: var(--text-2); max-width: 600px; line-height: var(--lh-normal); }
.blog-preview__viewall { margin-bottom: var(--sp-1); background: var(--bg); border: 1px solid var(--border-1); color: var(--text-1); box-shadow: none; font-size: 12px; height: 42px; }
.blog-preview__viewall:hover { border-color: var(--green); color: var(--green); }
/* ═══ Blog Grid & Cards (Professional Image-First Design) ═══ */
.blog-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }

/* Base card — every card is image on top, content below */
.blog-card {
  background: var(--surface-1);
  border: 1px solid var(--border-1);
  border-radius: 16px;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
}
.blog-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.12);
  border-color: var(--green);
}
[data-theme="dark"] .blog-card:hover { box-shadow: 0 12px 40px rgba(0,0,0,0.4); }

/* Image container */
.blog-card__img {
  width: 100%;
  height: 200px;
  overflow: hidden;
  position: relative;
  background: linear-gradient(135deg, var(--green), #047857);
  flex-shrink: 0;
}
.blog-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.blog-card:hover .blog-card__img img { transform: scale(1.05); }

/* Card body */
.blog-card__body { padding: 20px 22px 22px; flex: 1; display: flex; flex-direction: column; }
.blog-card__badge { margin-bottom: 10px; }

.blog-card__title {
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--text-1);
  line-height: 1.35;
  margin-bottom: 8px;
  transition: color var(--t-fast);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.blog-card:hover .blog-card__title { color: var(--green); }

.blog-card__excerpt {
  font-size: 13.5px;
  font-weight: 500;
  color: var(--text-2);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: auto;
}

.blog-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-3);
  padding-top: 14px;
  margin-top: 14px;
  border-top: 1px solid var(--border-2);
}
.blog-card__author-role { display: flex; align-items: center; gap: 8px; color: var(--text-2); }
.blog-card__time { display: flex; align-items: center; gap: 4px; margin-left: auto; white-space: nowrap; }
.blog-card__avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--green-light);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green);
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
  object-fit: cover;
  overflow: hidden;
}
.blog-card__dot { width: 3px; height: 3px; border-radius: 50%; background: var(--text-3); }
.blog-preview__more { text-align: center; margin-top: var(--sp-10); }

/* Alias: blog-card--image simply uses same structure */
.blog-card--image .blog-card__img { height: 200px; }

/* ═══ 19. FOOTER ════════════════════════════════════ */
.footer { background: var(--surface-1); border-top: 1px solid var(--border-2); padding: 60px 0 0; }
[data-theme="dark"] .footer { background: var(--surface-1); }
.footer__grid { display: grid; grid-template-columns: 1fr; gap: var(--sp-10); margin-bottom: var(--sp-12); }
.footer__brand { max-width: 300px; }
.footer__brand-logo { display: flex; align-items: center; gap: var(--sp-2); font-size: 24px; font-weight: 900; letter-spacing: -0.04em; margin-bottom: var(--sp-3); }
.footer__desc { font-size: var(--text-sm); color: var(--text-2); line-height: var(--lh-normal); margin-bottom: var(--sp-4); }
.footer__social { display: flex; gap: var(--sp-2); }
.footer__social a { width: 36px; height: 36px; border-radius: var(--r-sm); border: 1px solid var(--border-1); display: flex; align-items: center; justify-content: center; color: var(--text-3); transition: all var(--t-fast); }
.footer__social a:hover { border-color: var(--green); color: var(--green); }
.footer__col h4 { font-size: var(--text-xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-3); margin-bottom: var(--sp-4); }
.footer__col a { display: block; font-size: var(--text-sm); color: var(--text-2); padding: var(--sp-1) 0; transition: color var(--t-fast); }
.footer__col a:hover { color: var(--green); }
.footer__bottom { border-top: 1px solid var(--border-2); padding: var(--sp-5) 0; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--sp-4); }
.footer__trust-badges { display: flex; flex-wrap: wrap; gap: var(--sp-4); }
.footer__trust-badge { display: flex; align-items: center; gap: var(--sp-1); font-size: 11px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.04em; }
.footer__copy { font-size: var(--text-xs); color: var(--text-3); }

/* ═══ 20. TOOL PAGE ══════════════════════════════════ */
.tool-page { padding: 40px 0 80px; }
.tool-page__header { margin-bottom: var(--sp-8); }
.tool-page__badges { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-bottom: var(--sp-3); }
.tool-page h1 { margin-bottom: var(--sp-3); }
.tool-page__desc { font-size: var(--text-md); color: var(--text-2); line-height: var(--lh-loose); margin-bottom: var(--sp-5); max-width: 680px; }
.tool-page__trust { display: flex; flex-wrap: wrap; gap: var(--sp-5); margin-bottom: var(--sp-4); }
.tool-page__trust-item { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--text-sm); color: var(--text-3); }
.tool-page__trust-item svg { color: var(--green); }
.tool-page__stats { display: flex; flex-wrap: wrap; gap: var(--sp-6); font-size: var(--text-sm); color: var(--text-3); }
.tool-page__stat strong { color: var(--text-1); font-family: var(--font-mono); }

/* ═══ 21. CALCULATOR WIDGETS ════════════════════════ */
.calculator-card { background: var(--bg); border: 1px solid var(--border-1); border-radius: var(--r-lg); box-shadow: var(--shadow-md); padding: var(--sp-8); margin-bottom: var(--sp-8); }
/* Strip calculator-card chrome when it wraps the Tailwind RTC (which has its own card UI) */
.calculator-card:has(> .rtc-app) { background: transparent; border: none; border-radius: 0; box-shadow: none; padding: 0; }
/* Cancel the -mt-8 hero-overlap trick — Cashluom tool page has no hero above the card */
.rtc-app #calculatorSection { margin-top: 0; }
.calculator-form { display: grid; gap: var(--sp-1); }
.calculator-results { margin-top: var(--sp-6); padding-top: var(--sp-6); border-top: 1px solid var(--border-2); }
.result-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); }
.result-card { background: var(--surface-1); border-radius: var(--r-md); padding: var(--sp-5); text-align: center; }
.result-label { display: block; font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-3); margin-bottom: var(--sp-2); }
.result-value { display: block; font-family: var(--font-mono); font-size: var(--text-2xl); font-weight: 700; color: var(--green); }
.result-grid-4 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
.calc-table { width: 100%; margin-top: var(--sp-6); }
.calc-table th { font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-3); text-align: left; padding: var(--sp-2) var(--sp-3); border-bottom: 2px solid var(--border-1); }
.calc-table td { font-size: var(--text-sm); padding: var(--sp-2) var(--sp-3); border-bottom: 1px solid var(--border-2); color: var(--text-2); font-family: var(--font-mono); }
.calc-table tr:hover td { background: var(--surface-1); }

/* How it works */
.how-it-works { padding: var(--sp-10) 0; }
.how-it-works h2 { margin-bottom: var(--sp-6); }
.how-steps { display: grid; grid-template-columns: 1fr; gap: var(--sp-5); margin-bottom: var(--sp-6); }
.how-step { display: flex; gap: var(--sp-4); }
.how-step__num { width: 36px; height: 36px; border-radius: 50%; background: var(--green); color: white; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: var(--text-sm); flex-shrink: 0; }
.how-step h4 { font-size: var(--text-md); font-weight: 600; margin-bottom: var(--sp-1); }
.how-step p { font-size: var(--text-sm); color: var(--text-2); line-height: var(--lh-normal); }
.formula-block { background: var(--surface-1); border: 1px solid var(--border-2); border-radius: var(--r-md); padding: var(--sp-5); font-family: var(--font-mono); font-size: var(--text-sm); color: var(--text-1); line-height: 1.8; overflow-x: auto; }

/* FAQ */
.faq-section { padding: var(--sp-10) 0; }
.faq-section h2 { margin-bottom: var(--sp-6); }
.faq-item { border: 1px solid var(--border-1); border-radius: var(--r-md); margin-bottom: var(--sp-3); overflow: hidden; }
.faq-item__question { width: 100%; text-align: left; padding: var(--sp-4) var(--sp-5); font-weight: 600; font-size: var(--text-base); color: var(--text-1); display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); cursor: pointer; background: var(--bg); transition: background var(--t-fast); }
.faq-item__question:hover { background: var(--surface-1); }
.faq-item__question svg { width: 18px; height: 18px; color: var(--text-3); transition: transform var(--t-normal); flex-shrink: 0; }
.faq-item.open .faq-item__question svg { transform: rotate(180deg); }
.faq-item__answer { max-height: 0; overflow: hidden; transition: max-height var(--t-normal); }
.faq-item.open .faq-item__answer { max-height: 600px; }
.faq-item__answer-inner { padding: 0 var(--sp-5) var(--sp-5); font-size: var(--text-sm); color: var(--text-2); line-height: var(--lh-loose); }

/* Related tools */
.related-tools { padding: var(--sp-10) 0; }
.related-tools h2 { margin-bottom: var(--sp-6); }

/* ═══ 22. BLOG LISTING PAGE ═════════════════════════ */
.blog-page { padding: 40px 0 80px; }
.blog-page__header { margin-bottom: var(--sp-8); }
.blog-page h1 { margin-bottom: var(--sp-2); }
.blog-page__sub { font-size: var(--text-md); color: var(--text-2); }

/* Featured hero post — side-by-side image + content on desktop */
.blog-hero-card {
  background: var(--surface-1);
  border: 1px solid var(--border-1);
  border-radius: 20px;
  overflow: hidden;
  margin-bottom: 40px;
  display: grid;
  grid-template-columns: 1fr;
  transition: box-shadow 0.25s ease, border-color 0.25s ease;
}
.blog-hero-card:hover { box-shadow: 0 16px 48px rgba(0,0,0,0.1); border-color: var(--green); }
[data-theme="dark"] .blog-hero-card:hover { box-shadow: 0 16px 48px rgba(0,0,0,0.4); }
.blog-hero-card__img {
  width: 100%;
  height: 260px;
  overflow: hidden;
  position: relative;
  background: linear-gradient(135deg, #1DB954, #16a349);
}
.blog-hero-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.blog-hero-card:hover .blog-hero-card__img img { transform: scale(1.03); }
.blog-hero-card__content { padding: 32px; display: flex; flex-direction: column; justify-content: center; }
.blog-hero-card .badge { margin-bottom: var(--sp-3); display: inline-block; }
.blog-hero-card h2 { font-size: clamp(22px, 3vw, 30px); font-weight: 800; margin-bottom: var(--sp-3); color: var(--text-1); line-height: 1.25; letter-spacing: -0.03em; }
.blog-hero-card p { font-size: var(--text-md); color: var(--text-2); line-height: var(--lh-loose); margin-bottom: var(--sp-5); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.blog-layout { display: grid; grid-template-columns: 1fr; gap: var(--sp-8); }

/* Filter tabs */
.filter-tabs { display: inline-flex; gap: var(--sp-1); overflow-x: auto; padding: 6px; margin-bottom: var(--sp-8); -webkit-overflow-scrolling: touch; border-radius: var(--r-pill); background: var(--surface-1); }
.filter-tab { padding: 8px 16px; border-radius: var(--r-pill); font-size: 11px; font-weight: 900; color: var(--text-2); background: transparent; transition: all var(--t-fast); white-space: nowrap; cursor: pointer; text-transform: uppercase; letter-spacing: 0.1em; border: none; }
.filter-tab:hover { color: var(--text-1); }
.filter-tab.active { background: var(--green); color: white; }

/* ═══ 23. BLOG POST PAGE ════════════════════════════ */
.post-page { padding: 40px 0 80px; }
.post-layout { display: grid; grid-template-columns: 1fr; gap: var(--sp-10); }
.post-header { margin-bottom: var(--sp-8); }
.post-header .badge { margin-bottom: var(--sp-3); }
.post-header__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); font-size: var(--text-sm); color: var(--text-3); margin-bottom: var(--sp-3); }
.post-header h1 { font-size: var(--text-4xl); font-weight: 800; margin-bottom: var(--sp-5); }
.post-author { display: flex; align-items: center; gap: var(--sp-3); margin-bottom: var(--sp-6); }
.post-author__avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--green-light); display: flex; align-items: center; justify-content: center; color: var(--green); font-weight: 700; }
.post-author__name { font-weight: 600; font-size: var(--text-sm); }
.post-author__date { font-size: var(--text-xs); color: var(--text-3); }
.share-buttons { display: flex; gap: var(--sp-2); }
.share-btn { width: 36px; height: 36px; border-radius: var(--r-sm); border: 1px solid var(--border-1); display: flex; align-items: center; justify-content: center; color: var(--text-3); transition: all var(--t-fast); }
.share-btn:hover { border-color: var(--green); color: var(--green); }
.featured-image-placeholder { width: 100%; height: 300px; background: var(--surface-1); border: 2px dashed var(--border-1); border-radius: var(--r-lg); display: flex; align-items: center; justify-content: center; color: var(--text-3); font-size: var(--text-sm); margin-bottom: var(--sp-8); }

/* Article content typography */
.article-body { font-size: var(--text-md); line-height: var(--lh-loose); color: var(--text-1); }
.article-body h2 { font-size: var(--text-2xl); font-weight: 700; margin-top: 40px; margin-bottom: var(--sp-4); }
.article-body h3 { font-size: var(--text-xl); font-weight: 600; margin-top: 28px; margin-bottom: var(--sp-3); }
.article-body p { margin-bottom: var(--sp-5); }
.article-body ul, .article-body ol { margin-bottom: var(--sp-5); padding-left: var(--sp-6); }
.article-body li { margin-bottom: var(--sp-2); }
.article-body ul li::marker { color: var(--green); }
.article-body blockquote { border-left: 3px solid var(--green); padding-left: var(--sp-5); margin: var(--sp-6) 0; font-style: italic; color: var(--text-2); }
.article-body pre, .article-body code { font-family: var(--font-mono); }
.article-body pre { background: var(--surface-1); border-radius: var(--r-sm); padding: var(--sp-4); overflow-x: auto; margin-bottom: var(--sp-5); font-size: var(--text-sm); }
.article-body code { background: var(--surface-1); padding: 2px 6px; border-radius: 4px; font-size: 0.9em; }
.article-body a { color: var(--green); text-decoration: underline; text-underline-offset: 2px; }
.article-body img { border-radius: var(--r-md); margin: var(--sp-5) 0; }
.article-cta { background: var(--green); border-radius: var(--r-lg); padding: var(--sp-6); margin: var(--sp-8) 0; color: white; }
.article-cta h3 { color: white; margin-bottom: var(--sp-2); }
.article-cta p { color: rgba(255,255,255,0.9); margin-bottom: var(--sp-4); font-size: var(--text-sm); }
.article-cta .btn { background: white; color: var(--green); border-color: white; }

/* Author box */
.author-box { display: flex; gap: var(--sp-4); background: var(--surface-1); border: 1px solid var(--border-1); border-radius: var(--r-lg); padding: var(--sp-6); margin-top: var(--sp-10); }
.author-box__avatar { width: 64px; height: 64px; border-radius: 50%; background: var(--green-light); display: flex; align-items: center; justify-content: center; color: var(--green); font-size: 24px; font-weight: 700; flex-shrink: 0; }
.author-box__name { font-weight: 700; font-size: var(--text-lg); margin-bottom: var(--sp-1); }
.author-box__bio { font-size: var(--text-sm); color: var(--text-2); line-height: var(--lh-normal); }
.comments-section { margin-top: var(--sp-10); padding: var(--sp-8); background: var(--surface-1); border-radius: var(--r-lg); text-align: center; color: var(--text-3); }

/* ═══ 24. BREADCRUMB ════════════════════════════════ */
.breadcrumb { margin-bottom: var(--sp-5); }
.breadcrumb__list { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-1); }
.breadcrumb__item { font-size: var(--text-sm); color: var(--text-3); }
.breadcrumb__item a { color: var(--text-2); transition: color var(--t-fast); }
.breadcrumb__item a:hover { color: var(--green); }
.breadcrumb__item--active { color: var(--text-1); font-weight: 500; }
.breadcrumb__sep { margin: 0 var(--sp-1); color: var(--text-3); }

/* ═══ 25. PAGINATION ════════════════════════════════ */
.pagination { display: flex; justify-content: center; align-items: center; gap: var(--sp-2); margin-top: var(--sp-10); }
.pagination__btn { min-width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: var(--r-md); font-size: var(--text-sm); font-weight: 500; color: var(--text-2); border: 1px solid var(--border-1); transition: all var(--t-fast); }
.pagination__btn:hover { border-color: var(--green); color: var(--green); }
.pagination__btn.active { background: var(--green); color: white; border-color: var(--green); }
.pagination__btn--nav { padding: 0 var(--sp-3); }

/* ═══ 26. SIDEBAR ════════════════════════════════════ */
.sidebar { display: flex; flex-direction: column; gap: var(--sp-6); }
.sidebar__widget { background: var(--bg); border: 1px solid var(--border-1); border-radius: var(--r-lg); padding: var(--sp-5); }
.sidebar__widget h4 { font-size: var(--text-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-3); margin-bottom: var(--sp-4); }
.sidebar-tool { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-2) 0; border-bottom: 1px solid var(--border-2); }
.sidebar-tool:last-child { border-bottom: none; }
.sidebar-tool__icon { width: 32px; height: 32px; border-radius: var(--r-sm); background: var(--green-light); display: flex; align-items: center; justify-content: center; font-size: 14px; flex-shrink: 0; }
.sidebar-tool__name { font-size: var(--text-sm); font-weight: 500; color: var(--text-1); }
.sidebar-tool__name:hover { color: var(--green); }
/* Table of contents — sidebar (static, does not follow scroll) */
.sidebar__widget.toc { position: static; }
.toc__list { list-style: none; }
.toc__list li { margin-bottom: var(--sp-2); }
.toc__list a { font-size: var(--text-sm); color: var(--text-2); display: block; padding: var(--sp-1) 0 var(--sp-1) var(--sp-3); border-left: 2px solid var(--border-2); transition: all var(--t-fast); }
.toc__list a:hover, .toc__list a.active { color: var(--green); border-color: var(--green); }
.toc__list .toc-h3 { padding-left: var(--sp-6); font-size: var(--text-xs); }
/* Table of contents — inline article "In this guide" box (not sticky) */
.article-body .toc { position: static; background: var(--surface-1); border: 1px solid var(--border-1); border-radius: var(--r-lg); padding: var(--sp-5); margin-bottom: var(--sp-6); max-height: none; overflow: visible; }

/* AI Guide sidebar card */
.sidebar-ai-card { background: linear-gradient(135deg, var(--green-light) 0%, var(--bg) 100%); border-color: var(--green) !important; }
.sidebar-ai-card__icon { font-size: 1.8rem; margin-bottom: var(--sp-3); }
.sidebar-ai-card h4 { color: var(--text-1); }
/* People Also Read sidebar cards */
.sidebar-read-card { display: flex; gap: var(--sp-3); align-items: center; padding: var(--sp-3) 0; border-bottom: 1px solid var(--border-2); text-decoration: none; transition: opacity var(--t-fast); }
.sidebar-read-card:last-child { border-bottom: none; padding-bottom: 0; }
.sidebar-read-card:hover { opacity: 0.8; }
.sidebar-read-card__img { width: 64px; height: 64px; object-fit: cover; border-radius: var(--r-sm); flex-shrink: 0; background: var(--surface-2); }
.sidebar-read-card__body { display: flex; flex-direction: column; gap: var(--sp-1); min-width: 0; }
.sidebar-read-card__title { font-size: var(--text-sm); font-weight: 600; color: var(--text-1); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sidebar-read-card__meta { font-size: var(--text-xs); color: var(--text-3); }

/* ═══ 27. ADSENSE SLOTS ══════════════════════════════ */
/* TO ENABLE ADS: change display:none → display:flex and paste AdSense ad-unit code inside each .ad-slot div */
/* Ad slots are hidden until AdSense approval is received. HTML placeholders remain for easy activation. */
.ad-slot { display: none; min-height: 90px; background: var(--surface-1); border: 1px dashed var(--border-1); border-radius: var(--r-md); align-items: center; justify-content: center; margin: var(--sp-6) 0; }
.ad-slot__label { font-size: 11px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.05em; }
.ad-slot--banner { min-height: 90px; }
.ad-slot--sidebar { min-height: 250px; }

/* ═══ 27b. TOOL EDITORIAL SECTION ═══════════════════ */
/* Rich content section for SEO/AdSense quality signals: What Is + When To Use + Key Facts + Related Blog */
.tool-editorial { margin-top: var(--sp-8); }
.tool-editorial__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-6);
}
@media (min-width: 1024px) {
  .tool-editorial__grid { grid-template-columns: 3fr 2fr; gap: var(--sp-8); }
}
.tool-editorial__heading {
  font-size: var(--text-2xl);
  font-weight: 800;
  color: var(--text-1);
  margin-bottom: var(--sp-4);
  line-height: var(--lh-tight);
}
.tool-editorial__subheading {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--text-1);
  margin-top: var(--sp-6);
  margin-bottom: var(--sp-3);
}
.tool-editorial__body {
  font-size: var(--text-base);
  line-height: var(--lh-relaxed);
  color: var(--text-2);
}
.tool-editorial__body strong { color: var(--text-1); }
.tool-editorial__body em { font-style: italic; }
.tool-editorial__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}
.tool-editorial__list li {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  font-size: var(--text-sm);
  color: var(--text-2);
  line-height: var(--lh-snug);
}
.tool-editorial__list li svg {
  color: var(--green);
  flex-shrink: 0;
  margin-top: 2px;
}

/* Sidebar cards */
.tool-editorial__sidebar { display: flex; flex-direction: column; gap: var(--sp-4); }
.tool-editorial__facts-card {
  background: var(--surface-1);
  border: 1px solid var(--border-1);
  border-radius: var(--r-lg);
  padding: var(--sp-5);
  box-shadow: var(--shadow-sm);
}
.tool-editorial__facts-title {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  font-size: var(--text-xs);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-3);
  margin-bottom: var(--sp-4);
}
.tool-editorial__facts-title svg { color: var(--green); }
.tool-editorial__fact-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--sp-2) 0;
  border-bottom: 1px solid var(--border-1);
  gap: var(--sp-3);
}
.tool-editorial__fact-row:last-of-type { border-bottom: none; }
.tool-editorial__fact-label { font-size: var(--text-xs); color: var(--text-2); font-weight: 500; }
.tool-editorial__fact-value { font-size: var(--text-sm); font-weight: 700; color: var(--text-1); text-align: right; }
.tool-editorial__disclaimer {
  font-size: 10px;
  color: var(--text-3);
  margin-top: var(--sp-4);
  line-height: 1.4;
}

/* Related blog post link card */
.tool-editorial__blog-link {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  padding: var(--sp-4);
  background: var(--bg);
  border: 1px solid var(--border-1);
  border-radius: var(--r-lg);
  text-decoration: none;
  box-shadow: var(--shadow-sm);
  transition: all var(--t-fast);
}
.tool-editorial__blog-link:hover {
  border-color: var(--green-light);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.tool-editorial__blog-icon {
  width: 40px;
  height: 40px;
  background: var(--green-xlight);
  border-radius: var(--r-md);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--green);
}
.tool-editorial__blog-eyebrow {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--green);
  margin-bottom: 2px;
}
.tool-editorial__blog-title {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--text-1);
  line-height: 1.4;
  margin-bottom: var(--sp-1);
}
.tool-editorial__blog-meta {
  font-size: var(--text-xs);
  color: var(--text-3);
  font-weight: 500;
}


/* ═══ 28. ANIMATIONS & TRANSITIONS ══════════════════ */
@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes scaleIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }
@keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }

/* ═══ 29. SCROLL ANIMATIONS ═════════════════════════ */
/* Elements start visible — JS adds the pre-animation state after load
   so content is ALWAYS usable even if JS is slow or blocked */
.fade-up { transition: opacity 0.6s ease, transform 0.6s ease; }
.fade-in { transition: opacity 0.6s ease; }
.scale-in { transition: opacity 0.6s ease, transform 0.6s ease; }
/* Pre-animation state — only applied when JS is loaded via .js-animations class on body */
body.js-animations .fade-up { opacity: 0; transform: translateY(20px); }
body.js-animations .fade-in { opacity: 0; }
body.js-animations .scale-in { opacity: 0; transform: scale(0.95); }
/* Animate-in state (applied by IntersectionObserver) — must override the pre-state above */
body.js-animations .fade-up.animate-in { opacity: 1; transform: translateY(0); }
body.js-animations .fade-in.animate-in { opacity: 1; }
body.js-animations .scale-in.animate-in { opacity: 1; transform: scale(1); }
/* Also cover non-js-animations context */
.fade-up.animate-in { opacity: 1; transform: translateY(0); }
.fade-in.animate-in { opacity: 1; }
.scale-in.animate-in { opacity: 1; transform: scale(1); }

/* ═══ 30. UTILITIES ══════════════════════════════════ */
.mb-1 { margin-bottom: var(--sp-1); } .mb-2 { margin-bottom: var(--sp-2); } .mb-3 { margin-bottom: var(--sp-3); }
.mb-4 { margin-bottom: var(--sp-4); } .mb-5 { margin-bottom: var(--sp-5); } .mb-6 { margin-bottom: var(--sp-6); }
.mb-8 { margin-bottom: var(--sp-8); } .mb-10 { margin-bottom: var(--sp-10); }
.mt-4 { margin-top: var(--sp-4); } .mt-6 { margin-top: var(--sp-6); } .mt-8 { margin-top: var(--sp-8); }
.gap-2 { gap: var(--sp-2); } .gap-3 { gap: var(--sp-3); } .gap-4 { gap: var(--sp-4); }
.hidden { display: none; }
.icon { width: 18px; height: 18px; display: inline-block; vertical-align: middle; }
.icon-moon, .icon-sun { width: 18px; height: 18px; }

/* About page */
.about-section { padding: 60px 0; }
.about-values { display: grid; grid-template-columns: 1fr; gap: var(--sp-6); margin-top: var(--sp-8); }
.about-value { text-align: center; padding: var(--sp-6); background: var(--surface-1); border-radius: var(--r-lg); border: 1px solid var(--border-2); }
.about-value__icon { width: 56px; height: 56px; border-radius: 50%; background: var(--green-light); display: flex; align-items: center; justify-content: center; font-size: 24px; margin: 0 auto var(--sp-4); }

/* Contact page */
.contact-section { padding: 60px 0; }
.contact-grid { display: grid; grid-template-columns: 1fr; gap: var(--sp-10); }
.contact-info { padding: var(--sp-6); background: var(--surface-1); border-radius: var(--r-lg); border: 1px solid var(--border-2); }
.contact-info h3 { margin-bottom: var(--sp-4); }
.contact-info p { font-size: var(--text-sm); color: var(--text-2); line-height: var(--lh-loose); margin-bottom: var(--sp-3); }

/* Legal pages */
.legal-page { padding: 60px 0; max-width: 800px; margin: 0 auto; }
.legal-page h1 { margin-bottom: var(--sp-2); }
.legal-page .legal-updated { font-size: var(--text-sm); color: var(--text-3); margin-bottom: var(--sp-8); }
.legal-page h2 { font-size: var(--text-xl); margin-top: var(--sp-8); margin-bottom: var(--sp-3); }
.legal-page h3 { font-size: var(--text-md); margin-top: var(--sp-5); margin-bottom: var(--sp-2); }
.legal-page p { color: var(--text-2); line-height: var(--lh-loose); margin-bottom: var(--sp-4); }
.legal-page ul { padding-left: var(--sp-6); margin-bottom: var(--sp-4); }
.legal-page li { color: var(--text-2); line-height: var(--lh-loose); margin-bottom: var(--sp-2); }
.legal-page li::marker { color: var(--green); }

/* 404 page */
.error-page { padding: 100px 0; text-align: center; }
.error-page__code { font-family: var(--font-mono); font-size: clamp(80px, 15vw, 160px); font-weight: 800; color: var(--green); line-height: 1; margin-bottom: var(--sp-3); }
.error-page h1 { font-size: var(--text-3xl); margin-bottom: var(--sp-3); }
.error-page p { color: var(--text-2); margin-bottom: var(--sp-6); max-width: 480px; margin-left: auto; margin-right: auto; }
.error-page__links { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--sp-3); margin-top: var(--sp-6); margin-bottom: var(--sp-10); }
.error-page__tools { margin-top: var(--sp-10); }
.error-page__tools h3 { margin-bottom: var(--sp-5); }

/* Search bar */
.search-bar { position: relative; margin-bottom: var(--sp-6); }
.search-bar__icon { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--text-3); pointer-events: none; }
.search-bar__input { width: 100%; height: 50px; padding: 0 var(--sp-4) 0 48px; font-size: var(--text-base); background: var(--bg); border: 1px solid var(--border-1); border-radius: var(--r-md); color: var(--text-1); transition: border-color var(--t-fast); }
.search-bar__input:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(29,185,84,0.12); }

/* ═══ 31. MOBILE (< 768px) ═══════════════════════════ */
@media (max-width: 767px) {
  .container { padding: 0 16px; }
  .section { padding: 50px 0; }
  .hero { padding: 60px 0 40px; }
  .hero h1 { font-size: clamp(32px, 8vw, 42px); }
  .stats-bar__inner { gap: 20px; }
  .stats-bar__number { font-size: 22px; }
  .newsletter__card { padding: 24px; }
  .blog-hero-card__content { padding: 20px; }
  .blog-hero-card__img { height: 200px; }
  .blog-card__img { height: 180px; }
  .blog-card__body { padding: 16px 18px 18px; }
  .blog-card__title { font-size: 15px; }
  .author-box { flex-direction: column; align-items: center; text-align: center; }
  .post-header h1 { font-size: clamp(26px, 6vw, 36px); }
  .result-grid { grid-template-columns: 1fr; }
  .result-grid-4 { grid-template-columns: 1fr; }
}

/* ═══ 32. TABLET (768px – 1023px) ═══════════════════ */
@media (min-width: 768px) {
  .container { padding: 0 32px; }
  .navbar { height: 64px; }
  .navbar__nav { display: flex; }
  .navbar__cta { display: inline-flex; }
  .navbar__separator { display: block; }
  .navbar__hamburger { display: none; }
  .navbar__mobile-drawer { display: none; }
  .grid-2 { grid-template-columns: 1fr 1fr; }
  .grid-3 { grid-template-columns: 1fr 1fr; }
  .tools-grid { grid-template-columns: 1fr 1fr; }
  .blog-grid { grid-template-columns: 1fr 1fr; }
  .blog-hero-card { grid-template-columns: 1fr 1fr; }
  .blog-hero-card__img { height: auto; min-height: 280px; }
  .trust__grid { grid-template-columns: repeat(3, 1fr); }
  .feature-bar__grid { grid-template-columns: repeat(4, 1fr); }
  .about-values { grid-template-columns: repeat(3, 1fr); }
  .contact-grid { grid-template-columns: 3fr 2fr; }
  .how-steps { grid-template-columns: repeat(3, 1fr); }
  .result-grid-4 { grid-template-columns: repeat(4, 1fr); }
  .footer__grid { grid-template-columns: 2fr 1fr 1fr 1fr; }
  .tools-section__header { flex-direction: row; align-items: flex-start; justify-content: space-between; }
}

.sidebar { display: none; }

/* ═══ 33. DESKTOP (≥ 1024px) ════════════════════════ */
@media (min-width: 1024px) {
  .container { padding: 0 40px; }
  .hero__grid { grid-template-columns: 1.1fr 1fr; }
  .hero { padding: 100px 0 80px; }
  .grid-3 { grid-template-columns: repeat(3, 1fr); }
  .tools-grid { grid-template-columns: repeat(3, 1fr); }
  .blog-grid { grid-template-columns: repeat(3, 1fr); }
  .newsletter__grid { grid-template-columns: 1fr 1fr; }
  .blog-layout { grid-template-columns: 1fr 320px; }
  .post-layout { grid-template-columns: 1fr 300px; }
  .grid-4 { grid-template-columns: repeat(4, 1fr); }
  .stats-bar__inner { gap: 60px; }
  .stats-bar__number { font-size: 32px; }
  .blog-card--image .blog-card__img { height: 210px; }
  .blog-hero-card { grid-template-columns: 1.2fr 1fr; }
  .blog-hero-card__img { height: auto; min-height: 320px; }
  .sidebar { display: flex; flex-direction: column; gap: 24px; }
}

/* ═══ 34. PRINT STYLES ═══════════════════════════════ */
@media print {
  .navbar, .footer, .ad-slot, .newsletter, .stats-bar, .navbar__mobile-drawer, .navbar__overlay { display: none; }
  body { background: white; color: black; font-size: 12pt; }
  .container { max-width: 100%; padding: 0; }
  a { text-decoration: underline; }
  .card, .tool-card, .blog-card { border: 1px solid #ccc; box-shadow: none; }
}

/* ═══ 35. ACCESSIBILITY ══════════════════════════════ */
:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.btn:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; box-shadow: 0 0 0 4px rgba(29,185,84,0.2); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  .fade-up, .fade-in, .scale-in { opacity: 1; transform: none; }
}
@media (prefers-contrast: high) {
  :root { --border-1: #000; --text-2: #333; }
}
/* ═══ 36. BLOG OPTIMIZATION STYLES ══════════════════ */
.article-body .toc { background: var(--surface-2); padding: var(--sp-5); border-radius: var(--r-md); margin: var(--sp-6) 0; }
.article-body .toc strong { display: block; font-size: var(--text-md); margin-bottom: var(--sp-3); color: var(--text-1); }
.article-body .toc ul { list-style: none; padding: 0; margin: 0; }
.article-body .toc ul li { margin-bottom: var(--sp-2); }
.article-body .toc ul li a { color: var(--green); font-weight: 500; text-decoration: none; transition: color var(--t-fast); }
.article-body .toc ul li a:hover { text-decoration: underline; color: var(--green-dark); }

.callout { padding: var(--sp-5); border-radius: var(--r-md); margin: var(--sp-6) 0; border-left: 4px solid; color: var(--text-1); }
.callout strong { display: block; margin-bottom: var(--sp-1);font-size: var(--text-md); }
.callout p { margin: 0; }
.callout--green { background: var(--green-light); border-left-color: var(--green); }
.callout--blue { background: rgba(9, 105, 218, 0.1); border-left-color: var(--info); }

.article-body .faq { margin: var(--sp-6) 0; }
.article-body .faq details { background: var(--surface-1); padding: var(--sp-4); border-radius: var(--r-md); margin-bottom: var(--sp-3); cursor: pointer; border: 1px solid var(--border-1); transition: background var(--t-fast); }
.article-body .faq details:hover { background: var(--surface-2); }
.article-body .faq summary { font-weight: 700; color: var(--text-1); outline: none; margin: 0; }
.article-body .faq p { margin-top: var(--sp-3); margin-bottom: 0; color: var(--text-2); }
