/* ==========================================================================
   Kompare Koala — responsive corrections
   Layered on top of the supplied design CSS. The originals were desktop-first
   and collapsed everything to one column below 980px with no mobile nav.
   ========================================================================== */

/* --- 1. Mobile navigation -------------------------------------------------
   The supplied design hides .main-nav below 980px and ships no toggle, so on
   phones and tablets the only reachable link was the quote button.            */
.kk-nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 46px;
  height: 46px;
  padding: 10px;
  margin-left: auto;
  background: transparent;
  border: 0;
  border-radius: 10px;
  cursor: pointer;
}
.kk-nav-toggle span {
  display: block;
  height: 2.5px;
  width: 100%;
  border-radius: 2px;
  background: var(--blue-900, #0d3d73);
  transition: transform .25s ease, opacity .2s ease;
}
.kk-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.kk-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.kk-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }
.kk-nav-cta { display: none; }

@media (max-width: 980px) {
  .kk-nav-toggle { display: flex; }
  .nav-wrap { flex-wrap: wrap; }
  .header-actions { display: none; }

  /* override the design's `nav.main-nav { display:none }` */
  nav.main-nav {
    display: none;
    flex-basis: 100%;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin-top: 10px;
    padding: 6px 0 12px;
    border-top: 1px solid var(--blue-50, #EAF4FF);
  }
  nav.main-nav.is-open { display: flex; }

  nav.main-nav > a,
  nav.main-nav .has-dropdown > a {
    display: block;
    padding: 13px 4px;          /* ~46px tap target */
    border-bottom: 1px solid rgba(13,61,115,.07);
  }
  /* sub-items always visible once the menu is open — no hover on touch */
  nav.main-nav .dropdown-panel {
    position: static;
    display: block;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    padding: 0 0 0 14px;
    min-width: 0;
    background: transparent;
  }
  nav.main-nav .dropdown-panel a {
    display: block;
    padding: 11px 4px;
    border-bottom: 1px solid rgba(13,61,115,.05);
  }
  /* the nav link colour was winning over .btn-blue, leaving navy text on a blue pill */
  nav.main-nav a.kk-nav-cta {
    display: block;
    margin-top: 14px;
    padding: 14px 18px;
    text-align: center;
    color: #fff;
    border-bottom: 0;
  }
}

/* --- 2. Tablet: stop collapsing straight to a single column ---------------- */
@media (min-width: 621px) and (max-width: 980px) {
  .how-grid,
  .testi-grid   { grid-template-columns: repeat(2, 1fr); }
  .cat-grid     { grid-template-columns: repeat(3, 1fr); }
  .footer-top   { grid-template-columns: repeat(2, 1fr); }
}

/* --- 3. Trust widget sat at 45% width on phones, reading as a stray box ---- */
@media (max-width: 980px) {
  .trust-widget {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: center;
  }
}
@media (max-width: 620px) {
  .trust-widget {
    grid-template-columns: 1fr;
    gap: 2px;
  }
  .trust-widget .trust-divider {
    width: 100%;
    height: 1px;
    margin: 6px 0;
  }
}

/* --- 4. Tap targets: footer links were 20px tall --------------------------- */
@media (max-width: 980px) {
  .footer-col ul a,
  .footer-bottom-links a {
    display: inline-block;
    padding: 11px 0;            /* ~44px with line-height */
  }
  .footer-social a {
    width: 42px;
    height: 42px;
  }
}

/* --- 5. Hero: the mascot pushed the headline below the fold on phones ------ */
@media (max-width: 620px) {
  .hero-visual img.mascot { max-width: 240px; }
  .hero-visual { margin-bottom: 0; }
}

/* --- 6. Long words (emails, headings) breaking the layout on narrow screens */
@media (max-width: 480px) {
  h1, h2, h3 { overflow-wrap: break-word; }
  .footer-contact-item span { overflow-wrap: anywhere; }
}

/* --- 7. GeneratePress article wrapper ------------------------------------
   GP wraps page content in .inside-article with 30px padding, which inset
   every full-bleed section by 30px and left only 267px of usable width on a
   375px screen. The design's own .container supplies the gutters.          */
.inside-article,
article.page,
.entry-content {
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}

/* --- 8. Uneven grid columns ----------------------------------------------
   `1fr` resolves to minmax(auto, 1fr), so a long unbroken label such as
   "Health Care, Medical & Pharmacy Centres" forced its track wider than its
   share and knocked the columns out of alignment. min-width:0 lets tracks
   shrink to their fair share.                                              */
.cat-grid > *,
.how-grid > *,
.testi-grid > *,
.industry-grid > *,
.footer-top > *,
.confidence-grid > *,
.be-hero-grid > *,
.split-section > * {
  min-width: 0;
}
