
/* Reset */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Inter', sans-serif; color: #333333; background: #FFFFFF; line-height: 1.6; -webkit-font-smoothing: antialiased; }
a { color: #1565C0; text-decoration: none; }
a:hover { color: #1976D2; }

/* Header — 3 rows */
.site-header { background:#fff; border-bottom:1px solid #BBDEFB; position:sticky; top:0; z-index:100; width:100%; box-shadow:0 1px 4px rgba(0,0,0,0.04); }
.nav-inner { max-width:1200px; margin:0 auto; padding:0 24px; }
.nav-row { display:flex; align-items:center; }
.nav-row-brand { justify-content:flex-start; position:relative; padding:10px 0; }
.header-logo { display:flex; align-items:center; gap:10px; font-weight:700; font-size:18px; color:#1565C0; }
.header-logo svg { width:34px; height:34px; }
.nav-row-main { justify-content:center; gap:4px; padding:8px 0; border-top:1px solid #E3F2FD; flex-wrap:wrap; }
.nav-row-sub { justify-content:center; gap:18px; padding:8px 0 10px; border-top:1px solid #E3F2FD; background:#F8FAFF; flex-wrap:wrap; }
.nav-row-main a, .nav-row-sub a, .nav-dropdown-btn { color:#333; font-size:13.5px; font-weight:600; text-decoration:none; padding:6px 10px; border-radius:6px; transition:background .15s,color .15s; font-family:'Inter',sans-serif; display:inline-flex; align-items:center; gap:5px; }
.nav-ic { width:16px; height:16px; flex:0 0 auto; }
.nav-row-main a:hover, .nav-row-sub a:hover, .nav-dropdown-btn:hover { color:#1565C0; background:#E3F2FD; }
.nav-row-main a.active, .nav-row-sub a.active { color:#1565C0; background:#E3F2FD; }
.nav-dropdown { position:relative; display:inline-block; }
.nav-dropdown-btn { background:none; border:none; cursor:pointer; }
.nav-dropdown-content { display:none; position:absolute; top:100%; left:50%; transform:translateX(-50%); background:#fff; min-width:240px; box-shadow:0 4px 16px rgba(0,0,0,0.12); border-radius:8px; border:1px solid #BBDEFB; padding:8px 0; z-index:200; }
.nav-dropdown-content a { display:flex; align-items:center; gap:8px; padding:10px 16px; font-weight:500; border-radius:0; }
.nav-dropdown.open .nav-dropdown-content { display:block; }
.hamburger { display:none; position:absolute; right:16px; top:8px; background:none; border:none; cursor:pointer; padding:8px; }
.hamburger svg { width:26px; height:26px; }
@media (max-width:820px){
  .nav-row-main, .nav-row-sub { display:none; flex-direction:column; align-items:stretch; gap:0; padding:0; }
  .site-header.nav-open .nav-row-main, .site-header.nav-open .nav-row-sub { display:flex; }
  .nav-row-main a, .nav-row-sub a, .nav-dropdown-btn { border-radius:0; padding:12px 16px; border-bottom:1px solid #E3F2FD; text-align:left; }
  .nav-dropdown-content { position:static; transform:none; box-shadow:none; border:none; padding:0; }
  .hamburger { display:block; }
  .nav-row-brand { justify-content:flex-start; padding-left:8px; }
}

/* Hero */
.hero { background: linear-gradient(135deg, #FAFAFA 0%, #E3F2FD 100%); padding: 60px 24px 48px; text-align: center; }
.hero h1 { font-size: 36px; font-weight: 700; color: #1565C0; margin-bottom: 12px; line-height: 1.2; }
.hero .subtitle { font-size: 18px; color: #555555; margin-bottom: 24px; max-width: 700px; margin-left: auto; margin-right: auto; }
.hero .seo-lines { max-width: 600px; margin: 0 auto; text-align: left; font-size: 14px; color: #666666; list-style: none; }
.hero .seo-lines li { padding: 6px 0 6px 24px; position: relative; }
.hero .seo-lines li::before { content: ''; position: absolute; left: 6px; top: 13px; width: 6px; height: 6px; border-radius: 50%; background: #1976D2; }

.ad-banner { max-width: 1200px; }
.ad-bottom { max-width: 1200px; min-height: 120px; }

/* Calculator */
.calculator-section { max-width: 1200px; margin: 0 auto; padding: 40px 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: start; }
.calc-form { background: #FAFAFA; border-radius: 12px; padding: 28px; border: 1px solid #BBDEFB; }
.calc-form h2 { font-size: 20px; font-weight: 700; color: #1565C0; margin-bottom: 20px; }
.form-group { margin-bottom: 18px; }
.form-group label { display: block; font-size: 13px; font-weight: 600; color: #555555; margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.5px; }
.form-group select, .form-group input[type="number"] { width: 100%; padding: 10px 12px; border: 1px solid #C8DBC8; border-radius: 8px; font-size: 15px; font-family: 'Inter', sans-serif; background: #fff; color: #333333; transition: border-color 0.2s; }
.form-group select:focus, .form-group input[type="number"]:focus { outline: none; border-color: #1976D2; box-shadow: 0 0 0 3px rgba(25,118,210,0.15); }
.checkbox-group { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; }
.checkbox-item { display: flex; align-items: center; gap: 10px; font-size: 14px; color: #444444; cursor: pointer; }
.checkbox-item input[type="checkbox"] { width: 18px; height: 18px; accent-color: #1565C0; cursor: pointer; }
.calc-btn { width: 100%; padding: 14px; background: #1565C0; color: #fff; border: none; border-radius: 8px; font-size: 16px; font-weight: 700; font-family: 'Inter', sans-serif; cursor: pointer; transition: background 0.2s, transform 0.1s; margin-top: 8px; }
.calc-btn:hover { background: #1976D2; }
.calc-btn:active { transform: scale(0.98); }

/* Results */
.results-card { background: #fff; border-radius: 12px; padding: 28px; border: 1px solid #BBDEFB; box-shadow: 0 2px 12px rgba(0,0,0,0.06); opacity: 0; transform: translateY(10px); transition: opacity 0.4s ease, transform 0.4s ease; }
.results-card.visible { opacity: 1; transform: translateY(0); }
.results-card h2 { font-size: 20px; font-weight: 700; color: #1565C0; margin-bottom: 20px; padding-bottom: 12px; border-bottom: 2px solid #E3F2FD; }
.result-line { display: flex; justify-content: space-between; align-items: baseline; padding: 10px 0; border-bottom: 1px solid #F0F4F0; font-size: 14px; }
.result-line .label { color: #666666; }
.result-line .value { font-weight: 700; color: #1565C0; font-size: 15px; }
.result-grand-total { display: flex; justify-content: space-between; align-items: baseline; padding: 16px 0 8px; margin-top: 8px; border-top: 2px solid #1565C0; }
.result-grand-total .label { font-size: 16px; font-weight: 700; color: #333333; }
.result-grand-total .value { font-size: 24px; font-weight: 700; color: #1565C0; }
.result-per-sqft { text-align: right; font-size: 13px; color: #888888; padding: 8px 0 0; }

/* FAQ */
.faq-section { max-width: 900px; margin: 0 auto; padding: 48px 24px; }
.faq-section h2 { font-size: 24px; font-weight: 700; color: #1565C0; margin-bottom: 24px; text-align: center; }
.faq-item { border: 1px solid #BBDEFB; border-radius: 8px; margin-bottom: 8px; overflow: hidden; background: #fff; }
.faq-question { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; cursor: pointer; background: #FAFAFA; transition: background 0.2s; width: 100%; text-align: left; border: none; font-family: 'Inter', sans-serif; font-size: 15px; font-weight: 600; color: #333333; }
.faq-question:hover { background: #E3F2FD; }
.faq-question:focus { outline: 2px solid #1976D2; outline-offset: 2px; }
.faq-question .arrow { width: 20px; height: 20px; transition: transform 0.25s ease; flex-shrink: 0; margin-left: 12px; }
.faq-question .arrow svg { width: 100%; height: 100%; }
.faq-question[aria-expanded="true"] .arrow { transform: rotate(180deg); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
.faq-answer.open { max-height: 600px; }
.faq-answer p { padding: 16px 20px 20px; font-size: 14px; color: #555555; line-height: 1.7; }

/* Info Cards */
.info-section { max-width: 1200px; margin: 0 auto; padding: 0 24px 48px; }
.info-section h2 { font-size: 20px; font-weight: 700; color: #1565C0; margin-bottom: 20px; text-align: center; }
.info-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.info-card { background: #FAFAFA; border-radius: 10px; padding: 24px; border: 1px solid #BBDEFB; transition: box-shadow 0.2s; }
.info-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
.info-card h3 { font-size: 15px; font-weight: 700; color: #1565C0; margin-bottom: 8px; }
.info-card p { font-size: 13px; color: #666666; line-height: 1.6; }

/* Footer */
.site-footer { background: #F0F4F0; border-top: 1px solid #BBDEFB; padding: 32px 24px; text-align: center; font-size: 13px; color: #666666; }
.site-footer a { color: #1565C0; }
.site-footer .footer-links { margin: 8px 0; }
.site-footer .footer-links a { margin: 0 12px; }
.site-footer .disclaimer { max-width: 700px; margin: 16px auto 0; font-size: 12px; color: #999999; line-height: 1.6; }

/* Responsive */
@media (max-width: 768px) {
  .calculator-section { grid-template-columns: 1fr; }
  .hero h1 { font-size: 26px; }
  .hero .subtitle { font-size: 15px; }
  .header-nav { display: none; }
  .header-nav.open { display: flex; flex-direction: column; position: absolute; top: 60px; left: 0; right: 0; background: #fff; border-bottom: 1px solid #BBDEFB; padding: 16px 24px; gap: 12px; z-index: 99; }
  .hamburger { display: block; }
  .site-header { position: relative; max-width: 100%; }
  .info-cards { grid-template-columns: 1fr; }
}
@media (max-width: 360px) { .hero h1 { font-size: 22px; } .calc-form, .results-card { padding: 18px; } }
@media (min-width: 1200px) { .calculator-section { padding: 40px 0; } .hero { padding: 80px 24px 64px; } }

/* Print Optimization */
@media print {
  .site-header, .hero, #ad-top, #ad-middle, #ad-bottom, .faq-section, .info-section, .hamburger { display: none !important; }
  .calculator-section { display: block !important; grid-template-columns: 1fr !important; }
  .calc-form { display: none !important; }
  .results-card { opacity: 1 !important; transform: none !important; box-shadow: none !important; border: 2px solid #333 !important; page-break-inside: avoid; }
  .share-buttons, .calc-btn, #stateGroup, .checkbox-group, .form-group { display: none !important; }
  .save-splurge, .regional-compare { display: none !important; }
  body { font-size: 12pt; color: #000; }
  .results-card h2 { color: #000 !important; }
  .result-line .value { color: #000 !important; }
  .result-grand-total .value { color: #000 !important; }
  .price-range-bar { display: none !important; }
  /* Print footer with contact */
  .site-footer { display: block !important; text-align: center; font-size: 10pt; color: #555; border-top: 1px solid #333; margin-top: 24pt; padding-top: 12pt; }
  .site-footer a { color: #000 !important; }
  .site-footer .disclaimer { display: none !important; }
}
/* Share Buttons */
.share-buttons { display: flex; gap: 10px; margin: 16px 0 8px; flex-wrap: wrap; }
.share-btn { padding: 8px 16px; border-radius: 6px; font-size: 13px; font-weight: 600; font-family: 'Inter', sans-serif; cursor: pointer; border: 1px solid #BBDEFB; background: #E3F2FD; color: #1565C0; transition: background 0.2s; }
.share-btn:hover { background: #BBDEFB; }
.share-btn.primary { background: #1565C0; color: #fff; border-color: #1565C0; }
.share-btn.primary:hover { background: #0D47A1; }
/* Price Range Bar */
.price-range { margin: 16px 0; padding: 16px; background: #F8FAFA; border-radius: 8px; border: 1px solid #BBDEFB; }
.price-range-title { font-size: 13px; font-weight: 600; color: #555; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.5px; }
.price-range-bar { display: flex; border-radius: 6px; overflow: hidden; height: 32px; margin-bottom: 8px; }
.price-range-bar .bar-low { background: #42A5F5; }
.price-range-bar .bar-mid { background: #1E88E5; }
.price-range-bar .bar-high { background: #0D47A1; }
.price-range-labels { display: flex; justify-content: space-between; font-size: 12px; color: #555; font-weight: 600; }
.price-range-label { display: flex; flex-direction: column; align-items: center; }
.price-range-label .amount { font-size: 14px; color: #1565C0; font-weight: 700; }
/* Cost Visualization */
.cost-viz { margin: 16px 0; padding: 16px; background: #F8FAFA; border-radius: 8px; border: 1px solid #BBDEFB; }
.cost-viz-title { font-size: 13px; font-weight: 600; color: #555; margin-bottom: 12px; text-transform: uppercase; letter-spacing: 0.5px; }
.cost-bar-row { display: flex; align-items: center; margin-bottom: 8px; }
.cost-bar-label { width: 110px; font-size: 12px; color: #555; text-align: right; padding-right: 10px; }
.cost-bar-track { flex: 1; height: 18px; background: #E8EDF1; border-radius: 4px; overflow: hidden; }
.cost-bar-fill { height: 100%; border-radius: 4px; transition: width 0.6s ease; }
.cost-bar-fill.material { background: #42A5F5; }
.cost-bar-fill.labor { background: #1E88E5; }
.cost-bar-fill.soft { background: #0D47A1; }
.cost-bar-value { width: 80px; font-size: 12px; color: #333; font-weight: 600; padding-left: 8px; }
/* What Your Budget Buys */
.budget-buys { margin: 16px 0; padding: 16px; background: #E8F5E9; border-radius: 8px; border-left: 4px solid #1565C0; }
.budget-buys-title { font-size: 13px; font-weight: 700; color: #1565C0; margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.5px; }
.budget-buys-text { font-size: 13px; color: #333; line-height: 1.6; }
/* Related Calculators */
.related-section { max-width: 1200px; margin: 0 auto; padding: 0 24px 48px; }
.related-section h2 { font-size: 20px; font-weight: 700; color: #1565C0; margin-bottom: 16px; text-align: center; }
.related-links { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.related-link { padding: 10px 20px; background: #E3F2FD; border: 1px solid #BBDEFB; border-radius: 8px; color: #1565C0; font-size: 14px; font-weight: 600; text-decoration: none; transition: background 0.2s; }
.related-link:hover { background: #BBDEFB; color: #0D47A1; }
/* State selector group */
#stateGroup { margin-bottom: 18px; }

  .roi-line .value { color: #1565C0; }
  .contingency-note { font-size: 12px; color: #888; margin-top: 8px; }
  .regional-bar-row { display: flex; align-items: center; margin-bottom: 8px; }
  .regional-bar-label { width: 130px; font-size: 13px; color: #555; text-align: right; padding-right: 12px; }
  .regional-bar-track { flex: 1; height: 22px; background: #E3F2FD; border-radius: 4px; overflow: hidden; }
  .regional-bar-fill { height: 100%; border-radius: 4px; transition: width 0.6s ease; font-size: 11px; color: #fff; display: flex; align-items: center; padding-left: 6px; font-weight: 600; }
  .regional-bar-value { width: 90px; font-size: 13px; color: #333; font-weight: 600; padding-left: 8px; }
  @media (max-width: 600px) {
    .save-splurge > div > div:last-child { grid-template-columns: 1fr !important; }
  }
  
/* Home calculator cards */
.calc-grid-section { max-width:1200px; margin:0 auto; padding:44px 24px 8px; }
.calc-grid-section h2 { font-size:24px; font-weight:700; color:#1565C0; text-align:center; margin-bottom:8px; }
.calc-grid-section .section-sub { text-align:center; max-width:680px; margin:0 auto 28px; color:#555; font-size:15px; line-height:1.7; }
.calc-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.calc-card { display:flex; flex-direction:column; align-items:flex-start; background:#fff; border:1px solid #BBDEFB; border-radius:12px; padding:22px 20px; text-decoration:none; color:#333; transition:box-shadow .2s, transform .1s, border-color .2s; }
.calc-card:hover { box-shadow:0 6px 22px rgba(21,101,192,0.14); transform:translateY(-3px); border-color:#1565C0; }
.calc-card-ic { display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; border-radius:10px; background:#E3F2FD; color:#1565C0; margin-bottom:14px; }
.calc-card-ic svg { width:26px; height:26px; }
.calc-card h3 { font-size:17px; color:#111; margin-bottom:8px; line-height:1.3; }
.calc-card p { font-size:13px; color:#666; line-height:1.6; flex:1; margin:0 0 14px; }
.calc-card-cta { font-size:13px; font-weight:700; color:#1565C0; }
.calc-card:hover .calc-card-cta { text-decoration:underline; }
/* Related + states index */
.related-section { max-width:1200px; margin:0 auto; padding:40px 24px; }
.related-section h2 { font-size:20px; font-weight:700; color:#1565C0; text-align:center; margin-bottom:18px; }
.related-links { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.related-link { background:#E3F2FD; color:#1565C0; padding:8px 16px; border-radius:20px; font-size:13px; font-weight:600; text-decoration:none; }
.related-link:hover { background:#BBDEFB; }
.states-index { max-width:1200px; margin:0 auto; padding:40px 24px 60px; }
.state-group { margin-bottom:28px; }
.state-group h3 { font-size:17px; color:#1565C0; margin-bottom:12px; border-bottom:2px solid #E3F2FD; padding-bottom:8px; }
.state-links { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.state-link { background:#FAFAFA; border:1px solid #BBDEFB; border-radius:8px; padding:10px 12px; font-size:13px; color:#333; text-decoration:none; text-align:center; }
.state-link:hover { background:#E3F2FD; color:#1565C0; }
@media (max-width:820px){ .calc-cards, .state-links { grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .calc-cards, .state-links { grid-template-columns:1fr; } }

/* Breadcrumb */
.breadcrumb { max-width:1200px; margin:0 auto; padding:16px 24px 0; font-size:13px; color:#666; }
.breadcrumb a { color:#1565C0; text-decoration:none; }
.breadcrumb a:hover { text-decoration:underline; }
.breadcrumb .bc-sep { color:#BBB; margin:0 2px; }
.breadcrumb span[aria-current] { color:#333; font-weight:600; }

/* Unify all content containers to 1200px (override base faq-section 900px) */
.faq-section { max-width:1200px; }

/* SEO article (calc + state + blog long-form) */
.seo-article { max-width:1200px; margin:8px auto 0; padding:24px; background:#fff; color:#2b2b2b; line-height:1.8; font-size:17px; }
.seo-article h2 { font-size:23px; font-weight:700; color:#1565C0; margin:34px 0 12px; line-height:1.3; }
.seo-article h3 { font-size:18px; font-weight:700; color:#222; margin:22px 0 8px; }
.seo-article p { margin:0 0 14px; }
.seo-article ul, .seo-article ol { margin:0 0 16px; padding-left:22px; }
.seo-article li { margin-bottom:8px; }
.seo-article strong { color:#111; }
.seo-article .table-wrap { overflow-x:auto; margin:0 0 20px; }
.seo-article .cost-table { width:100%; border-collapse:collapse; font-size:14.5px; }
.seo-article .cost-table th { background:#E3F2FD; color:#0D47A1; text-align:left; padding:10px 12px; font-weight:700; border:1px solid #BBDEFB; }
.seo-article .cost-table td { padding:9px 12px; border:1px solid #E3F2FD; }
.seo-article .cost-table tr:nth-child(even) td { background:#F8FAFF; }
.seo-article .cost-table .scen-total td { background:#E3F2FD; font-weight:700; color:#0D47A1; border-top:2px solid #1565C0; }
.seo-article .takeaway { background:#E8F1FB; border-left:4px solid #1565C0; border-radius:0 8px 8px 0; padding:16px 20px; margin:6px 0 24px; }
.seo-article .takeaway h3 { margin:0 0 10px; font-size:16.5px; color:#0D47A1; }
.seo-article .takeaway ul { margin:0; padding-left:20px; }
.seo-article .takeaway li { margin-bottom:7px; font-size:14.5px; line-height:1.55; }
.seo-article .faq-list { margin-top:6px; }
.seo-article .faq-list .faq-item { border:1px solid #E3F2FD; border-radius:8px; padding:14px 18px; margin-bottom:12px; background:#F8FAFF; }
.seo-article .faq-list .faq-item h3 { margin:0 0 6px; font-size:16.5px; color:#0D47A1; }
.seo-article .faq-list .faq-item p { margin:0; font-size:15px; }

/* Calculator anchor heading (between article and calc) */
.calc-anchor { max-width:1200px; margin:30px auto 0; padding:0 24px; text-align:center; }
.calc-heading { font-size:24px; font-weight:700; color:#1565C0; margin:0 0 6px; }
.calc-subheading { color:#555; font-size:15px; margin:0; }

/* Blog related cards */
.blog-related-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; max-width:1200px; margin:0 auto; }
.blog-related-card { display:flex; flex-direction:column; gap:8px; background:#FAFAFA; border:1px solid #BBDEFB; border-radius:10px; padding:16px; text-decoration:none; transition:box-shadow .2s, transform .1s; }
.blog-related-card:hover { box-shadow:0 4px 16px rgba(0,0,0,0.08); transform:translateY(-2px); }
.brc-cat { font-size:11px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:#1976D2; }
.brc-title { font-size:14px; font-weight:600; color:#222; line-height:1.4; }

/* Blog article header */
.blog-article { max-width:1200px; }
.blog-head { border-bottom:2px solid #E3F2FD; padding-bottom:16px; margin-bottom:8px; }
.blog-meta { font-size:13px; color:#777; }
.blog-cat { color:#1976D2; font-weight:700; text-transform:uppercase; letter-spacing:.5px; }
.blog-article h1 { font-size:30px; line-height:1.25; color:#111; margin:10px 0 12px; }
.blog-lead { font-size:18px; color:#555; line-height:1.6; margin:0; }

/* Blog index cards */
.blog-index { max-width:1200px; margin:0 auto; padding:40px 24px 20px; }
.blog-card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.blog-card { display:flex; flex-direction:column; gap:10px; background:#fff; border:1px solid #BBDEFB; border-radius:12px; padding:22px; text-decoration:none; transition:box-shadow .2s, transform .1s; }
.blog-card:hover { box-shadow:0 6px 20px rgba(0,0,0,0.09); transform:translateY(-3px); }
.blog-card-cat { font-size:11px; font-weight:700; letter-spacing:.6px; text-transform:uppercase; color:#1976D2; }
.blog-card h3 { font-size:18px; color:#111; line-height:1.35; margin:0; }
.blog-card p { font-size:14px; color:#666; line-height:1.6; margin:0; flex:1; }
.blog-card-more { font-size:13px; font-weight:700; color:#1565C0; }

/* Static legal/guide page wrapper */
.content-page { max-width:1200px; margin:0 auto; padding:40px 24px 60px; color:#333; line-height:1.7; }
.content-page h1 { font-size:30px; font-weight:700; color:#1565C0; margin:0 0 8px; line-height:1.3; }
.content-page .effective-date { font-size:13px; color:#777; margin:0 0 28px; }
.content-page h2 { font-size:20px; font-weight:700; color:#1565C0; margin:28px 0 10px; }
.content-page p { margin:0 0 14px; }
.content-page ul { margin:0 0 16px; padding-left:22px; }
.content-page li { margin-bottom:6px; }
.content-page a { color:#1565C0; }
.content-page a:hover { text-decoration:underline; }
.content-page .back-link { display:inline-block; margin-top:32px; font-weight:600; }
@media (max-width:640px){ .content-page { padding:28px 18px 48px; } }
@media (max-width:820px){ .blog-related-grid, .blog-card-grid { grid-template-columns:repeat(2,1fr); } .seo-article { padding:18px; font-size:15.5px; } }
@media (max-width:480px){ .blog-related-grid, .blog-card-grid { grid-template-columns:1fr; } }

/* Floating action buttons (bottom-right) */
.fab-group { position:fixed; right:20px; bottom:20px; display:flex; flex-direction:column; gap:12px; z-index:9999; }
.fab-btn { width:50px; height:50px; border-radius:50%; background:#1565C0; color:#fff; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 14px rgba(21,101,192,0.35); transition:background .15s, transform .12s, box-shadow .15s; }
.fab-btn:hover { background:#1976D2; transform:translateY(-2px); box-shadow:0 6px 18px rgba(21,101,192,0.45); }
.fab-btn:active { transform:translateY(0); }
.fab-btn svg { width:24px; height:24px; display:block; }
.fab-toast { position:fixed; left:50%; bottom:28px; transform:translateX(-50%) translateY(10px); background:#111; color:#fff; padding:12px 18px; border-radius:8px; font-size:14px; line-height:1.5; z-index:10000; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; max-width:92vw; text-align:center; box-shadow:0 6px 20px rgba(0,0,0,0.3); }
.fab-toast.show { opacity:1; transform:translateX(-50%) translateY(0); }
@media (max-width:480px){ .fab-group { right:14px; bottom:14px; gap:10px; } .fab-btn { width:46px; height:46px; } }
@media print { .fab-group, .fab-toast { display:none !important; } }

/* ── Rich site footer ───────────────────────────────────── */
.site-footer { background:#F8FAFF; border-top:1px solid #BBDEFB; color:#4a4a4a; padding:48px 0 0; font-size:14.5px; line-height:1.6; margin-top:auto; text-align:left; }
.footer-inner { max-width:1200px; margin:0 auto; padding:0 24px; }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid #E3F2FD; }
.footer-logo { display:flex; align-items:center; gap:10px; text-decoration:none; font-weight:700; font-size:17px; color:#1565C0; margin-bottom:14px; }
.footer-logo svg { width:34px; height:34px; flex:0 0 auto; }
.footer-brand p { color:#555; margin:0 0 14px; max-width:340px; }
.footer-contact { display:inline-flex; align-items:center; gap:8px; color:#1565C0; font-weight:600; text-decoration:none; }
.footer-contact svg { width:16px; height:16px; }
.footer-contact:hover { text-decoration:underline; }
.footer-col h3 { font-size:15px; font-weight:700; color:#111; margin:0 0 14px; text-transform:uppercase; letter-spacing:.4px; }
.footer-col ul { list-style:none; padding:0; margin:0; }
.footer-col li { margin-bottom:9px; }
.footer-col a { color:#555; text-decoration:none; transition:color .15s; }
.footer-col a:hover { color:#1565C0; text-decoration:underline; }
.footer-disclaimer { background:#E3F2FD; border-radius:8px; padding:18px 22px; margin:28px 0; }
.footer-disclaimer p { margin:0; color:#37474F; font-size:14px; line-height:1.6; }
.footer-disclaimer strong { color:#0D47A1; }
.footer-bottom { text-align:center; padding:18px 0 24px; color:#777; font-size:13.5px; }
.footer-bottom p { margin:0; }
@media (max-width:860px){ .footer-grid { grid-template-columns:repeat(2,1fr); gap:28px; } .footer-brand p { max-width:none; } }
@media (max-width:480px){ .footer-grid { grid-template-columns:1fr; gap:24px; padding-bottom:28px; } .footer-disclaimer { padding:14px 16px; } }

/* Outbound link blocks (authority DoFollow + own-site nofollow) */
.authority-resources, .related-calc-block { max-width:1200px; margin:36px auto 0; padding:24px 28px; background:#F8FAFF; border:1px solid #BBDEFB; border-radius:12px; }
.authority-resources h2, .related-calc-block h2 { font-size:19px; font-weight:700; color:#1565C0; margin:0 0 4px; }
.authority-resources .block-note, .related-calc-block .block-note { font-size:13px; color:#777; margin:0 0 14px; }
.authority-resources ul, .related-calc-block ul { list-style:none; margin:0; padding:0; display:grid; gap:9px; }
.authority-resources li, .related-calc-block li { font-size:14.5px; line-height:1.6; }
.authority-resources a, .related-calc-block a { color:#1565C0; text-decoration:none; font-weight:600; }
.authority-resources a:hover, .related-calc-block a:hover { text-decoration:underline; }
.ref-note { max-width:1200px; margin:24px auto 0; padding:14px 18px; background:#E8F1FB; border-left:3px solid #1565C0; border-radius:0 8px 8px 0; font-size:13.5px; color:#37474F; line-height:1.6; }
.ref-note a { color:#1565C0; font-weight:600; }
/* References page */
.ref-list { max-width:1200px; margin:8px auto 0; padding:24px 28px; background:#fff; border:1px solid #E3F2FD; border-radius:12px; }
.ref-list h2 { font-size:21px; font-weight:700; color:#1565C0; margin:28px 0 12px; }
.ref-list ul { list-style:none; margin:0 0 8px; padding:0; }
.ref-list li { margin-bottom:14px; font-size:15px; line-height:1.7; }
.ref-list a { color:#1565C0; font-weight:600; text-decoration:none; display:block; }
.ref-list a:hover { text-decoration:underline; }
.ref-desc { display:block; font-size:13px; color:#666; margin-top:2px; font-weight:400; }
@media (max-width:640px){ .authority-resources, .related-calc-block, .ref-list { padding:18px; } }
