/* Public-site responsive refinements. Desktop brand designs remain independent. */
.u-container.p2-policy-grid { width: min(940px, calc(100% - 32px)); max-width: calc(100% - 32px); min-width: 0; }
@media (max-width: 1280px) {
  .ve-hero { overflow: clip; }
  .p2-header-inner { grid-template-columns: minmax(0, 1fr) auto auto; }
  .p2-site-header .p2-header-actions { grid-column: 2; grid-row: 1; min-width: 0; }
  .p2-menu-button { grid-column: 3; grid-row: 1; }
  .p2-site-header .p2-navigation {
    display: none; flex-wrap: nowrap; gap: 0;
    top: 100%; max-height: calc(100vh - 88px); max-height: calc(100dvh - 88px);
    overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
    padding: 8px 20px 16px; box-shadow: 0 16px 30px #0005;
  }
  .p2-site-header .p2-navigation.is-open { display: flex; }
  .p2-site-header .p2-navigation a { min-height: 46px; padding: 14px 0; font-size: 13px; white-space: normal; }
  .p2-navigation a + a { border-top: 1px solid var(--p2-rule); }
  .p2-menu-button.is-open { background: rgba(198, 168, 102, .16); border-color: var(--p2-gold); }
  body.p2-nav-open .p1-mobile-cta, body.p2-nav-open .u-chat-fab { visibility: hidden; pointer-events: none; }
}

