
@media(max-width:1080px){.footer-grid{grid-template-columns:1fr 1fr !important;gap:40px 32px !important}}
@media(max-width:640px){.footer-grid{grid-template-columns:1fr !important;gap:36px !important;padding-bottom:36px !important}}
@media(max-width:760px){
  .comparison-table{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .comparison-table table{min-width:600px}
  table.score-bands{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  .matrix-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .matrix-wrap table.matrix{min-width:900px}
  figure.infographic{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-left:12px;padding-right:12px}
  figure.infographic svg{min-width:680px;max-width:none}
  .infographic svg[viewBox*="1080 320"]{min-width:920px}
  .infographic svg[viewBox*="1080 280"]{min-width:920px}
}
html,body{max-width:100%;overflow-x:clip}
@media(max-width:480px){
  .wrap{padding-left:18px;padding-right:18px}
  .hero h1, .hero-title{font-size:clamp(34px,9vw,48px) !important;line-height:1.05 !important}
}

/* === Scroll-to-top button === */
.scroll-top-btn{position:fixed;bottom:32px;right:32px;width:48px;height:48px;border-radius:50%;background:var(--ink);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s var(--ease,ease),transform .2s var(--ease,ease),visibility 0s linear .2s,background .15s var(--ease,ease);z-index:40;box-shadow:0 6px 20px rgba(10,37,64,.18),0 2px 6px rgba(10,37,64,.08)}
.scroll-top-btn.visible{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .2s var(--ease,ease),transform .2s var(--ease,ease),visibility 0s,background .15s var(--ease,ease)}
.scroll-top-btn:hover{background:var(--accent)}
.scroll-top-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.scroll-top-btn svg{width:20px;height:20px;display:block}
@media (max-width:640px){
  .scroll-top-btn{bottom:20px;right:20px;width:42px;height:42px}
  .scroll-top-btn svg{width:18px;height:18px}
}
@media (prefers-reduced-motion: reduce){
  .scroll-top-btn{transition:opacity .15s,visibility 0s}
}
img
.bf-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}

/* === FIX 1: Scroll-margin offsets so #anchors clear the sticky header === */
[id]{scroll-margin-top:80px}
@media(max-width:768px){[id]{scroll-margin-top:24px}}

/* === FIX 3: Canonical FAQ Type D answer styling === */
.faq-item .ans{padding:0 22px 22px;color:var(--text);font-size:15.5px;line-height:1.65}
.faq-item .ans p{margin:0 0 12px}
.faq-item .ans p:last-child{margin-bottom:0}
.faq-item .ans ul,.faq-item .ans ol{margin:8px 0 12px;padding-left:22px}
.faq-item .ans li{margin-bottom:6px}

/* === Canonical FAQ chevron icon (consolidated from r22) === */
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px;font-weight:600;color:var(--ink);font-size:16px;line-height:1.4;transition:color .15s}
.faq-item summary:hover{color:var(--accent)}
.faq-item summary::after{content:"";flex-shrink:0;width:11px;height:11px;border-right:2px solid var(--text-2);border-bottom:2px solid var(--text-2);transform:rotate(45deg);margin-right:4px;transition:transform .2s var(--ease,ease)}
.faq-item[open] summary::after{transform:rotate(-135deg);margin-right:0;margin-top:6px}
.faq-item[open] summary{color:var(--accent)}

/* === FIX 2: aside.author-bio centering (higher specificity wins over conflicts) === */
aside.author-bio{margin:64px auto !important;max-width:1200px;padding:48px 24px;border-top:1px solid var(--border)}
aside.author-bio .wrap{max-width:1200px;margin:0 auto}

/* === FIX 1 R22: scroll-padding-top on html for reliable anchor jumps === */
html{scroll-padding-top:88px}
@media(max-width:768px){html{scroll-padding-top:24px}}
