/*
Theme Name: Hello Biz Child
Template: hello-biz
*/

/* =========================================================
   FacetWP shared styling
   Brand colors:
   - Navy: #0E2A47
   - Red:  #EE2A26
   ========================================================= */

/* Loading state */
.facetwp-loading .facetwp-template {
  opacity: 0.45;
  pointer-events: none;
}
.facetwp-loading .facetwp-template:before {
  content: "Loading…";
  display: block;
  text-align: center;
  padding: 14px 0;
  font-size: 14px;
  opacity: 0.8;
}

/* Prevent jump during AJAX refresh */
.facetwp-template { min-height: 300px; }

/* On-brand focus ring */
body .facetwp-search:focus,
body select:focus {
  outline: none;
  border-color: rgba(238,42,38,.75) !important;
  box-shadow: 0 0 0 4px rgba(238,42,38,.18) !important;
}

/* =========================================================
   EXPERIENCES – Filters
   ========================================================= */

body .experiences-wrap .experiences-filters {
  border: 1px solid rgba(0,0,0,.06) !important;
  background: #0E2A47 !important;
  border-radius: 18px !important;
  padding: 16px !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.05), 0 10px 30px rgba(0,0,0,.25) !important;
}

body .experiences-wrap .experiences-filters:before {
  content: "Filter experiences";
  display: block;
  color: #ffffff;
  font-weight: 800;
  letter-spacing: .2px;
  margin: 0 0 12px 2px;
  font-size: 14px;
}

/* Grid layout (one row on desktop) */
body .experiences-wrap .filters-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 160px;
  gap: 14px !important;
  align-items: stretch !important;

  /* Make the grid span the full bar width */
  width: 100% !important;
  max-width: none !important;
  justify-content: stretch !important;
  justify-items: stretch !important;
}

@media (max-width: 900px) {
  body .experiences-wrap .filters-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  body .experiences-wrap .filters-grid { grid-template-columns: 1fr; }
}

body .experiences-wrap .experiences-filters .facetwp-facet {
  margin: 0 !important;
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 14px !important;
  padding: 10px 12px 12px !important;

  /* Make each tile fill its grid cell */
  width: 100% !important;
}

/* White titles */
body .experiences-wrap .experiences-filters .facetwp-facet-search:before { content: "Search"; }
body .experiences-wrap .experiences-filters .facetwp-facet-experience_category:before { content: "Experience type"; }
body .experiences-wrap .experiences-filters .facetwp-facet-sort_:before { content: "Sort"; }
body .experiences-wrap .experiences-filters .facetwp-facet-reset:before { content: "Reset"; }

body .experiences-wrap .experiences-filters .facetwp-facet-search:before,
body .experiences-wrap .experiences-filters .facetwp-facet-experience_category:before,
body .experiences-wrap .experiences-filters .facetwp-facet-sort_:before,
body .experiences-wrap .experiences-filters .facetwp-facet-reset:before {
  display: block;
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  opacity: .95;
  margin: 2px 0 8px 2px;
}

body .experiences-wrap .experiences-filters .facetwp-search,
body .experiences-wrap .experiences-filters select {
  width: 100% !important;
  border-radius: 12px !important;
  border: 1px solid rgba(0,0,0,.14) !important;
  padding: 12px 12px !important;
  min-height: 44px !important;
  font-size: 15px !important;
  background: #fff !important;
}

body .experiences-wrap .experiences-filters .facetwp-search-wrap:after {
  right: 14px;
  opacity: .55;
}

/* Reset button */
body .experiences-wrap .experiences-filters .facetwp-reset {
  display: inline-flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 44px !important;
  border-radius: 12px !important;
  border: 1px solid #EE2A26 !important;
  padding: 12px 14px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  background: #FFFFFF !important;
  color: #EE2A26 !important;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
}
body .experiences-wrap .experiences-filters .facetwp-reset:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(0,0,0,.18);
  background: #EE2A26 !important;
  color: #FFFFFF !important;
}

/* Sticky on desktop */
@media (min-width: 1025px) {
  body .experiences-wrap .experiences-filters {
    position: sticky;
    top: 90px;
    z-index: 20;
  }
}

/* =========================================================
   EXPERIENCES – Cards
   (BASE STRUCTURE ONLY – detailed styling below overrides)
   ========================================================= */

.experience-card {
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  transition: transform .15s ease, box-shadow .15s ease;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
}

.experience-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(0,0,0,.10);
}

.experience-image {
  background: rgba(0,0,0,.03);
}

/* =========================================================
   LOCATIONS – Filters (match Experiences)
   ========================================================= */

body .locations-wrap .locations-filters {
  border: 1px solid rgba(0,0,0,.06) !important;
  background: #0E2A47 !important;
  border-radius: 18px !important;
  padding: 16px !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.05), 0 10px 30px rgba(0,0,0,.25) !important;
}

body .locations-wrap .locations-filters:before {
  content: "Filter locations";
  display: block;
  color: #ffffff;
  font-weight: 800;
  letter-spacing: .2px;
  margin: 0 0 12px 2px;
  font-size: 14px;
}

/* Same 1-row grid */
body .locations-wrap .locations-filters .filters-grid {
  display: grid !important;
  grid-template-columns: 1.4fr 1fr 1fr 160px !important;
  gap: 14px !important;
  align-items: stretch !important;

  /* Keep behaviour consistent */
  width: 100% !important;
  max-width: none !important;
  justify-content: stretch !important;
  justify-items: stretch !important;
}

@media (max-width: 900px) {
  body .locations-wrap .locations-filters .filters-grid { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 600px) {
  body .locations-wrap .locations-filters .filters-grid { grid-template-columns: 1fr !important; }
}

body .locations-wrap .locations-filters .facetwp-facet {
  margin: 0 !important;
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 14px !important;
  padding: 10px 12px 12px !important;
  width: 100% !important;
}

/* Titles for the Locations controls (FacetWP classes) */
body .locations-wrap .locations-filters .facetwp-facet-search:before { content: "Search"; }
body .locations-wrap .locations-filters .facetwp-facet-location_region:before { content: "Region"; }
body .locations-wrap .locations-filters .facetwp-facet-location_type:before { content: "Location type"; }
body .locations-wrap .locations-filters .facetwp-facet-reset:before { content: "Reset"; }

body .locations-wrap .locations-filters .facetwp-facet-search:before,
body .locations-wrap .locations-filters .facetwp-facet-location_region:before,
body .locations-wrap .locations-filters .facetwp-facet-location_type:before,
body .locations-wrap .locations-filters .facetwp-facet-reset:before {
  display: block;
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  opacity: .95;
  margin: 2px 0 8px 2px;
}

body .locations-wrap .locations-filters .facetwp-search,
body .locations-wrap .locations-filters select {
  width: 100% !important;
  border-radius: 12px !important;
  border: 1px solid rgba(0,0,0,.14) !important;
  padding: 12px 12px !important;
  min-height: 44px !important;
  font-size: 15px !important;
  background: #fff !important;
}

body .locations-wrap .locations-filters .facetwp-search-wrap:after {
  right: 14px;
  opacity: .55;
}

/* Reset button */
body .locations-wrap .locations-filters .facetwp-reset {
  display: inline-flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 44px !important;
  border-radius: 12px !important;
  border: 1px solid #EE2A26 !important;
  padding: 12px 14px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  background: #FFFFFF !important;
  color: #EE2A26 !important;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
}
body .locations-wrap .locations-filters .facetwp-reset:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(0,0,0,.18);
  background: #EE2A26 !important;
  color: #FFFFFF !important;
}

/* Locations pager (NOT inside the navy bar) */
body .locations-wrap .locations-pager {
  margin: 10px 0 14px;
}
body .locations-wrap .locations-pager .facetwp-pager {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

/* Sticky on desktop */
@media (min-width: 1025px) {
  body .locations-wrap .locations-filters {
    position: sticky;
    top: 90px;
    z-index: 20;
  }
}

/* =========================================================
   STEP C – Product Category filters
   Parent categories: Search + Type + Sort + Reset (4 cols)
   Leaf categories:   Search + Sort + Reset (3 cols)
   taxonomy-product_cat.php adds .has-child-dropdown / .no-child-dropdown
   ========================================================= */

/* FULL-WIDTH + consistent grid behaviour on all category pages */
body.tax-product_cat .experiences-wrap .experiences-filters,
body.tax-product_cat .experiences-wrap .experiences-filters .filters-grid{
  width: 100% !important;
  max-width: none !important;
}

body.tax-product_cat .experiences-wrap .experiences-filters .filters-grid{
  display: grid !important;
  gap: 14px !important;
  align-items: stretch !important;
  justify-items: stretch !important;
  justify-content: stretch !important;
}

/* Parent category layout */
body.tax-product_cat .experiences-wrap .experiences-filters.has-child-dropdown .filters-grid{
  grid-template-columns: 1.4fr 1fr 1fr 160px !important;
}

/* Leaf category layout */
body.tax-product_cat .experiences-wrap .experiences-filters.no-child-dropdown .filters-grid{
  grid-template-columns: 1fr 1fr 160px !important;
}

/* Ensure tiles fill cells */
body.tax-product_cat .experiences-wrap .experiences-filters .facetwp-facet{
  width: 100% !important;
}

/* Safety: reset button stays identical everywhere */
body.tax-product_cat .experiences-wrap .experiences-filters .facetwp-reset{
  width: 100% !important;
  min-height: 44px !important;
  border-radius: 12px !important;
}

/* “Experience type” label for the special parent dropdown facets */
body .experiences-wrap .experiences-filters .facetwp-facet[class*="facetwp-facet-experience_category_"]::before{
  content: "Experience type";
  display: block;
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  opacity: .95;
  margin: 2px 0 8px 2px;
}

/* Responsive (same as Experiences) */
@media (max-width: 900px){
  body.tax-product_cat .experiences-wrap .filters-grid{
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 600px){
  body.tax-product_cat .experiences-wrap .filters-grid{
    grid-template-columns: 1fr !important;
  }
}

.voucher-secret {
  border: 3px solid #000;
  border-radius: 10px;
  padding: 10px 12px;
  margin: 10px 0 12px;
  background: #fdfdfd;
  font-size: 15px;
  letter-spacing: 1px;
}
.voucher-secret-note {
  margin-top: 6px;
  font-size: 11px;
  opacity: .75;
}

/* =========================================================
   PRODUCT CATEGORY – Aircraft facet layout
   ========================================================= */

/* Leaf category with Aircraft dropdown:
   Search + Aircraft + Sort + Reset */
body.tax-product_cat .experiences-wrap .experiences-filters.no-child-dropdown.has-aircraft-dropdown .filters-grid {
  grid-template-columns: 1.4fr 1fr 1fr 160px !important;
}

/* If ever used on a parent flying page with both child category + aircraft:
   Search + Experience type + Aircraft + Sort + Reset */
body.tax-product_cat .experiences-wrap .experiences-filters.has-child-dropdown.has-aircraft-dropdown .filters-grid {
  grid-template-columns: 1.3fr 1fr 1fr 1fr 160px !important;
}

/* Aircraft label */
body .experiences-wrap .experiences-filters .facetwp-facet-aircraft_type::before {
  content: "Aircraft";
  display: block;
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  opacity: .95;
  margin: 2px 0 8px 2px;
}

/* Keep Aircraft tile visually identical */
body .experiences-wrap .experiences-filters .facetwp-facet-aircraft_type {
  margin: 0 !important;
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 14px !important;
  padding: 10px 12px 12px !important;
  width: 100% !important;
}

/* Responsive */
@media (max-width: 900px) {
  body.tax-product_cat .experiences-wrap .experiences-filters.no-child-dropdown.has-aircraft-dropdown .filters-grid,
  body.tax-product_cat .experiences-wrap .experiences-filters.has-child-dropdown.has-aircraft-dropdown .filters-grid {
    grid-template-columns: 1fr 1fr !important;
  }
}

@media (max-width: 600px) {
  body.tax-product_cat .experiences-wrap .experiences-filters.no-child-dropdown.has-aircraft-dropdown .filters-grid,
  body.tax-product_cat .experiences-wrap .experiences-filters.has-child-dropdown.has-aircraft-dropdown .filters-grid {
    grid-template-columns: 1fr !important;
  }
}

.experiences-filters .facetwp-facet {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.experiences-filters label {
  margin-bottom: 6px;
  font-weight: 600;
}

.facetwp-facet.facetwp-active label {
  color: #EE2A26;
}

.facetwp-template.loading {
  opacity: 0.5;
  transition: opacity 0.2s ease;
}

.facetwp-reset {
  background: #fff;
  color: #EE2A26;
  border: 2px solid #EE2A26;
}

.facetwp-reset:hover {
  background: #EE2A26;
  color: #fff;
}

@media (max-width: 768px) {
  .filters-grid {
    grid-template-columns: 1fr 1fr;
  }

  .filters-grid .facetwp-facet:first-child {
    grid-column: span 2;
  }

  .filters-grid .facetwp-facet:last-child {
    grid-column: span 2;
  }
}

/* =========================================================
   LOCATIONS ARCHIVE – safe hero polish
========================================================= */

/* Top intro */
body.post-type-archive-location .site-main > h1,
body.post-type-archive-location .entry-title,
body.post-type-archive-location .page-title {
  margin: 0 0 14px;
  color: #2F2F2F;
  font-size: clamp(44px, 5.8vw, 68px);
  line-height: 0.96;
  letter-spacing: -0.045em;
  font-weight: 800;
  text-wrap: balance;
}

body.post-type-archive-location .site-main > p:first-of-type,
body.post-type-archive-location .archive-description {
  max-width: 760px;
  margin: 0 0 28px;
  color: rgba(47, 47, 47, 0.76);
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.55;
  letter-spacing: -0.015em;
}

/* Checkbox row */
#ae-map-viewport-toggle {
  margin: 18px 0 22px !important;
}

#ae-map-viewport-toggle .ae-map-toggle {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  border-radius: 18px;
  border: 1px solid rgba(14, 42, 71, 0.10);
  background: #fff;
  box-shadow: 0 10px 22px rgba(14, 42, 71, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

#ae-map-viewport-toggle .ae-map-toggle:hover {
  transform: translateY(-1px);
  border-color: rgba(14, 42, 71, 0.16);
  box-shadow: 0 14px 28px rgba(14, 42, 71, 0.10);
}

#ae-map-viewport-toggle .ae-map-toggle__input {
  width: 18px;
  height: 18px;
  accent-color: #1b4fc4;
}

#ae-map-viewport-toggle .ae-map-toggle__text {
  color: rgba(14, 42, 71, 0.84);
  font-size: 16px;
  line-height: 1.25;
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* Map presentation */
.ae-gmap.locations-map,
.locations-map,
#locations-map {
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid rgba(14, 42, 71, 0.08);
  box-shadow: 0 18px 40px rgba(14, 42, 71, 0.10);
  margin-bottom: 34px;
}

/* Mobile */
@media (max-width: 767px) {
  body.post-type-archive-location .site-main > h1,
  body.post-type-archive-location .entry-title,
  body.post-type-archive-location .page-title {
    margin-bottom: 12px;
    font-size: clamp(36px, 10vw, 52px);
    line-height: 0.98;
  }

  body.post-type-archive-location .site-main > p:first-of-type,
  body.post-type-archive-location .archive-description {
    margin-bottom: 22px;
    font-size: 17px;
    line-height: 1.5;
  }

  #ae-map-viewport-toggle {
    margin: 14px 0 18px !important;
  }

  #ae-map-viewport-toggle .ae-map-toggle {
    width: 100%;
    justify-content: flex-start;
    padding: 12px 14px;
    border-radius: 16px;
  }

  #ae-map-viewport-toggle .ae-map-toggle__text {
    font-size: 15px;
  }

  .ae-gmap.locations-map,
  .locations-map,
  #locations-map {
    border-radius: 20px;
    margin-bottom: 28px;
  }
}

/* =========================================================
   LOCATIONS ARCHIVE – Hero polish to match Single Location
========================================================= */

body.post-type-archive-location .site-main > h1,
body.post-type-archive-location .entry-title,
body.post-type-archive-location .page-title {
  margin: 0 0 14px !important;
  color: #2F2F2F !important;
  font-size: clamp(52px, 6.2vw, 78px) !important;
  line-height: 0.95 !important;
  letter-spacing: -0.045em !important;
  font-weight: 800 !important;
  text-wrap: balance;
}

body.post-type-archive-location .site-main > p:first-of-type,
body.post-type-archive-location .archive-description {
  max-width: 760px;
  margin: 0 0 34px !important;
  color: rgba(47, 47, 47, 0.72) !important;
  font-size: clamp(20px, 2vw, 24px) !important;
  line-height: 1.55 !important;
  letter-spacing: -0.015em;
}

/* Give the whole intro area a little more breathing room */
body.post-type-archive-location .site-main,
body.post-type-archive-location .elementor-location-archive,
body.post-type-archive-location .elementor-widget-theme-archive-title {
  position: relative;
}

body.post-type-archive-location .site-main > h1,
body.post-type-archive-location .entry-title,
body.post-type-archive-location .page-title {
  padding-top: 6px;
}

/* Mobile refinement */
@media (max-width: 767px) {
  body.post-type-archive-location .site-main > h1,
  body.post-type-archive-location .entry-title,
  body.post-type-archive-location .page-title {
    margin-bottom: 12px !important;
    font-size: clamp(38px, 10vw, 54px) !important;
    line-height: 0.98 !important;
  }

  body.post-type-archive-location .site-main > p:first-of-type,
  body.post-type-archive-location .archive-description {
    margin-bottom: 24px !important;
    font-size: 17px !important;
    line-height: 1.5 !important;
  }
}

/* =========================================================
   LOCATIONS ARCHIVE – premium card styling
========================================================= */

.locations-wrap .locations-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}

.locations-wrap .location-card {
  border: 1px solid rgba(14, 42, 71, 0.08);
  border-radius: 26px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 16px 36px rgba(14, 42, 71, 0.07);
  transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
}

.locations-wrap .location-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 24px 46px rgba(14, 42, 71, 0.14);
  border-color: rgba(238, 42, 38, 0.18);
}

.locations-wrap .location-card > a {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

.locations-wrap .location-card .img {
  overflow: hidden;
  background: rgba(14, 42, 71, 0.03);
}

.locations-wrap .location-card .img img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

.locations-wrap .location-card:hover .img img {
  transform: scale(1.035);
}

.locations-wrap .location-card .body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 22px 20px 22px;
  gap: 0;
}