@media (max-width: 760px) {
  html { scroll-padding-top: 80px; }
  /* Unlike overflow:hidden, clip does not break the sticky header. */
  @supports (overflow: clip) { body .u-page { overflow: clip; } }
  .u-container { max-width: calc(100% - 32px); }
  .p2-header-inner { min-height: 64px; max-width: calc(100% - 24px); gap: 8px; }
  .p2-brand-mark { min-width: 0; gap: 8px; letter-spacing: .16em; }
  .p2-brand-mark .u-brand-logo { width: 36px; height: 36px; }
  .p2-header-actions { gap: 4px; }
  .p2-site-header .p2-header-quote, .p2-site-header .p2-header-actions .p2-account-link { display: none; }
  .p2-navigation { left: -12px; right: -12px; padding-inline: 20px; }
  .p2-language-options { max-width: calc(100vw - 32px); }

  .u-page main :is(h1, h2, h3, p, li, dd) { overflow-wrap: anywhere; }
  body .u-page h1 { font-size: clamp(30px, 8.8vw, 40px); line-height: 1.12; letter-spacing: -.025em; }
  body .p2-main h2 { font-size: clamp(26px, 7.6vw, 34px); line-height: 1.16; }
  body .p2-main h3 { line-height: 1.25; }
  .p2-eyebrow { font-size: 10px; line-height: 1.6; letter-spacing: .12em; }
  .p2-eyebrow::before { flex: 0 0 20px; width: 20px; }
  .p2-button { min-height: 48px; height: auto; padding: 13px 16px; font-size: 12px; line-height: 1.4; letter-spacing: .055em; text-align: center; }
  .p2-button svg, .p2-text-link svg { flex-shrink: 0; }
  .p2-text-link { min-height: 44px; font-size: 12px; line-height: 1.5; letter-spacing: .055em; }

  .p2-home-hero { height: auto; min-height: 0; }
  .p2-home-hero__content { height: auto; min-height: 0; padding-top: 40px; padding-bottom: 32px; }
  .p2-home-hero h1 { margin: 16px 0 18px; }
  .p2-home-hero__content > p { font-size: 16px; line-height: 1.65; }
  .p2-home-hero__media img { object-position: 62% center; }
  .p2-home-hero__shade { background: linear-gradient(90deg, #040506ed, #040506a6), linear-gradient(0deg, #040506b8, transparent); }
  .p2-hero-actions { margin-top: 24px; gap: 10px; }
  .p2-hero-facts { position: relative; }
  .p2-hero-facts .u-container { padding-block: 16px; gap: 10px; }
  .p2-hero-facts span { font-size: 10px; line-height: 1.5; letter-spacing: .05em; }
  .p2-hero-facts i { flex: 0 0 5px; }
  .rd-hero .rd-hero-inner { padding: 24px; gap: 20px; }
  .rd-hero .rd-logo-box { min-height: 120px; padding: 20px; }
  .rd-hero .rd-logo-box img { max-height: 72px; object-fit: contain; }
  .rd-hero .rd-cta-row { flex-direction: column; gap: 10px; }
  .rd-hero .u-btn { width: 100%; height: auto; min-height: 48px; padding: 12px; font-size: 14px; white-space: normal; text-align: center; }
  .p2-page-hero > .u-container { min-height: 0; padding-top: 42px; padding-bottom: 38px; }
  .p2-page-hero h1 { margin: 16px 0; }
  .p2-page-hero p, .p2-section-heading p, .p2-area-section p { font-size: 16px; line-height: 1.7; }
  .p2-section, .p2-brand-section, .p2-area-section, .p4-related { padding-block: 48px; }
  .p2-section-heading { margin-bottom: 28px; }
  .p2-heading-row .p2-section-heading { margin-bottom: 20px; }
  .p2-heading-row > .p2-text-link { margin-bottom: 24px; }
  .p2-info-card, .p2-service-card { min-height: 0; padding: 22px; gap: 16px; }
  .p2-info-card h3, .p2-service-card h2 { margin: 0; }
  .p2-info-card p, .p2-service-card p, .p2-process-grid p, .p2-solution-card p,
  .p2-primary-cta p, .p4-related__card p, .p2-checklist-grid > div > p { font-size: 15px; line-height: 1.7; }
  .p2-info-card i, .p2-service-card i { margin-top: 0; }
  .p2-process-grid article { gap: 10px; }
  .p2-split-grid, .p2-about-intro, .p2-contact-layout { gap: 30px; }
  .p2-split-image img, .p2-about-intro img { height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
  .p2-split-image::before { left: -8px; top: -8px; width: 70px; height: 70px; }
  .p2-split-image figcaption { right: 12px; left: 12px; font-size: 10px; line-height: 1.5; }
  .p2-primary-cta { padding-block: 42px; }
  .p2-primary-cta > .u-container { gap: 24px; }
  .p2-product-paths { padding-block: 40px; }
  .p2-product-paths > .u-container { gap: 24px; }

  .p2-map-card { min-height: 0; }
  .p2-map-location { min-height: 150px; padding: 20px; }
  .p2-map-frame--private, .p2-map-frame iframe { min-height: 220px; }
  .p2-map-location address { font-size: 13px; }
  .p2-reviews-pending { padding: 24px 20px; }
  .p2-review-card p { font-size: 14px; }
  .p2-review-summary > div { flex-wrap: wrap; }

  .p2-brand-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .p2-brand-card { min-width: 0; min-height: 250px; padding: 16px 10px; }
  .p2-brand-card > div { height: 80px; }
  .p2-brand-card img { max-width: 100%; max-height: 64px; }
  .p2-brand-card img[src$="/liontron/logo.jpg"] { width: 76px; max-height: 76px; }
  .p2-brand-card h3 { font-size: 18px; margin: 12px 0 8px; overflow-wrap: anywhere; }
  .p2-brand-card > span { font-size: 10px; letter-spacing: .03em; padding-bottom: 16px; }
  .p2-brand-card > a { width: 100%; min-height: 44px; justify-content: center; padding: 10px 6px; font-size: 12px; }
  .p2-logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p2-logo-grid > a { min-width: 0; min-height: 160px; padding: 20px 12px; border-right: 1px solid var(--p2-rule); }
  .p2-logo-grid > a:nth-child(2n) { border-right: 0; }
  .p2-logo-grid span { font-size: 10px; letter-spacing: .03em; }
  .p2-logo-grid strong { font-size: 14px; }

  /* Native swipe rail keeps the six social posts compact and all links reachable. */
  .p2-instagram-feed { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 86%; gap: 14px; overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 14px; }
  .p2-main .p2-instagram-feed .p2-instagram-post { grid-column: auto; scroll-snap-align: start; }
  .p2-instagram-post p { font-size: 14px; }
  .p2-instagram-post small, .p2-instagram-post strong { font-size: 10px; }
  .p2-instagram-heading > .p2-button { margin: 0 0 24px; }
  .p2-kb-prose { font-size: 16px; line-height: 1.75; padding: 26px 20px; }
  .p2-kb-card p { font-size: 14px; }
  .p2-kb-languages a { min-height: 44px; font-size: 12px; }
  .p4-related__card { min-height: 0; gap: 16px; }
  .p4-related__card h3, .p4-related__card strong { margin-top: 0; }

  .p2-form-panel { padding: 22px 18px; min-width: 0; }
  .p2-form-panel > p, .p2-contact-steps, .p2-direct-links strong { font-size: 15px; }
  .p2-form-grid label { min-width: 0; font-size: 13px; }
  .p2-form-context { align-items: flex-start; flex-direction: column; gap: 8px; }
  .p2-policy-hero { padding-block: 42px 32px; }
  .p2-policy-content { padding-block: 32px 48px; }
  .p2-policy-section p, .p2-policy-section li { font-size: 15px; }
  .p2-lead-privacy, .p2-privacy-acknowledgement { font-size: 13px; }
  /* 16px fields avoid iOS focus zoom; do not enlarge checkboxes or sliders. */
  body .u-page input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]):not([type="submit"]):not([type="button"]),
  body .u-page textarea, body .u-page select { font-size: 16px; max-width: 100%; }

  .p2-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
  .p2-footer-intro, .p2-footer-contact { grid-column: 1 / -1; }
  .p2-footer-grid > div { min-width: 0; }
  .p2-site-footer .u-footer-links { gap: 0; }
  .p2-site-footer .u-footer-links a, .p2-footer-contact > a { min-height: 44px; display: flex; align-items: center; font-size: 14px; overflow-wrap: anywhere; }
  .p2-footer-intro > p { font-size: 14px; }
  .p2-footer-contact { gap: 2px; }
  .p2-footer-contact .u-flag-btn { width: 44px; height: 44px; }
  .p2-footer-bottom { flex-wrap: wrap; gap: 12px; }
  .p1-mobile-cta > a { font-size: 11px; }
  body.p1-has-mobile-cta .u-chat-fab { width: 48px; height: 48px; right: 12px; bottom: calc(76px + env(safe-area-inset-bottom)); border-radius: 50%; }
  .p2-consent-panel { max-height: calc(100vh - 100px); max-height: calc(100dvh - 100px); overflow-y: auto; }
}

@media (max-width: 350px) {
  .p2-brand-grid { grid-template-columns: minmax(0, 1fr); }
  .p2-brand-card { min-height: 220px; }
  .p2-footer-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Keep the propulsion image and its explanation in normal flow on narrow screens. */
@media (max-width: 820px) {
  .kr-hero__visual { display: flex; flex-direction: column; min-height: 0; gap: 16px; }
  .kr-hero__visual .kr-drive-visual { position: static; width: 100%; max-width: 100%; margin: 0; transform: none; }
  .kr-hero__visual .kr-visual-card { position: relative; inset: auto; width: 100%; min-width: 0; transform: none; }
}
