/* Louvani Jets — unified fluid responsive layer
   Loaded last so legacy page styles converge on one proportional system. */

:root {
  --fluid-gutter: clamp(1rem, 3.1vw, 4.5rem);
  --fluid-section: clamp(3.5rem, 7vw, 8.5rem);
  --fluid-section-compact: clamp(2.5rem, 5vw, 6rem);
  --fluid-gap: clamp(1rem, 2.1vw, 2rem);
  --fluid-gap-lg: clamp(1.5rem, 3.5vw, 4.5rem);
  --fluid-radius: clamp(1rem, 1.6vw, 1.75rem);
  --fluid-container: 112rem;
  --fluid-reading: 68ch;
  --fluid-display: clamp(2rem, 2.3rem + 2.6vw, 5.75rem);
  --fluid-h2: clamp(1.65rem, 1.25rem + 1.65vw, 3.6rem);
  --fluid-h3: clamp(1.2rem, 1.03rem + .65vw, 2rem);
  --fluid-body: clamp(.95rem, .9rem + .16vw, 1.125rem);
  --fluid-small: clamp(.72rem, .69rem + .1vw, .82rem);
  --fluid-button: clamp(.65rem, .61rem + .12vw, .76rem);
}

html {
  min-width: 20rem;
  overflow-x: clip !important;
  text-size-adjust: 100%;
}

body {
  min-width: 20rem;
  overflow-x: clip !important;
  font-size: var(--fluid-body) !important;
}

main,
section,
header,
footer,
.container,
.topbar-inner,
.footer-menu-grid,
.event-content,
.plan-card,
.contact-card {
  min-width: 0;
}

img,
video,
svg,
canvas,
iframe {
  max-width: 100%;
}

img,
video {
  height: auto;
}

.container {
  width: min(100%, var(--fluid-container)) !important;
  max-width: var(--fluid-container) !important;
  padding-inline: var(--fluid-gutter) !important;
  margin-inline: auto !important;
}

p,
li,
.hero-copy,
.hero-sub,
.content-hero p,
.event-panel p,
.event-panel li,
.event-location-cta p,
.landing-hero-copy p,
.landing-panel p,
.landing-cta p,
.faq-answer p,
.faq-answer li,
.contact-copy,
.contact-note {
  font-size: var(--fluid-body) !important;
  line-height: clamp(1.62, 1.5 + .35vw, 1.88) !important;
}

h1,
.hero h1,
.content-hero h1,
.signature-page .content-hero h1,
.event-hero-copy h1,
.landing-hero-copy h1,
.faq-detail-copy h1 {
  font-size: var(--fluid-display) !important;
  line-height: .98 !important;
  max-width: min(100%, 18ch) !important;
  overflow: visible !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  text-wrap: balance;
}

h2,
.section-title,
.event-panel h2,
.landing-cta h2,
.contact-intro h2 {
  font-size: var(--fluid-h2) !important;
  line-height: 1.08 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  text-wrap: balance;
}

h3,
.card h3,
.page-card h3,
.event-card h3,
.landing-panel h3,
.aircraft-category h2 {
  font-size: var(--fluid-h3) !important;
  line-height: 1.14 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  text-wrap: balance;
}

.section-eyebrow,
.mini,
.card-kicker,
.route-kicker,
.field-label,
.field-label-left,
.legal-title,
.footer-menu-title {
  font-size: var(--fluid-small) !important;
}

.btn,
.menu-trigger,
.drawer-nav a,
.event-tab {
  font-size: var(--fluid-button) !important;
}

.btn {
  min-height: clamp(2.75rem, 2.55rem + .65vw, 3.35rem);
  padding: clamp(.68rem, .55rem + .35vw, .92rem) clamp(1rem, .72rem + 1vw, 1.85rem) !important;
}

.section,
.content-section,
.landing-section,
.conversion-section,
.journey-highlights-section,
.journey-enquiry-section,
.requested-routes-section,
.charter-search-section,
.faq-section {
  padding-block: var(--fluid-section) !important;
}

.section[style*="padding-top:0"],
.section[style*="padding-top: 0"] {
  padding-top: 0 !important;
}

.content-hero {
  padding-block: clamp(8rem, 10vw, 12rem) clamp(3rem, 5vw, 6rem) !important;
}

.hero,
.hero-content {
  min-height: clamp(36rem, 76svh, 62rem) !important;
}

.hero-content {
  padding: clamp(7rem, 13vh, 12rem) var(--fluid-gutter) clamp(3.5rem, 8vh, 7rem) !important;
}