.locations-wrap .location-card .body h3 {
  margin: 0 0 12px;
  padding: 0 2px;
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: #0E2A47;
  text-wrap: balance;
}

.locations-wrap .location-card .body p {
  margin: 0 0 18px;
  padding: 0 2px;
  color: rgba(14, 42, 71, 0.72);
  font-size: 18px;
  line-height: 1.55;
}

.locations-wrap .location-card .body .hint {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  min-height: 50px;
  padding: 12px 20px;
  border: 2px solid #EE2A26;
  border-radius: 999px;
  background: #fff;
  color: #EE2A26;
  font-size: 15px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.01em;
  text-decoration: none;
  transition: all 0.22s ease;
}

.locations-wrap .location-card:hover .body .hint {
  background: #EE2A26;
  color: #fff;
  border-color: #EE2A26;
  transform: translateY(-1px);
}

@media (max-width: 1024px) {
  .locations-wrap .locations-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .locations-wrap .locations-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .locations-wrap .location-card .body {
    padding: 18px 18px 18px;
  }

  .locations-wrap .location-card .body h3 {
    font-size: 24px;
    margin-bottom: 12px;
  }

  .locations-wrap .location-card .body p {
    font-size: 17px;
    margin-bottom: 16px;
  }

  .locations-wrap .location-card .body .hint {
    min-height: 48px;
    font-size: 15px;
    padding: 12px 18px;
  }
}

/* =========================================================
   LOCATIONS – align with Experiences card style
========================================================= */

.locations-wrap .location-card .body {
  text-align: center;
  align-items: center;
}

.locations-wrap .location-card .body h3 {
  text-align: center;
  margin-bottom: 14px;
}

.locations-wrap .location-card .body p {
  text-align: center;
  max-width: 90%;
}

/* Full-width CTA button */
.locations-wrap .location-card .body .hint {
  width: calc(100% - 40px);
  justify-content: center;
  align-self: center;
  margin-top: auto;
  border-radius: 999px;
  font-size: 15px;
}

/* Button default */
.locations-wrap .location-card .body .hint {
  background: #fff;
  color: #EE2A26;
  border: 2px solid #EE2A26;
}

/* Button hover */
.locations-wrap .location-card:hover .body .hint {
  background: #EE2A26;
  color: #fff;
  border-color: #EE2A26;
  transform: translateY(-1px);
}

/* =========================================================
   Single Location - premium top section
========================================================= */
.ae-location-hero {
  margin-bottom: 10px;
}

.ae-location-hero-top {
  margin-bottom: 26px;
}

.ae-location-kicker {
  margin-bottom: 10px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(14, 42, 71, 0.72);
}

.ae-location-title {
  margin: 0;
  font-size: clamp(44px, 7vw, 76px);
  line-height: 0.95;
  letter-spacing: -0.04em;
  color: #0E2A47;
}

.ae-location-status-wrap {
  margin-top: 16px;
}

.ae-location-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(14, 42, 71, 0.08);
  border: 1px solid rgba(14, 42, 71, 0.08);
  color: #0E2A47;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
}

.ae-location-hero-summary {
  max-width: 760px;
  margin-top: 18px;
  font-size: 20px;
  line-height: 1.55;
  color: #334a68;
}

.ae-location-hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 18px;
  margin-top: 24px;
}

.ae-location-primary-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 14px 22px;
  border-radius: 999px;
  background: #fff;
  border: 2px solid #EE2A26;
  color: #EE2A26 !important;
  font-weight: 800;
  text-decoration: none !important;
  box-shadow: 0 12px 28px rgba(14, 42, 71, 0.08);
  transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease, color 0.22s ease;
}

.ae-location-primary-btn:hover,
.ae-location-primary-btn:focus {
  transform: translateY(-2px);
  box-shadow: 0 18px 34px rgba(238, 42, 38, 0.18);
  background: #EE2A26;
  color: #fff !important;
}

.ae-location-secondary-link {
  font-weight: 700;
  text-decoration: none;
  color: #4774ff;
}

.ae-location-topgrid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 24px;
  align-items: start;
}

.ae-location-media-card,
.ae-location-panel,
.ae-location-copy-card,
.ae-location-details-card {
  background: #fff;
  border: 1px solid rgba(14, 42, 71, 0.08);
  border-radius: 22px;
  box-shadow: 0 14px 32px rgba(14, 42, 71, 0.06);
}

.ae-location-media-frame {
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: 22px;
  background: rgba(14, 42, 71, 0.04);
}

.ae-location-featured-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ae-location-side-stack {
  display: grid;
  gap: 20px;
}

.ae-location-panel {
  padding: 18px;
}

.ae-location-panel-head {
  margin-bottom: 12px;
}

.ae-location-panel-title {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0E2A47;
}

.ae-location-map-frame {
  height: 320px;
  border-radius: 16px;
  overflow: hidden;
  background: rgba(14, 42, 71, 0.04);
}

.ae-location-empty-panel {
  padding: 16px;
  border-radius: 16px;
  background: rgba(14, 42, 71, 0.04);
  color: rgba(14, 42, 71, 0.8);
}

.ae-location-details-card {
  padding: 0;
  overflow: hidden;
}

.ae-location-detail-row {
  display: grid;
  gap: 4px;
  padding: 16px 18px;
  border-bottom: 1px solid rgba(14, 42, 71, 0.08);
}

.ae-location-detail-row:last-child {
  border-bottom: 0;
}

.ae-location-detail-label {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(14, 42, 71, 0.6);
}

.ae-location-detail-value {
  font-size: 19px;
  line-height: 1.45;
  color: #0E2A47;
}

.ae-location-content-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 24px;
  margin-top: 30px;
}

.ae-location-section-title {
  margin: 0 0 14px;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1;
  letter-spacing: -0.03em;
  color: #0E2A47;
}

.ae-location-section-title--experiences {
  margin-bottom: 10px;
}

.ae-location-section-intro {
  margin: 0 0 18px;
  font-size: 18px;
  line-height: 1.55;
  color: #5a6b7f;
}

.ae-location-copy-card {
  padding: 20px 22px;
}

.ae-location-copy-card p:last-child,
.ae-location-copy-plain p:last-child {
  margin-bottom: 0;
}

.ae-location-copy-plain {
  color: #334a68;
  font-size: 18px;
  line-height: 1.75;
}

.ae-location-divider {
  margin: 40px 0;
  border: 0;
  border-top: 1px solid rgba(14, 42, 71, 0.08);
}

#ae-location-experiences {
  position: relative;
  top: -110px;
  visibility: hidden;
  height: 0;
}

.ae-location-media-stack {
  display: grid;
  gap: 28px;
}

.ae-location-overview-block {
  margin-top: 32px;
}

.ae-location-content-grid--desc-only {
  grid-template-columns: 1fr;
  margin-top: 30px;
}

@media (max-width: 1024px) {
  .ae-location-topgrid,
  .ae-location-content-grid {
    grid-template-columns: 1fr;
  }

  .ae-location-title {
    font-size: clamp(38px, 9vw, 60px);
  }
}

@media (max-width: 767px) {
  .ae-location-hero-summary,
  .ae-location-copy-plain,
  .ae-location-section-intro {
    font-size: 17px;
  }

  .ae-location-panel,
  .ae-location-copy-card {
    padding: 16px;
  }

  .ae-location-detail-row {
    padding: 14px 16px;
  }

  .ae-location-detail-value {
    font-size: 17px;
  }

  .ae-location-map-frame {
    height: 260px;
  }

  .ae-location-hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .ae-location-primary-btn {
    width: 100%;
  }

}

/* =========================================================
   SINGLE PRODUCT - CONSOLIDATED FINAL STYLES
   Clean replacement for all previous single-product blocks
========================================================= */

/* ---------- Core layout reset ---------- */
.single-product div.product .images,
.single-product div.product .summary,
.single-product div.product .woocommerce-product-gallery,
.single-product div.product .woocommerce-product-gallery--with-images,
.single-product div.product .woocommerce-tabs,
.single-product div.product .related,
.single-product div.product .upsells {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.single-product .col2-set,
.single-product .woocommerce-Reviews,
.single-product .related.products ul.products {
  width: 100% !important;
  max-width: 100% !important;
}

.single-product .product_title,
.single-product .elementor-widget-woocommerce-product-title h1 {
  font-size: clamp(34px, 4.8vw, 58px) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.045em !important;
  color: #0E2A47;
  text-wrap: balance;
}

/* ---------- Gallery ---------- */
.single-product .woocommerce-product-gallery,
.single-product .elementor-widget-woocommerce-product-images {
  margin-bottom: 22px !important;
}

.single-product .woocommerce-product-gallery__wrapper,
.single-product .flex-viewport {
  border-radius: 24px !important;
  overflow: hidden !important;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs {
  margin-top: 12px !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li {
  width: auto !important;
  margin: 0 !important;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li img,
.single-product .woocommerce-product-gallery .flex-control-nav li img {
  border-radius: 12px;
  border: 1px solid transparent;
  transition: transform 0.18s ease, border-color 0.18s ease, opacity 0.18s ease;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li img:hover,
.single-product .woocommerce-product-gallery .flex-control-nav li img:hover {
  transform: translateY(-2px);
  border-color: rgba(238, 42, 38, 0.22);
  opacity: 0.94;
}

.single-product .woocommerce-product-gallery .flex-active,
.single-product .woocommerce-product-gallery .flex-control-thumbs .flex-active {
  border-color: rgba(238, 42, 38, 0.45) !important;
}

/* ---------- Price + urgency ---------- */
.single-product .elementor-widget-woocommerce-product-price .price,
.single-product .elementor-widget-woocommerce-product-price p.price,
.single-product .elementor-widget-woocommerce-product-price span.price,
.single-product .woocommerce div.product p.price,
.single-product .woocommerce div.product span.price {
  margin: 0 0 18px !important;
  color: #C6A96B !important;
  font-size: clamp(42px, 5vw, 56px) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: -0.03em !important;
}

.ae-urgency {
  margin-top: 4px;
  margin-bottom: 16px;
  font-size: 14px;
  color: #EE2A26;
  font-weight: 600;
}

/* ---------- Purchase card ---------- */
.single-product .single_variation_wrap,
.single-product form.cart,
.single-product .cart {
  position: relative;
}

.single-product form.cart {
  margin-top: 10px;
  padding: 28px;
  border: 1px solid rgba(14, 42, 71, 0.08);
  border-radius: 28px;
  background: #ffffff;
  box-shadow: 0 16px 40px rgba(14, 42, 71, 0.06);
  transition: box-shadow 0.22s ease;
}

.single-product form.cart:hover {
  box-shadow: 0 22px 50px rgba(14, 42, 71, 0.08);
}

.single-product form.cart .wc-pao-addon-wrap,
.single-product form.cart .wc-pao-addon-container,
.single-product form.cart .wc-pao-addon {
  margin-bottom: 16px !important;
}

.single-product form.cart label {
  color: #0E2A47;
}

.single-product form.cart .wc-pao-addon-description,
.single-product form.cart .wc-pao-addon-wrap p,
.single-product form.cart .wc-pao-addon-container p {
  color: rgba(14, 42, 71, 0.72);
  line-height: 1.55;
  margin: 0;
}

.single-product form.cart .quantity {
  margin-right: 14px !important;
  display: inline-flex;
  align-items: center;
}

.single-product form.cart input.qty {
  width: 88px;
  height: 68px;
  border: 1.5px solid rgba(14, 42, 71, 0.2);
  border-radius: 18px;
  font-size: 28px;
  font-weight: 700;
  color: #0E2A47;
  background: #fff;
  text-align: center;
  box-shadow: none;
}

.single-product form.cart .single_add_to_cart_button {
  margin-top: 8px;
  min-width: 220px;
  min-height: 68px;
  padding: 16px 30px;
  border-radius: 999px !important;
  border: 2px solid #EE2A26 !important;
  background: #fff !important;
  color: #EE2A26 !important;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.01em;
  box-shadow: 0 10px 24px rgba(238, 42, 38, 0.08);
  transition: all 0.22s ease;
}

.single-product form.cart .single_add_to_cart_button:hover,
.single-product form.cart .single_add_to_cart_button:focus {
  background: #EE2A26 !important;
  color: #fff !important;
  border-color: #EE2A26 !important;
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(238, 42, 38, 0.18);
}

.single-product form.cart .wcpay-payment-request-wrapper,
.single-product form.cart .woocommerce-payments-express-checkout,
.single-product form.cart .wc-stripe-product-checkout-container {
  margin-top: 14px;
  padding-top: 18px;
  border-top: 1px solid rgba(14, 42, 71, 0.08);
}

.single-product form.cart .wcpay-payment-request-button,
.single-product form.cart .google-pay-button,
.single-product form.cart .apple-pay-button {
  border-radius: 14px !important;
  overflow: hidden;
}

/* ---------- Addon option card ---------- */
.single-product form.cart .wc-pao-addon,
.single-product form.cart .wc-pao-addon-field {
  margin: 0;
}

.single-product form.cart .wc-pao-addon label,
.single-product form.cart .wc-pao-addon-container label {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px 20px 18px;
  border: 1.5px solid rgba(14, 42, 71, 0.10);
  border-radius: 20px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfbfb 100%);
  box-shadow: 0 10px 24px rgba(14, 42, 71, 0.05);
  cursor: pointer;
  transition: all 0.22s ease;
}

.single-product form.cart .wc-pao-addon label:hover,
.single-product form.cart .wc-pao-addon-container label:hover {
  border-color: rgba(238, 42, 38, 0.28);
  box-shadow: 0 14px 32px rgba(14, 42, 71, 0.08);
  transform: translateY(-1px);
}

.single-product form.cart input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  margin: 3px 0 0;
  border: 2px solid rgba(14, 42, 71, 0.28);
  border-radius: 7px;
  background: #fff;
  display: inline-grid;
  place-items: center;
  cursor: pointer;
  transition: all 0.2s ease;
}

.single-product form.cart input[type="checkbox"]::after {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 3px;
  background: #EE2A26;
  transform: scale(0);
  transition: transform 0.16s ease;
}

.single-product form.cart input[type="checkbox"]:checked {
  border-color: #EE2A26;
}

.single-product form.cart input[type="checkbox"]:checked::after {
  transform: scale(1);
}

.single-product form.cart .wc-pao-addon-name,
.single-product form.cart .wc-pao-addon-label-text,
.single-product form.cart .wc-pao-addon label strong,
.single-product form.cart .wc-pao-addon-container label strong {
  display: block;
  margin: 0 0 6px;
  color: #0E2A47;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.35;
}

/* ---------- Trust strip ---------- */
.ae-trust-strip {
  position: relative;
  margin-top: 16px;
  margin-bottom: 28px;
  padding-top: 14px;
  border-top: 1px solid rgba(14, 42, 71, 0.08);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px 16px;
}

.ae-trust-strip::after {
  content: "";
  display: block;
  height: 1px;
  margin-top: 18px;
  background: linear-gradient(
    to right,
    transparent,
    rgba(14, 42, 71, 0.08),
    transparent
  );
}

.ae-trust-item {
  font-size: 13px;
  font-weight: 600;
  color: rgba(14, 42, 71, 0.65);
  display: flex;
  align-items: center;
  gap: 8px;
}

.ae-trust-item span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(238, 42, 38, 0.08);
  color: #EE2A26;
  font-size: 12px;
  font-weight: 800;
}

/* ---------- What to Expect ---------- */
.ae-expect {
  margin: 0 0 80px;
}

.ae-expect h2 {
  font-size: clamp(38px, 4.6vw, 58px);
  font-weight: 800;
  line-height: 0.98;
  letter-spacing: -0.04em;
  color: #0E2A47;
  margin: 0 0 30px;
}

.ae-expect-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
}

.ae-expect-item {
  position: relative;
  padding: 32px 32px 30px;
  border-radius: 28px;
  background: #ffffff;
  border: 1px solid rgba(14, 42, 71, 0.08);
  box-shadow: 0 14px 34px rgba(14, 42, 71, 0.05);
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
  overflow: hidden;
}

.ae-expect-item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #EE2A26, rgba(238, 42, 38, 0.18));
}

.ae-expect-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 44px rgba(14, 42, 71, 0.08);
  border-color: rgba(238, 42, 38, 0.14);
}

.ae-step {
  display: inline-block;
  margin-bottom: 14px;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.08em;
  color: #EE2A26;
  text-transform: uppercase;
}

.ae-expect-item h3 {
  margin: 0 0 12px;
  font-size: 28px;
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: #0E2A47;
}

.ae-expect-item p {
  margin: 0;
  font-size: 18px;
  line-height: 1.6;
  color: rgba(14, 42, 71, 0.74);
  max-width: 34ch;
}

/* ---------- Available locations ---------- */
.ae-prod-locations {
  margin: 56px 0 72px;
}

.ae-prod-locations__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
}

.ae-prod-locations__intro {
  margin: 0 0 26px;
}

.ae-prod-locations__intro h2 {
  margin: 0 0 10px;
  font-size: clamp(34px, 4.2vw, 64px);
  line-height: 0.98;
  letter-spacing: -0.04em;
  color: #0E2A47;
}

.ae-prod-locations__intro p {
  margin: 0;
  font-size: 18px;
  line-height: 1.45;
  color: #6C7A89;
}

.ae-prod-locations__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(320px, 1fr);
  gap: 28px;
  align-items: start;
}

.ae-prod-locations__mapwrap {
  min-width: 0;
}

.ae-prod-locations__map {
  width: 100%;
  height: 540px;
  border-radius: 28px;
  overflow: hidden;
  border: 1px solid rgba(14, 42, 71, 0.08);
  box-shadow: 0 18px 40px rgba(14, 42, 71, 0.08);
  background: #eef3f7;
}

.ae-prod-locations__cards {
  display: grid;
  gap: 18px;
}

.ae-prod-location-card {
  background: #fff;
  border: 1px solid rgba(14, 42, 71, 0.08);
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(14, 42, 71, 0.07);
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.ae-prod-location-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 40px rgba(14, 42, 71, 0.12);
  border-color: rgba(238, 42, 38, 0.18);
}

.ae-prod-location-card__link {
  display: grid;
  grid-template-columns: 180px 1fr;
  align-items: center;
  text-decoration: none;
  color: inherit;
  min-height: 220px;
}

.ae-prod-location-card__media {
  height: 100%;
  background: #f4f6f8;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px;
}

