/*
 * LaMilka 0.4.49 — cross-route Lovable parity and EN/DE dimensional stability.
 * Source of truth: the supplied Lovable React project. This layer resolves
 * language-dependent intrinsic sizing and restores the source container rules.
 */

/* All shared grid/flex children must be allowed to shrink. Long German labels
 * must wrap inside their assigned source track instead of widening a page. */
.lamilka-header-bar > *,
.lamilka-desktop-navigation > *,
.lamilka-home-feature-grid > *,
.lamilka-home-category-grid > *,
.lamilka-tours__cards > *,
.lamilka-tours__cta-grid > *,
.lamilka-detail__grid > *,
.lamilka-transfer__layout > *,
.lamilka-private__reasons > *,
.lamilka-private__ideas > div > *,
.lamilka-aesthetic-hub__categories > *,
.lamilka-aesthetic-hub__category-track > *,
.lamilka-aesthetic-hub__trust-grid > *,
.lamilka-about__cards > *,
.lamilka-about__services > *,
.lamilka-about__regions > *,
.lamilka-contact-source__option-grid > *,
.lamilka-contact-source__info-grid > *,
.lamilka-riviera-news__cards > *,
.lamilka-riviera-post-grid > *,
.lamilka-riviera-destination__cards > *,
.lamilka-concierge__steps > *,
.lamilka-concierge__service-track > *,
.lamilka-concierge__form-grid > *,
.lamilka-concierge__trust > div > div > *,
.lamilka-navigation-cards > * {
  min-width: 0 !important;
}

/* Header is one immutable 1280px Lovable component on every route. */
.lamilka-header-bar,
body.lamilka-tour-detail .lamilka-header-bar {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 1280px !important;
  margin-inline: auto !important;
}
@media (min-width: 1280px) {
  .lamilka-header-bar,
  body.lamilka-tour-detail .lamilka-header-bar {
    padding-inline: 24px !important;
  }
  .lamilka-desktop-navigation {
    gap: 24px !important;
    justify-content: center !important;
  }
  .lamilka-nav-link,
  .lamilka-nav-dropdown-toggle,
  .lamilka-nav-link.is-active,
  .lamilka-nav-dropdown-toggle.is-active {
    font-weight: 500 !important;
  }
}

/* --------------------------------------------------------------------------
   AIRPORT TRANSFERS — identical EN/DE geometry and source image presentation.
   The source image is width:100%; height:auto. It is never cropped or zoomed.
   -------------------------------------------------------------------------- */
.lamilka-transfer__layout {
  box-sizing: border-box !important;
  display: block !important;
  width: 100% !important;
  max-width: 1280px !important;
  margin: 4px auto 0 !important;
  padding-inline: 16px !important;
}
.lamilka-transfer__aside,
.lamilka-transfer__booking {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
.lamilka-transfer__aside {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  position: static !important;
}
.lamilka-transfer__hero {
  box-sizing: border-box !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 16px !important;
  filter: none !important;
  opacity: 1 !important;
  transform: none !important;
}
.lamilka-transfer__prices {
  box-sizing: border-box !important;
  width: 88% !important;
  max-width: 88% !important;
  margin: -8px auto 0 !important;
}
.lamilka-transfer__prices li,
.lamilka-transfer__prices li > span,
.lamilka-transfer__benefits li,
.lamilka-transfer__group {
  min-width: 0 !important;
}
.lamilka-transfer__benefits {
  box-sizing: border-box !important;
  width: 100% !important;
  margin: -8px 0 0 !important;
}
.lamilka-transfer__group {
  box-sizing: border-box !important;
  width: 100% !important;
  margin: -16px 0 0 !important;
}
.lamilka-transfer__booking {
  margin-top: 24px !important;
}
.lamilka-transfer__direction button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
}
.lamilka-transfer__direction-icon {
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  flex: 0 0 20px !important;
}
.lamilka-transfer__direction button > span {
  min-width: 0 !important;
}
.lamilka-transfer__field,
.lamilka-transfer__field label,
.lamilka-transfer__twocol > *,
.lamilka-transfer__details,
.lamilka-transfer__summary,
.lamilka-transfer__payment,
.lamilka-transfer__secure-payment {
  min-width: 0 !important;
}