.hero-copy,
.hero-sub,
.content-hero p,
.landing-hero-copy p,
.event-hero-copy p {
  width: min(100%, var(--fluid-reading));
}

.cards,
.page-grid,
.event-grid,
.landing-panel-grid,
.conversion-card-grid,
.journey-highlights-grid,
.requested-route-grid,
.charter-search-grid,
.review-grid,
.next-steps-grid,
.footer-menu-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)) !important;
  gap: var(--fluid-gap) !important;
}

.cards > *,
.page-grid > *,
.event-grid > *,
.landing-panel-grid > *,
.conversion-card-grid > *,
.journey-highlights-grid > *,
.requested-route-grid > *,
.charter-search-grid > *,
.review-grid > *,
.next-steps-grid > * {
  min-width: 0;
}

.about-grid,
.contact-layout,
.journey-introduction-inner,
.event-location-layout,
.landing-cta-inner,
.aircraft-category {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 27rem), 1fr)) !important;
  gap: var(--fluid-gap-lg) !important;
  align-items: center;
}

.plan-grid,
.contact-form-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)) !important;
  gap: var(--fluid-gap) !important;
}

.plan-grid .submit-col,
.submit-row,
.contact-note,
.privacy-consent {
  min-width: 0;
}

.about-card,
.card,
.page-card,
.contact-card,
.landing-panel,
.conversion-card,
.journey-highlight,
.charter-search-card,
.plan-card,
.drawer-box {
  border-radius: var(--fluid-radius) !important;
  padding: clamp(1.25rem, 1rem + 1vw, 2.25rem) !important;
}

.card-media,
.event-card .media,
.event-collection-image,
.journey-image-card img,
.aircraft-category-media img {
  width: 100%;
  height: clamp(12rem, 17vw, 22rem) !important;
  object-fit: cover;
}

.landing-hero,
.event-hero,
.event-hero-copy {
  min-height: clamp(34rem, 76svh, 58rem) !important;
}

.landing-hero-copy,
.event-hero-copy {
  padding-block: clamp(8rem, 15vh, 13rem) clamp(3.5rem, 8vh, 7rem) !important;
}

.event-content {
  padding-top: var(--fluid-section-compact) !important;
}

.event-location-layout {
  align-items: start;
}

.event-map-shell,
.plan-map-shell {
  width: 100%;
  height: clamp(18rem, 38vw, 32rem) !important;
  border-radius: var(--fluid-radius) !important;
}

.event-tabs {
  gap: clamp(.75rem, 2vw, 1.5rem) !important;
  overflow-x: auto;
  scrollbar-width: none;
}

.event-tabs::-webkit-scrollbar { display: none; }
.event-tab { flex: 0 0 auto; }

.contact-panels {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)) !important;
  gap: var(--fluid-gap-lg) !important;
}

.contact-panel a {
  font-size: clamp(1.15rem, .95rem + .8vw, 1.75rem) !important;
  overflow-wrap: anywhere;
}

.footer {
  padding-block: var(--fluid-section-compact) clamp(2rem, 4vw, 4rem) !important;
}

.footer-menu-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)) !important;
}

.topbar {
  padding-block: clamp(.65rem, 1.3vw, 1.25rem) !important;
}

.topbar-inner {
  grid-template-columns: minmax(2.5rem, 1fr) auto minmax(2.5rem, 1fr) !important;
  gap: clamp(.5rem, 1.4vw, 1.25rem) !important;
}

.brand-center img {
  width: clamp(6.25rem, 10vw, 10rem) !important;
  max-width: 100% !important;
  max-height: clamp(3.25rem, 7vw, 7.5rem) !important;
}

.top-right {
  gap: clamp(.35rem, 1vw, .9rem) !important;
  flex-wrap: nowrap !important;
}

.drawer {
  width: min(28rem, 94vw) !important;
  padding: clamp(1rem, 2.5vw, 1.75rem) clamp(1rem, 3vw, 2rem) max(1.25rem, env(safe-area-inset-bottom)) !important;
}

.drawer-nav {
  display: grid !important;
  grid-template-rows: none !important;
  grid-auto-rows: minmax(2.5rem, 1fr);
  align-content: stretch !important;
  gap: 0 !important;
}

.drawer-nav a {
  display: flex !important;
  align-items: center;
  min-height: 0 !important;
  padding-block: clamp(.45rem, 1.1vh, .85rem) !important;
  font-size: clamp(.78rem, .68rem + .35vw, 1rem) !important;
  line-height: 1.25 !important;
}