.ae-prod-location-card__media img {
  width: 100%;
  height: auto;
  max-height: 150px;
  object-fit: contain;
  display: block;
}

.ae-prod-location-card__body {
  padding: 28px 28px 28px 8px;
  display: grid;
  gap: 10px;
}

.ae-prod-location-card__body h3 {
  margin: 0;
  font-size: clamp(24px, 2vw, 34px);
  line-height: 1.02;
  letter-spacing: -0.03em;
  color: #0E2A47;
}

.ae-prod-location-card__body p {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: #6C7A89;
}

.ae-prod-location-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  font-size: 15px;
  font-weight: 700;
  color: #EE2A26;
}

.ae-prod-locations__back {
  margin-top: 22px;
}

.ae-prod-locations__backbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 24px;
  border-radius: 999px;
  border: 2px solid #EE2A26;
  background: #fff;
  color: #EE2A26 !important;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none !important;
  transition: all 0.22s ease;
}

.ae-prod-locations__backbtn:hover,
.ae-prod-locations__backbtn:focus {
  background: #EE2A26;
  color: #fff !important;
  transform: translateY(-1px);
}

/* =========================================================
   Single Product - curated Related Experiences
========================================================= */

.single-product .ae-related-experiences {
  display: block;
  margin-top: 30px !important;
  padding-top: 22px;
  border-top: 1px solid rgba(14, 42, 71, 0.08);
}

.single-product .ae-related-title {
  margin: 0 0 34px;
  font-size: clamp(34px, 4vw, 58px);
  line-height: 0.98;
  letter-spacing: -0.045em;
  color: #0E2A47;
  text-align: left;
}

.single-product .ae-related-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.single-product .ae-related-grid::before,
.single-product .ae-related-grid::after {
  display: none !important;
}

.single-product .ae-related-grid li.product {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  background: #fff;
  border: 1px solid rgba(14, 42, 71, 0.08);
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(14, 42, 71, 0.07);
  transition:
    transform 0.26s ease,
    box-shadow 0.26s ease,
    border-color 0.26s ease;
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.single-product .ae-related-grid li.product:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 52px rgba(14, 42, 71, 0.14);
  border-color: rgba(238, 42, 38, 0.16);
}

.single-product .ae-related-grid li.product > a:first-child {
  display: block;
  text-decoration: none !important;
  color: inherit !important;
}

.single-product .ae-related-grid li.product a img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
  margin: 0 !important;
  transition: transform 0.38s ease;
}

.single-product .ae-related-grid li.product:hover a img {
  transform: scale(1.035);
}

.single-product .ae-related-grid li.product .woocommerce-loop-product__title {
  display: block;
  padding: 24px 24px 12px;
  margin: 0 !important;
  font-size: clamp(24px, 2vw, 30px);
  font-weight: 800;
  line-height: 1.06;
  letter-spacing: -0.03em;
  color: #0E2A47 !important;
  min-height: 3.15em;
  text-wrap: balance;
}

.single-product .ae-related-grid li.product .price {
  display: block;
  padding: 2px 24px 20px;
  margin: 0 !important;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #6F7C91 !important; /* styles 'From' */
}

.single-product .ae-related-grid li.product .price .amount,
.single-product .ae-related-grid li.product .price ins,
.single-product .ae-related-grid li.product .price bdi {
  color: #EE2A26 !important;
  font-size: 24px;
  font-weight: 800 !important;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.single-product .ae-related-grid li.product .price ins {
  text-decoration: none !important;
}

.single-product .ae-related-grid li.product .price del,
.single-product .ae-related-grid li.product .price del .amount,
.single-product .ae-related-grid li.product .price del bdi {
  opacity: 0.42;
  color: rgba(14, 42, 71, 0.42) !important;
}

.single-product .ae-related-grid li.product .price .ae-from-label {
  display: inline-block;
  margin-right: 8px;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: #6F7C91 !important;
  vertical-align: baseline;
}

.single-product .ae-related-grid li.product .button,
.single-product .ae-related-grid li.product a.button,
.single-product .ae-related-grid li.product .added_to_cart {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  min-height: 50px;
  margin: auto 24px 24px !important;
  padding: 13px 20px !important;
  border-radius: 999px;
  border: 2px solid #EE2A26 !important;
  background: #fff !important;
  color: #EE2A26 !important;
  font-size: 15px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none !important;
  letter-spacing: -0.01em;
  box-shadow: none !important;
  transition: all 0.22s ease;
}

.single-product .ae-related-grid li.product .button:hover,
.single-product .ae-related-grid li.product a.button:hover,
.single-product .ae-related-grid li.product .added_to_cart:hover {
  background: #EE2A26 !important;
  color: #fff !important;
  border-color: #EE2A26 !important;
  transform: translateY(-1px);
}

.single-product .ae-related-grid li.product .star-rating,
.single-product .ae-related-grid li.product .onsale {
  display: none !important;
}

@media (max-width: 1024px) {
  .single-product .ae-related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }

  .single-product .ae-related-grid li.product .woocommerce-loop-product__title {
    font-size: 24px;
    padding: 22px 22px 12px;
  }

  .single-product .ae-related-grid li.product .price {
    padding: 0 22px 16px;
  }

  .single-product .ae-related-grid li.product .button,
  .single-product .ae-related-grid li.product a.button,
  .single-product .ae-related-grid li.product .added_to_cart {
    margin: auto 22px 22px !important;
  }
}

@media (max-width: 767px) {
  .single-product .ae-related-experiences {
    margin-top: 22px !important;
    padding-top: 18px;
  }

  .single-product .ae-related-title {
    margin-bottom: 24px;
    font-size: clamp(30px, 10vw, 42px);
    line-height: 0.98;
  }

  .single-product .ae-related-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .single-product .ae-related-grid li.product {
    border-radius: 24px;
  }

  .single-product .ae-related-grid li.product .woocommerce-loop-product__title {
    padding: 20px 20px 12px;
    font-size: 24px;
    min-height: auto;
  }

  .single-product .ae-related-grid li.product .price {
  padding: 2px 20px 18px;
  font-size: 22px;
}

.single-product .ae-related-grid li.product .price .from {
  font-size: 16px;
}

.single-product .ae-related-grid li.product .price .ae-from-label {
  font-size: 16px;
}

  .single-product .ae-related-grid li.product .button,
  .single-product .ae-related-grid li.product a.button,
  .single-product .ae-related-grid li.product .added_to_cart {
    margin: auto 20px 20px !important;
    min-height: 48px;
    padding: 12px 18px !important;
    font-size: 14px;
  }
}

/* --- FIX: Related Experience card title spacing --- */
.single-product .ae-related-grid li.product > a {
  display: block;
  text-decoration: none !important;
  color: inherit !important;
}

.single-product .ae-related-grid li.product h2.woocommerce-loop-product__title,
.single-product .ae-related-grid li.product h3.woocommerce-loop-product__title,
.single-product .ae-related-grid li.product .woocommerce-loop-product__title {
  display: block !important;
  margin: 0 !important;
  padding: 24px 24px 12px !important;
  font-size: clamp(24px, 2vw, 30px) !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.03em !important;
  color: #0E2A47 !important;
  min-height: 3.2em;
  text-wrap: balance;
  box-sizing: border-box;
}

/* Related Experiences - style the variable "From" label correctly */
.single-product .ae-related-grid li.product .price .ae-price-from-label {
  display: inline-block;
  margin-right: 8px;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: #6F7C91 !important;
  vertical-align: baseline;
}

.single-product .ae-related-grid li.product .price .ae-price-from-value,
.single-product .ae-related-grid li.product .price .ae-price-from-value .amount,
.single-product .ae-related-grid li.product .price .ae-price-from-value bdi {
  color: #EE2A26 !important;
  font-size: 24px;
  font-weight: 800 !important;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

@media (max-width: 767px) {
  .single-product .ae-related-grid li.product .price .ae-price-from-label {
    font-size: 16px;
  }

  .single-product .ae-related-grid li.product .price .ae-price-from-value,
  .single-product .ae-related-grid li.product .price .ae-price-from-value .amount,
  .single-product .ae-related-grid li.product .price .ae-price-from-value bdi {
    font-size: 22px;
  }
}

.single-product .ae-related-grid li.product .price {
  margin-top: 6px;
}

.single-product .ae-related-grid li.product .price .ae-price-from-label {
  margin-right: 6px;
}

/* =========================================================
   Experiences grid - variable "From" price styling
========================================================= */

.post-type-archive-product ul.products li.product .price,
.tax-product_cat ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
  display: block;
  margin: 8px 0 18px !important;
  color: #6F7C91 !important;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.01em;
}

.post-type-archive-product ul.products li.product .price .amount,
.post-type-archive-product ul.products li.product .price ins,
.post-type-archive-product ul.products li.product .price bdi,
.tax-product_cat ul.products li.product .price .amount,
.tax-product_cat ul.products li.product .price ins,
.tax-product_cat ul.products li.product .price bdi,
.woocommerce-page ul.products li.product .price .amount,
.woocommerce-page ul.products li.product .price ins,
.woocommerce-page ul.products li.product .price bdi {
  color: #EE2A26 !important;
  font-size: 24px;
  font-weight: 800 !important;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.post-type-archive-product ul.products li.product .price .ae-price-from-label,
.tax-product_cat ul.products li.product .price .ae-price-from-label,
.woocommerce-page ul.products li.product .price .ae-price-from-label {
  display: inline-block;
  margin-right: 6px;
  color: #6F7C91 !important;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -0.01em;
  vertical-align: baseline;
}

.post-type-archive-product ul.products li.product .price ins,
.tax-product_cat ul.products li.product .price ins,
.woocommerce-page ul.products li.product .price ins {
  text-decoration: none !important;
}

@media (max-width: 767px) {
  .post-type-archive-product ul.products li.product .price,
  .tax-product_cat ul.products li.product .price,
  .woocommerce-page ul.products li.product .price {
    font-size: 16px;
    margin: 6px 0 16px !important;
  }

  .post-type-archive-product ul.products li.product .price .amount,
  .post-type-archive-product ul.products li.product .price ins,
  .post-type-archive-product ul.products li.product .price bdi,
  .tax-product_cat ul.products li.product .price .amount,
  .tax-product_cat ul.products li.product .price ins,
  .tax-product_cat ul.products li.product .price bdi,
  .woocommerce-page ul.products li.product .price .amount,
  .woocommerce-page ul.products li.product .price ins,
  .woocommerce-page ul.products li.product .price bdi {
    font-size: 22px;
  }

  .post-type-archive-product ul.products li.product .price .ae-price-from-label,
  .tax-product_cat ul.products li.product .price .ae-price-from-label,
  .woocommerce-page ul.products li.product .price .ae-price-from-label {
    font-size: 16px;
  }
}

/* =========================================================
   Experiences / Related cards - alignment polish
========================================================= */

ul.products li.product,
.single-product .ae-related-grid li.product {
  display: flex;
  flex-direction: column;
}

ul.products li.product > a:first-child,
.single-product .ae-related-grid li.product > a:first-child {
  display: block;
}

ul.products li.product .woocommerce-loop-product__title,
.single-product .ae-related-grid li.product .woocommerce-loop-product__title {
  min-height: 3.15em;
}

ul.products li.product .button,
ul.products li.product a.button,
.single-product .ae-related-grid li.product .button,
.single-product .ae-related-grid li.product a.button {
  margin-top: auto !important;
}

/* Archive card title / price / button rhythm */
.post-type-archive-product ul.products li.product .woocommerce-loop-product__title {
  padding-bottom: 10px !important;
}

.post-type-archive-product ul.products li.product .button,
.post-type-archive-product ul.products li.product a.button {
  margin-top: auto !important;
}

/* =========================================================
   EXPERIENCES ARCHIVE – premium card styling
   (related-card look, but keep centred price + wider CTA)
========================================================= */

.experiences-wrap .experience-card {
  border: 1px solid rgba(14, 42, 71, 0.08);
  border-radius: 26px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 16px 36px rgba(14, 42, 71, 0.07);
  transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
  display: flex;
  flex-direction: column;
}

.experiences-wrap .experience-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 24px 46px rgba(14, 42, 71, 0.14);
  border-color: rgba(238, 42, 38, 0.18);
}

.experiences-wrap .experience-link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

.experiences-wrap .experience-image img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

.experiences-wrap .experience-card:hover .experience-image img {
  transform: scale(1.035);
}

.experiences-wrap .experience-content {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 22px 20px 22px;
}

.experiences-wrap .experience-title {
  margin: 0 0 16px;
  padding: 0 2px;
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: #0E2A47;
  text-wrap: balance;
  min-height: 3.2em;
}

.experiences-wrap .experience-price {
  margin: 2px 0 22px;
  padding: 0 2px;
  text-align: center;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #6F7C91;
  opacity: 1;
}

.experiences-wrap .experience-price .ae-price-from {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
}

.experiences-wrap .experience-price .ae-price-from-label {
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
  color: #6F7C91;
  letter-spacing: -0.01em;
}

.experiences-wrap .experience-price .ae-price-from-value,
.experiences-wrap .experience-price .ae-price-from-value .amount,
.experiences-wrap .experience-price .ae-price-from-value bdi,
.experiences-wrap .experience-price .amount,
.experiences-wrap .experience-price bdi {
  font-size: 24px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: #EE2A26;
}

.experiences-wrap .experience-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: 100%;
  min-height: 52px;
  margin-top: auto;
  padding: 13px 18px;
  border: 2px solid #EE2A26;
  border-radius: 999px;
  background: #fff;
  color: #EE2A26;
  font-size: 15px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.01em;
  text-decoration: none;
  box-shadow: none;
  transition: all 0.22s ease;
}

.experiences-wrap .experience-card:hover .experience-cta,
.experiences-wrap .experience-link:hover .experience-cta {
  background: #EE2A26;
  color: #fff;
  border-color: #EE2A26;
  transform: translateY(-1px);
}

@media (max-width: 767px) {
  .experiences-wrap .experience-content {
    padding: 18px 18px 18px;
  }

  .experiences-wrap .experience-title {
    margin-bottom: 14px;
    font-size: 24px;
    min-height: auto;
  }

  .experiences-wrap .experience-price {
    margin: 2px 0 18px;
  }

  .experiences-wrap .experience-price .ae-price-from-label {
    font-size: 16px;
  }

  .experiences-wrap .experience-price .ae-price-from-value,
  .experiences-wrap .experience-price .ae-price-from-value .amount,
  .experiences-wrap .experience-price .ae-price-from-value bdi,
  .experiences-wrap .experience-price .amount,
  .experiences-wrap .experience-price bdi {
    font-size: 22px;
  }

  .experiences-wrap .experience-cta {
    min-height: 50px;
    font-size: 15px;
  }
}

/* ---------- Sticky booking bar ---------- */
.ae-sticky-bookbar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 18px;
  z-index: 9999;
  pointer-events: none;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.22s ease, transform 0.22s ease;
}

.ae-sticky-bookbar.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.ae-sticky-bookbar__inner {
  width: min(920px, calc(100% - 24px));
  margin: 0 auto;
  padding: 14px 16px;
  border-radius: 22px;
  background: rgba(14, 42, 71, 0.96);
  color: #fff;
  box-shadow: 0 18px 48px rgba(14, 42, 71, 0.28);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  pointer-events: auto;
  backdrop-filter: blur(10px);
}

.ae-sticky-bookbar__meta {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.ae-sticky-bookbar__label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.72);
}

.ae-sticky-bookbar__price,
.ae-sticky-bookbar__price .amount {
  font-size: 28px;
  line-height: 1;
  font-weight: 800;
  color: #E5C97B;
}

.ae-sticky-bookbar__btn {
  appearance: none;
  border: 2px solid #EE2A26;
  background: #fff;
  color: #EE2A26;
  border-radius: 999px;
  min-height: 54px;
  padding: 12px 26px;
  font-size: 17px;
  font-weight: 800;
  cursor: pointer;
  transition: all 0.22s ease;
  white-space: nowrap;
}

.ae-sticky-bookbar__btn:hover,
.ae-sticky-bookbar__btn:focus {
  background: #EE2A26;
  color: #fff;
  transform: translateY(-1px);
}

