/* ═══════════════════════════════════════════════════════════════════════════
   Mobile UI layer — loaded after site.css (and after the homepage's inline
   styles) on every page. Desktop layout above 1024px is left unchanged.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Header: accessible hamburger button (all widths, hidden on desktop) ── */
nav .hamburger{display:none;position:relative;width:44px;height:44px;padding:0;margin:0;border:0;border-radius:10px;background:transparent;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;-webkit-tap-highlight-color:transparent}
nav .hamburger:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
nav .hamburger span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:transform .25s,opacity .2s}
nav .hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
nav .hamburger[aria-expanded="true"] span:nth-child(2){opacity:0}
nav .hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
nav .nav-links .nav-m{display:none}
/* base header styles the homepage's inline CSS doesn't define */
nav .logo{text-decoration:none}
.nav-phone{color:#fff;font-weight:700;text-decoration:none;border:1px solid rgba(255,255,255,.28);border-radius:8px;white-space:nowrap;transition:background .2s,border-color .2s}
.nav-phone:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.5)}
[id]{scroll-margin-top:76px}
.nav-phone .np-icon{display:inline-flex;align-items:center}
.nav-phone .np-icon svg{width:16px;height:16px;fill:currentColor}

@media (max-width:1024px){
  /* backdrop-filter would make the fixed menu panel size itself to the header */
  nav{height:60px;padding:0 4%;gap:.5rem;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  nav .logo{font-size:1.12rem;white-space:nowrap;flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
  nav .nav-cta{display:none}
  nav .hamburger{display:flex;flex-shrink:0}
  .nav-phone{margin-left:auto;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:40px;font-size:.82rem;padding:.4rem .7rem}

  /* the menu panel */
  nav .nav-links{display:flex!important;position:fixed;top:60px;left:0;right:0;bottom:0;z-index:99;flex-direction:column;gap:0;margin:0;padding:.5rem 0 calc(1.5rem + env(safe-area-inset-bottom));background:var(--navy);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
    visibility:hidden;opacity:0;transform:translateY(-10px);transition:opacity .2s,transform .2s,visibility 0s .2s}
  nav.menu-open .nav-links{visibility:visible;opacity:1;transform:none;transition:opacity .2s,transform .2s}
  nav .nav-links li{border-bottom:1px solid rgba(255,255,255,.08)}
  nav .nav-links a{display:flex;align-items:center;justify-content:space-between;min-height:54px;padding:.9rem 6%;font-size:1.05rem;font-weight:600;color:#fff}
  nav .nav-links a::after{content:"›";font-size:1.4rem;line-height:1;color:var(--gold);opacity:.8}
  nav .nav-links a:active{background:rgba(255,255,255,.06)}
  nav .nav-links .nav-m{display:block}
  nav .nav-links .nav-actions{border-bottom:0;padding:1.25rem 6% .5rem;display:grid;gap:.7rem}
  nav .nav-links .nav-actions a{justify-content:center;min-height:52px;border-radius:12px;font-size:1rem;font-weight:700;padding:.85rem 1rem}
  nav .nav-links .nav-actions a::after{content:none}
  nav .nav-links .na-call svg{width:18px;height:18px;fill:currentColor;margin-right:.45rem}
  nav .nav-links .nav-actions .na-quote{background:var(--gold);color:var(--navy)}
  nav .nav-links .nav-actions .na-call{border:1.5px solid rgba(255,255,255,.35);color:#fff}
  nav .nav-links .nav-reg{border-bottom:0;padding:.75rem 6% 0;font-size:.8rem;line-height:1.5;color:rgba(255,255,255,.55);text-align:center}
  body.menu-open{overflow:hidden}
  body.menu-open .sticky-cta{display:none!important}
}
@media (max-width:480px){
  .nav-phone{width:44px;height:44px;padding:0;border-radius:50%}
  .nav-phone .np-icon svg{width:19px;height:19px}
  .nav-phone .np-num{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media (max-width:340px){nav .logo{font-size:1rem}}

/* ── General mobile layout ── */
@media (max-width:768px){
  html{-webkit-text-size-adjust:100%}
  /* iOS zooms into any field under 16px — stop it */
  input,select,textarea,.form-group input,.form-group select,.form-group textarea{font-size:16px!important}
  .form-group input,.form-group select,.form-group textarea{width:100%;min-width:0;min-height:48px}
  .form-group{min-width:0}
  .form-grid,.form-grid.cols-3{grid-template-columns:minmax(0,1fr)!important}
  .form-card{padding:1.35rem 1.1rem}
  .quote-section{padding:48px 4%}
  .form-steps{gap:.35rem}
  .form-step{font-size:.78rem;padding:.6rem .35rem}
  .form-nav{flex-direction:column-reverse}
  .form-nav .btn{width:100%;min-height:50px}

  /* hero */
  .hero{padding:40px 5% 34px}
  .hero h1{font-size:clamp(1.65rem,7.2vw,2.2rem);margin-bottom:.9rem}
  .hero p{font-size:1rem;margin-bottom:1.4rem}
  .hero .btn,.hero-btns .btn{width:100%;max-width:420px;min-height:52px;display:inline-flex;align-items:center;justify-content:center}
  .hero-badge{font-size:.78rem}
  .hero-stats{display:grid!important;grid-template-columns:1fr 1fr;gap:1rem 1.25rem!important;margin-top:1.75rem}

  /* sections breathe a little less */
  .cat-hub-section,.faqs,.article{padding-left:5%;padding-right:5%}
  .section-title{font-size:clamp(1.4rem,6vw,1.9rem)}
  .section-sub{font-size:.98rem}
  .cta-banner{padding:48px 5%}
  .cta-buttons{flex-direction:column;align-items:stretch}
  .cta-buttons .btn{width:100%;min-height:52px}

  /* breadcrumb: one swipeable line instead of wrapping */
  .breadcrumb{white-space:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;font-size:.82rem;padding:.7rem 5%}
  .breadcrumb::-webkit-scrollbar{display:none}
  .breadcrumb a{display:inline-block;padding:.3rem 0}

  /* tables scroll inside their own box (wrapper added by mobile.js) */
  .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-left:-5%;margin-right:-5%;padding:0 5%;background:linear-gradient(90deg,#fff 30%,rgba(255,255,255,0)),linear-gradient(90deg,rgba(255,255,255,0),#fff 70%) 100% 0,radial-gradient(farthest-side at 0 50%,rgba(13,27,62,.18),transparent),radial-gradient(farthest-side at 100% 50%,rgba(13,27,62,.18),transparent) 100% 0;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}
  .table-hint{display:block;font-size:.78rem;color:var(--gray-3);margin:-.6rem 0 1rem;text-align:right}

  /* comfortable tap targets */
  .faq-q{min-height:52px;padding:1rem 1.1rem}
  .footer-col ul{gap:0}
  .footer-col ul li a{display:block;padding:.55rem 0;font-size:.9rem}
  .footer-grid{gap:2rem 1.5rem}
  .article-inner ul li a,.article-inner ol li a{display:inline-block;padding:.25rem 0}
  .topic-chip,.pg-num,.pg-btn{min-height:44px}

  /* insights listings: chips become one swipeable row */
  .topic-nav{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -5%;padding:.25rem 5% .5rem;scroll-snap-type:x proximity}
  .topic-nav::-webkit-scrollbar{display:none}
  .topic-chip{flex-shrink:0;scroll-snap-align:start}
  .post-tag{font-size:.75rem}
  .post-foot{font-size:.82rem}
  .post-card{padding:1.25rem}

  /* author box */
  .author-box{padding:1.25rem}

  /* sticky quote bar: room for the iPhone home indicator, and never hides the footer */
  .sticky-cta{padding:.7rem 4% calc(.7rem + env(safe-area-inset-bottom));transition:transform .25s}
  .sticky-cta .btn{width:100%;min-height:50px;display:flex;align-items:center;justify-content:center}
  .sticky-cta.is-hidden{transform:translateY(110%)}
  body.has-sticky{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
}
@media (max-width:380px){
  .hero-stats{grid-template-columns:1fr 1fr}
  .form-step{font-size:.72rem}
}

/* cookie banner (built by the consent script) — mobile layout */
@media (max-width:768px){
  #ck-banner{flex-direction:column;align-items:stretch!important;gap:.75rem!important;padding:1rem 5% calc(1rem + env(safe-area-inset-bottom))!important;font-size:.88rem!important;text-align:left}
  #ck-banner>span:last-child{display:grid!important;grid-template-columns:1fr 1fr}
  #ck-banner button{min-height:46px;font-size:.95rem}
}

/* minimum 12px for labels, badges and eyebrows on small screens */
@media (max-width:768px){
  .topic-chip span,.pb-cap span,.kf-row dt,.insight-tag,.ip-sub,.product-badge,.rb-tag,.oc-stepno,.answer-label,.author-box .author-label,.section-label{font-size:.75rem!important}
  input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:0!important;flex-shrink:0}
  footer .logo{display:inline-block;padding:.4rem 0}
  .footer-phone{display:inline-flex;align-items:center;min-height:44px}
  .footer-bottom a,.reg-disclosure a{display:inline-block;padding:.45rem 0}
}
@media (max-width:768px){.sticky-cta a,.sticky-cta .btn{font-size:.95rem;line-height:1.25;text-wrap:balance}}
@media (max-width:350px){.sticky-cta a,.sticky-cta .btn{font-size:.85rem}}
@media (min-width:1025px){nav{gap:1.5rem}}
