/* 3kaoto: sitewide corrective layer, 2026-10-11.
   Original theme, wording, links, SEO tags and scripts remain intact. */
*, *::before, *::after { box-sizing: border-box; }
html, body { max-width: 100%; }
main, main section, main .container-xl { min-width: 0; }
main :is(h1, h2, h3, p, li) { overflow-wrap: break-word; }
/* Actual brand artwork (root /logo.png is included in the package). */
.navbar .navbar-brand {
  display: inline-flex !important; align-items: center; flex: 0 0 auto;
  min-height: 42px; padding: 0 !important; margin-right: clamp(.75rem, 2vw, 1.75rem) !important;
  line-height: 1 !important; text-decoration: none !important;
}
.navbar .navbar-brand .brand-logo {
  display: block; width: clamp(128px, 12vw, 158px); height: auto; max-height: 55px;
  object-fit: contain; filter: drop-shadow(0 3px 7px rgba(0,0,0,.25));
}
.navbar .brand-wordmark { display: none; font-weight: 800; font-size: 1.4rem; }
/* Make the header robust even if the external Bootstrap stylesheet is slow. */
.navbar.navbar-expand-xl { position: sticky; top: 0; z-index: 1030; }
.navbar.navbar-expand-xl > .container-xl {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: .5rem; width: 100%;
}
.navbar.navbar-expand-xl .navbar-collapse { min-width: 0; }
.navbar.navbar-expand-xl .navbar-nav { list-style: none; padding-left: 0; margin: 0; }
@media (min-width: 1200px) {
  .navbar.navbar-expand-xl .navbar-toggler { display: none !important; }
  .navbar.navbar-expand-xl .navbar-collapse { display: flex !important; flex: 1 1 auto; justify-content: flex-end; }
  .navbar.navbar-expand-xl .navbar-nav { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; }
  .navbar.navbar-expand-xl .nav-link {
    display: block; white-space: nowrap; font-size: clamp(12px, .93vw, 14px) !important;
    padding: .5rem clamp(.36rem, .65vw, .8rem) !important;
  }
}
@media (max-width: 1199.98px) {
  .navbar.navbar-expand-xl .navbar-toggler {
    display: inline-flex !important; flex: 0 0 auto; justify-content: center;
    align-items: center; padding: .55rem .7rem; border: 1px solid rgba(255,255,255,.27);
    border-radius: 8px; background: transparent; color: #fff;
  }
  .navbar.navbar-expand-xl .navbar-toggler-icon {
    display: block; width: 23px; height: 19px;
    background-image: linear-gradient(#fff,#fff), linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);
    background-position: center top, center center, center bottom;
    background-size: 100% 2px; background-repeat: no-repeat;
  }
  .navbar.navbar-expand-xl .navbar-collapse { flex: 0 0 100%; width: 100%; }
  .navbar.navbar-expand-xl .navbar-collapse:not(.show):not(.is-open):not(.collapsing) { display: none !important; }
  .navbar.navbar-expand-xl .navbar-collapse.show,
  .navbar.navbar-expand-xl .navbar-collapse.is-open,
  .navbar.navbar-expand-xl .navbar-collapse.collapsing { display: block !important; }
  .navbar.navbar-expand-xl .navbar-nav {
    display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important;
    gap: 0 !important; max-height: min(70vh, 570px); overflow-y: auto;
    padding: .45rem 0; margin: .3rem 0 0; border: 1px solid rgba(255,255,255,.12);
    border-radius: 10px; background: #171717;
  }
  .navbar.navbar-expand-xl .nav-link {
    display: block; white-space: normal; padding: .65rem .9rem !important;
    border-bottom-width: 0 !important;
  }
  .navbar.navbar-expand-xl .nav-link.active { background: rgba(220,38,38,.12) !important; }
}
/* Fix content section alignment; leave original image paths and styles untouched. */
.container-xl.content-image, .container-xl.content-img-wrap {
  width: 100%; margin-left: auto !important; margin-right: auto !important;
  max-width: min(100%, 1200px); padding-left: clamp(1rem, 3vw, 1.5rem);
  padding-right: clamp(1rem, 3vw, 1.5rem);
  text-align: center;
}
/* Prevent auto-fit card minimum sizes from creating mobile horizontal overflow. */
.grid-3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); }
.grid-4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 225px), 1fr)); }
.grid-3 > *, .grid-4 > *, .hero-content > * { min-width: 0; }
@media (min-width: 768px) and (max-width: 1099.98px) {
  .grid-3, .grid-4 { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
}
@media (max-width: 767.98px) {
  .navbar .navbar-brand .brand-logo { width: 132px; max-height: 47px; }
  .hero-section { min-height: 0 !important; padding: 3rem 1rem !important; background-attachment: scroll !important; }
  .hero-content { grid-template-columns: minmax(0,1fr) !important; gap: 1.25rem !important; }
  .hero-h1 { font-size: clamp(1.8rem, 8vw, 2.35rem) !important; line-height: 1.25 !important; }
  .hero-h1-main { font-size: clamp(2rem, 9vw, 2.8rem) !important; line-height: 1.2 !important; }
  .hero-h1-sub { font-size: clamp(1.1rem, 5vw, 1.4rem) !important; line-height: 1.45 !important; }
  .hero-subheading, .hero-sub { font-size: 1rem !important; line-height: 1.65 !important; }
  .section-title { font-size: clamp(1.35rem, 6vw, 1.85rem) !important; line-height: 1.35 !important; }
  .grid-3, .grid-4 { grid-template-columns: minmax(0,1fr) !important; gap: 1rem !important; }
  .feature-card, .payment-card, .provider-card { padding: 1.35rem !important; }
  .content-section { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }
  .container-xl.content-image, .container-xl.content-img-wrap { padding-left: 1rem; padding-right: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .navbar .nav-link, .feature-card, .provider-card { transition-duration: .01ms !important; }
}