/* ---------- Tablet ---------- */
@media (max-width: 1024px) {
  .single-product .product {
    padding-left: 20px;
    padding-right: 20px;
  }

  .single-product .elementor-widget-woocommerce-product-images,
  .single-product .elementor-widget-woocommerce-product-title,
  .single-product .elementor-widget-woocommerce-product-content,
  .single-product .elementor-widget-woocommerce-product-price,
  .single-product .elementor-widget-woocommerce-product-add-to-cart {
    width: 100% !important;
    max-width: 100% !important;
  }

  .single-product .product_title,
  .single-product .elementor-widget-woocommerce-product-title h1 {
    font-size: clamp(42px, 7vw, 64px) !important;
    margin-bottom: 18px !important;
  }

  .single-product .elementor-widget-woocommerce-product-price .price,
  .single-product .elementor-widget-woocommerce-product-price p.price,
  .single-product .elementor-widget-woocommerce-product-price span.price,
  .single-product .woocommerce div.product p.price,
  .single-product .woocommerce div.product span.price {
    font-size: clamp(36px, 7vw, 46px) !important;
  }

  .single-product form.cart {
    padding: 24px;
    border-radius: 24px;
  }

  .single-product form.cart .single_add_to_cart_button {
    min-width: 190px;
    min-height: 62px;
    font-size: 18px;
  }

  .single-product form.cart input.qty {
    width: 78px;
    height: 62px;
    font-size: 24px;
  }

  .ae-trust-strip {
    margin-bottom: 24px;
  }

  .ae-expect {
    margin: 0 0 64px;
  }

  .ae-expect h2 {
    font-size: clamp(34px, 5vw, 46px);
    margin-bottom: 24px;
  }

  .ae-expect-grid {
    gap: 22px;
  }

  .ae-expect-item {
    padding: 28px 26px 26px;
    border-radius: 24px;
  }

  .ae-expect-item h3 {
    font-size: 24px;
  }

  .ae-expect-item p {
    font-size: 17px;
  }

  .ae-prod-locations {
    margin: 46px 0 62px;
  }

  .ae-prod-locations__inner {
    padding: 0 24px;
  }

  .ae-prod-locations__grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .ae-prod-locations__map {
    height: 460px;
  }

  .ae-prod-location-card__link {
    grid-template-columns: 160px 1fr;
    min-height: 200px;
  }

  .single-product .related.products {
    margin-top: 64px !important;
  }

  .single-product .related.products > h2 {
    font-size: clamp(36px, 7vw, 52px) !important;
    margin-bottom: 20px !important;
  }

  .single-product .related.products ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
  }
}

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
  .single-product .product {
    padding-left: 16px;
    padding-right: 16px;
  }

  .single-product .elementor-widget-woocommerce-product-images,
  .single-product .elementor-widget-woocommerce-product-title,
  .single-product .elementor-widget-woocommerce-product-content,
  .single-product .elementor-widget-woocommerce-product-price,
  .single-product .elementor-widget-woocommerce-product-add-to-cart {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }

  .single-product .product_title,
  .single-product .elementor-widget-woocommerce-product-title h1 {
    font-size: clamp(34px, 11vw, 48px) !important;
    line-height: 0.98 !important;
    margin: 0 0 14px !important;
  }

  .single-product .woocommerce-product-gallery {
    margin-bottom: 18px !important;
  }

  .single-product .woocommerce-product-gallery__wrapper,
  .single-product .flex-viewport {
    border-radius: 18px !important;
  }

  .single-product .woocommerce-product-gallery .flex-control-thumbs {
    margin-top: 10px !important;
    gap: 8px !important;
  }

  .single-product .woocommerce-product-gallery .flex-control-thumbs img {
    border-radius: 10px !important;
  }

  .single-product .elementor-widget-woocommerce-product-price .price,
  .single-product .elementor-widget-woocommerce-product-price p.price,
  .single-product .elementor-widget-woocommerce-product-price span.price,
  .single-product .woocommerce div.product p.price,
  .single-product .woocommerce div.product span.price {
    font-size: 22px !important;
    margin-bottom: 16px !important;
  }

  .single-product form.cart {
    margin-top: 16px !important;
    padding: 22px 18px;
    border-radius: 22px;
  }

  .single-product form.cart .quantity {
    margin: 0 0 12px 0 !important;
    display: block !important;
  }

  .single-product form.cart .qty {
    width: 72px !important;
    min-height: 46px !important;
    max-width: 120px;
  }

  .single-product form.cart .single_add_to_cart_button {
    width: 100% !important;
    min-width: 0;
    min-height: 48px !important;
    padding: 12px 18px !important;
  }

  .single-product form.cart .wc-pao-addon label,
  .single-product form.cart .wc-pao-addon-container label {
    padding: 16px;
    gap: 12px;
    border-radius: 18px;
  }

  .single-product form.cart .wc-pao-addon-name,
  .single-product form.cart .wc-pao-addon-label-text,
  .single-product form.cart .wc-pao-addon label strong,
  .single-product form.cart .wc-pao-addon-container label strong {
    font-size: 17px;
  }

  .single-product form.cart .wc-pao-addon-description,
  .single-product form.cart .wc-pao-addon-wrap p,
  .single-product form.cart .wc-pao-addon-container p {
    font-size: 15px;
  }

  .ae-trust-strip {
    grid-template-columns: 1fr;
    margin-top: 22px;
    margin-bottom: 24px;
    padding-top: 16px;
  }

  .ae-trust-item {
    font-size: 15px;
    line-height: 1.45;
  }

  .ae-expect {
    margin: 0 0 52px;
  }

  .ae-expect h2 {
    font-size: clamp(32px, 8vw, 42px);
    margin-bottom: 20px;
  }

  .ae-expect-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .ae-expect-item {
    padding: 24px 22px 22px;
    border-radius: 22px;
  }

  .ae-step {
    margin-bottom: 10px;
    font-size: 12px;
  }

  .ae-expect-item h3 {
    font-size: 22px;
    margin-bottom: 10px;
  }

  .ae-expect-item p {
    font-size: 16px;
    line-height: 1.55;
    max-width: none;
  }

  .ae-prod-locations {
    margin: 48px 0 56px !important;
  }

  .ae-prod-locations__inner {
    padding: 0 18px;
  }

  .ae-prod-locations__intro h2 {
    font-size: clamp(30px, 9vw, 46px);
  }

  .ae-prod-locations__intro p {
    font-size: 17px;
  }

  .ae-prod-locations__grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .ae-prod-locations__map {
    height: 340px;
    min-height: 300px !important;
    border-radius: 22px;
  }

  .ae-prod-location-card {
    border-radius: 22px;
  }

  .ae-prod-location-card__link {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .ae-prod-location-card__media {
    padding: 18px;
  }

  .ae-prod-location-card__body {
    padding: 20px 20px 22px;
  }

  .ae-prod-location-card__body h3 {
    font-size: 28px;
  }

  .ae-prod-locations__backbtn {
    width: 100%;
  }

  .single-product .related.products {
    margin-top: 52px !important;
  }

  .single-product .related.products > h2 {
    font-size: clamp(32px, 10vw, 42px) !important;
    line-height: 0.98 !important;
    margin-bottom: 18px !important;
  }

  .single-product .related.products ul.products {
    grid-template-columns: 1fr !important;
    gap: 18px;
  }

  .single-product .related.products ul.products li.product,
  .single-product .ae-related-grid li.product {
    border-radius: 22px;
  }

  .single-product .related.products ul.products li.product .woocommerce-loop-product__title {
    padding: 18px 18px 8px;
    font-size: 24px;
    min-height: auto;
  }

  .single-product .related.products ul.products li.product .price {
    padding: 0 18px 14px;
    font-size: 18px;
  }

  .single-product .related.products ul.products li.product .button,
  .single-product .related.products ul.products li.product a.button,
  .single-product .related.products ul.products li.product .added_to_cart {
    margin: 0 18px 18px !important;
    min-height: 46px !important;
    padding: 11px 16px !important;
  }

  .ae-sticky-bookbar {
    bottom: 10px;
  }

  .ae-sticky-bookbar__inner {
    width: calc(100% - 16px);
    padding: 12px 12px 12px 14px;
    border-radius: 18px;
    gap: 12px;
  }

  .ae-sticky-bookbar__price,
  .ae-sticky-bookbar__price .amount {
    font-size: 22px;
  }

  .ae-sticky-bookbar__btn {
    min-height: 48px;
    padding: 10px 18px;
    font-size: 15px;
  }
}

@media (min-width: 1025px) {
  .ae-sticky-bookbar {
    display: none;
  }
}

/* =========================================================
   Single Product - long summary clamp + modal
========================================================= */

.single-product .ae-summary-wrap {
  position: relative;
  margin-bottom: 30px;
}

.single-product .ae-summary-wrap.is-collapsed .ae-summary-content {
  max-height: 440px;
  overflow: hidden;
  position: relative;
}

.single-product .ae-summary-wrap.is-collapsed .ae-summary-content::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 170px;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(248, 248, 248, 0) 0%,
    rgba(248, 248, 248, 0.84) 58%,
    rgba(248, 248, 248, 1) 100%
  );
}

/* JS still creates this element, but we no longer use it visually */
.single-product .ae-summary-wrap.is-collapsed .ae-summary-fade {
  display: none;
}

.single-product .ae-summary-actions {
  margin-top: 20px;
  margin-bottom: 18px;
}

.single-product .ae-summary-readmore {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #EE2A26;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.single-product .ae-summary-readmore:hover,
.single-product .ae-summary-readmore:focus {
  opacity: 0.8;
  outline: none;
}

/* Modal overlay */
.ae-summary-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
}

.ae-summary-modal.is-open {
  display: block;
}

.ae-summary-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(14, 42, 71, 0.62);
  backdrop-filter: blur(2px);
}

.ae-summary-modal__dialog {
  position: relative;
  width: min(920px, calc(100vw - 32px));
  max-height: calc(100vh - 190px);
  margin: 150px auto 32px;
  background: #ffffff;
  border-radius: 28px;
  box-shadow: 0 24px 80px rgba(14, 42, 71, 0.22);
  overflow: hidden;
  z-index: 1000000;
}

.ae-summary-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 24px 28px 18px;
  border-bottom: 1px solid rgba(14, 42, 71, 0.08);
}

.ae-summary-modal__title {
  margin: 0;
  color: #0E2A47;
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.ae-summary-modal__close {
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 999px;
  background: rgba(14, 42, 71, 0.06);
  color: #0E2A47;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

.ae-summary-modal__close:hover,
.ae-summary-modal__close:focus {
  background: rgba(14, 42, 71, 0.1);
  transform: scale(1.03);
  outline: none;
}

.ae-summary-modal__body {
  padding: 26px 28px 72px;
  max-height: calc(100vh - 260px);
  overflow-y: auto;
  color: rgba(14, 42, 71, 0.86);
}

.ae-summary-modal__body p,
.ae-summary-modal__body li {
  font-size: 18px;
  line-height: 1.7;
}

.ae-summary-modal__body h2,
.ae-summary-modal__body h3,
.ae-summary-modal__body h4 {
  color: #0E2A47;
  font-weight: 800;
  letter-spacing: -0.02em;
}

body.ae-summary-modal-open {
  overflow: hidden;
}

@media (max-width: 1024px) {
  .single-product .ae-summary-wrap.is-collapsed .ae-summary-content {
    max-height: 400px;
  }

  .single-product .ae-summary-wrap.is-collapsed .ae-summary-content::after {
  height: 150px;
}

  .single-product .ae-summary-wrap {
    margin-bottom: 28px;
  }
}

@media (max-width: 767px) {
  .single-product .ae-summary-wrap.is-collapsed .ae-summary-content {
    max-height: 320px;
  }

  .single-product .ae-summary-wrap.is-collapsed .ae-summary-content::after {
  height: 120px;
}

  .single-product .ae-summary-actions {
    margin-top: 18px;
    margin-bottom: 16px;
  }

  .ae-summary-modal__dialog {
    width: calc(100vw - 16px);
    max-height: calc(100vh - 150px);
    margin: 118px auto 12px;
    border-radius: 22px;
  }

  .ae-summary-modal__header {
    padding: 18px 18px 14px;
  }

  .ae-summary-modal__body {
    padding: 20px 18px 56px;
    max-height: calc(100vh - 230px);
  }

  .ae-summary-modal__body p,
  .ae-summary-modal__body li {
    font-size: 17px;
    line-height: 1.65;
  }
}

/* =========================================================
   Variable product "From" price styling
========================================================= */

.single-product .ae-price-from,
.post-type-archive-product .ae-price-from,
.tax-product_cat .ae-price-from {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}

.single-product .ae-price-from-label,
.post-type-archive-product .ae-price-from-label,
.tax-product_cat .ae-price-from-label {
  color: rgba(14, 42, 71, 0.62);
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.01em;
}

.single-product .ae-price-from-value,
.post-type-archive-product .ae-price-from-value,
.tax-product_cat .ae-price-from-value {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

@media (max-width: 1024px) {
  .single-product .ae-price-from-label {
    font-size: 18px;
  }
}

@media (max-width: 767px) {
  .single-product .ae-price-from-label {
    font-size: 16px;
  }
}

/* =========================================================
   Single Product - variable duration selector polish
========================================================= */

.single-product .variations {
  width: 100%;
  margin: 0 0 18px;
  border-collapse: separate;
  border-spacing: 0;
}

.single-product .variations tr {
  display: block;
}

.single-product .variations td,
.single-product .variations th {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
}

.single-product .variations .label {
  margin-bottom: 10px;
}

.single-product .variations .label label {
  display: inline-block;
  color: rgba(14, 42, 71, 0.72);
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.single-product .variations select {
  width: 100%;
  min-height: 64px;
  padding: 14px 18px;
  border: 1.5px solid rgba(14, 42, 71, 0.16);
  border-radius: 18px;
  background: #fff;
  color: #0E2A47;
  font-size: 20px;
  font-weight: 700;
  box-shadow: 0 6px 18px rgba(14, 42, 71, 0.04);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.single-product .variations select:focus {
  border-color: rgba(238, 42, 38, 0.45);
  box-shadow: 0 0 0 4px rgba(238, 42, 38, 0.08);
  outline: none;
}

.single-product .reset_variations {
  display: inline-block !important;
  margin-top: 10px;
  color: rgba(14, 42, 71, 0.58) !important;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s ease, opacity 0.2s ease;
}

.single-product .reset_variations:hover,
.single-product .reset_variations:focus {
  color: #EE2A26 !important;
  text-decoration: underline;
}

.single-product .single_variation {
  margin: 18px 0 20px;
}

.single-product .single_variation .price {
  margin: 0 !important;
  color: #B79A52 !important;
  font-size: clamp(34px, 4vw, 42px) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: -0.03em !important;
}

.single-product .woocommerce-variation-price {
  padding: 0;
  margin: 0 0 18px;
}

.single-product .woocommerce-variation-description {
  display: none;
}

.single-product .variations_form {
  margin-bottom: 0;
}

.single-product form.cart .variations {
  padding: 20px 20px 14px;
  border: 1px solid rgba(14, 42, 71, 0.06);
  border-radius: 22px;
  background: rgba(14, 42, 71, 0.02);
  margin-bottom: 20px;
}

@media (max-width: 767px) {
  .single-product .variations select {
    min-height: 58px;
    font-size: 18px;
    border-radius: 16px;
  }

  .single-product .single_variation .price {
    font-size: clamp(28px, 7vw, 36px) !important;
  }

  .single-product form.cart .variations {
    padding: 16px 16px 12px;
    border-radius: 18px;
  }
}

@media (max-width: 767px) {

  .single-product .variations select {
    font-size: 17px;              /* slightly reduced */
    padding: 14px 40px 14px 16px; /* extra right space for arrow */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

}

.single-product .woocommerce-variation-price::before {
  content: 'Selected price';
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(14, 42, 71, 0.55);
  margin-bottom: 6px;
}

.single-product .single_variation .price {
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.single-product .single_variation .price.updating {
  opacity: 0.5;
  transform: translateY(2px);
}

/* =========================================================
   LOCATIONS PAGE HERO – working Elementor-safe targeting
========================================================= */

/* Main title */
.locations-wrap h1,
.locations-wrap .page-title,
.locations-wrap .entry-title,
.locations-wrap .elementor-heading-title {
  margin: 0 0 14px !important;
  color: #0E2A47 !important;
  font-size: clamp(46px, 5.4vw, 64px) !important;
  line-height: 0.96 !important;
  letter-spacing: -0.04em !important;
  font-weight: 800 !important;
  text-wrap: balance;
}

/* Subtitle / intro paragraph */
.locations-wrap .elementor-widget-text-editor p,
.locations-wrap .archive-description,
.locations-wrap .elementor-text-editor p,
.locations-wrap > p,
.locations-wrap p {
  color: rgba(14, 42, 71, 0.72) !important;
  font-size: clamp(20px, 2vw, 24px) !important;
  line-height: 1.55 !important;
  letter-spacing: -0.015em;
}

/* But only give the hero-style spacing to the first intro copy area */
.locations-wrap .elementor-widget-text-editor:first-of-type p,
.locations-wrap .elementor-text-editor:first-of-type p,
.locations-wrap > p:first-of-type {
  max-width: 760px;
  margin: 0 0 34px !important;
}

/* Breathing room above filter bar */
.locations-wrap .locations-filters {
  margin-top: 10px !important;
}

/* Mobile */
@media (max-width: 767px) {
  .locations-wrap h1,
  .locations-wrap .page-title,
  .locations-wrap .entry-title,
  .locations-wrap .elementor-heading-title {
    margin-bottom: 12px !important;
    font-size: clamp(38px, 10vw, 54px) !important;
    line-height: 0.98 !important;
  }

  .locations-wrap .elementor-widget-text-editor:first-of-type p,
  .locations-wrap .elementor-text-editor:first-of-type p,
  .locations-wrap > p:first-of-type {
    margin-bottom: 24px !important;
    font-size: 17px !important;
    line-height: 1.5 !important;
  }

  .locations-wrap .locations-filters {
    margin-top: 6px !important;
  }
}

/* =========================================================
   LOCATIONS PAGE HERO – premium archive refinement
========================================================= */

/* Give the archive title a premium kicker, like Single Location */
.locations-wrap h1::before,
.locations-wrap .page-title::before,
.locations-wrap .entry-title::before,
.locations-wrap .elementor-heading-title::before {
  content: "Provider Locations";
  display: block;
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(14, 42, 71, 0.62);
}

/* Slightly narrower, more elegant title block */
.locations-wrap h1,
.locations-wrap .page-title,
.locations-wrap .entry-title,
.locations-wrap .elementor-heading-title {
  max-width: 12ch;
}

/* Intro copy feels more premium */
.locations-wrap .elementor-widget-text-editor:first-of-type p,
.locations-wrap .elementor-text-editor:first-of-type p,
.locations-wrap > p:first-of-type {
  max-width: 720px;
  color: rgba(14, 42, 71, 0.68) !important;
}

/* More graceful gap before filter bar */
.locations-wrap .locations-filters {
  margin-top: 18px !important;
}

/* Checkbox row styling refinement */
#ae-map-viewport-toggle,
.locations-wrap .ae-map-toggle-wrap,
.locations-wrap .locations-map-toggle {
  margin: 18px 0 24px !important;
}

/* Mobile */
@media (max-width: 767px) {
  .locations-wrap h1::before,
  .locations-wrap .page-title::before,
  .locations-wrap .entry-title::before,
  .locations-wrap .elementor-heading-title::before {
    margin-bottom: 12px;
    font-size: 11px;
    letter-spacing: 0.16em;
  }

  .locations-wrap .locations-filters {
    margin-top: 14px !important;
  }

  #ae-map-viewport-toggle,
  .locations-wrap .ae-map-toggle-wrap,
  .locations-wrap .locations-map-toggle {
    margin: 16px 0 20px !important;
  }
}

.locations-wrap {
  position: relative;
}

.locations-wrap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 420px;
  background: radial-gradient(
    circle at 20% 10%,
    rgba(14, 42, 71, 0.06),
    transparent 60%
  );
  pointer-events: none;
  z-index: 0;
}

.locations-wrap > * {
  position: relative;
  z-index: 1;
}

.locations-filters {
  box-shadow:
    0 20px 40px rgba(14, 42, 71, 0.08),
    0 2px 6px rgba(14, 42, 71, 0.04);
}

#ae-map-viewport-toggle {
  font-size: 15px;
  color: rgba(14, 42, 71, 0.7);
}

/* =========================================================
   SINGLE LOCATION – Experiences available here
   Style custom ae-location-product-* cards to match
   Experiences archive look and feel
========================================================= */

.ae-location-products-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin: 26px 0 0;
}

.ae-location-product-card {
  background: #fff;
  border: 1px solid rgba(14, 42, 71, 0.08);
  border-radius: 26px;
  overflow: hidden;
  box-shadow: 0 16px 36px rgba(14, 42, 71, 0.07);
  transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.ae-location-product-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 24px 46px rgba(14, 42, 71, 0.14);
  border-color: rgba(238, 42, 38, 0.18);
}

.ae-location-product-link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none !important;
  color: inherit !important;
}

.ae-location-product-media {
  overflow: hidden;
  background: rgba(14, 42, 71, 0.03);
}

.ae-location-product-image,
.ae-location-product-image--placeholder {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
  background: #eef2f6;
}

.ae-location-product-card:hover .ae-location-product-image {
  transform: scale(1.035);
}

.ae-location-product-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 22px 20px 22px;
  text-align: center;
  align-items: center;
}

.ae-location-product-title {
  margin: 0 0 16px;
  padding: 0 2px;
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: #0E2A47;
  text-wrap: balance;
  min-height: 3.2em;
}

.ae-location-product-price {
  display: block;
  margin: 2px 0 22px;
  padding: 0 2px;
  text-align: center;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #6F7C91;
}

.ae-location-product-price .ae-price-from {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
}

.ae-location-product-price .ae-price-from-label {
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
  color: #6F7C91;
  letter-spacing: -0.01em;
}

.ae-location-product-price .ae-price-from-value,
.ae-location-product-price .ae-price-from-value .amount,
.ae-location-product-price .ae-price-from-value bdi,
.ae-location-product-price .amount,
.ae-location-product-price bdi,
.ae-location-product-price ins {
  font-size: 24px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: #EE2A26 !important;
  text-decoration: none !important;
}

.ae-location-product-price del,
.ae-location-product-price del .amount,
.ae-location-product-price del bdi {
  opacity: 0.42;
  color: rgba(14, 42, 71, 0.42) !important;
}

.ae-location-product-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: 100%;
  min-height: 52px;
  margin-top: auto;
  padding: 13px 18px;
  border: 2px solid #EE2A26;
  border-radius: 999px;
  background: #fff;
  color: #EE2A26;
  font-size: 15px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.01em;
  text-decoration: none;
  box-shadow: none;
  transition: all 0.22s ease;
  box-sizing: border-box;
}

.ae-location-product-card:hover .ae-location-product-cta,
.ae-location-product-link:hover .ae-location-product-cta {
  background: #EE2A26;
  color: #fff;
  border-color: #EE2A26;
  transform: translateY(-1px);
}

@media (max-width: 1024px) {
  .ae-location-products-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }
}