.drawer-top { margin-bottom: clamp(.75rem, 2vh, 1.4rem) !important; }
.drawer-box { margin-top: clamp(.75rem, 2vh, 1.4rem) !important; }

.field input,
.field select,
.field textarea,
input,
select,
textarea,
label {
  font-size: clamp(.9rem, .85rem + .16vw, 1rem) !important;
}

.field input,
.field select,
.field textarea {
  min-width: 0;
}

/* Preserve the compact premium FAQ accordion within the fluid type system. */
.faq-page .faq-question h2 {
  font-size: clamp(14px, .84rem + .12vw, 15px) !important;
  line-height: 1.42 !important;
  letter-spacing: .018em !important;
}

.faq-page .content-hero h1 {
  width: min(100%, 24ch);
  max-width: 24ch !important;
  font-size: clamp(1.5rem, 4vw, 3.4rem) !important;
  letter-spacing: .06em !important;
}

.faq-page .content-hero h1 span {
  display: block;
  white-space: nowrap !important;
}

/* Prevent display text from escaping its grid or colliding with adjacent media. */
main * {
  min-width: 0;
}

main h1,
main h2,
main h3 {
  max-width: 100%;
  white-space: normal !important;
}

/* Bespoke Services: retain the intended two-line hero beside its image. */
.bespoke-page .bespoke-hero {
  grid-template-columns: minmax(0, .47fr) minmax(0, .53fr) !important;
  gap: clamp(2rem, 3vw, 3.5rem) !important;
}

.bespoke-page .bespoke-hero h1 {
  width: 100%;
  max-width: none !important;
  font-size: clamp(2.1rem, 3vw, 3.65rem) !important;
  line-height: 1.08 !important;
}

.bespoke-page .bespoke-hero h1 span {
  display: block;
  white-space: nowrap !important;
}

.bespoke-page .bespoke-hero-visual {
  width: 100%;
}

/* About: balance the principal statement over exactly two desktop lines. */
.about-template .about-hero-grid {
  grid-template-columns: minmax(0, .47fr) minmax(0, .53fr) !important;
  gap: clamp(2.75rem, 4vw, 5rem) !important;
}

.about-template .about-hero .about-title {
  width: 100%;
  max-width: 100% !important;
  font-size: clamp(2.55rem, 3vw, 3.65rem) !important;
  letter-spacing: .025em !important;
  text-wrap: balance;
}

.about-template .about-hero .about-title span {
  display: block;
  white-space: nowrap !important;
}

/* Restore the Why Louvani standards panel's internal card layout. */
.why-louvani-page .why-section-card {
  display: block !important;
}

.why-louvani-page .why-standards-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(1rem, 1.5vw, 1.5rem) !important;
}

.why-louvani-page .why-standard h3 {
  font-size: clamp(1.08rem, 1vw, 1.35rem) !important;
}

.why-louvani-page .why-standard p {
  font-size: clamp(.9rem, .82rem + .18vw, 1rem) !important;
}

.faq-page .faq-answer p {
  font-size: clamp(.82rem, .78rem + .14vw, .9rem) !important;
  line-height: 1.72 !important;
}

/* Contact: full-width desktop form with four balanced field columns. */
.contact-page .contact-layout-premium,
.contact-page .contact-form-panel {
  width: 100% !important;
  max-width: none !important;
}

.contact-page .contact-enquiry-form {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(1rem, 1.6vw, 1.5rem) !important;
}

.contact-page .contact-phone-field {
  grid-column: span 2 !important;
}

.contact-page .contact-message-field,
.contact-page .contact-note,
.contact-page .submit-row,
.contact-page .contact-form-status {
  grid-column: 1 / -1 !important;
}

