/* Keep Elementor wrappers transparent; the theme CSS remains authoritative. */
.elementor-page { --cvt-display: 'Bodoni 72', 'Didot', 'Times New Roman', serif; }

.elementor-page .elementor-widget,
.elementor-page .elementor-widget-container { margin: 0; }

.elementor-page .elementor-widget-text-editor,
.elementor-page .elementor-widget-text-editor > .elementor-widget-container,
.elementor-page .elementor-widget-heading,
.elementor-page .elementor-widget-heading > .elementor-widget-container,
.elementor-page .elementor-widget-button,
.elementor-page .elementor-widget-button > .elementor-widget-container { display: contents; }

.elementor-page .elementor-heading-title {
  color: inherit;
}

.elementor-page .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

.elementor-page .elementor-button {
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  padding: 0;
}

.elementor-page .elementor-button:hover,
.elementor-page .elementor-button:focus { background: transparent; color: inherit; }

.elementor-page .elementor .e-con {
  --container-max-width: none;
  --padding-top: initial;
  --padding-right: initial;
  --padding-bottom: initial;
  --padding-left: initial;
  --gap: initial;
}

.elementor-page .elementor .e-con.luxHero,
.elementor-page .elementor .e-con.trustRibbon,
.elementor-page .elementor .e-con.homeCollections,
.elementor-page .elementor .e-con.process,
.elementor-page .elementor .e-con.serviceArea,
.elementor-page .elementor .e-con.bigCta { max-width: none; width: 100%; }

.elementor-page .elementor .e-con.luxHero { height: 790px; min-height: 790px; }
.elementor-page .elementor .e-con.signatureStatement { padding: 135px 0 125px; }
.elementor-page .elementor .e-con.seoAnswer { padding: 105px max(24px, calc((100vw - 1180px) / 2)); }
.elementor-page .elementor .e-con.serviceSuite { padding-top: 125px; padding-bottom: 135px; }
.elementor-page .elementor .e-con.homeCollections { padding: 130px 0; }
.elementor-page .elementor .e-con.process { padding: 135px 0; }
.elementor-page .elementor .e-con.serviceArea { padding: 125px 0; }
.elementor-page .elementor .e-con.bigCta { padding: 135px 24px; }