@media (max-width: 767px) {
  .ae-location-products-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .ae-location-product-body {
    padding: 18px 18px 18px;
  }

  .ae-location-product-title {
    margin-bottom: 14px;
    font-size: 24px;
    min-height: auto;
  }

  .ae-location-product-price {
    margin: 2px 0 18px;
  }

  .ae-location-product-price .ae-price-from-label {
    font-size: 16px;
  }

  .ae-location-product-price .ae-price-from-value,
  .ae-location-product-price .ae-price-from-value .amount,
  .ae-location-product-price .ae-price-from-value bdi,
  .ae-location-product-price .amount,
  .ae-location-product-price bdi,
  .ae-location-product-price ins {
    font-size: 22px;
  }

  .ae-location-product-cta {
    min-height: 50px;
    font-size: 15px;
  }
}

/* =========================================================
   SINGLE LOCATION – Section polish (Experiences section)
========================================================= */

/* Section wrapper spacing */
body.single-location .ae-location-products-section {
  margin-top: 80px;
}

/* Section heading */
body.single-location .ae-location-products-section h2 {
  font-size: clamp(36px, 4vw, 52px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: #0E2A47;
  margin: 0 0 14px;
  max-width: 700px;
  text-wrap: balance;
}

/* Section subtext */
body.single-location .ae-location-products-section p {
  font-size: 18px;
  line-height: 1.5;
  color: #6F7C91;
  margin: 0 0 34px;
  max-width: 560px;
}

/* Optional: add subtle divider feel (very premium touch) */
body.single-location .ae-location-products-section {
  position: relative;
}

body.single-location .ae-location-products-section::before {
  content: "";
  display: block;
  width: 60px;
  height: 4px;
  background: #EE2A26;
  border-radius: 2px;
  margin-bottom: 20px;
}

/* Tighten grid alignment with text */
body.single-location .ae-location-products-grid {
  margin-top: 10px;
}

/* Mobile refinement */
@media (max-width: 767px) {
  body.single-location .ae-location-products-section {
    margin-top: 50px;
  }

  body.single-location .ae-location-products-section h2 {
    font-size: 30px;
    margin-bottom: 10px;
  }

  body.single-location .ae-location-products-section p {
    font-size: 16px;
    margin-bottom: 24px;
  }

  body.single-location .ae-location-products-section::before {
    margin-bottom: 14px;
  }
}

/* =========================================================
   SINGLE LOCATION – CTA row + media/map block polish
========================================================= */

/* CTA row */
body.single-location .ae-location-actions,
body.single-location .ae-location-cta-row,
body.single-location .ae-location-links {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  margin: 30px 0 34px;
}

body.single-location .ae-location-actions .button,
body.single-location .ae-location-actions .ae-primary-link,
body.single-location .ae-location-actions .ae-location-primary,
body.single-location .ae-location-cta-row .button,
body.single-location .ae-location-cta-row .ae-primary-link,
body.single-location .ae-location-cta-row .ae-location-primary,
body.single-location .ae-location-links .button,
body.single-location .ae-location-links .ae-primary-link,
body.single-location .ae-location-links .ae-location-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 62px;
  padding: 0 28px;
  border: 2px solid #EE2A26;
  border-radius: 999px;
  background: #fff;
  color: #EE2A26 !important;
  font-size: 16px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none !important;
  box-shadow: none;
  transition: all 0.22s ease;
}

body.single-location .ae-location-actions .button:hover,
body.single-location .ae-location-actions .ae-primary-link:hover,
body.single-location .ae-location-actions .ae-location-primary:hover,
body.single-location .ae-location-cta-row .button:hover,
body.single-location .ae-location-cta-row .ae-primary-link:hover,
body.single-location .ae-location-cta-row .ae-location-primary:hover,
body.single-location .ae-location-links .button:hover,
body.single-location .ae-location-links .ae-primary-link:hover,
body.single-location .ae-location-links .ae-location-primary:hover {
  background: #EE2A26;
  color: #fff !important;
  border-color: #EE2A26;
  transform: translateY(-1px);
}

body.single-location .ae-location-actions a:not(.button):not(.ae-primary-link):not(.ae-location-primary),
body.single-location .ae-location-cta-row a:not(.button):not(.ae-primary-link):not(.ae-location-primary),
body.single-location .ae-location-links a:not(.button):not(.ae-primary-link):not(.ae-location-primary) {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #4C78D8 !important;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none !important;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

body.single-location .ae-location-actions a:not(.button):not(.ae-primary-link):not(.ae-location-primary):hover,
body.single-location .ae-location-cta-row a:not(.button):not(.ae-primary-link):not(.ae-location-primary):hover,
body.single-location .ae-location-links a:not(.button):not(.ae-primary-link):not(.ae-location-primary):hover {
  opacity: 0.82;
  transform: translateY(-1px);
}

/* Media + map block */
body.single-location .ae-location-main-grid,
body.single-location .ae-location-lower-grid,
body.single-location .ae-location-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.9fr);
  gap: 28px;
  align-items: start;
  margin-top: 22px;
}

/* Shared card chrome */
body.single-location .ae-location-main-grid > *,
body.single-location .ae-location-lower-grid > *,
body.single-location .ae-location-content-grid > * {
  background: #fff;
  border: 1px solid rgba(14, 42, 71, 0.08);
  border-radius: 28px;
  box-shadow: 0 16px 36px rgba(14, 42, 71, 0.06);
  overflow: hidden;
}

/* Left image/media card */
body.single-location .ae-location-main-grid .ae-location-media,
body.single-location .ae-location-main-grid .ae-location-gallery,
body.single-location .ae-location-main-grid .ae-location-image-card,
body.single-location .ae-location-lower-grid .ae-location-media,
body.single-location .ae-location-lower-grid .ae-location-gallery,
body.single-location .ae-location-lower-grid .ae-location-image-card,
body.single-location .ae-location-content-grid .ae-location-media,
body.single-location .ae-location-content-grid .ae-location-gallery,
body.single-location .ae-location-content-grid .ae-location-image-card {
  padding: 0;
}

body.single-location .ae-location-main-grid img,
body.single-location .ae-location-lower-grid img,
body.single-location .ae-location-content-grid img {
  display: block;
  width: 100%;
  height: auto;
}

/* Right map/details card */
body.single-location .ae-location-main-grid .ae-location-map,
body.single-location .ae-location-main-grid .ae-location-map-card,
body.single-location .ae-location-main-grid .ae-location-sidebar,
body.single-location .ae-location-lower-grid .ae-location-map,
body.single-location .ae-location-lower-grid .ae-location-map-card,
body.single-location .ae-location-lower-grid .ae-location-sidebar,
body.single-location .ae-location-content-grid .ae-location-map,
body.single-location .ae-location-content-grid .ae-location-map-card,
body.single-location .ae-location-content-grid .ae-location-sidebar {
  padding: 20px 20px 22px;
}

body.single-location .ae-location-main-grid .ae-location-map h3,
body.single-location .ae-location-main-grid .ae-location-map-card h3,
body.single-location .ae-location-main-grid .ae-location-sidebar h3,
body.single-location .ae-location-lower-grid .ae-location-map h3,
body.single-location .ae-location-lower-grid .ae-location-map-card h3,
body.single-location .ae-location-lower-grid .ae-location-sidebar h3,
body.single-location .ae-location-content-grid .ae-location-map h3,
body.single-location .ae-location-content-grid .ae-location-map-card h3,
body.single-location .ae-location-content-grid .ae-location-sidebar h3 {
  margin: 0 0 14px;
  color: #0E2A47;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

body.single-location .ae-location-main-grid .ae-location-map .acf-map,
body.single-location .ae-location-main-grid .ae-location-map iframe,
body.single-location .ae-location-main-grid .ae-location-map-card .acf-map,
body.single-location .ae-location-main-grid .ae-location-map-card iframe,
body.single-location .ae-location-main-grid .ae-location-sidebar .acf-map,
body.single-location .ae-location-main-grid .ae-location-sidebar iframe,
body.single-location .ae-location-lower-grid .ae-location-map .acf-map,
body.single-location .ae-location-lower-grid .ae-location-map iframe,
body.single-location .ae-location-lower-grid .ae-location-map-card .acf-map,
body.single-location .ae-location-lower-grid .ae-location-map-card iframe,
body.single-location .ae-location-lower-grid .ae-location-sidebar .acf-map,
body.single-location .ae-location-lower-grid .ae-location-sidebar iframe,
body.single-location .ae-location-content-grid .ae-location-map .acf-map,
body.single-location .ae-location-content-grid .ae-location-map iframe,
body.single-location .ae-location-content-grid .ae-location-map-card .acf-map,
body.single-location .ae-location-content-grid .ae-location-map-card iframe,
body.single-location .ae-location-content-grid .ae-location-sidebar .acf-map,
body.single-location .ae-location-content-grid .ae-location-sidebar iframe {
  width: 100%;
  min-height: 340px;
  border: 0;
  border-radius: 18px;
  overflow: hidden;
  display: block;
}

/* Mobile / tablet */
@media (max-width: 1024px) {
  body.single-location .ae-location-main-grid,
  body.single-location .ae-location-lower-grid,
  body.single-location .ae-location-content-grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }
}

@media (max-width: 767px) {
  body.single-location .ae-location-actions,
  body.single-location .ae-location-cta-row,
  body.single-location .ae-location-links {
    gap: 14px;
    margin: 24px 0 28px;
  }

  body.single-location .ae-location-actions .button,
  body.single-location .ae-location-actions .ae-primary-link,
  body.single-location .ae-location-actions .ae-location-primary,
  body.single-location .ae-location-cta-row .button,
  body.single-location .ae-location-cta-row .ae-primary-link,
  body.single-location .ae-location-cta-row .ae-location-primary,
  body.single-location .ae-location-links .button,
  body.single-location .ae-location-links .ae-primary-link,
  body.single-location .ae-location-links .ae-location-primary {
    width: 100%;
    min-height: 56px;
    padding: 0 22px;
    font-size: 15px;
  }

  body.single-location .ae-location-actions a:not(.button):not(.ae-primary-link):not(.ae-location-primary),
  body.single-location .ae-location-cta-row a:not(.button):not(.ae-primary-link):not(.ae-location-primary),
  body.single-location .ae-location-links a:not(.button):not(.ae-primary-link):not(.ae-location-primary) {
    width: 100%;
    justify-content: center;
    font-size: 15px;
  }

  body.single-location .ae-location-main-grid .ae-location-map,
  body.single-location .ae-location-main-grid .ae-location-map-card,
  body.single-location .ae-location-main-grid .ae-location-sidebar,
  body.single-location .ae-location-lower-grid .ae-location-map,
  body.single-location .ae-location-lower-grid .ae-location-map-card,
  body.single-location .ae-location-lower-grid .ae-location-sidebar,
  body.single-location .ae-location-content-grid .ae-location-map,
  body.single-location .ae-location-content-grid .ae-location-map-card,
  body.single-location .ae-location-content-grid .ae-location-sidebar {
    padding: 16px 16px 18px;
  }

  body.single-location .ae-location-main-grid .ae-location-map .acf-map,
  body.single-location .ae-location-main-grid .ae-location-map iframe,
  body.single-location .ae-location-main-grid .ae-location-map-card .acf-map,
  body.single-location .ae-location-main-grid .ae-location-map-card iframe,
  body.single-location .ae-location-main-grid .ae-location-sidebar .acf-map,
  body.single-location .ae-location-main-grid .ae-location-sidebar iframe,
  body.single-location .ae-location-lower-grid .ae-location-map .acf-map,
  body.single-location .ae-location-lower-grid .ae-location-map iframe,
  body.single-location .ae-location-lower-grid .ae-location-map-card .acf-map,
  body.single-location .ae-location-lower-grid .ae-location-map-card iframe,
  body.single-location .ae-location-lower-grid .ae-location-sidebar .acf-map,
  body.single-location .ae-location-lower-grid .ae-location-sidebar iframe,
  body.single-location .ae-location-content-grid .ae-location-map .acf-map,
  body.single-location .ae-location-content-grid .ae-location-map iframe,
  body.single-location .ae-location-content-grid .ae-location-map-card .acf-map,
  body.single-location .ae-location-content-grid .ae-location-map-card iframe,
  body.single-location .ae-location-content-grid .ae-location-sidebar .acf-map,
  body.single-location .ae-location-content-grid .ae-location-sidebar iframe {
    min-height: 280px;
  }
}

/* =========================================================
   SINGLE LOCATION – fix lower content sections
========================================================= */

/* Reset generic lower text sections so they don't inherit card/grid treatment */
body.single-location .ae-location-section,
body.single-location .ae-location-copy,
body.single-location .ae-location-content,
body.single-location .ae-location-overview,
body.single-location .ae-location-about {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
  padding: 0 !important;
}

/* Make lower section headings read cleanly */
body.single-location .ae-location-section h2,
body.single-location .ae-location-copy h2,
body.single-location .ae-location-content h2,
body.single-location .ae-location-overview h2,
body.single-location .ae-location-about h2 {
  margin: 0 0 14px !important;
  color: #0E2A47 !important;
  font-size: clamp(34px, 4vw, 52px) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.035em !important;
  font-weight: 800 !important;
  text-wrap: balance;
}

/* Make lower body copy breathe properly */
body.single-location .ae-location-section p,
body.single-location .ae-location-copy p,
body.single-location .ae-location-content p,
body.single-location .ae-location-overview p,
body.single-location .ae-location-about p {
  margin: 0 0 18px !important;
  color: rgba(14, 42, 71, 0.82) !important;
  font-size: 18px !important;
  line-height: 1.7 !important;
}

/* Ensure overview/details row still works while lower sections stay normal */
body.single-location .ae-location-main-grid + .ae-location-section,
body.single-location .ae-location-main-grid + .ae-location-copy,
body.single-location .ae-location-main-grid + .ae-location-content,
body.single-location .ae-location-lower-grid + .ae-location-section,
body.single-location .ae-location-lower-grid + .ae-location-copy,
body.single-location .ae-location-lower-grid + .ae-location-content,
body.single-location .ae-location-content-grid + .ae-location-section,
body.single-location .ae-location-content-grid + .ae-location-copy,
body.single-location .ae-location-content-grid + .ae-location-content {
  margin-top: 36px !important;
}

/* Optional soft divider before experiences section */
body.single-location .ae-location-products-section {
  margin-top: 56px !important;
  padding-top: 30px;
  border-top: 1px solid rgba(14, 42, 71, 0.08);
}

@media (max-width: 767px) {
  body.single-location .ae-location-section h2,
  body.single-location .ae-location-copy h2,
  body.single-location .ae-location-content h2,
  body.single-location .ae-location-overview h2,
  body.single-location .ae-location-about h2 {
    font-size: 30px !important;
  }

  body.single-location .ae-location-section p,
  body.single-location .ae-location-copy p,
  body.single-location .ae-location-content p,
  body.single-location .ae-location-overview p,
  body.single-location .ae-location-about p {
    font-size: 16px !important;
    line-height: 1.65 !important;
  }

  body.single-location .ae-location-products-section {
    margin-top: 44px !important;
    padding-top: 24px;
  }
}

/* =========================================================
   SINGLE LOCATION – About this location fix
========================================================= */

