/**
 * Elementor homepage compatibility layer — v6.3.0
 *
 * This stylesheet intentionally styles the Elementor elements themselves and
 * their optional wrappers. Elementor's optimized markup may remove inner
 * wrappers, so the layout must not depend on .elementor-widget-container or a
 * single legacy wrapper structure.
 */
:root {
  --hcr-deep: #061c36;
  --hcr-navy: #0d3b66;
  --hcr-teal: #00a7a5;
  --hcr-teal-dark: #008b8a;
  --hcr-aqua: #e4f7f5;
  --hcr-surface: #f5f8fa;
  --hcr-sand: #f6f1e8;
  --hcr-line: #dce5eb;
  --hcr-copy: #71808c;
  --hcr-container: 1280px;
}

.hcr-elementor-homepage,
.hcr-elementor-homepage * { box-sizing: border-box; }
.hcr-elementor-homepage { overflow: visible; background: #fff; }
.hcr-elementor-homepage .elementor-section.elementor-section-boxed > .elementor-container,
.hcr-elementor-homepage .e-con-boxed > .e-con-inner { width: min(calc(100% - 48px), var(--hcr-container)); max-width: var(--hcr-container); margin-inline: auto; }
.hcr-elementor-homepage .elementor-widget-heading,
.hcr-elementor-homepage .elementor-widget-text-editor,
.hcr-elementor-homepage .elementor-widget-button { width: 100%; }
.hcr-elementor-homepage .elementor-widget:not(:last-child) { margin-bottom: 0; }

/* Hero and search */
.hcr-el-hero-section,
.hcr-el-hero-section > .elementor-container,
.hcr-el-hero-section .elementor-column,
.hcr-el-hero-section .elementor-widget-wrap,
.hcr-el-hero-section .elementor-element-populated,
.hcr-el-hero-section .elementor-widget-hcr-hero-slider { width: 100%; max-width: none !important; padding: 0 !important; }
.hcr-el-search-section { position: relative; z-index: 22; margin-top: -72px; overflow: visible !important; }
.hcr-el-search-section > .elementor-container,
.hcr-el-search-section > .e-con-inner { width: min(calc(100% - 48px), var(--hcr-container)); max-width: var(--hcr-container); margin-inline: auto; overflow: visible !important; }
.hcr-el-search-section .elementor-column,
.hcr-el-search-section .elementor-widget-wrap,
.hcr-el-search-section .elementor-element-populated,
.hcr-el-search-section .elementor-widget-container,
.hcr-el-search-section .elementor-widget-hcr-vik-search { padding: 0 !important; overflow: visible !important; }

/* Proof strip */
.hcr-el-proof-section { padding: 70px 0 0; }
.hcr-el-proof-section > .elementor-container,
.hcr-el-proof-section > .e-con-inner { overflow: hidden; border: 1px solid var(--hcr-line); border-radius: 10px; background: #fff; box-shadow: 0 18px 50px rgba(6,28,54,.06); }
.hcr-el-proof-item { min-height: 156px; padding: 26px 24px !important; border-right: 1px solid var(--hcr-line); background: #fff; }
.hcr-el-proof-item:last-child { border-right: 0; }
.hcr-el-proof-item > .elementor-widget-wrap,
.hcr-el-proof-item > .elementor-element-populated,
.hcr-el-proof-item > .e-con-inner { display: flex !important; min-height: 100%; flex-direction: column; justify-content: center; padding: 0 !important; }
.hcr-el-proof-icon .elementor-heading-title { display: grid; place-items: center; width: 44px; height: 44px; margin: 0 0 14px; border-radius: 50%; background: var(--hcr-aqua); color: var(--hcr-teal-dark); font-size: .88rem; font-weight: 800; letter-spacing: 0; }
.hcr-el-proof-title .elementor-heading-title { margin: 0 0 6px; color: var(--hcr-deep); font-size: .92rem; line-height: 1.25; letter-spacing: -.02em; }
.hcr-el-proof-text p { margin: 0; color: #7b8a97; font-size: .74rem; line-height: 1.55; }

/* Section headings */
.hcr-el-intro-section,
.hcr-el-locations-heading,
.hcr-el-delivery-heading,
.hcr-el-process-heading { padding: 112px 0 42px; }
.hcr-el-intro-section > .elementor-container,
.hcr-el-process-heading > .elementor-container { max-width: 980px !important; }
.hcr-el-eyebrow .elementor-heading-title { margin: 0 0 14px; color: var(--hcr-teal-dark); font-size: .7rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.hcr-el-main-title .elementor-heading-title { max-width: 950px; margin: 0 auto 20px; color: var(--hcr-deep); font-size: clamp(2.6rem,4.5vw,4.8rem); line-height: 1.02; letter-spacing: -.055em; }
.hcr-el-section-title .elementor-heading-title { margin: 0; color: var(--hcr-deep); font-size: clamp(2.4rem,4vw,4.25rem); line-height: 1.03; letter-spacing: -.05em; }
.hcr-el-lead { max-width: 820px; margin-inline: auto; text-align: center; }
.hcr-el-lead p,
.hcr-el-side-copy p { margin: 0; color: var(--hcr-copy); font-size: 1rem; line-height: 1.75; }
.hcr-el-side-copy { display: flex; height: 100%; align-items: flex-end; }

/* Card grids — styling is applied to the column itself, not only wrappers. */
.hcr-el-card-row { padding: 0 0 112px; }
.hcr-el-card-row > .elementor-container,
.hcr-el-card-row > .e-con-inner { gap: 18px; align-items: stretch; }
.hcr-el-card { min-height: 360px; padding: 38px 32px !important; overflow: hidden; border: 1px solid var(--hcr-line); border-radius: 10px; background: #fff; box-shadow: 0 18px 45px rgba(6,28,54,.06); transition: transform .22s ease, box-shadow .22s ease; }
.hcr-el-card > .elementor-widget-wrap,
.hcr-el-card > .elementor-element-populated,
.hcr-el-card > .e-con-inner { display: flex !important; height: 100%; flex-direction: column; align-content: flex-start; padding: 0 !important; background: transparent !important; }
.hcr-el-card:hover { transform: translateY(-5px); box-shadow: 0 26px 60px rgba(6,28,54,.11); }
.hcr-el-card-icon .elementor-heading-title { display: grid; place-items: center; width: 58px; height: 58px; margin: 0 0 28px; border-radius: 8px; background: var(--hcr-aqua); color: var(--hcr-teal-dark); font-size: 1rem; font-weight: 800; letter-spacing: 0; }
.hcr-el-card-eyebrow .elementor-heading-title { margin: 0 0 12px; color: var(--hcr-teal-dark); font-size: .62rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.hcr-el-card-title .elementor-heading-title { margin: 0 0 14px; color: var(--hcr-deep); font-size: 1.35rem; line-height: 1.12; letter-spacing: -.035em; }
.hcr-el-card-text p { margin: 0; color: var(--hcr-copy); font-size: .79rem; line-height: 1.7; }
.hcr-el-card-button { margin-top: auto; padding-top: 24px; }
.hcr-el-card-button .elementor-button { padding: 0; background: transparent; color: var(--hcr-teal-dark); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.hcr-el-card-button .elementor-button:hover { color: var(--hcr-deep); background: transparent; }

/* Locations */
.hcr-el-locations-heading,
.hcr-el-location-section { background: var(--hcr-surface); }
.hcr-el-location-card { position: relative; min-height: 430px; padding-top: 48px !important; }
.hcr-el-location-card::before { content: ""; position: absolute; z-index: 2; inset: 0 0 auto; height: 7px; background: var(--hcr-teal); }
.hcr-el-location-port::before { background: var(--hcr-navy); }
.hcr-el-location-hotel::before { background: #e5a552; }
.hcr-el-location-village::before { background: #477f6e; }
.hcr-el-location-card .hcr-el-card-icon .elementor-heading-title { width: auto; min-width: 72px; padding: 0 16px; border-radius: 999px; }

/* Fleet */
.hcr-el-fleet-section { padding: 112px 0; background: #fff; }
.hcr-el-vik-fleet { margin-top: 40px; }

/* Delivery areas */
.hcr-el-delivery-heading,
.hcr-el-area-grid { background: var(--hcr-sand); }
.hcr-el-area-grid { padding: 0 0 112px; }
.hcr-el-area-grid > .elementor-container,
.hcr-el-area-grid > .e-con-inner { gap: 0; align-items: stretch; }
.hcr-el-area-card { min-height: 250px; padding: 30px 26px !important; border: 1px solid rgba(6,28,54,.10); background: rgba(255,255,255,.68); }
.hcr-el-area-card > .elementor-widget-wrap,
.hcr-el-area-card > .elementor-element-populated,
.hcr-el-area-card > .e-con-inner { height: 100%; padding: 0 !important; background: transparent !important; }
.hcr-el-area-number .elementor-heading-title { margin: 0 0 42px; color: var(--hcr-teal-dark); font-size: .72rem; font-weight: 800; letter-spacing: .1em; }
.hcr-el-area-title .elementor-heading-title { margin: 0 0 12px; color: var(--hcr-deep); font-size: 1.22rem; }
.hcr-el-area-text p { margin: 0; color: var(--hcr-copy); font-size: .76rem; line-height: 1.65; }

/* Local service split */
.hcr-el-local-section { background: var(--hcr-deep); }
.hcr-el-local-copy { display: flex; align-items: center; padding: 100px clamp(32px,6vw,95px) 100px max(24px,calc((100vw - var(--hcr-container))/2)) !important; }
.hcr-el-local-copy > .elementor-widget-wrap,
.hcr-el-local-copy > .elementor-element-populated,
.hcr-el-local-copy > .e-con-inner { width: 100%; padding: 0 !important; }
.hcr-el-local-copy .hcr-el-eyebrow .elementor-heading-title { color: #83e5dd; }
.hcr-el-local-copy .hcr-el-section-title .elementor-heading-title { color: #fff; }
.hcr-el-rich-copy { color: rgba(255,255,255,.70); }
.hcr-el-rich-copy p { font-size: .94rem; }
.hcr-el-rich-copy ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 24px; margin: 28px 0 34px; padding: 0; list-style: none; }
.hcr-el-rich-copy li::before { content: "✓"; margin-right: 10px; color: #67dacc; font-weight: 800; }
.hcr-el-primary-button .elementor-button { min-height: 54px; padding: 0 27px; background: var(--hcr-teal); color: #fff; }
.hcr-el-local-visual { display: flex; min-height: 600px; align-items: center; justify-content: center; padding: 70px !important; background: radial-gradient(circle at 50% 40%,rgba(0,167,165,.35),transparent 48%),linear-gradient(135deg,#0d3b66,#06213f); text-align: center; }
.hcr-el-local-visual > .elementor-widget-wrap,
.hcr-el-local-visual > .elementor-element-populated,
.hcr-el-local-visual > .e-con-inner { width: 100%; padding: 0 !important; }
.hcr-el-visual-badge .elementor-heading-title { display: grid; place-items: center; width: 180px; height: 180px; margin: 0 auto 34px; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; color: #fff; font-size: 3rem; letter-spacing: .04em; }
.hcr-el-visual-title .elementor-heading-title { color: #fff; font-size: 1.6rem; }
.hcr-el-visual-text { max-width: 350px; margin-inline: auto; color: rgba(255,255,255,.68); }

/* Process */
.hcr-el-process-grid { padding: 0 0 112px; }
.hcr-el-process-grid > .elementor-container,
.hcr-el-process-grid > .e-con-inner { align-items: stretch; }
.hcr-el-step-card { min-height: 265px; padding: 20px 36px !important; text-align: center; }
.hcr-el-step-card > .elementor-widget-wrap,
.hcr-el-step-card > .elementor-element-populated,
.hcr-el-step-card > .e-con-inner { padding: 0 !important; }
.hcr-el-step-number .elementor-heading-title { display: grid; place-items: center; width: 76px; height: 76px; margin: 0 auto 26px; border: 1px solid var(--hcr-line); border-radius: 50%; color: var(--hcr-teal-dark); font-size: .75rem; font-weight: 800; }
.hcr-el-step-title .elementor-heading-title { margin: 0 0 12px; color: var(--hcr-deep); font-size: 1.35rem; }
.hcr-el-step-text p { margin: 0; color: var(--hcr-copy); font-size: .8rem; line-height: 1.65; }

/* Offer */
.hcr-el-offer-section { padding: 70px 0; background: linear-gradient(115deg,#00a7a5,#008b91 58%,#0d3b66); }
.hcr-el-offer-section > .elementor-container,
.hcr-el-offer-section > .e-con-inner { align-items: center; }
.hcr-el-offer-eyebrow .elementor-heading-title { color: rgba(255,255,255,.72); font-size: .68rem; font-weight: 800; letter-spacing: .12em; }
.hcr-el-offer-title .elementor-heading-title { margin: 0 0 12px; color: #fff; font-size: clamp(2.2rem,3.5vw,3.7rem); line-height: 1.05; }
.hcr-el-offer-text { color: rgba(255,255,255,.78); }
.hcr-el-offer-button .elementor-button { min-height: 56px; padding: 0 30px; background: #fff; color: var(--hcr-deep); }

/* Review and FAQ */
.hcr-el-reviews-faq { padding: 112px 0; background: var(--hcr-surface); }
.hcr-el-reviews-faq > .elementor-container,
.hcr-el-reviews-faq > .e-con-inner { align-items: stretch; }
.hcr-el-review-column { display: flex; min-height: 560px; align-items: center; padding: 58px !important; background: var(--hcr-deep); color: #fff; }
.hcr-el-review-column > .elementor-widget-wrap,
.hcr-el-review-column > .elementor-element-populated,
.hcr-el-review-column > .e-con-inner { width: 100%; padding: 0 !important; background: transparent !important; }
.hcr-el-stars .elementor-heading-title { color: #f0cd67; font-size: 1rem; letter-spacing: .18em; }
.hcr-el-testimonial-widget .elementor-testimonial-content { color: #fff; font-size: clamp(1.45rem,2.2vw,2.2rem); line-height: 1.35; }
.hcr-el-testimonial-widget .elementor-testimonial-name { color: #fff; }
.hcr-el-testimonial-widget .elementor-testimonial-job { color: rgba(255,255,255,.55); }
.hcr-el-faq-column { padding: 42px 15px 42px 62px !important; }
.hcr-el-faq-column > .elementor-widget-wrap,
.hcr-el-faq-column > .elementor-element-populated,
.hcr-el-faq-column > .e-con-inner { padding: 0 !important; }
.hcr-el-faq-title .elementor-heading-title { margin: 0 0 26px; color: var(--hcr-deep); font-size: clamp(2.25rem,3.4vw,3.65rem); }
.hcr-el-faq-widget .elementor-accordion-item { border-width: 1px 0 0 !important; border-color: var(--hcr-line) !important; }
.hcr-el-faq-widget .elementor-accordion-item:last-child { border-bottom-width: 1px !important; }
.hcr-el-faq-widget .elementor-tab-title { padding: 21px 0 !important; color: var(--hcr-deep) !important; font-size: .84rem; font-weight: 700; }
.hcr-el-faq-widget .elementor-tab-content { padding: 0 0 22px !important; border: 0 !important; color: var(--hcr-copy); font-size: .78rem; }

/* Final CTA */
.hcr-el-final-section { padding: 88px 0; background: #04172c; }
.hcr-el-final-section > .elementor-container,
.hcr-el-final-section > .e-con-inner { align-items: center; }
.hcr-el-final-eyebrow .elementor-heading-title { color: #80e4db; font-size: .68rem; font-weight: 800; letter-spacing: .12em; }
.hcr-el-final-title .elementor-heading-title { margin: 0; color: #fff; font-size: clamp(2.4rem,4vw,4.4rem); line-height: 1.04; }
.hcr-el-final-button .elementor-button { min-height: 58px; padding: 0 32px; background: var(--hcr-teal); color: #fff; }

/* VikRentCar calendar popup must not be clipped. */
.hcr-el-search-section,
.hcr-el-search-section *,
.hcr-search-shell,
.hcr-vik-search__mount,
.hcr-vik-search__mount form { overflow: visible; }
body #ui-datepicker-div,
body .ui-datepicker,
body .vrc-calendar,
body .vik-datepicker,
body .datepicker,
body .datepicker-dropdown,
body .flatpickr-calendar,
body .vrc-datepicker,
body [class*="vrc-calendar"],
body [class*="vik-datepicker"] { z-index: 999999 !important; }

@media (max-width: 1024px) {
  .hcr-elementor-homepage .elementor-section.elementor-section-boxed > .elementor-container,
  .hcr-elementor-homepage .e-con-boxed > .e-con-inner { width: min(calc(100% - 36px),var(--hcr-container)); }
  .hcr-el-proof-section > .elementor-container,
  .hcr-el-card-row > .elementor-container,
  .hcr-el-area-grid > .elementor-container { flex-wrap: wrap; }
  .hcr-el-proof-item,
  .hcr-el-card,
  .hcr-el-area-card { width: calc(50% - 9px) !important; flex: 0 0 calc(50% - 9px) !important; }
  .hcr-el-proof-item:nth-child(2) { border-right: 0; }
  .hcr-el-proof-item:nth-child(-n+2) { border-bottom: 1px solid var(--hcr-line); }
  .hcr-el-locations-heading .elementor-column,
  .hcr-el-delivery-heading .elementor-column { width: 100% !important; }
  .hcr-el-side-copy { margin-top: 20px; }
  .hcr-el-local-section > .elementor-container,
  .hcr-el-reviews-faq > .elementor-container { flex-wrap: wrap; }
  .hcr-el-local-copy,
  .hcr-el-local-visual,
  .hcr-el-review-column,
  .hcr-el-faq-column { width: 100% !important; flex: 0 0 100% !important; }
  .hcr-el-local-copy { padding-left: 40px !important; padding-right: 40px !important; }
  .hcr-el-faq-column { padding: 70px 15px 0 !important; }
}

@media (max-width: 767px) {
  .hcr-elementor-homepage .elementor-section.elementor-section-boxed > .elementor-container,
  .hcr-elementor-homepage .e-con-boxed > .e-con-inner { width: min(calc(100% - 28px),var(--hcr-container)); }
  .hcr-el-search-section { margin-top: -58px; }
  .hcr-el-proof-section { padding-top: 42px; }
  .hcr-el-proof-item,
  .hcr-el-card,
  .hcr-el-area-card,
  .hcr-el-step-card { width: 100% !important; flex: 0 0 100% !important; }
  .hcr-el-proof-item { border-right: 0; border-bottom: 1px solid var(--hcr-line); }
  .hcr-el-proof-item:last-child { border-bottom: 0; }
  .hcr-el-intro-section,
  .hcr-el-locations-heading,
  .hcr-el-delivery-heading,
  .hcr-el-process-heading { padding: 80px 0 32px; }
  .hcr-el-card-row,
  .hcr-el-area-grid,
  .hcr-el-process-grid { padding-bottom: 78px; }
  .hcr-el-card { min-height: auto; padding: 32px 25px !important; }
  .hcr-el-rich-copy ul { grid-template-columns: 1fr; }
  .hcr-el-local-copy { padding: 76px 24px !important; }
  .hcr-el-local-visual { min-height: 430px; padding: 40px 24px !important; }
  .hcr-el-offer-section .elementor-column,
  .hcr-el-final-section .elementor-column { width: 100% !important; flex: 0 0 100% !important; }
  .hcr-el-offer-action,
  .hcr-el-final-action { margin-top: 24px; text-align: left; }
  .hcr-el-review-column { min-height: 460px; padding: 38px 28px !important; }
  .hcr-el-faq-column { padding: 62px 0 0 !important; }
}

/* ========================================================================
   Homepage box reconstruction and embedded date icons — v6.3.0
   These rules deliberately use direct section/column selectors so the design
   remains complete with both Elementor legacy sections and optimized markup.
   ======================================================================== */

.hcr-elementor-homepage {
  --hcr-box-radius: 18px;
  --hcr-box-border: #dce6ec;
  --hcr-box-shadow: 0 18px 48px rgba(6, 28, 54, .08);
  --hcr-box-shadow-hover: 0 28px 65px rgba(6, 28, 54, .14);
}

/* Normalize all Elementor wrappers inside designed boxes. */
.hcr-elementor-homepage :is(
  .hcr-el-proof-item,
  .hcr-el-card,
  .hcr-el-area-card,
  .hcr-el-step-card,
  .hcr-el-review-column,
  .hcr-el-faq-column,
  .hcr-el-local-copy,
  .hcr-el-local-visual
) {
  box-sizing: border-box;
  min-width: 0;
}

.hcr-elementor-homepage :is(
  .hcr-el-proof-item,
  .hcr-el-card,
  .hcr-el-area-card,
  .hcr-el-step-card,
  .hcr-el-review-column,
  .hcr-el-faq-column
) > :is(.elementor-widget-wrap, .elementor-element-populated, .e-con-inner) {
  width: 100%;
  min-width: 0;
  height: 100%;
  padding: 0 !important;
  background: transparent !important;
}

.hcr-elementor-homepage :is(
  .hcr-el-card,
  .hcr-el-area-card,
  .hcr-el-step-card
) > :is(.elementor-widget-wrap, .elementor-element-populated, .e-con-inner) {
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
}

/* Trust boxes. */
.hcr-el-proof-section {
  padding: 74px 0 0;
}

.hcr-el-proof-section > :is(.elementor-container, .e-con-inner) {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px !important;
  overflow: visible !important;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.hcr-el-proof-section > :is(.elementor-container, .e-con-inner) > .hcr-el-proof-item {
  width: auto !important;
  min-height: 164px;
  padding: 28px 25px !important;
  border: 1px solid var(--hcr-box-border) !important;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 12px 36px rgba(6, 28, 54, .055);
}

.hcr-el-proof-item > :is(.elementor-widget-wrap, .elementor-element-populated, .e-con-inner) {
  display: flex !important;
  flex-direction: column;
  justify-content: center;
}

.hcr-el-proof-icon .elementor-heading-title {
  width: 48px;
  height: 48px;
  margin-bottom: 17px;
  border: 1px solid rgba(0, 167, 165, .12);
  border-radius: 14px;
}

.hcr-el-proof-title .elementor-heading-title {
  margin-bottom: 8px;
  font-size: 1rem;
}

.hcr-el-proof-text p {
  font-size: .79rem;
  line-height: 1.58;
}

/* Four-card sections. */
.hcr-el-card-row > :is(.elementor-container, .e-con-inner) {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch !important;
  gap: 20px !important;
}

.hcr-el-card-row > :is(.elementor-container, .e-con-inner) > .hcr-el-card {
  width: auto !important;
  max-width: none !important;
  min-height: 370px;
  margin: 0 !important;
  padding: 34px 30px 31px !important;
  border: 1px solid var(--hcr-box-border);
  border-radius: var(--hcr-box-radius);
  background: #fff;
  box-shadow: var(--hcr-box-shadow);
  isolation: isolate;
}

.hcr-el-card-row > :is(.elementor-container, .e-con-inner) > .hcr-el-card:hover {
  transform: translateY(-6px);
  border-color: rgba(0, 167, 165, .34);
  box-shadow: var(--hcr-box-shadow-hover);
}

.hcr-el-card .elementor-widget {
  flex: 0 0 auto;
  min-width: 0;
}

.hcr-el-card .hcr-el-card-text {
  flex: 1 1 auto;
}

.hcr-el-card-icon .elementor-heading-title {
  width: 62px;
  height: 62px;
  margin-bottom: 26px;
  border: 1px solid rgba(0, 167, 165, .13);
  border-radius: 16px;
  background: linear-gradient(145deg, #ecfbfa, #ddf5f3);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7);
}

.hcr-el-card-eyebrow .elementor-heading-title {
  margin-bottom: 13px;
  font-size: .65rem;
}

.hcr-el-card-title .elementor-heading-title {
  min-height: 3.15em;
  margin-bottom: 15px;
  font-size: 1.38rem;
  line-height: 1.14;
}

.hcr-el-card-text p {
  font-size: .82rem;
  line-height: 1.72;
}

.hcr-el-card-button {
  margin-top: auto !important;
  padding-top: 25px;
}

.hcr-el-card-button .elementor-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid rgba(0, 167, 165, .22);
  border-radius: 999px;
  background: #effafa;
  color: var(--hcr-teal-dark);
}

.hcr-el-card-button .elementor-button::after {
  content: "→";
  font-size: 1rem;
  transition: transform .2s ease;
}

.hcr-el-card-button .elementor-button:hover {
  border-color: var(--hcr-teal);
  background: var(--hcr-teal);
  color: #fff;
}

.hcr-el-card-button .elementor-button:hover::after {
  transform: translateX(3px);
}

/* Location cards: complete top accent and equal content alignment. */
.hcr-el-location-card {
  position: relative;
  min-height: 445px !important;
  padding-top: 43px !important;
}

.hcr-el-location-card::before {
  inset: 0 18px auto;
  height: 6px;
  border-radius: 0 0 999px 999px;
}

.hcr-el-location-card .hcr-el-card-icon .elementor-heading-title {
  width: max-content;
  min-width: 74px;
  height: 48px;
  padding-inline: 17px;
  border-radius: 999px;
}

/* Delivery-area boxes. */
.hcr-el-area-grid {
  padding-top: 0;
}

.hcr-el-area-grid > :is(.elementor-container, .e-con-inner) {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch !important;
  gap: 16px !important;
}

.hcr-el-area-grid > :is(.elementor-container, .e-con-inner) > .hcr-el-area-card {
  position: relative;
  width: auto !important;
  min-height: 258px;
  padding: 30px 28px 28px !important;
  overflow: hidden;
  border: 1px solid rgba(6, 28, 54, .11);
  border-radius: 16px;
  background: rgba(255, 255, 255, .82);
  box-shadow: 0 11px 30px rgba(6, 28, 54, .045);
  transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.hcr-el-area-grid > :is(.elementor-container, .e-con-inner) > .hcr-el-area-card::after {
  content: "";
  position: absolute;
  right: -32px;
  bottom: -36px;
  width: 110px;
  height: 110px;
  border-radius: 50%;
  background: rgba(0, 167, 165, .07);
  pointer-events: none;
}

.hcr-el-area-grid > :is(.elementor-container, .e-con-inner) > .hcr-el-area-card:hover {
  transform: translateY(-4px);
  background: #fff;
  box-shadow: 0 20px 44px rgba(6, 28, 54, .09);
}

.hcr-el-area-number .elementor-heading-title {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin-bottom: 35px;
  border-radius: 12px;
  background: var(--hcr-aqua);
  color: var(--hcr-teal-dark);
  font-size: .72rem;
}

.hcr-el-area-title .elementor-heading-title {
  min-height: 2.5em;
  margin-bottom: 13px;
  font-size: 1.25rem;
  line-height: 1.24;
}

.hcr-el-area-text p {
  font-size: .79rem;
  line-height: 1.68;
}

/* Booking-process boxes. */
.hcr-el-process-grid > :is(.elementor-container, .e-con-inner) {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch !important;
  gap: 22px !important;
}

.hcr-el-process-grid > :is(.elementor-container, .e-con-inner) > .hcr-el-step-card {
  width: auto !important;
  min-height: 300px;
  padding: 38px 34px !important;
  border: 1px solid var(--hcr-box-border);
  border-radius: var(--hcr-box-radius);
  background: #fff;
  box-shadow: 0 15px 42px rgba(6, 28, 54, .06);
  text-align: left;
}

.hcr-el-step-number .elementor-heading-title {
  width: 64px;
  height: 64px;
  margin: 0 0 28px;
  border: 0;
  border-radius: 16px;
  background: linear-gradient(145deg, var(--hcr-teal), var(--hcr-teal-dark));
  color: #fff;
  box-shadow: 0 12px 25px rgba(0, 167, 165, .22);
}

.hcr-el-step-title .elementor-heading-title {
  min-height: 2.5em;
  margin-bottom: 13px;
  font-size: 1.42rem;
}

.hcr-el-step-text p {
  font-size: .82rem;
  line-height: 1.7;
}

/* Local-service, offer, review/FAQ and final blocks. */
.hcr-el-local-section > :is(.elementor-container, .e-con-inner) {
  overflow: hidden;
  border-radius: 22px;
  box-shadow: 0 28px 75px rgba(6, 28, 54, .18);
}

.hcr-el-local-section {
  padding-block: 112px;
  background: #fff;
}

.hcr-el-local-copy,
.hcr-el-local-visual {
  min-height: 600px;
}

.hcr-el-offer-section > :is(.elementor-container, .e-con-inner),
.hcr-el-final-section > :is(.elementor-container, .e-con-inner) {
  min-height: 235px;
  padding: 44px 52px !important;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 22px;
}

.hcr-el-offer-section,
.hcr-el-final-section {
  padding-block: 72px;
}

.hcr-el-offer-section {
  background: #f5f8fa;
}

.hcr-el-offer-section > :is(.elementor-container, .e-con-inner) {
  background: linear-gradient(115deg, #00a7a5, #008b91 58%, #0d3b66);
  box-shadow: 0 25px 65px rgba(0, 108, 119, .22);
}

.hcr-el-final-section {
  background: #04172c;
}

.hcr-el-final-section > :is(.elementor-container, .e-con-inner) {
  background: linear-gradient(120deg, rgba(255, 255, 255, .035), rgba(0, 167, 165, .12));
}

.hcr-el-reviews-faq > :is(.elementor-container, .e-con-inner) {
  display: grid !important;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 22px !important;
  align-items: stretch !important;
}

.hcr-el-reviews-faq > :is(.elementor-container, .e-con-inner) > :is(.hcr-el-review-column, .hcr-el-faq-column) {
  width: auto !important;
  border-radius: 20px;
  box-shadow: 0 18px 50px rgba(6, 28, 54, .075);
}

.hcr-el-review-column {
  overflow: hidden;
  padding: 56px !important;
}

.hcr-el-faq-column {
  padding: 48px 48px 42px !important;
  border: 1px solid var(--hcr-box-border);
  background: #fff;
}

.hcr-el-faq-widget .elementor-accordion-item {
  overflow: hidden;
  margin-bottom: 10px;
  border: 1px solid var(--hcr-line) !important;
  border-radius: 12px;
  background: #fbfcfd;
}

.hcr-el-faq-widget .elementor-tab-title {
  padding: 18px 18px !important;
}

.hcr-el-faq-widget .elementor-tab-content {
  padding: 0 18px 19px !important;
}

/* Search panel rebuilt as a finished booking box. */
.hcr-search-shell {
  position: relative;
  padding: 31px 32px 24px;
  overflow: visible !important;
  border: 1px solid rgba(6, 28, 54, .09);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 28px 75px rgba(6, 28, 54, .16);
}

.hcr-search-shell::before {
  content: "";
  position: absolute;
  inset: 0 24px auto;
  height: 4px;
  border-radius: 0 0 999px 999px;
  background: linear-gradient(90deg, var(--hcr-teal), #39c6bd, var(--hcr-navy));
}

.hcr-search-shell__heading {
  margin-bottom: 24px;
}

.hcr-search-shell__heading > span {
  height: 48px;
  border-radius: 12px;
}

.hcr-vik-search__mount form.hcr-vik-form,
.hcr-vik-search__mount form {
  display: flex !important;
  align-items: flex-end !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
}

.hcr-vik-search__mount .hcr-vik-field,
.hcr-vik-search__mount form > .vrcsfentry,
.hcr-vik-search__mount form > .vrcsfentrycont,
.hcr-vik-search__mount form > div {
  position: relative;
  min-width: 0 !important;
  flex: 1 1 145px !important;
}

.hcr-vik-search__mount .hcr-vik-field--pickup-location,
.hcr-vik-search__mount .hcr-vik-field--dropoff-location {
  flex: 1.3 1 185px !important;
}

.hcr-vik-search__mount .hcr-vik-field--date-time-group,
.hcr-vik-search__mount .hcr-vik-field--date-group {
  flex: 1.35 1 235px !important;
}

.hcr-vik-search__mount .hcr-vik-field--date-time-group {
  display: grid !important;
  grid-template-columns: minmax(122px, 1.2fr) minmax(100px, .8fr);
  align-items: end;
  gap: 10px;
}

.hcr-vik-search__mount :is(.vrcsfentrylabsel, .vrcsfentrydate, .vrcsfentrytime, .hcr-vik-date-control, .hcr-vik-time-control) {
  min-width: 0;
  margin: 0 !important;
}

.hcr-vik-search__mount input:not([type="hidden"]):not([type="submit"]),
.hcr-vik-search__mount select,
.hcr-vik-search__mount textarea {
  min-height: 54px !important;
  padding: 11px 13px !important;
  border-color: #cbd9e0 !important;
  border-radius: 10px !important;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.hcr-vik-search__mount input[type="submit"],
.hcr-vik-search__mount button[type="submit"],
.hcr-vik-search__mount .vrcsfentrysubmit button {
  min-height: 54px !important;
  border-radius: 10px !important;
  box-shadow: 0 12px 24px rgba(0, 167, 165, .2) !important;
}

/* Hide external native calendar glyphs while leaving the date input itself
   connected to VikRentCar's existing datepicker. */
.hcr-vik-search__mount .hcr-native-calendar-trigger,
.hcr-vik-search__mount button.ui-datepicker-trigger,
.hcr-vik-search__mount img.ui-datepicker-trigger,
.hcr-vik-search__mount .vrc-calendar-trigger,
.hcr-vik-search__mount .vik-calendar-trigger,
.hcr-vik-search__mount [class*="calendar-trigger"],
.hcr-vik-search__mount [class*="datepicker-trigger"] {
  display: none !important;
}

.hcr-vik-search__mount .hcr-vik-date-control {
  position: relative;
  width: 100%;
}

.hcr-vik-search__mount input.hcr-vik-date-input,
.hcr-vik-search__mount .vrcsfentrydate input,
.hcr-search-demo .hcr-search-demo__date input {
  padding-right: 46px !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23008b8a' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3Cpath d='M8 14h.01M12 14h.01M16 14h.01M8 17h.01M12 17h.01'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 20px 20px !important;
  cursor: pointer;
}

.hcr-vik-search__mount input.hcr-vik-date-input:focus,
.hcr-vik-search__mount .vrcsfentrydate input:focus {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23061c36' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3Cpath d='M8 14h.01M12 14h.01M16 14h.01M8 17h.01M12 17h.01'/%3E%3C/svg%3E") !important;
}

.hcr-search-demo .hcr-search-demo__date input {
  cursor: default;
}

@media (max-width: 1180px) {
  .hcr-el-proof-section > :is(.elementor-container, .e-con-inner),
  .hcr-el-card-row > :is(.elementor-container, .e-con-inner),
  .hcr-el-area-grid > :is(.elementor-container, .e-con-inner) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hcr-el-process-grid > :is(.elementor-container, .e-con-inner) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .hcr-vik-search__mount form.hcr-vik-form,
  .hcr-vik-search__mount form {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: end !important;
  }

  .hcr-vik-search__mount .hcr-vik-field,
  .hcr-vik-search__mount form > .vrcsfentry,
  .hcr-vik-search__mount form > .vrcsfentrycont,
  .hcr-vik-search__mount form > div,
  .hcr-vik-search__mount .hcr-vik-field--submit,
  .hcr-vik-search__mount .vrcsfentrysubmit {
    width: auto !important;
    grid-column: auto !important;
  }

  .hcr-vik-search__mount .hcr-vik-field--submit,
  .hcr-vik-search__mount .vrcsfentrysubmit {
    grid-column: span 2 !important;
  }
}

@media (max-width: 900px) {
  .hcr-el-process-grid > :is(.elementor-container, .e-con-inner),
  .hcr-el-reviews-faq > :is(.elementor-container, .e-con-inner) {
    grid-template-columns: 1fr;
  }

  .hcr-el-review-column,
  .hcr-el-faq-column {
    min-height: auto;
  }

  .hcr-el-local-section > :is(.elementor-container, .e-con-inner) {
    border-radius: 18px;
  }

  .hcr-el-offer-section > :is(.elementor-container, .e-con-inner),
  .hcr-el-final-section > :is(.elementor-container, .e-con-inner) {
    padding: 36px !important;
  }
}

@media (max-width: 767px) {
  .hcr-el-proof-section > :is(.elementor-container, .e-con-inner),
  .hcr-el-card-row > :is(.elementor-container, .e-con-inner),
  .hcr-el-area-grid > :is(.elementor-container, .e-con-inner),
  .hcr-el-process-grid > :is(.elementor-container, .e-con-inner) {
    grid-template-columns: 1fr;
    gap: 14px !important;
  }

  .hcr-el-card-row > :is(.elementor-container, .e-con-inner) > .hcr-el-card,
  .hcr-el-area-grid > :is(.elementor-container, .e-con-inner) > .hcr-el-area-card,
  .hcr-el-process-grid > :is(.elementor-container, .e-con-inner) > .hcr-el-step-card {
    min-height: auto;
  }

  .hcr-el-card-title .elementor-heading-title,
  .hcr-el-area-title .elementor-heading-title,
  .hcr-el-step-title .elementor-heading-title {
    min-height: 0;
  }

  .hcr-search-shell {
    padding: 27px 18px 20px;
    border-radius: 16px;
  }

  .hcr-vik-search__mount form.hcr-vik-form,
  .hcr-vik-search__mount form {
    grid-template-columns: 1fr !important;
  }

  .hcr-vik-search__mount .hcr-vik-field--submit,
  .hcr-vik-search__mount .vrcsfentrysubmit {
    grid-column: 1 !important;
  }

  .hcr-vik-search__mount .hcr-vik-field--date-time-group {
    grid-template-columns: minmax(0, 1.35fr) minmax(96px, .65fr);
  }

  .hcr-el-review-column,
  .hcr-el-faq-column {
    padding: 34px 24px !important;
    border-radius: 16px;
  }

  .hcr-el-local-section {
    padding-block: 78px;
  }

  .hcr-el-local-section > :is(.elementor-container, .e-con-inner) {
    width: min(calc(100% - 28px), var(--hcr-container));
  }

  .hcr-el-offer-section > :is(.elementor-container, .e-con-inner),
  .hcr-el-final-section > :is(.elementor-container, .e-con-inner) {
    min-height: 0;
    padding: 30px 24px !important;
    border-radius: 16px;
  }
}

@media (max-width: 430px) {
  .hcr-vik-search__mount .hcr-vik-field--date-time-group {
    grid-template-columns: 1fr;
  }
}

/* Keep the local-service split readable after the boxed reconstruction. */
.hcr-el-local-copy {
  background: var(--hcr-deep);
}