@media (min-width: 1024px) {
  .lamilka-transfer__layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 40px !important;
    margin-top: 12px !important;
  }
  .lamilka-transfer__aside {
    gap: 20px !important;
    position: sticky !important;
    top: 96px !important;
    align-self: start !important;
  }
  .lamilka-transfer__prices {
    margin-top: -16px !important;
  }
  .lamilka-transfer__benefits {
    margin-top: -12px !important;
  }
  .lamilka-transfer__group {
    margin-top: -20px !important;
  }
  .lamilka-transfer__booking {
    margin-top: 0 !important;
  }
}

/* Keep long German table and trust copy inside the same source width as EN. */
.lamilka-transfer[data-language="de"] .lamilka-transfer__prices li > span,
.lamilka-transfer[data-language="de"] .lamilka-transfer__benefits li,
.lamilka-transfer[data-language="de"] .lamilka-transfer__group {
  overflow-wrap: normal !important;
  word-break: normal !important;
}
@media (min-width: 1024px) {
  .lamilka-transfer[data-language="de"] .lamilka-transfer__prices li > span,
  .lamilka-transfer[data-language="en"] .lamilka-transfer__prices li > span,
  .lamilka-transfer[data-language="de"] .lamilka-transfer__benefits li,
  .lamilka-transfer[data-language="en"] .lamilka-transfer__benefits li {
    white-space: nowrap !important;
  }
}

/* --------------------------------------------------------------------------
   SHARED TOUR TEMPLATE — source max-w-[1200px], 32px gap, 360px booking rail.
   -------------------------------------------------------------------------- */
.lamilka-detail {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 1200px !important;
  margin-inline: auto !important;
}
.lamilka-detail__grid {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
.lamilka-detail__grid > article,
.lamilka-detail__booking,
.lamilka-detail__gallery,
.lamilka-detail__features,
.lamilka-detail__pills,
.lamilka-detail__section,
.lamilka-detail__faq {
  min-width: 0 !important;
}
@media (min-width: 1024px) {
  .lamilka-detail__grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 360px !important;
    gap: 32px !important;
    align-items: start !important;
  }
}

/* Lovable does not activate the two-column tour layout before 1024px. Older
 * alignment CSS used 901px and left a narrow sticky booking card on tablets. */
@media (min-width: 901px) and (max-width: 1023px) {
  .lamilka-detail__booking {
    position: static !important;
    top: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 28px !important;
  }
}

/* Lovable EN uses 12px mobile gutters and 24px from sm upward. The standard
 * German template uses 24px throughout. German Water Sports is the exception. */
@media (max-width: 639px) {
  body.lamilka-tour-detail-en .lamilka-detail {
    padding-inline: 12px !important;
  }
  body.lamilka-tour-detail-de .lamilka-detail {
    padding-inline: 24px !important;
  }
  body.lamilka-tour-detail-de .lamilka-detail[data-tour-detail="water-sports"] {
    padding-inline: 12px !important;
  }
}
@media (min-width: 640px) {
  .lamilka-detail {
    padding-inline: 24px !important;
  }
}

/* Source galleries share one clipped rounded outer frame; internal joins stay
 * square and the six source assets keep their configured cover crops. */
.lamilka-detail__gallery {
  overflow: hidden !important;
  border-radius: 12px !important;
  isolation: isolate !important;
}
.lamilka-detail__gallery button {
  border-radius: 0 !important;
}

/* --------------------------------------------------------------------------
   PAGE-FAMILY WIDTH GUARDRAILS — exact Lovable component owners.
   Full-width background sections remain full width; only their source inner
   wrappers are constrained. This prevents a width fix on one page from
   narrowing the background or editorial column on another page.
   -------------------------------------------------------------------------- */