.ae-location-content-grid--desc-only {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

.ae-location-description-wrap {
  max-width: 760px;
}

.ae-location-description-wrap .ae-location-section-title {
  margin: 0 0 16px !important;
}

.ae-location-description-block.ae-location-description-block--full {
  background: #fff;
  border: 1px solid rgba(14, 42, 71, 0.08);
  border-radius: 28px;
  box-shadow: 0 16px 36px rgba(14, 42, 71, 0.06);
  padding: 26px 28px;
  overflow: hidden;
}

.ae-location-description-block.ae-location-description-block--full .ae-location-copy-plain {
  margin: 0;
}

.ae-location-description-block.ae-location-description-block--full .ae-location-copy-plain p:last-child {
  margin-bottom: 0;
}

@media (max-width: 767px) {
  .ae-location-description-block.ae-location-description-block--full {
    padding: 20px 20px;
    border-radius: 22px;
  }

  .ae-location-description-wrap .ae-location-section-title {
    margin-bottom: 12px !important;
  }
}

/* =========================================================
   SINGLE LOCATION – About this location final fix
========================================================= */

/* The desc-only wrapper should NOT be a card */
.ae-location-content-grid--desc-only,
.ae-location-content-grid--desc-only > .ae-location-description-wrap {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
  padding: 0 !important;
}

/* Keep this section narrower and aligned like Overview */
.ae-location-description-wrap {
  max-width: 760px;
}

/* Title sits outside the text card */
.ae-location-description-wrap .ae-location-section-title {
  margin: 0 0 16px !important;
  padding: 0 !important;
  font-size: clamp(34px, 4vw, 52px) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.035em !important;
  font-weight: 800 !important;
  color: #0E2A47 !important;
}

/* Only the INNER text block is the card */
.ae-location-description-block.ae-location-description-block--full {
  display: block !important;
  background: #fff !important;
  border: 1px solid rgba(14, 42, 71, 0.08) !important;
  border-radius: 28px !important;
  box-shadow: 0 16px 36px rgba(14, 42, 71, 0.06) !important;
  overflow: hidden !important;
  padding: 28px 28px !important;
}

/* Match body copy more closely to Location Overview */
.ae-location-description-block.ae-location-description-block--full .ae-location-copy-plain,
.ae-location-description-block.ae-location-description-block--full .ae-location-copy-plain p {
  font-size: 16px !important;
  line-height: 1.72 !important;
  color: rgba(14, 42, 71, 0.82) !important;
}

.ae-location-description-block.ae-location-description-block--full .ae-location-copy-plain p {
  margin: 0 0 14px !important;
}

.ae-location-description-block.ae-location-description-block--full .ae-location-copy-plain p:last-child {
  margin-bottom: 0 !important;
}

/* Give the About section proper spacing from Overview */
.ae-location-content-grid--desc-only {
  margin-top: 28px !important;
}

/* Mobile */
@media (max-width: 767px) {
  .ae-location-description-wrap .ae-location-section-title {
    margin-bottom: 12px !important;
    font-size: 30px !important;
  }

  .ae-location-description-block.ae-location-description-block--full {
    padding: 20px 20px !important;
    border-radius: 22px !important;
  }

  .ae-location-description-block.ae-location-description-block--full .ae-location-copy-plain,
  .ae-location-description-block.ae-location-description-block--full .ae-location-copy-plain p {
    font-size: 16px !important;
    line-height: 1.65 !important;
  }
}

/* =========================================================
   SINGLE LOCATION – About section alignment polish
========================================================= */

.ae-location-content-grid--desc-only {
  margin-top: 40px !important;
}

.ae-location-description-wrap {
  max-width: 700px;
}

.ae-location-description-wrap .ae-location-section-title {
  font-size: clamp(28px, 3vw, 40px) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.03em !important;
  margin: 0 0 18px !important;
}

.ae-location-description-block.ae-location-description-block--full {
  padding: 24px 26px !important;
  border-radius: 24px !important;
  box-shadow: 0 12px 28px rgba(14, 42, 71, 0.05) !important;
}

.ae-location-description-block.ae-location-description-block--full .ae-location-copy-plain,
.ae-location-description-block.ae-location-description-block--full .ae-location-copy-plain p {
  font-size: 15px !important;
  line-height: 1.75 !important;
  color: rgba(14, 42, 71, 0.78) !important;
}

@media (max-width: 767px) {
  .ae-location-content-grid--desc-only {
    margin-top: 32px !important;
  }

  .ae-location-description-wrap {
    max-width: 100%;
  }

  .ae-location-description-wrap .ae-location-section-title {
    font-size: 28px !important;
    margin-bottom: 14px !important;
  }

  .ae-location-description-block.ae-location-description-block--full {
    padding: 20px 20px !important;
    border-radius: 20px !important;
  }

  .ae-location-description-block.ae-location-description-block--full .ae-location-copy-plain,
  .ae-location-description-block.ae-location-description-block--full .ae-location-copy-plain p {
    font-size: 15px !important;
    line-height: 1.68 !important;
  }
}

/* =========================================================
   SINGLE LOCATION – unify section heading style
========================================================= */

.ae-location-description-wrap .ae-location-section-title {
  font-size: clamp(34px, 4vw, 52px) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.035em !important;
  font-weight: 800 !important;
  color: #0E2A47 !important;
  margin: 0 0 16px !important;
  text-wrap: balance;
}

.ae-location-description-wrap .ae-location-section-title {
  font-size: 28px !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
  font-weight: 600 !important;
  color: #0E2A47 !important;
  margin: 32px 0 12px !important;
}

.ae-location-description-wrap .ae-location-section-title {
  font-size: 26px !important;
  font-weight: 600 !important;
  opacity: 0.9;
}

/* =========================================================
   SINGLE LOCATION – final page polish
========================================================= */

/* Overall section rhythm */
.ae-location-hero {
  margin-bottom: 18px !important;
}

.ae-location-content-grid,
.ae-location-content-grid--desc-only {
  margin-top: 36px !important;
}

.ae-location-divider {
  margin: 46px 0 34px !important;
  border-top: 1px solid rgba(14, 42, 71, 0.08) !important;
}

/* Experiences section heading rhythm */
.ae-location-section-title--experiences {
  margin: 0 0 10px !important;
}

.ae-location-section-intro {
  margin: 0 0 24px !important;
  max-width: 620px;
  color: rgba(14, 42, 71, 0.68) !important;
  font-size: 18px !important;
  line-height: 1.55 !important;
}

/* Details card refinement */
.ae-location-panel {
  border-radius: 26px !important;
  box-shadow: 0 16px 36px rgba(14, 42, 71, 0.06) !important;
}

.ae-location-panel-title {
  font-size: 20px !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em !important;
}

.ae-location-details-card {
  border-radius: 20px !important;
  overflow: hidden !important;
}

.ae-location-detail-row {
  padding: 18px 20px !important;
}

.ae-location-detail-label {
  margin-bottom: 4px;
}

.ae-location-detail-value {
  font-size: 17px !important;
  line-height: 1.45 !important;
  color: rgba(14, 42, 71, 0.9) !important;
}

/* Map card refinement */
.ae-location-map-frame {
  border-radius: 20px !important;
  box-shadow: inset 0 0 0 1px rgba(14, 42, 71, 0.04);
}

/* About card should feel slightly softer than overview */
.ae-location-description-block.ae-location-description-block--full {
  box-shadow: 0 12px 28px rgba(14, 42, 71, 0.045) !important;
}

/* Return button area */
.ae-location-return-wrap {
  margin-top: 34px !important;
  padding-top: 6px;
}

.ae-location-return-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 22px;
  border-radius: 999px;
  border: 2px solid rgba(14, 42, 71, 0.14);
  background: #fff;
  color: #0E2A47 !important;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none !important;
  transition: all 0.22s ease;
}

.ae-location-return-btn:hover,
.ae-location-return-btn:focus {
  border-color: #0E2A47;
  background: #0E2A47;
  color: #fff !important;
  transform: translateY(-1px);
}

/* Desktop width balance */
.ae-location-description-wrap,
.ae-location-overview-block {
  max-width: 760px;
}

/* Mobile refinements */
@media (max-width: 767px) {
  .ae-location-hero {
    margin-bottom: 12px !important;
  }

  .ae-location-content-grid,
  .ae-location-content-grid--desc-only {
    margin-top: 28px !important;
  }

  .ae-location-divider {
    margin: 34px 0 26px !important;
  }

  .ae-location-section-intro {
    margin-bottom: 20px !important;
    font-size: 16px !important;
  }

  .ae-location-panel {
    border-radius: 22px !important;
    padding: 16px !important;
  }

  .ae-location-detail-row {
    padding: 14px 16px !important;
  }

  .ae-location-detail-value {
    font-size: 16px !important;
  }

  .ae-location-map-frame {
    border-radius: 16px !important;
  }

  .ae-location-return-wrap {
    margin-top: 26px !important;
  }

  .ae-location-return-btn {
    width: 100%;
    min-height: 48px;
    font-size: 14px;
  }
}

.ae-location-hero a[href*="google"] {
  font-weight: 600;
  color: rgba(14, 42, 71, 0.65) !important;
}

.ae-location-hero a[href*="google"]:hover {
  color: #0E2A47 !important;
}

.ae-experience-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.ae-experience-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(14, 42, 71, 0.12);
}

.ae-location-detail-label {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(14, 42, 71, 0.45);
}

.ae-location-detail-value {
  font-size: 17px;
  font-weight: 500;
}

.ae-location-section,
.ae-location-panel,
.ae-location-description-block {
  animation: aeFadeUp 0.5s ease both;
}

@keyframes aeFadeUp {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.ae-location-description-block {
  margin-bottom: 10px;
}

.ae-location-divider {
  margin-top: 40px !important;
}

/* =========================================================
   EXPERIENCES ARCHIVE – Hero + page structure
========================================================= */

body.post-type-archive-product .site-main,
body.tax-product_cat .site-main {
  padding-top: 0;
}

/* Main page intro block */
.experiences-wrap {
  padding-top: 34px;
}

/* If your page has an H1/title near the top */
.experiences-wrap h1:first-of-type,
.experiences-wrap .entry-title:first-of-type,
.experiences-wrap .page-title:first-of-type {
  margin: 0 0 14px;
  color: #0E2A47;
  font-size: clamp(44px, 7vw, 86px);
  font-weight: 800;
  line-height: 0.94;
  letter-spacing: -0.05em;
  max-width: 980px;
  text-wrap: balance;
}

/* If there is intro text below the title */
.experiences-wrap > p:first-of-type,
.experiences-wrap .archive-description,
.experiences-wrap .page-intro {
  margin: 0 0 28px;
  max-width: 760px;
  color: #6F7C91;
  font-size: clamp(18px, 2.2vw, 22px);
  line-height: 1.55;
}

/* =========================================================
   EXPERIENCES HERO
========================================================= */

.experiences-hero {
  max-width: 920px;
  margin: 0 0 28px;
}

.experiences-kicker {
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(14, 42, 71, 0.62);
}

.experiences-title {
  margin: 0 0 16px;
  color: #0E2A47;
  font-size: clamp(46px, 6vw, 78px);
  line-height: 0.95;
  letter-spacing: -0.045em;
  font-weight: 800;
  text-wrap: balance;
}

.experiences-intro {
  max-width: 760px;
  margin: 0;
  color: rgba(14, 42, 71, 0.72);
  font-size: clamp(18px, 2vw, 24px);
  line-height: 1.55;
  letter-spacing: -0.015em;
}

@media (max-width: 767px) {
  .experiences-hero {
    margin-bottom: 22px;
  }

  .experiences-kicker {
    margin-bottom: 12px;
    font-size: 11px;
    letter-spacing: 0.16em;
  }

  .experiences-title {
    margin-bottom: 12px;
    font-size: clamp(38px, 10vw, 54px);
    line-height: 0.98;
  }

  .experiences-intro {
    font-size: 17px;
    line-height: 1.5;
  }
}

/* =========================================================
   HERO TITLE CONSISTENCY (Experiences vs Locations)
========================================================= */

.page-template-page-experiences h1 {
  font-size: 52px !important;
  line-height: 1.08 !important;
  letter-spacing: -0.5px !important;
  max-width: 720px;
}

@media (max-width: 1024px) {
  .page-template-page-experiences h1 {
    font-size: 44px !important;
  }
}

@media (max-width: 767px) {
  .page-template-page-experiences h1 {
    font-size: 34px !important;
    line-height: 1.15 !important;
  }
}

/* =========================================================
   EXPERIENCES HERO (PHP INJECTED)
========================================================= */

.experiences-hero {
  margin-bottom: 26px;
  max-width: 920px;
}

.experiences-title {
  margin: 0 0 16px;
  color: #0E2A47;
  font-size: clamp(44px, 7vw, 86px);
  font-weight: 800;
  line-height: 0.94;
  letter-spacing: -0.05em;
  text-wrap: balance;
}

.experiences-intro {
  margin: 0;
  color: #6F7C91;
  font-size: clamp(18px, 2.2vw, 22px);
  line-height: 1.55;
}

/* Mobile */
@media (max-width: 767px) {
  .experiences-title {
    font-size: clamp(34px, 11vw, 52px);
    line-height: 0.96;
  }

  .experiences-intro {
    font-size: 16px;
    line-height: 1.6;
  }
}

/* =========================================================
   EXPERIENCES ARCHIVE – Hero spacing cleanup
========================================================= */

.experiences-wrap {
  padding-top: 34px;
}

.experiences-hero {
  max-width: 920px;
  margin: 0 0 34px;
}

.experiences-kicker {
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(14, 42, 71, 0.62);
}

.experiences-title {
  margin: 0 0 16px;
  color: #0E2A47;
  font-size: clamp(46px, 6vw, 78px);
  line-height: 0.95;
  letter-spacing: -0.045em;
  font-weight: 800;
  text-wrap: balance;
  max-width: 11ch;
}

.experiences-intro {
  max-width: 760px;
  margin: 0;
  color: rgba(14, 42, 71, 0.72);
  font-size: clamp(18px, 2vw, 24px);
  line-height: 1.55;
  letter-spacing: -0.015em;
}

.experiences-wrap .experiences-filters {
  margin-top: 18px !important;
}

.experiences-summary {
  margin: 14px 0 26px !important;
  color: rgba(14, 42, 71, 0.72) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
}

.experiences-summary strong {
  color: #0E2A47;
  font-weight: 800;
}

@media (max-width: 767px) {
  .experiences-wrap {
    padding-top: 24px;
  }

  .experiences-hero {
    margin-bottom: 24px;
  }

  .experiences-kicker {
    margin-bottom: 12px;
    font-size: 11px;
    letter-spacing: 0.16em;
  }

  .experiences-title {
    margin-bottom: 12px;
    font-size: clamp(38px, 10vw, 54px);
    line-height: 0.98;
    max-width: none;
  }

  .experiences-intro {
    font-size: 17px;
    line-height: 1.5;
  }

  .experiences-wrap .experiences-filters {
    margin-top: 14px !important;
  }

  .experiences-summary {
    margin: 10px 0 20px !important;
    font-size: 15px !important;
  }
}

/* =========================================================
   EXPERIENCES ARCHIVE – Filter section alignment
========================================================= */

.experiences-wrap .facetwp-template,
.experiences-wrap .facetwp-filters,
.experiences-wrap .experiences-filters-wrap {
  margin-top: 0;
}

.experiences-wrap .filter-experiences,
.experiences-wrap .experiences-filter-bar,
.experiences-wrap .facetwp-filters {
  margin-top: 28px;
  margin-bottom: 18px;
}

/* Results count */
.experiences-wrap .ae-results-count,
.experiences-wrap .facetwp-counts,
.experiences-wrap .facetwp-result-count,
.experiences-wrap .woocommerce-result-count {
  margin: 8px 0 26px !important;
  color: rgba(14, 42, 71, 0.72) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
}

.experiences-wrap .ae-results-count strong,
.experiences-wrap .facetwp-result-count strong,
.experiences-wrap .woocommerce-result-count strong {
  color: #0E2A47;
  font-weight: 800;
}

/* =========================================================
   EXPERIENCES ARCHIVE – Grid spacing polish
========================================================= */

.experiences-wrap .experience-grid,
.experiences-wrap .facetwp-template {
  margin-top: 0;
}

.experiences-wrap .experience-card {
  min-height: 100%;
}

.experiences-wrap .experience-content {
  display: flex;
  flex-direction: column;
  min-height: 290px;
}

.experiences-wrap .experience-title {
  margin: 0 0 16px;
}

.experiences-wrap .experience-price {
  margin-top: auto;
  margin-bottom: 22px;
}

.experiences-wrap .experience-cta {
  min-height: 56px;
}

/* =========================================================
   EXPERIENCES ARCHIVE – Mobile
========================================================= */

@media (max-width: 767px) {
  .experiences-wrap {
    padding-top: 24px;
  }

  .experiences-wrap::before {
    margin-bottom: 12px;
    font-size: 12px;
    letter-spacing: 0.16em;
  }

  .experiences-wrap::after {
    width: 54px;
    margin-top: 18px;
  }

  .experiences-wrap h1:first-of-type,
  .experiences-wrap .entry-title:first-of-type,
  .experiences-wrap .page-title:first-of-type {
    font-size: clamp(34px, 11vw, 52px);
    line-height: 0.96;
    margin-bottom: 12px;
  }

  .experiences-wrap > p:first-of-type,
  .experiences-wrap .archive-description,
  .experiences-wrap .page-intro {
    font-size: 16px;
    line-height: 1.6;
    margin-bottom: 22px;
  }

  .experiences-wrap .ae-results-count,
  .experiences-wrap .facetwp-counts,
  .experiences-wrap .facetwp-result-count,
  .experiences-wrap .woocommerce-result-count {
    margin: 8px 0 20px !important;
    font-size: 15px !important;
  }

  .experiences-wrap .experience-content {
    min-height: auto;
  }
}

/* =========================================================
   EXPERIENCES ARCHIVE – final hero alignment with Locations
========================================================= */

.experiences-wrap {
  position: relative;
  padding-top: 34px !important;
}

.experiences-wrap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 420px;
  background: radial-gradient(
    circle at 20% 10%,
    rgba(14, 42, 71, 0.06),
    transparent 60%
  );
  pointer-events: none;
  z-index: 0;
}

.experiences-wrap > * {
  position: relative;
  z-index: 1;
}

.experiences-hero {
  max-width: 920px;
  margin: 0 0 30px !important;
}

.experiences-kicker {
  margin: 0 0 14px !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: rgba(14, 42, 71, 0.62) !important;
}

.experiences-title {
  margin: 0 0 16px !important;
  max-width: 11ch !important;
  color: #0E2A47 !important;
  font-size: clamp(46px, 6vw, 78px) !important;
  line-height: 0.95 !important;
  letter-spacing: -0.045em !important;
  font-weight: 800 !important;
  text-wrap: balance !important;
}

.experiences-intro {
  max-width: 760px !important;
  margin: 0 !important;
  color: rgba(14, 42, 71, 0.68) !important;
  font-size: clamp(20px, 2vw, 24px) !important;
  line-height: 1.55 !important;
  letter-spacing: -0.015em !important;
}

.experiences-wrap .experiences-filters {
  margin-top: 18px !important;
}