.elementor-page .elementor .e-con.homeCollections {
  background-color: #211a20 !important;
  background-image: linear-gradient(135deg, #171216, #2a2028 70%, #151113) !important;
}

.elementor-page .elementor .e-con.bigCta {
  align-items: center;
  text-align: center;
  background-color: #171316 !important;
  background-image: linear-gradient(#191218e8, #191218e8), url('../images/tea-hills.webp') !important;
  background-position: center !important;
  background-size: cover !important;
}

.elementor-page .elementor .bigCta .elementor-button {
  border: 0;
  background: var(--cvt-gold, #c7a83d) !important;
  color: #201a20 !important;
}

.elementor-page .elementor .e-con.shell {
  width: min(1240px, calc(100% - 64px));
  margin-inline: auto;
}

.elementor-page .elementor .heroCopy,
.elementor-page .elementor .heroAside,
.elementor-page .elementor .trustItem,
.elementor-page .elementor .signatureHeading,
.elementor-page .elementor .answerHeading,
.elementor-page .elementor .answerCopy,
.elementor-page .elementor .serviceHeading,
.elementor-page .elementor .collectionCard,
.elementor-page .elementor .collectionsHeading,
.elementor-page .elementor .processStep,
.elementor-page .elementor .destinationHeading,
.elementor-page .elementor .destinationCopy { display: flex; flex-direction: column; }

.elementor-page .elementor .heroLinks {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 26px;
}

.elementor-page .elementor .heroEdition,
.elementor-page .elementor .heroAside {
  width: auto;
  max-width: none;
}

.elementor-page .elementor .heroCopy > .elementor-widget-text-editor p {
  max-width: 535px;
  font-size: 18px;
  line-height: 1.65;
  color: #eee9e3;
}

.elementor-page .elementor .heroLinks > .elementor-widget-button:first-child .elementor-button {
  background: linear-gradient(135deg, #d8bd59, #ad8c2d);
  color: #201a20;
  border: 1px solid #c6a63a;
  padding: 19px 23px;
}

.elementor-page .elementor .heroLinks > .elementor-widget-button:last-child .elementor-button {
  border: 0;
  border-bottom: 1px solid #ffffff99;
  background: transparent !important;
  color: #fff !important;
  padding: 8px 0;
}

.elementor-page .elementor .signatureStatement > .elementor-widget-text-editor:first-child > span {
  width: 80px;
  border-top: 1px solid #a88c36;
  padding-top: 12px;
  color: #a88c36;
  font: 10px Arial, sans-serif;
}

.elementor-page .elementor .serviceHeader,
.elementor-page .elementor .collectionsHeader { display: flex; flex-direction: row; }

.elementor-page .elementor .heroCopy h1,
.elementor-page .elementor .signatureStatement h2,
.elementor-page .elementor .seoAnswer h2,
.elementor-page .elementor .serviceSuite h2,
.elementor-page .elementor .serviceTiles h3,
.elementor-page .elementor .homeCollections h2,
.elementor-page .elementor .homeCollections h3,
.elementor-page .elementor .process h2,
.elementor-page .elementor .process h3,
.elementor-page .elementor .serviceArea h2,
.elementor-page .elementor .bigCta h2 {
  font-family: var(--cvt-display);
  font-weight: 400;
}

/* Elementor gives Heading widgets a 1em line-height. The canonical theme lets
   these headings inherit the site's 1.6 rhythm unless a section sets its own. */
.elementor-page .elementor .serviceSuite h2,
.elementor-page .elementor .serviceTiles h3,
.elementor-page .elementor .homeCollections h3,
.elementor-page .elementor .process h2,
.elementor-page .elementor .process h3,
.elementor-page .elementor .bigCta h2 { line-height: 1.6; }

.elementor-page .elementor .serviceTiles h3 { margin: 90px 0 1em; }
.elementor-page .elementor .process h2 { margin: .83em 0; }
.elementor-page .elementor .process h3 { margin: 25px 0 1em; }
.elementor-page .elementor .bigCta h2 { margin: .83em 0 10px; }

.elementor-page .elementor .packages h2,
.elementor-page .elementor .contactLuxury h2 { line-height: 1.6; }
.elementor-page .elementor .whyTravel h3,
.elementor-page .elementor .packageDetailGrid h3 { line-height: normal; }

@media (min-width: 901px) {
  .elementor-page .elementor .e-con.seoAnswer { min-height: 482px; }
  .elementor-page .elementor .e-con.serviceSuite { min-height: 829px; }
  .elementor-page .elementor .e-con.homeCollections { min-height: 1206px; }
  .elementor-page .elementor .e-con.process { min-height: 798px; }
  .elementor-page .elementor .e-con.serviceArea { min-height: 544px; }
  .elementor-page .elementor .e-con.bigCta { min-height: 628px; }
}

.elementor-page .elementor .signatureStatement,
.elementor-page .elementor .seoAnswer,
.elementor-page .elementor .serviceTiles,
.elementor-page .elementor .collectionGrid,
.elementor-page .elementor .processSteps,
.elementor-page .elementor .destinationIntro { display: grid; }

.elementor-page .elementor .collectionGrid {
  grid-template-columns: 1.24fr .88fr .88fr;
  align-items: start;
}

.elementor-page .elementor .collectionCard:nth-child(2) { margin-top: 95px; }

.elementor-page .elementor .collectionCard .airportEv,
.elementor-page .elementor .collectionCard .interiorEv,
.elementor-page .elementor .collectionCard .journeyEv {
  width: 100%;
  height: 440px;
  margin: 0 0 18px;
  background-position: center;
  background-size: cover;
  box-shadow: 0 25px 60px #08060870;
  filter: saturate(.72) contrast(1.06);
}

.elementor-page .elementor .collectionCard .airportEv { background-image: url('../images/luxury-ev-airport.webp') !important; }
.elementor-page .elementor .collectionCard .interiorEv { background-image: url('../images/luxury-ev-interior.webp') !important; }
.elementor-page .elementor .collectionCard .journeyEv { background-image: url('../images/luxury-ev-journey.webp') !important; }

.elementor-page .elementor .processSteps { grid-template-columns: repeat(3, 1fr); }

.elementor-page .elementor .serviceTile,
.elementor-page .elementor .collectionCard,
.elementor-page .elementor .processStep { min-width: 0; }

.elementor-page .elementor .collectionLink {
  position: absolute;
  inset: 0;
  font-size: 0;
  opacity: 0;
}

/* Products, Blog, About and Contact retain the canonical template geometry. */
.elementor-page .elementor .whyTravelGrid { display: grid; grid-template-columns: repeat(4, 1fr); }
.elementor-page .elementor .packageGrid { display: grid; grid-template-columns: repeat(4, 1fr); }
.elementor-page .elementor .packageDetailGrid { display: grid; grid-template-columns: repeat(3, 1fr); }
.elementor-page .elementor .aboutNumbers .shell { display: grid; grid-template-columns: repeat(4, 1fr); }
.elementor-page .elementor .aboutIntro { display: grid; grid-template-columns: .85fr 1.15fr; }
.elementor-page .elementor .aboutImage { display: grid; grid-template-columns: 1.35fr .65fr; }
.elementor-page .elementor .contactLuxury { display: grid; grid-template-columns: 1.25fr .75fr; }
.elementor-page .elementor .packagesHeader { display: flex; flex-direction: row; justify-content: space-between; align-items: end; }

.elementor-page .elementor .aboutImageFigure {
  min-height: 560px;
  background-image: url('../images/tea-hills.webp') !important;
  background-position: center !important;
  background-size: cover !important;
}

.elementor-page .elementor .journalDynamic,
.elementor-page .elementor .journalDynamic > .elementor-widget-shortcode,
.elementor-page .elementor .journalDynamic > .elementor-widget-shortcode > .elementor-widget-container { display: contents; }

.elementor-page .elementor .productsVideoDynamic,
.elementor-page .elementor .productsVideoDynamic > .elementor-widget-container { display: contents; }

.elementor-page .elementor .videoCta { display: grid; padding: 0; }
.elementor-page .elementor .videoCtaContent { align-items: center; }
.elementor-page .elementor .packageCard,
.elementor-page .elementor .packageCardBody,
.elementor-page .elementor .packageDetail,
.elementor-page .elementor .aboutNumber,
.elementor-page .elementor .contactDirect,
.elementor-page .elementor .contactMethod { min-width: 0; }

.elementor-page .elementor .packageCard .airportEv { background-image: url('../images/luxury-ev-airport.webp') !important; }
.elementor-page .elementor .packageCard .interiorEv { background-image: url('../images/luxury-ev-interior.webp') !important; }
.elementor-page .elementor .packageCard .familyEv { background-image: url('../images/luxury-ev-family.webp') !important; }
.elementor-page .elementor .packageCard .journeyEv { background-image: url('../images/luxury-ev-journey.webp') !important; }

@media (max-width: 900px) {
  .elementor-page .elementor .collectionGrid,
  .elementor-page .elementor .processSteps { grid-template-columns: 1fr 1fr; }
  .elementor-page .elementor .signatureStatement > .elementor-widget-text-editor:last-child > p,
  .elementor-page .elementor .signatureStatement > .elementor-widget-text-editor:last-child > .elementor-widget-container > p {
    grid-column: 2;
  }
  .elementor-page .elementor .collectionCard:nth-child(2) { margin-top: 0; }
  .elementor-page .elementor .collectionCard:last-child { grid-column: 1 / -1; width: 55%; }
  .elementor-page .elementor .whyTravelGrid,
  .elementor-page .elementor .packageGrid,
  .elementor-page .elementor .aboutNumbers .shell { grid-template-columns: 1fr 1fr; }
  .elementor-page .elementor .aboutIntro,
  .elementor-page .elementor .aboutImage,
  .elementor-page .elementor .contactLuxury { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .elementor-page .elementor .e-con.shell { width: min(1240px, calc(100% - 64px)); }
  .elementor-page .elementor .e-con.luxHero { height: 690px; min-height: 690px; }
  .elementor-page .elementor .e-con.signatureStatement { padding: 90px 0; }
  .elementor-page .elementor .e-con.seoAnswer { padding-block: 80px; }
  .elementor-page .elementor .heroLinks { display: block; }
  .elementor-page .elementor .serviceHeader,
  .elementor-page .elementor .collectionsHeader { display: block; }
  .elementor-page .elementor .collectionGrid,
  .elementor-page .elementor .processSteps { grid-template-columns: 1fr; }
  .elementor-page .elementor .signatureStatement > .elementor-widget-text-editor:last-child > p,
  .elementor-page .elementor .signatureStatement > .elementor-widget-text-editor:last-child > .elementor-widget-container > p {
    grid-column: auto;
  }
  .elementor-page .elementor .collectionCard:last-child { grid-column: auto; width: auto; }
  .elementor-page .elementor .whyTravelGrid,
  .elementor-page .elementor .packageGrid,
  .elementor-page .elementor .aboutNumbers .shell,
  .elementor-page .elementor .packageDetailGrid { grid-template-columns: 1fr; }
  .elementor-page .elementor .packagesHeader { display: block; }
}