@media (max-width: 75rem) {
  .bespoke-page .bespoke-hero {
    grid-template-columns: 1fr !important;
  }

  .bespoke-page .bespoke-hero h1 {
    width: min(100%, 22ch);
  }

  .why-louvani-page .why-standards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .contact-page .contact-enquiry-form {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .about-template .about-hero-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 48rem) {
  :root { --fluid-gutter: clamp(1rem, 5vw, 1.5rem); }

  .topbar-inner,
  body:not(.menu-open) .topbar-inner,
  body.home-page:not(.menu-open) .topbar-inner {
    grid-template-columns: 2.5rem minmax(5rem, 1fr) auto !important;
  }

  .brand-center,
  body:not(.menu-open) .brand-center,
  body.home-page:not(.menu-open) .brand-center {
    position: static !important;
    transform: none !important;
    justify-self: center !important;
    width: auto !important;
  }

  .brand-center img,
  body:not(.menu-open) .brand-center img,
  body.home-page:not(.menu-open) .brand-center img {
    width: clamp(5.25rem, 24vw, 7.25rem) !important;
    max-width: none !important;
    max-height: 3.75rem !important;
  }

  .topbar .call-link,
  .top-whatsapp-link,
  .topbar .lang-wrap {
    display: none !important;
  }

  .top-right > .btn,
  body:not(.menu-open) .top-right > .btn {
    min-width: 0 !important;
    max-width: none !important;
    width: auto !important;
    min-height: 2.35rem !important;
    padding-inline: clamp(.65rem, 2.8vw, 1rem) !important;
    font-size: clamp(.56rem, 2.2vw, .68rem) !important;
    letter-spacing: .1em !important;
  }

  .menu-trigger > span:last-child { display: none !important; }

  .landing-actions,
  .hero-actions {
    align-items: stretch;
  }

  .landing-actions .btn,
  .hero-actions .btn {
    flex: 1 1 12rem;
  }

  .contact-panel {
    border-right: 0 !important;
    padding-right: 0 !important;
  }

  .contact-page .contact-enquiry-form {
    grid-template-columns: 1fr !important;
  }

  .contact-page .contact-phone-field {
    grid-column: 1 / -1 !important;
  }

  .bespoke-page .bespoke-hero {
    grid-template-columns: 1fr !important;
  }

  .bespoke-page .bespoke-hero h1 span {
    white-space: normal !important;
  }

  .about-template .about-hero .about-title {
    width: 100%;
    max-width: 18ch !important;
  }

  .about-template .about-hero .about-title span {
    white-space: normal !important;
  }

  .why-louvani-page .why-standards-grid {
    grid-template-columns: 1fr !important;
  }

  .footer-bottom {
    align-items: flex-start !important;
  }
}

@media (max-height: 45rem) {
  .drawer-box p { display: none; }
  .drawer-nav a { padding-block: .35rem !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* Three-mode planner: cohesive two-row selector on mobile only. */
@media (max-width: 760px) {
  body.home-page .plan-card-premium .plan-top {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: center !important;
    justify-items: center !important;
    row-gap: 6px !important;
  }

  body.home-page .plan-card-premium .plan-top > div:first-child {
    width: 100% !important;
    text-align: center !important;
    margin: 0 !important;
  }

  body.home-page .plan-card-premium .section-title {
    text-align: center !important;
    margin: 0 !important;
  }

  body.home-page .plan-card-premium .trip-toggle {
    box-sizing: border-box;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    justify-self: center !important;
    width: 100% !important;
    max-width: 360px !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
    overflow: hidden;
    border-radius: 16px;
  }

  body.home-page .plan-card-premium .trip-toggle button {
    box-sizing: border-box;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px;
    padding: 11px 12px !important;
    border-radius: 0;
    font-size: 10px !important;
    line-height: 1.2 !important;
    letter-spacing: .12em !important;
    text-align: center;
    white-space: nowrap !important;
  }

  body.home-page .plan-card-premium .trip-toggle [data-trip="return"] {
    border-left: 1px solid rgba(255,255,255,.12);
  }

  body.home-page .plan-card-premium .trip-toggle .homepage-multi-leg {
    grid-column: 1 / -1;
    border-top: 1px solid rgba(255,255,255,.12);
  }

  body.plan-flight-page:not(.home-page) .plan-card-premium .plan-top {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 16px !important;
  }

  body.plan-flight-page:not(.home-page) .plan-card-premium .plan-top > .section-title {
    justify-self: start !important;
  }

  body.plan-flight-page:not(.home-page) .plan-card-premium .trip-toggle {
    box-sizing: border-box;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    justify-self: stretch !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
    overflow: hidden;
    border-radius: 16px;
  }

  body.plan-flight-page:not(.home-page) .plan-card-premium .trip-toggle button {
    box-sizing: border-box;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px;
    padding: 11px 12px !important;
    border-radius: 0;
    font-size: 10px !important;
    line-height: 1.2 !important;
    letter-spacing: .12em !important;
    text-align: center;
    white-space: nowrap !important;
  }

  body.plan-flight-page:not(.home-page) .plan-card-premium .trip-toggle [data-trip="return"] {
    border-left: 1px solid rgba(255,255,255,.12);
  }

  body.plan-flight-page:not(.home-page) .plan-card-premium .trip-toggle [data-trip="multi-leg"] {
    grid-column: 1 / -1;
    border-top: 1px solid rgba(255,255,255,.12);
  }
}