.experiences-wrap .facetwp-result-count,
.experiences-wrap .woocommerce-result-count,
.experiences-wrap .experiences-summary {
  margin: 14px 0 26px !important;
  color: rgba(14, 42, 71, 0.72) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
}

.experiences-wrap .facetwp-result-count strong,
.experiences-wrap .woocommerce-result-count strong,
.experiences-wrap .experiences-summary strong {
  color: #0E2A47 !important;
  font-weight: 800 !important;
}

@media (max-width: 767px) {
  .experiences-wrap {
    padding-top: 24px !important;
  }

  .experiences-hero {
    margin-bottom: 24px !important;
  }

  .experiences-kicker {
    margin-bottom: 12px !important;
    font-size: 11px !important;
    letter-spacing: 0.16em !important;
  }

  .experiences-title {
    max-width: none !important;
    margin-bottom: 12px !important;
    font-size: clamp(38px, 10vw, 54px) !important;
    line-height: 0.98 !important;
  }

  .experiences-intro {
    font-size: 17px !important;
    line-height: 1.5 !important;
  }

  .experiences-wrap .experiences-filters {
    margin-top: 14px !important;
  }

  .experiences-wrap .facetwp-result-count,
  .experiences-wrap .woocommerce-result-count,
  .experiences-wrap .experiences-summary {
    margin: 10px 0 20px !important;
    font-size: 15px !important;
  }
}

/* =========================================================
   EXPERIENCES ARCHIVE – count + grid rhythm
========================================================= */

.experiences-wrap .experiences-summary,
.experiences-wrap .facetwp-result-count,
.experiences-wrap .woocommerce-result-count {
  margin: 16px 0 18px !important;
  color: rgba(14, 42, 71, 0.72) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
}

.experiences-wrap .experience-grid,
.experiences-wrap .facetwp-template {
  margin-top: 0 !important;
}

@media (max-width: 767px) {
  .experiences-wrap .experiences-summary,
  .experiences-wrap .facetwp-result-count,
  .experiences-wrap .woocommerce-result-count {
    margin: 14px 0 16px !important;
    font-size: 15px !important;
  }
}

.experiences-wrap .experience-grid {
  row-gap: 30px !important;
}

@media (max-width: 767px) {
  .experiences-wrap .experience-grid {
    row-gap: 20px !important;
  }
}

.experiences-wrap .experiences-summary strong,
.experiences-wrap .facetwp-result-count strong,
.experiences-wrap .woocommerce-result-count strong {
  color: #0E2A47 !important;
  font-weight: 800 !important;
}

/* Experiences – tighten count to grid */
.experiences-wrap .facetwp-result-count,
.experiences-wrap .woocommerce-result-count,
.experiences-wrap .experiences-summary {
  margin: 14px 0 14px !important;
}

.experiences-wrap .facetwp-template,
.experiences-wrap .experience-grid {
  margin-top: 0 !important;
}

/* Experiences – pagination */
.experiences-wrap .facetwp-pager,
.experiences-wrap .woocommerce-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: center;
  margin: 34px 0 10px !important;
}

.experiences-wrap .facetwp-page,
.experiences-wrap .woocommerce-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  min-height: 46px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1.5px solid rgba(14, 42, 71, 0.12);
  background: #fff;
  color: #0E2A47 !important;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none !important;
  transition: all 0.22s ease;
}

.experiences-wrap .facetwp-page:hover,
.experiences-wrap .woocommerce-pagination .page-numbers:hover {
  border-color: #EE2A26;
  color: #EE2A26 !important;
  transform: translateY(-1px);
}

.experiences-wrap .facetwp-page.active,
.experiences-wrap .woocommerce-pagination .page-numbers.current {
  background: #0E2A47;
  border-color: #0E2A47;
  color: #fff !important;
}

/* =========================================================
   EXPERIENCES – card rhythm polish
========================================================= */

.experiences-wrap .experience-content {
  display: flex;
  flex-direction: column;
  min-height: 300px;
  padding: 20px 20px 18px !important;
}

.experiences-wrap .experience-title {
  margin: 0 0 14px !important;
}

.experiences-wrap .experience-price {
  margin-top: auto;
  margin-bottom: 20px !important;
}

.experiences-wrap .experience-cta {
  margin-top: 0 !important;
}

.experiences-wrap .experience-card {
  transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
}

.experiences-wrap .experience-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 42px rgba(14, 42, 71, 0.12);
  border-color: rgba(238, 42, 38, 0.16);
}

@media (max-width: 767px) {
  .experiences-wrap .experience-content {
    min-height: auto;
    padding: 18px 18px 16px !important;
  }

  .experiences-wrap .experience-title {
    margin-bottom: 12px !important;
  }

  .experiences-wrap .experience-price {
    margin-bottom: 16px !important;
  }
}

@media (max-width: 767px) {
  .experiences-wrap .experience-content {
    min-height: auto;
    padding: 18px 18px 16px !important;
  }

  .experiences-wrap .experience-title {
    margin-bottom: 12px !important;
  }

  .experiences-wrap .experience-price {
    margin-bottom: 16px !important;
  }
}

/* Mobile – hero to filter spacing */
@media (max-width: 767px) {
  .page-template-page-experiences .hero {
    margin-bottom: 18px !important;
  }

  .page-template-page-experiences .filter-bar {
    margin-top: 0 !important;
  }
}

/* Mobile – force consistent CTA */
@media (max-width: 767px) {
  .experiences-wrap .experience-cta a,
  .experiences-wrap .button,
  .experiences-wrap .wp-block-button__link {
    background: #EE2A26 !important;
    color: #fff !important;
    border: none !important;
  }
}

@media (max-width: 767px) {
  .experiences-wrap .experience-title {
    font-size: 20px !important;
    line-height: 1.3 !important;
  }
}

@media (max-width: 767px) {
  .experiences-wrap .facetwp-pager {
    margin: 26px 0 6px !important;
  }
}

/* Mobile QA — experience filters should not be sticky on mobile */
@media (max-width: 767px) {
  .experiences-filter-card,
  .experiences-filters,
  .ae-experiences-filters,
  .experiences-sidebar,
  .ae-experiences-sidebar,
  .experiences-filter-wrap,
  .taxonomy-product_cat .experiences-filter-card,
  .taxonomy-product_cat .experiences-filters,
  .post-type-archive-product .experiences-filter-card,
  .post-type-archive-product .experiences-filters {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
    align-self: auto !important;
  }
}

/* =========================================================
   EXPERIENCES PAGE – FINAL MOBILE POLISH
========================================================= */

@media (max-width: 767px) {

  /* ---------- Hero ---------- */
  .experiences-wrap {
    padding-top: 20px !important;
  }

  .experiences-hero {
    margin: 0 0 18px !important;
  }

  .experiences-kicker {
    margin: 0 0 10px !important;
    font-size: 11px !important;
    letter-spacing: 0.14em !important;
  }

  .experiences-title {
    font-size: 34px !important;
    line-height: 1.02 !important;
    letter-spacing: -0.03em !important;
    margin: 0 0 12px !important;
    max-width: none !important;
  }

  .experiences-intro {
    font-size: 16px !important;
    line-height: 1.55 !important;
    margin: 0 !important;
    max-width: 100% !important;
  }

  /* ---------- Filter block ---------- */
  .experiences-filters {
    margin-top: 14px !important;
    margin-bottom: 14px !important;
  }

  .filters-grid {
    gap: 14px !important;
  }

  .filter-box {
    padding: 14px !important;
    border-radius: 18px !important;
  }

  .filter-box .facet-label,
  .filter-box label {
    font-size: 14px !important;
    margin-bottom: 6px !important;
  }

  /* ---------- Results count ---------- */
  .experiences-summary,
  .facetwp-result-count,
  .woocommerce-result-count {
    margin: 10px 0 14px !important;
    font-size: 15px !important;
    line-height: 1.4 !important;
  }

  /* ---------- Cards ---------- */
  .experience-grid,
  .facetwp-template {
    row-gap: 18px !important;
  }

  .experience-card {
    border-radius: 24px !important;
    overflow: hidden !important;
  }

  .experience-image img {
    aspect-ratio: 16 / 10;
    object-fit: cover;
  }

  .experience-content {
    padding: 18px 18px 16px !important;
    min-height: auto !important;
  }

  .experience-title {
    font-size: 20px !important;
    line-height: 1.18 !important;
    letter-spacing: -0.02em !important;
    margin: 0 0 12px !important;
  }

  .experience-price {
    margin: 0 0 16px !important;
    font-size: 16px !important;
  }

  .experience-price .ae-price-from,
  .experience-price .from,
  .experience-price .ae-price-from-label {
    font-size: 16px !important;
  }

  .experience-price .amount,
  .experience-price bdi {
    font-size: 18px !important;
  }

  /* ---------- CTA buttons – force one consistent style ---------- */
  .experience-cta,
  .experience-card .button,
  .experience-card a.button,
  .experience-card .wp-block-button__link {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    min-height: 52px !important;
    padding: 0 18px !important;
    border-radius: 999px !important;
    border: 2px solid #EE2A26 !important;
    background: #EE2A26 !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    box-shadow: none !important;
  }

  /* ---------- Pagination ---------- */
  .facetwp-pager,
  .woocommerce-pagination {
    margin: 24px 0 8px !important;
    gap: 10px !important;
  }

  .facetwp-page,
  .woocommerce-pagination .page-numbers {
    min-width: 42px !important;
    min-height: 42px !important;
    padding: 0 12px !important;
    font-size: 14px !important;
  }
}

/* =========================================================
   LOCATIONS PAGE – bottom CTA matches Experiences CTA
========================================================= */

.locations-bottom-cta,
.experiences-bottom-cta {
  margin-top: 50px;
  padding-top: 40px;
  border-top: 1px solid rgba(14, 42, 71, 0.08);
}

.locations-bottom-cta .elementor,
.experiences-bottom-cta .elementor {
  width: 100%;
}

.locations-bottom-cta .elementor-section,
.locations-bottom-cta .elementor-container,
.locations-bottom-cta .e-con,
.experiences-bottom-cta .elementor-section,
.experiences-bottom-cta .elementor-container,
.experiences-bottom-cta .e-con {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 767px) {
  .locations-bottom-cta,
  .experiences-bottom-cta {
    margin-top: 34px;
    padding-top: 28px;
  }
}

@media (max-width: 767px) {
  .experiences-bottom-cta h1,
  .locations-bottom-cta h1 {
    font-size: 32px;
  }
}

/* =========================================================
   EXPERIENCES FILTER — sticky only on parent Experiences page
   ========================================================= */

@media (min-width: 1025px) {
  body.page-template-page-experiences .experiences-wrap .experiences-filters {
    position: sticky !important;
    top: 90px !important;
    z-index: 20 !important;
  }

  body.tax-product_cat .experiences-wrap .experiences-filters {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
  }
}

@media (max-width: 1024px) {
  body .experiences-wrap .experiences-filters {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
  }
}

/* =========================================================
   BOTTOM CTA – shared wrapper only
   Let Elementor CTA widget render itself normally
========================================================= */

.experiences-bottom-cta,
.locations-bottom-cta,
.single-product-bottom-cta {
  margin-top: 50px;
  padding-top: 40px;
  border-top: 1px solid rgba(14, 42, 71, 0.08);
}

.experiences-bottom-cta .elementor,
.locations-bottom-cta .elementor,
.single-product-bottom-cta .elementor {
  width: 100%;
}

.experiences-bottom-cta .elementor-section,
.experiences-bottom-cta .elementor-container,
.experiences-bottom-cta .e-con,
.locations-bottom-cta .elementor-section,
.locations-bottom-cta .elementor-container,
.locations-bottom-cta .e-con,
.single-product-bottom-cta .elementor-section,
.single-product-bottom-cta .elementor-container,
.single-product-bottom-cta .e-con {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

/* Main CTA heading only */
.experiences-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title,
.locations-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title,
.single-product-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title {
  max-width: 8ch;
  margin-left: auto;
  margin-right: auto;
  font-size: clamp(54px, 4.2vw, 72px) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.03em !important;
  font-weight: 700 !important;
  text-wrap: balance;
}

/* Body copy width */
.experiences-bottom-cta .elementor-widget-text-editor,
.locations-bottom-cta .elementor-widget-text-editor,
.single-product-bottom-cta .elementor-widget-text-editor {
  max-width: 38ch;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 767px) {
  .experiences-bottom-cta,
  .locations-bottom-cta,
  .single-product-bottom-cta {
    margin-top: 34px;
    padding-top: 28px;
  }

  .experiences-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title,
  .locations-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title,
  .single-product-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title {
    max-width: 9ch;
    font-size: 34px !important;
    line-height: 1.08 !important;
  }

  .experiences-bottom-cta .elementor-widget-text-editor,
  .locations-bottom-cta .elementor-widget-text-editor,
  .single-product-bottom-cta .elementor-widget-text-editor {
    max-width: 100%;
  }
}

/* =========================================================
   SINGLE PRODUCT BOTTOM CTA – match Experiences page CTA
========================================================= */

.single-product-bottom-cta {
  margin-top: 50px !important;
  padding-top: 40px !important;
  border-top: 1px solid rgba(14, 42, 71, 0.08) !important;
}

.single-product-bottom-cta .elementor {
  width: 100%;
}

.single-product-bottom-cta .elementor-section,
.single-product-bottom-cta .elementor-container,
.single-product-bottom-cta .e-con {
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Make the CTA block breathe like the Experiences page */
.single-product-bottom-cta .elementor-widget-shortcode,
.single-product-bottom-cta .elementor-widget-container {
  width: 100%;
}

/* Kicker */
.single-product-bottom-cta .elementor-widget-heading:first-of-type .elementor-heading-title {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  font-size: 13px !important;
  line-height: 1 !important;
  letter-spacing: 0.18em !important;
  font-weight: 800 !important;
  text-transform: none !important;
  color: rgba(14, 42, 71, 0.72) !important;
  text-wrap: normal !important;
}

/* Main headline */
.single-product-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title {
  max-width: 8ch !important;
  margin-left: auto !important;
  margin-right: auto !important;
  font-size: clamp(54px, 4.2vw, 72px) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.03em !important;
  font-weight: 700 !important;
  color: #0E2A47 !important;
  text-wrap: balance !important;
}

/* Body copy */
.single-product-bottom-cta .elementor-widget-text-editor {
  max-width: 38ch !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.single-product-bottom-cta .elementor-widget-text-editor p {
  color: rgba(14, 42, 71, 0.72) !important;
}

/* Make sure the image panel behaves like the Experiences page CTA */
.single-product-bottom-cta .elementor-widget-image img,
.single-product-bottom-cta img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 34px !important;
}

/* CTA button */
.single-product-bottom-cta .elementor-button,
.single-product-bottom-cta a.elementor-button {
  min-height: 56px !important;
  padding: 0 28px !important;
  border-radius: 999px !important;
  border: 2px solid #EE2A26 !important;
  background: #fff !important;
  color: #EE2A26 !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: all 0.22s ease !important;
}

.single-product-bottom-cta .elementor-button:hover,
.single-product-bottom-cta a.elementor-button:hover {
  background: #EE2A26 !important;
  color: #fff !important;
  border-color: #EE2A26 !important;
  transform: translateY(-1px);
}

/* Mobile */
@media (max-width: 767px) {
  .single-product-bottom-cta {
    margin-top: 34px !important;
    padding-top: 28px !important;
  }

  .single-product-bottom-cta .elementor-widget-heading:first-of-type .elementor-heading-title {
    font-size: 11px !important;
    letter-spacing: 0.16em !important;
  }

  .single-product-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title {
    max-width: 9ch !important;
    font-size: 34px !important;
    line-height: 1.08 !important;
  }

  .single-product-bottom-cta .elementor-widget-text-editor {
    max-width: 100% !important;
  }

  .single-product-bottom-cta .elementor-button,
  .single-product-bottom-cta a.elementor-button {
    width: auto !important;
    min-height: 50px !important;
    padding: 0 22px !important;
    font-size: 14px !important;
  }

  .single-product-bottom-cta .elementor-widget-image img,
  .single-product-bottom-cta img {
    border-radius: 24px !important;
  }
}

/* =========================================================
   FINAL OVERRIDE — Single Product CTA matches Experiences CTA
   ========================================================= */

.single-product-bottom-cta {
  margin-top: 50px !important;
  padding-top: 40px !important;
  border-top: 1px solid rgba(14, 42, 71, 0.08) !important;
}

.single-product-bottom-cta .elementor {
  width: 100% !important;
}

.single-product-bottom-cta .elementor-section,
.single-product-bottom-cta .elementor-container,
.single-product-bottom-cta .e-con {
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Match CTA container proportions */
.single-product-bottom-cta .elementor-widget-shortcode {
  width: 100% !important;
}

/* Kicker */
.single-product-bottom-cta .elementor-widget-heading:first-of-type .elementor-heading-title {
  margin: 0 0 14px !important;
  max-width: none !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0.18em !important;
  color: rgba(14, 42, 71, 0.62) !important;
  text-transform: none !important;
}

/* Main headline */
.single-product-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title {
  margin: 0 0 16px !important;
  max-width: 8ch !important;
  color: #0E2A47 !important;
  font-size: clamp(46px, 6vw, 78px) !important;
  line-height: 0.95 !important;
  letter-spacing: -0.045em !important;
  font-weight: 800 !important;
  text-wrap: balance !important;
}

/* Intro copy */
.single-product-bottom-cta .elementor-widget-text-editor {
  max-width: 760px !important;
}

.single-product-bottom-cta .elementor-widget-text-editor p {
  margin: 0 !important;
  color: rgba(14, 42, 71, 0.72) !important;
  font-size: clamp(18px, 2vw, 24px) !important;
  line-height: 1.55 !important;
  letter-spacing: -0.015em !important;
}

/* Image */
.single-product-bottom-cta .elementor-widget-image img,
.single-product-bottom-cta img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  border-radius: 34px !important;
}

/* Button */
.single-product-bottom-cta .elementor-button,
.single-product-bottom-cta a.elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 56px !important;
  padding: 0 28px !important;
  border-radius: 999px !important;
  border: 2px solid #EE2A26 !important;
  background: #fff !important;
  color: #EE2A26 !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: all 0.22s ease !important;
}

.single-product-bottom-cta .elementor-button:hover,
.single-product-bottom-cta a.elementor-button:hover {
  background: #EE2A26 !important;
  color: #fff !important;
  border-color: #EE2A26 !important;
  transform: translateY(-1px) !important;
}

/* Mobile */
@media (max-width: 767px) {
  .single-product-bottom-cta {
    margin-top: 34px !important;
    padding-top: 28px !important;
  }

  .single-product-bottom-cta .elementor-widget-heading:first-of-type .elementor-heading-title {
    margin-bottom: 12px !important;
    font-size: 11px !important;
    letter-spacing: 0.16em !important;
  }

  .single-product-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title {
    max-width: none !important;
    font-size: clamp(38px, 10vw, 54px) !important;
    line-height: 0.98 !important;
    margin-bottom: 12px !important;
  }

  .single-product-bottom-cta .elementor-widget-text-editor p {
    font-size: 17px !important;
    line-height: 1.5 !important;
  }

  .single-product-bottom-cta .elementor-button,
  .single-product-bottom-cta a.elementor-button {
    min-height: 50px !important;
    padding: 0 22px !important;
    font-size: 14px !important;
  }

  .single-product-bottom-cta .elementor-widget-image img,
  .single-product-bottom-cta img {
    border-radius: 24px !important;
  }
}

/* =========================================================
   FINAL TWEAK — CTA heading size / weight match
   ========================================================= */

.single-product-bottom-cta .elementor-widget-heading:first-of-type .elementor-heading-title,
.experiences-bottom-cta .elementor-widget-heading:first-of-type .elementor-heading-title {
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
}

.single-product-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title,
.experiences-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title {
  font-size: clamp(42px, 4.6vw, 64px) !important;
  line-height: 1.03 !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
}

/* Optional: tighten the text column slightly */
.single-product-bottom-cta .elementor-widget-text-editor p,
.experiences-bottom-cta .elementor-widget-text-editor p {
  font-size: 17px !important;
  line-height: 1.5 !important;
}

@media (max-width: 767px) {
  .single-product-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title,
  .experiences-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title {
    font-size: 34px !important;
    line-height: 1.06 !important;
    font-weight: 700 !important;
  }

  .single-product-bottom-cta .elementor-widget-heading:first-of-type .elementor-heading-title,
  .experiences-bottom-cta .elementor-widget-heading:first-of-type .elementor-heading-title {
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
  }
}

/* =========================================================
   FINAL CTA HEADING ALIGNMENT CLEAN-UP
   ========================================================= */

.single-product-bottom-cta .elementor-widget-heading,
.experiences-bottom-cta .elementor-widget-heading {
  transform: none !important;
  margin-left: 0 !important;
  max-width: none !important;
}

.single-product-bottom-cta .elementor-heading-title,
.experiences-bottom-cta .elementor-heading-title {
  transform: none !important;
  margin-left: 0 !important;
}

/* Kicker */
.single-product-bottom-cta .elementor-widget-heading:first-of-type .elementor-heading-title,
.experiences-bottom-cta .elementor-widget-heading:first-of-type .elementor-heading-title {
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  line-height: 1.1 !important;
}

/* Main headline */
.single-product-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title,
.experiences-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title {
  max-width: 9ch !important;
  font-size: clamp(46px, 5.0vw, 68px) !important;
  line-height: 1.02 !important;
  font-weight: 700 !important;
  letter-spacing: -0.025em !important;
}

/* Copy */
.single-product-bottom-cta .elementor-widget-text-editor p,
.experiences-bottom-cta .elementor-widget-text-editor p {
  font-size: 17px !important;
  line-height: 1.5 !important;
}

@media (max-width: 767px) {
  .single-product-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title,
  .experiences-bottom-cta .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title {
    max-width: none !important;
    font-size: 34px !important;
    line-height: 1.06 !important;
    letter-spacing: -0.02em !important;
  }
}

/* =========================================================
   Single product variation dropdowns
   ========================================================= */

.single-product form.variations_form table.variations {
  width: 100%;
  border: 0;
  margin: 0 0 22px;
}

.single-product form.variations_form table.variations th,
.single-product form.variations_form table.variations td {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
}

.single-product form.variations_form table.variations th.label {
  background: #f3f4f5;
  padding: 18px 20px;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 13px;
  font-weight: 800;
  color: #5f7187;
}

.single-product form.variations_form table.variations td.value {
  background: #f8f8f8;
  padding: 18px 20px 28px;
}

.single-product form.variations_form table.variations select {
  width: 100%;
  min-height: 70px;
  border-radius: 16px;
  border: 2px solid #d8dee6;
  background: #fff;
  color: #0E2A47;
  font-size: 22px;
  font-weight: 800;
  padding: 0 22px;
}

.single-product form.variations_form table.variations select:focus {
  border-color: #EE2A26;
  outline: none;
}

/* Variation description under gallery */
.ae-variation-info {
  margin-top: 28px;
  padding: 28px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid #edf0f3;
  box-shadow: 0 18px 50px rgba(14, 42, 71, 0.08);
}

.ae-variation-info h3 {
  margin: 0 0 14px;
  color: #0E2A47;
  font-size: 28px;
  line-height: 1.15;
  font-weight: 800;
}

.ae-variation-info-description,
.ae-variation-info-description p,
#ae-variation-info-description p {
  color: #5f7187;
  font-size: 18px;
  line-height: 1.6;
}

