/* ===== RESET & BASE ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,sans-serif;font-size:1rem;line-height:1.6;color:#1a1a2e;background:#fff}
img{max-width:100%;height:auto;display:block}
a{color:#2563eb;text-decoration:none}
a:hover{text-decoration:underline}
ul,ol{list-style:none}
table{border-collapse:collapse;width:100%}

/* ===== ACCESSIBILITY ===== */
.skip-to-content{position:absolute;left:-9999px;top:0;padding:.5rem 1rem;background:#2563eb;color:#fff;z-index:9999;font-weight:600}
.skip-to-content:focus{left:0}
:focus-visible{outline:3px solid #2563eb;outline-offset:2px}

/* ===== LAYOUT ===== */
.container{max-width:1200px;margin:0 auto;padding:0 1.25rem}
.container--narrow{max-width:800px}
.section{padding:3rem 0}
.section--alt{background:#f8fafc}
.section--center{text-align:center}
.text-center{text-align:center}

/* ===== TYPOGRAPHY ===== */
h1{font-size:2.25rem;font-weight:800;line-height:1.2;margin-bottom:1rem;color:#0f172a}
h2{font-size:1.75rem;font-weight:700;line-height:1.3;margin:2rem 0 1rem;color:#0f172a}
h3{font-size:1.25rem;font-weight:600;line-height:1.4;margin:1.5rem 0 .75rem;color:#1e293b}
p{margin-bottom:1rem}
.page-intro{font-size:1.125rem;color:#475569;max-width:720px;margin-bottom:2rem}
.hero-subtitle{font-size:1.25rem;color:#475569;max-width:640px;margin-bottom:2rem}

/* ===== HEADER ===== */
.site-header{background:#0f172a;color:#fff;padding:.75rem 0;position:sticky;top:0;z-index:100}
.site-header .container{display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:.5rem;color:#fff;font-weight:700;font-size:1.125rem;text-decoration:none}
.logo:hover{text-decoration:none;color:#e2e8f0}
.logo-icon{font-size:1.5rem}
.nav-list{display:flex;gap:1.5rem;list-style:none}
.nav-list a{color:#cbd5e1;font-size:.9375rem;font-weight:500;text-decoration:none;padding:.25rem 0;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}
.nav-list a:hover,.nav-list a[aria-current="page"]{color:#fff;border-bottom-color:#3b82f6;text-decoration:none}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem}
.hamburger,.hamburger::before,.hamburger::after{display:block;width:24px;height:2px;background:#fff;transition:transform .2s}
.hamburger{position:relative}
.hamburger::before,.hamburger::after{content:'';position:absolute;left:0}
.hamburger::before{top:-7px}
.hamburger::after{top:7px}

/* ===== HERO ===== */
.hero{background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 100%);color:#fff;padding:3rem 0 4rem;text-align:center}
.hero h1{color:#fff;font-size:2.5rem}
.hero .hero-subtitle{margin-left:auto;margin-right:auto;color:#94a3b8}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:.625rem 1.5rem;border-radius:.5rem;font-weight:600;font-size:.9375rem;border:2px solid transparent;cursor:pointer;transition:background .15s,color .15s,border-color .15s;text-decoration:none;line-height:1.4}
.btn:hover{text-decoration:none}
.btn-primary{background:#2563eb;color:#fff;border-color:#2563eb}
.btn-primary:hover{background:#1d4ed8;border-color:#1d4ed8}
.btn-outline{background:transparent;color:#2563eb;border-color:#2563eb}
.btn-outline:hover{background:#2563eb;color:#fff}
.btn-lg{padding:.75rem 2rem;font-size:1.0625rem}
.btn-sm{padding:.375rem 1rem;font-size:.8125rem}
.link-arrow{font-weight:600;display:inline-flex;align-items:center;gap:.25rem}
.link-arrow::after{content:'→'}

/* ===== CALCULATOR CARD ===== */
.calculator-card{background:#fff;border-radius:1rem;padding:2rem;box-shadow:0 4px 24px rgba(0,0,0,.12);max-width:720px;margin:2rem auto 0;text-align:left}
.calc-form{display:flex;flex-direction:column;gap:1.25rem}
.calc-row{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.calc-field label{display:block;font-weight:600;font-size:.875rem;color:#334155;margin-bottom:.375rem}
.calc-field select,.calc-field input{width:100%;padding:.625rem .75rem;border:1.5px solid #cbd5e1;border-radius:.5rem;font-size:1rem;background:#fff;color:#1a1a2e;transition:border-color .15s}
.calc-field select:focus,.calc-field input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.15)}
.calc-checkboxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem}
.calc-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.375rem .5rem;border-radius:.375rem;transition:background .15s}
.calc-checkbox:hover{background:#f1f5f9}
.calc-checkbox input[type="checkbox"]{width:18px;height:18px;accent-color:#2563eb;cursor:pointer}
.calc-form .btn{margin-top:.5rem;align-self:center}

/* Calculator Results */
.calc-results{margin-top:1.5rem;padding:1.5rem;background:#f0fdf4;border-radius:.75rem;border:1.5px solid #86efac}
.calc-results h3{margin-top:0;color:#166534}
.calc-results .result-total{font-size:2rem;font-weight:800;color:#15803d;margin:.5rem 0}
.calc-results .result-breakdown{margin-top:1rem}
.result-item{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid #dcfce7}
.result-item:last-child{border-bottom:none}
.result-item .label{color:#334155}
.result-item .amount{font-weight:700;color:#166534}
.result-item .amount--na{color:#94a3b8;font-weight:400}
.result-cta{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #86efac}

/* ===== INFO GRID ===== */
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-top:1.5rem}
.info-card{background:#fff;border-radius:.75rem;padding:1.5rem;border:1.5px solid #e2e8f0;transition:box-shadow .15s}
.info-card:hover{box-shadow:0 2px 12px rgba(0,0,0,.06)}
.info-card h3{margin-top:0;font-size:1.125rem}
.info-card--expired{border-color:#fca5a5;background:#fef2f2}
.info-card--expired h3{color:#991b1b}
.info-card--active{border-color:#86efac;background:#f0fdf4}
.info-card--active h3{color:#166534}

/* ===== STATE GRID ===== */
.state-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin-top:1.5rem}
.state-grid--full{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.state-card{display:flex;flex-direction:column;align-items:center;padding:1rem .75rem;background:#fff;border:1.5px solid #e2e8f0;border-radius:.5rem;text-decoration:none;color:#1e293b;transition:border-color .15s,box-shadow .15s}
.state-card:hover{border-color:#3b82f6;box-shadow:0 2px 8px rgba(37,99,235,.12);text-decoration:none}
.state-card--sm{padding:.75rem .5rem}
.state-abbr{font-size:1.5rem;font-weight:800;color:#2563eb;line-height:1}
.state-name{font-size:.8125rem;color:#64748b;margin-top:.25rem}
.state-badge{font-size:.6875rem;font-weight:600;color:#166534;background:#dcfce7;padding:.125rem .5rem;border-radius:1rem;margin-top:.375rem}
.state-status{font-size:.6875rem;color:#64748b;margin-top:.25rem}

/* ===== CALC TYPE GRID ===== */
.calc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem;margin-top:1.5rem}
.calc-type-card{display:flex;flex-direction:column;padding:1.5rem;background:#fff;border:1.5px solid #e2e8f0;border-radius:.75rem;text-decoration:none;color:#1e293b;transition:border-color .15s,box-shadow .15s}
.calc-type-card:hover{border-color:#3b82f6;box-shadow:0 2px 12px rgba(37,99,235,.1);text-decoration:none}
.calc-type-icon{font-size:2rem;margin-bottom:.5rem}
.calc-type-card h3{font-size:1.0625rem;margin:0 0 .25rem;color:#0f172a}
.calc-type-card p{font-size:.875rem;color:#64748b;margin:0}

/* ===== PROGRAM CARDS ===== */
.program-card{background:#fff;border:1.5px solid #e2e8f0;border-radius:.75rem;padding:2rem;margin:1.5rem 0}
.program-card h2{margin-top:0}
.program-status{display:inline-block;padding:.25rem .75rem;border-radius:1rem;font-size:.8125rem;font-weight:600;margin-bottom:1rem}
.status-open{background:#dcfce7;color:#166534}
.status-pending{background:#fef3c7;color:#92400e}
.status-returned{background:#fee2e2;color:#991b1b}
.sub-program{padding:1rem 0;border-bottom:1px solid #f1f5f9}
.sub-program:last-child{border-bottom:none}

/* ===== STATS ROW ===== */
.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin:1.5rem 0}
.stat-card{text-align:center;padding:1.25rem 1rem;background:#f8fafc;border-radius:.5rem;border:1px solid #e2e8f0}
.stat-value{display:block;font-size:1.5rem;font-weight:800;color:#2563eb}
.stat-label{font-size:.8125rem;color:#64748b;margin-top:.25rem}

/* ===== TABLES ===== */
.rebate-table-wrap{overflow-x:auto;margin:1rem 0}
.rebate-table{width:100%;border:1px solid #e2e8f0;border-radius:.5rem;overflow:hidden}
.rebate-table th,.rebate-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #f1f5f9}
.rebate-table thead{background:#f8fafc}
.rebate-table th{font-weight:600;font-size:.875rem;color:#334155}
.rebate-table td{font-size:.9375rem}
.rebate-table tbody tr:hover{background:#f8fafc}

/* ===== UTILITY GRID ===== */
.utility-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin:1rem 0}
.utility-card{padding:1.25rem;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:.5rem;text-decoration:none;color:#1e293b;transition:border-color .15s}
.utility-card:hover{border-color:#3b82f6;text-decoration:none}
.utility-card h3{font-size:1rem;margin:0 0 .25rem;color:#0f172a}
.utility-card p{font-size:.8125rem;color:#64748b;margin:0}

/* ===== ARTICLE / GUIDE CONTENT ===== */
.article-content h2{margin-top:2.5rem}
.article-content p{color:#334155}
.article-content ul,.article-content ol{margin:1rem 0 1rem 1.5rem}
.article-content li{margin-bottom:.5rem;color:#334155}
.article-content ul{list-style:disc}
.article-content ol{list-style:decimal}
.article-meta{font-size:.875rem;color:#64748b;margin-bottom:1.5rem}

/* TOC */
.toc{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;padding:1.25rem 1.5rem;margin:1.5rem 0}
.toc h2{font-size:1rem;margin:0 0 .75rem;color:#334155}
.toc ol{list-style:decimal;margin:0 0 0 1.25rem}
.toc li{margin-bottom:.375rem}
.toc a{font-size:.9375rem}

/* ===== BLOG ===== */
.blog-grid{display:grid;gap:1.5rem;margin-top:1.5rem}
.blog-card{padding:1.5rem;background:#fff;border:1.5px solid #e2e8f0;border-radius:.75rem}
.blog-card h2{font-size:1.25rem;margin:0 0 .25rem}
.blog-card h2 a{color:#0f172a}
.blog-card h2 a:hover{color:#2563eb}
.blog-date{font-size:.8125rem;color:#64748b;margin-bottom:.5rem}

/* ===== FAQ ===== */
.faq-section{padding:3rem 0;max-width:800px;margin:0 auto}
.faq-section h2{text-align:center;margin-bottom:1.5rem}
.faq-item{border:1.5px solid #e2e8f0;border-radius:.5rem;margin-bottom:.75rem;overflow:hidden}
.faq-item summary{padding:1rem 1.25rem;font-weight:600;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;transition:background .15s}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';font-size:1.25rem;color:#64748b;font-weight:400;flex-shrink:0;margin-left:1rem}
.faq-item[open] summary::after{content:'−'}
.faq-item summary:hover{background:#f8fafc}
.faq-answer{padding:0 1.25rem 1.25rem;color:#475569}
.faq-answer p{margin-bottom:0}

/* ===== BREADCRUMB ===== */
.breadcrumb{padding:.75rem 0;font-size:.8125rem}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:.25rem;list-style:none}
.breadcrumb li{display:flex;align-items:center}
.breadcrumb li+li::before{content:'/';margin-right:.25rem;color:#94a3b8}
.breadcrumb a{color:#64748b}
.breadcrumb a:hover{color:#2563eb}
.breadcrumb [aria-current="page"]{color:#334155;font-weight:500}

/* ===== FOOTER ===== */
.site-footer{background:#0f172a;color:#cbd5e1;padding:3rem 0 1.5rem}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;margin-bottom:2rem}
.footer-col h3{color:#fff;font-size:1rem;margin-bottom:.75rem}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:.375rem}
.footer-col a{color:#94a3b8;font-size:.875rem;text-decoration:none}
.footer-col a:hover{color:#fff;text-decoration:none}
.footer-col p{font-size:.875rem;color:#94a3b8}
.footer-bottom{border-top:1px solid #1e293b;padding-top:1.5rem;text-align:center}
.footer-legal{margin-bottom:.75rem}
.footer-legal a{color:#94a3b8;font-size:.8125rem;margin:0 .75rem;text-decoration:none}
.footer-legal a:hover{color:#fff}
.footer-cross-site{margin-bottom:.75rem;font-size:.8125rem}
.footer-cross-site span{color:#64748b;margin-right:.5rem}
.footer-cross-site a{color:#94a3b8;margin:0 .5rem}
.footer-cross-site a:hover{color:#fff}
.footer-copy{font-size:.75rem;color:#64748b;margin:0}

/* ===== COOKIE BANNER ===== */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:#1e293b;color:#e2e8f0;z-index:1000;box-shadow:0 -4px 12px rgba(0,0,0,.2)}
.cookie-inner{max-width:1200px;margin:0 auto;padding:1rem 1.25rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.cookie-inner p{flex:1;font-size:.875rem;margin:0;min-width:200px}
.cookie-buttons{display:flex;gap:.5rem}
.cookie-link{font-size:.75rem;color:#94a3b8}

/* ===== ERROR PAGES ===== */
.error-actions{display:flex;gap:1rem;justify-content:center;margin:2rem 0}
.link-list{list-style:none;max-width:400px;margin:1rem auto}
.link-list li{padding:.5rem 0;border-bottom:1px solid #f1f5f9}
.link-list a{font-weight:500}

/* ===== RESPONSIVE ===== */
@media(max-width:768px){
  h1{font-size:1.75rem}
  h2{font-size:1.375rem}
  .hero h1{font-size:1.875rem}
  .hero{padding:2rem 0 3rem}
  .calc-row{grid-template-columns:1fr}
  .calc-checkboxes{grid-template-columns:1fr 1fr}
  .info-grid{grid-template-columns:1fr}
  .state-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}
  .stats-row{grid-template-columns:1fr 1fr}
  .nav-toggle{display:block}
  .nav-list{display:none;position:absolute;top:100%;left:0;right:0;background:#0f172a;flex-direction:column;padding:1rem 1.25rem;gap:.75rem;border-top:1px solid #1e293b}
  .nav-list.open{display:flex}
  .calculator-card{padding:1.25rem}
  .program-card{padding:1.25rem}
  .cookie-inner{flex-direction:column;text-align:center}
  .footer-grid{grid-template-columns:1fr 1fr}
  .error-actions{flex-direction:column;align-items:center}
}

@media(max-width:480px){
  .calc-checkboxes{grid-template-columns:1fr}
  .state-grid{grid-template-columns:repeat(3,1fr)}
  .footer-grid{grid-template-columns:1fr}
  .stats-row{grid-template-columns:1fr}
}

/* ===== ILLUSTRATIONS ===== */
.hero-illustration{max-width:800px;margin:1.5rem auto 0;opacity:.9}
.hero-illustration img{width:100%;height:auto;border-radius:.75rem}
.guide-hero{margin:1.5rem 0 2rem;border-radius:.75rem;overflow:hidden}
.guide-hero img{width:100%;height:auto;display:block}
.process-steps{max-width:800px;margin:2rem auto;padding:1rem 0}
.process-steps img{width:100%;height:auto}
.calc-type-icon-img{width:48px;height:48px;margin-bottom:.5rem}
.section-illustration{max-width:600px;margin:1.5rem auto;text-align:center}
.section-illustration img{width:100%;height:auto;border-radius:.5rem}

@media(max-width:768px){
  .hero-illustration{margin:1rem auto 0}
  .calc-type-icon-img{width:36px;height:36px}
}

/* ===== PRINT ===== */
@media print{
  .site-header,.site-footer,.cookie-banner,.nav-toggle,.breadcrumb,.btn{display:none}
  body{font-size:12pt;color:#000}
  a{color:#000;text-decoration:underline}
}