/* 1280px / max-w-7xl shells. */
.lamilka-home-feature-grid,
.lamilka-home-best-sellers,
.lamilka-home-category-grid,
.lamilka-home-trust-panel,
.lamilka-tours__cards,
.lamilka-tours__cta-grid,
.lamilka-riviera-news__inner,
.lamilka-riviera-category__inner,
body.lamilka-best-of-riviera-overview .lamilka-riviera-destination__inner,
.lamilka-riviera-destination[data-destination-type="travel"] > .lamilka-riviera-destination__inner,
.lamilka-riviera-destination[data-destination-type="guest-gallery"] .lamilka-riviera-destination__inner,
.lamilka-aesthetic-hub__category-track,
.lamilka-aesthetic-hub__trust > div,
.lamilka-contact-source__why > div,
.lamilka-about__cards > div,
.lamilka-about__services > div,
.lamilka-about__partners > div,
.lamilka-about__regions > div {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 1280px !important;
  margin-inline: auto !important;
}

/* 1184px source contact-option shell. */
.lamilka-contact-source__options > div {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 1184px !important;
  margin-inline: auto !important;
}

/* 1152px / max-w-6xl shells. */
.lamilka-private__reasons,
.lamilka-private__ideas > div,
.lamilka-about__trust > h2,
.lamilka-about__trust > div,
.lamilka-about__licence-grid,
.lamilka-tours__heading,
.lamilka-tours__filter-set,
.lamilka-contact-source__licensed > div {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 1152px !important;
  margin-inline: auto !important;
}

/* 1024px / max-w-5xl shells. */
.lamilka-aesthetic-hub__hero > div,
.lamilka-contact-source__info > div,
.lamilka-private__real > *,
.lamilka-licences__hero > div,
.lamilka-licences__cards {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 1024px !important;
  margin-inline: auto !important;
}

/* Full-width source bands whose content is constrained separately. */
.lamilka-private__real,
.lamilka-aesthetic-hub__contact,
.lamilka-aesthetic-hub__faq,
.lamilka-contact-source__options,
.lamilka-contact-source__form,
.lamilka-contact-source__why,
.lamilka-contact-source__hands,
.lamilka-contact-source__info,
.lamilka-contact-source__faq,
.lamilka-contact-source__licensed {
  width: 100% !important;
  max-width: none !important;
}

/* 960px / max-w-[60rem] legal reading column. */
.lamilka-legal-document {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 960px !important;
  margin-inline: auto !important;
}

/* 896px / max-w-4xl editorial and FAQ columns. */
.lamilka-about__intro,
.lamilka-about__faq,
.lamilka-riviera-news__faq,
.lamilka-riviera-category__faq,
.lamilka-riviera-destination__faq {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 896px !important;
  margin-inline: auto !important;
}


/* Best-of-Riviera detail pages use Lovable's max-w-4xl editorial shell. */
body.lamilka-best-of-riviera-detail .lamilka-riviera-best-detail > .lamilka-riviera-destination__inner {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 896px !important;
  margin-inline: auto !important;
}

/* 832px / max-w-[52rem] article columns. */
.lamilka-riviera-article__content,
.lamilka-riviera-post__inner {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 832px !important;
  margin-inline: auto !important;
}

/* 768px / max-w-3xl task and focused-content shells. */
.lamilka-private__intro,
.lamilka-private__contact,
.lamilka-private__faq,
.lamilka-contact-source__form > div,
.lamilka-contact-source__hands > div,
.lamilka-contact-source__faq > div,
.lamilka-aesthetic-hub__faq > div,
.lamilka-faq-page__main > div,
.lamilka-licences__details {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 768px !important;
  margin-inline: auto !important;
}

/* Lovable narrows the Aesthetic contact form to 620px from md upward. */
.lamilka-aesthetic-hub__contact > div {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 768px !important;
  margin-inline: auto !important;
}
@media (min-width: 768px) {
  .lamilka-aesthetic-hub__contact > div {
    max-width: 620px !important;
  }
}

/* Source images are unfiltered. Preserve Lovable's own hover transforms; only
 * the transfer hero is explicitly transform-free because its source has none. */
.lamilka-transfer__hero,
.lamilka-detail__gallery img,
.lamilka-home-feature img,
.lamilka-home-category img,
.lamilka-tours__cta-grid img,
.lamilka-riviera-news__cards img,
.lamilka-riviera-post-card img,
.lamilka-aesthetic-hub__category img {
  filter: none !important;
  opacity: 1 !important;
  mix-blend-mode: normal !important;
}