/* =========================================================
   PROVIDER DASHBOARD
========================================================= */

.ae-provider-dashboard {
    padding: 60px 20px;
    background: #f7f8fb;
}

.ae-provider-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 30px;
    max-width: 1400px;
    margin: 0 auto;
}

.ae-provider-main,
.ae-provider-sidebar {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.ae-provider-card {
    background: #ffffff;
    border-radius: 24px;
    padding: 32px;
    box-shadow:
        0 10px 30px rgba(0,0,0,0.05);
    border: 1px solid rgba(14,42,71,0.06);
}

.ae-card-header {
    margin-bottom: 24px;
}

.ae-card-header h2 {
    margin: 0 0 10px;
    color: #0E2A47;
    font-size: 28px;
    line-height: 1.2;
}

.ae-card-header p {
    margin: 0;
    color: #667085;
    font-size: 15px;
    line-height: 1.6;
}

/* =========================================================
   BUTTONS
========================================================= */

.ae-provider-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 22px;
    border-radius: 14px;
    background: #EE2A26;
    color: #ffffff;
    text-decoration: none;
    font-weight: 600;
    transition: all 0.25s ease;
}

.ae-provider-btn:hover {
    background: #c81f1c;
    transform: translateY(-2px);
    color: #ffffff;
}

.ae-provider-btn-whatsapp {
    background: #25D366;
}

.ae-provider-btn-whatsapp:hover {
    background: #1da851;
}

/* =========================================================
   FORMS
========================================================= */

.ae-provider-card input,
.ae-provider-card select,
.ae-provider-card textarea {
    width: 100%;
    border-radius: 12px;
    border: 1px solid #d0d5dd;
    padding: 14px 16px;
    font-size: 15px;
    margin-bottom: 16px;
    background: #fff;
}

.ae-provider-card button,
.ae-provider-card input[type="submit"] {
    border: none;
    border-radius: 14px;
    background: #0E2A47;
    color: #fff;
    padding: 14px 24px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.25s ease;
}

.ae-provider-card button:hover,
.ae-provider-card input[type="submit"]:hover {
    background: #16395f;
    transform: translateY(-2px);
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 980px) {

    .ae-provider-grid {
        grid-template-columns: 1fr;
    }

    .ae-provider-dashboard {
        padding: 40px 16px;
    }

    .ae-provider-card {
        padding: 24px;
    }

    .ae-card-header h2 {
        font-size: 24px;
    }
}

/* =========================================================
   PROVIDER DASHBOARD — FINAL FORM + BUTTON OVERRIDES
========================================================= */

.page-id-708 .ae-provider-dashboard,
.ae-provider-dashboard {
  padding: 70px 24px;
  background: #f7f8fb;
}

.ae-provider-card {
  border-radius: 28px !important;
  padding: 34px !important;
  background: #fff !important;
  border: 1px solid rgba(14,42,71,.07) !important;
  box-shadow: 0 18px 44px rgba(14,42,71,.08) !important;
}

/* Headings */
.ae-provider-card h2,
.ae-provider-card h3,
.ae-voucher-check h3,
.ae-voucher-redeem h3 {
  color: #0E2A47 !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
}

/* Inputs */
.ae-provider-card input[type="text"],
.ae-provider-card input[type="email"],
.ae-provider-card input[type="password"],
.ae-provider-card input[type="number"],
.ae-provider-card textarea {
  width: 100% !important;
  min-height: 56px !important;
  padding: 14px 18px !important;
  border-radius: 16px !important;
  border: 1.5px solid rgba(14,42,71,.18) !important;
  background: #fff !important;
  color: #0E2A47 !important;
  font-size: 16px !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}

.ae-provider-card textarea {
  min-height: 170px !important;
}

/* Voucher check row */
.ae-voucher-check > div,
.ae-voucher-redeem > div {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  gap: 12px !important;
  align-items: center !important;
}

.ae-voucher-redeem > div {
  grid-template-columns: 1fr 160px auto !important;
}

/* Buttons — Air Experiences brand style */
.ae-provider-card button,
.ae-provider-card input[type="submit"],
.ae-provider-card .ae-wa-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 56px !important;
  padding: 0 26px !important;
  border-radius: 999px !important;
  border: 2px solid #EE2A26 !important;
  background: #fff !important;
  color: #EE2A26 !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  box-shadow: none !important;
  cursor: pointer !important;
  transition: all .22s ease !important;
}

.ae-provider-card button:hover,
.ae-provider-card input[type="submit"]:hover,
.ae-provider-card .ae-wa-btn:hover {
  background: #EE2A26 !important;
  color: #fff !important;
  border-color: #EE2A26 !important;
  transform: translateY(-1px) !important;
}

/* Fix tiny / invisible buttons */
#ae_voucher_check_btn,
#ae_voucher_redeem_btn {
  min-width: 110px !important;
  white-space: nowrap !important;
}

/* WhatsApp card */
.ae-wa-wrap {
  margin: 0 !important;
}

.ae-wa-btn {
  width: 100% !important;
  text-align: center !important;
}

/* Mobile */
@media (max-width: 767px) {
  .ae-provider-dashboard {
    padding: 42px 16px;
  }

  .ae-provider-grid {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }

  .ae-provider-card {
    padding: 24px !important;
    border-radius: 24px !important;
  }

  .ae-voucher-check > div,
  .ae-voucher-redeem > div {
    grid-template-columns: 1fr !important;
  }

}

/* =========================================================
   Provider Dashboard — voucher card form layouts
========================================================= */

.ae-voucher-check > div {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 150px !important;
  gap: 14px !important;
  align-items: center !important;
}

#ae_voucher_code,
#ae_voucher_check_btn {
  height: 64px !important;
  min-height: 64px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

.ae-voucher-redeem .ae-redeem-form-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 14px !important;
  align-items: stretch !important;
}

#ae_voucher_code_redeem,
#ae_voucher_pin_redeem {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: 64px !important;
  min-height: 64px !important;
  padding: 16px 20px !important;
  border-radius: 18px !important;
  border: 2px solid rgba(14,42,71,.14) !important;
  font-size: 18px !important;
  box-sizing: border-box !important;
}

#ae_voucher_redeem_btn {
  width: 220px !important;
  max-width: 220px !important;
  height: 64px !important;
  min-height: 64px !important;
  margin: 0 !important;
  justify-self: start !important;
}

@media (max-width: 767px) {
  .ae-voucher-check > div {
    grid-template-columns: 1fr !important;
  }

  #ae_voucher_check_btn,
  #ae_voucher_redeem_btn {
    width: 100% !important;
    max-width: none !important;
  }
}

/* =========================================================
   Provider Dashboard — Redeem voucher clean layout
========================================================= */

/* Provider Dashboard — Redeem voucher clean layout */

.ae-redeem-form-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 14px !important;
}

#ae_voucher_code_redeem,
#ae_voucher_pin_redeem {
  width: 100% !important;
  max-width: none !important;
  height: 64px !important;
  min-height: 64px !important;
  padding: 16px 20px !important;
  border-radius: 18px !important;
  border: 2px solid rgba(14,42,71,.14) !important;
  font-size: 18px !important;
  box-sizing: border-box !important;
}

#ae_voucher_redeem_btn {
  width: auto !important;
  min-width: 190px !important;
  max-width: 220px !important;
  height: 64px !important;
  justify-self: start !important;
  margin-top: 2px !important;
}

/* Check voucher alignment */
.ae-voucher-check > div {
  display: grid !important;
  grid-template-columns: 1fr 150px !important;
  gap: 14px !important;
  align-items: center !important;
}

#ae_voucher_code,
#ae_voucher_check_btn {
  height: 64px !important;
  min-height: 64px !important;
  margin: 0 !important;
}

/* Hide plugin-generated PDF Packing Slip button only */
.woocommerce-order a.button[href*="wpo_wcpdf"],
.woocommerce-order a.button[href*="generate_wpo_wcpdf"],
.woocommerce-order a.button[href*="document_type=packing-slip"],
.woocommerce-order a.wpo_wcpdf_document_link {
  display: none !important;
}

/* =========================================================
   EXPERIENCE CATEGORY CTA FIX
========================================================= */

body.tax-product_cat .experiences-bottom-cta {
  max-width: 1200px;
  margin: 80px auto;
  padding: 0 24px;
}

@media (min-width: 768px) {

  /* Main CTA wrapper */
  body.tax-product_cat .experiences-bottom-cta > .elementor {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 60px;
  }

  /* LEFT text column */
  body.tax-product_cat .experiences-bottom-cta 
  .elementor-element-794c92ac {
    width: 40%;
    flex: 0 0 40%;
  }

  /* RIGHT image column */
  body.tax-product_cat .experiences-bottom-cta 
  .elementor-element-7f7b3624 {
    width: 60%;
    flex: 0 0 60%;
  }

  /* Image sizing */
  body.tax-product_cat .experiences-bottom-cta img {
    width: 100%;
    max-width: 700px;
    height: auto;
    display: block;
  }

}

.ae-package-compare {
  margin-top: 32px;
}

.ae-package-compare h2 {
  margin: 0 0 8px;
  font-size: 26px;
  line-height: 1.15;
  color: #0E2A47;
}

.ae-package-compare p {
  margin: 0 0 18px;
  color: #334a68;
  font-size: 15px;
  line-height: 1.5;
}

.ae-package-compare-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.ae-package-card {
  position: relative;
  background: #fff;
  border: 1px solid rgba(14,42,71,.12);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(14,42,71,.08);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.ae-package-card:hover,
.ae-package-card.is-current {
  transform: translateY(-4px);
  box-shadow: 0 18px 34px rgba(14,42,71,.16);
  border-color: #EE2A26;
}

.ae-package-card a {
  display: block;
  color: inherit;
  text-decoration: none;
}

.ae-package-card-image {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #e8eef4;
}

.ae-package-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ae-package-card-body {
  padding: 14px;
}

.ae-package-card h3 {
  margin: 0 0 10px;
  font-size: 16px;
  line-height: 1.2;
  color: #0E2A47;
}

.ae-package-price {
  font-weight: 800;
  color: #EE2A26;
  margin-bottom: 10px;
}

.ae-package-link {
  font-weight: 700;
  color: #EE2A26;
}

.ae-package-current {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  padding: 7px 10px;
  border-radius: 999px;
  background: #EE2A26;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}

@media (max-width: 900px) {
  .ae-package-compare-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   Air Experiences — How It Works Modal
========================================================= */

.ae-how-it-works-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    background: #fff;
    color: #EE2A26;

    border: 2px solid #EE2A26;
    border-radius: 18px;

    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;

    padding: 14px 30px;

    cursor: pointer;
    transition: all .25s ease;
}

.ae-how-it-works-btn:hover,
.ae-how-it-works-btn:focus {
    background: #EE2A26;
    color: #fff;
    border-color: #EE2A26;
}

.ae-modal-open {
  overflow: hidden;
}

.ae-how-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 999999;
}

.ae-how-modal.is-open {
  display: block;
}

.ae-how-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(10, 30, 50, .72);
}

.ae-how-modal__panel {
  position: relative;
  width: calc(100% - 32px);
  max-width: 780px;
  max-height: 86vh;
  overflow-y: auto;
  margin: 7vh auto;
  background: #fff;
  border-radius: 28px;
  padding: 42px;
  box-shadow: 0 30px 80px rgba(0,0,0,.25);
}

.ae-how-modal__close {
  position: absolute;
  top: 18px;
  right: 22px;
  border: none;
  background: transparent;
  color: #0E2A47;
  font-size: 36px;
  line-height: 1;
  cursor: pointer;
}

.ae-how-modal h2 {
  margin: 0 0 26px;
  color: #0E2A47;
  font-size: 38px;
  line-height: 1.1;
}

.ae-how-modal__steps {
  display: grid;
  gap: 16px;
}

.ae-how-modal__steps div {
  border-left: 4px solid #EE2A26;
  padding: 14px 0 14px 18px;
}

.ae-how-modal__steps strong {
  display: block;
  color: #0E2A47;
  font-size: 18px;
  margin-bottom: 5px;
}

.ae-how-modal__steps p {
  margin: 0;
  color: #425775;
  line-height: 1.5;
}

.ae-how-modal__note {
  margin-top: 28px;
  padding: 20px;
  border-radius: 18px;
  background: #f6f8fb;
  border: 1px solid rgba(14,42,71,.12);
}

.ae-how-modal__note strong {
  display: block;
  color: #0E2A47;
  margin-bottom: 8px;
}

.ae-how-modal__note p {
  margin: 0;
  color: #425775;
  line-height: 1.5;
}

@media (max-width: 767px) {
  .ae-how-it-works-btn {
    width: 100%;
  }

  .ae-how-modal__panel {
    margin: 5vh auto;
    padding: 32px 24px;
    border-radius: 24px;
  }

  .ae-how-modal h2 {
    font-size: 30px;
  }
}

.ae-provider-logout-wrap {
    max-width: 1200px;
    margin: 0 auto 24px;
    text-align: right;
}

.ae-provider-logout-btn,
.ae-provider-logout-btn:link,
.ae-provider-logout-btn:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;

    background: #ffffff;
    color: #EE2A26 !important;

    border: 2px solid #EE2A26;
    border-radius: 12px;

    font-weight: 700;
    text-decoration: none;
    transition: all .25s ease;
}

.ae-provider-logout-btn:hover,
.ae-provider-logout-btn:focus {
    background: #EE2A26;
    color: #ffffff !important;
    text-decoration: none;
}