/* R12: Restore original production footer layout from front.css.
   Intentional: no footer layout overrides in this stylesheet. */

/* Equal grid rows grow to fit the longest title; titles are never line-clamped. */
[data-listing-grid] { grid-auto-rows:1fr; align-items:stretch; }
.card-title-lock,.shore-card .card-title-lock,.package-card .package-card-body > h3,.article-card-body > h2,
.stay-card-title,.shore-card-title,.transport-package-card h4 {
  display:block; -webkit-line-clamp:unset; height:auto; min-height:0; overflow:visible;
  overflow-wrap:anywhere; hyphens:auto; flex-shrink:0;
}
.package-card .package-card-body { min-width:0; }
.package-card-journey-desc {
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:5;
  overflow:hidden; max-height:calc(1.65em * 5); max-height:5lh; overflow-wrap:anywhere;
}
.package-card .package-card-bottom { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,auto); align-items:center; gap:.75rem; margin-top:.875rem; padding-block:.75rem .625rem; }
.package-card-bottom .package-card-cta { white-space:normal; min-width:0; max-width:100%; overflow-wrap:anywhere; line-height:1.5; text-align:center; }
.package-card-price strong { font-family:var(--pacebo-font-body); font-size:clamp(1rem,3.8vw,1.125rem); font-variant-numeric:lining-nums tabular-nums; overflow-wrap:anywhere; }
.package-card-price span,.package-card-limited { line-height:1.55; }
.regional-card-title { overflow-wrap:anywhere; hyphens:auto; }
@media(max-width:480px) {
  /* Keep price and action side-by-side on phones, including narrow 320px screens. */
  .package-card .package-card-bottom { grid-template-columns:minmax(0,1fr) minmax(6.5rem,auto); gap:clamp(.5rem,2vw,.75rem); align-items:center; }
  .package-card .package-card-price { min-width:0; overflow-wrap:anywhere; }
  .package-card-bottom .package-card-cta { width:auto; max-width:100%; padding-inline:clamp(.5rem,2vw,.75rem); font-size:clamp(.75rem,2.8vw,.875rem); white-space:normal; overflow-wrap:anywhere; }
}

/* Give a 7–9 digit price more room than the day/guest figures, without clipping. */
.product-hero .product-hero-stats { grid-template-columns:minmax(0,.65fr) minmax(0,1.65fr) minmax(0,.8fr); gap:clamp(.5rem,2vw,1.25rem); align-items:start; }
.product-hero-stats > div { min-width:0; }
.product-hero-stats .product-stat-value { font-family:var(--pacebo-font-body); font-size:clamp(1rem,3.8vw,1.625rem); font-variant-numeric:lining-nums tabular-nums; line-height:1.25; letter-spacing:0; }
.product-hero-stats .product-stat-price { font-size:clamp(1rem,3.8vw,1.625rem); white-space:normal; overflow-wrap:anywhere; }
.product-hero-stats .product-stat-label { font-size:clamp(.625rem,1.6vw,.75rem); letter-spacing:.04em; line-height:1.55; overflow-wrap:anywhere; hyphens:auto; }
.product-hero--group .product-hero-frame { height:auto; min-height:36rem; }
.product-hero--group .product-hero-content { position:relative; min-height:inherit; padding-top:12rem; }
@media(min-width:768px) { .product-hero--group .product-hero-frame { min-height:42rem; } }

/* Quiet emphasis on consultation controls; WhatsApp keeps its own recognizable action. */
.expert-consultation,[data-expert-consultation] { position:relative; isolation:isolate; overflow:hidden; }
.expert-consultation::after,[data-expert-consultation]::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.2) 50%,transparent 75%); transform:translateX(-130%); }
/* A 1.8-second light sweep followed by ~5 seconds of calm. */
.expert-consultation-visible::after,[data-expert-consultation].expert-consultation-visible::after {
  animation:expert-shimmer-cycle 7s ease-out infinite;
}
.expert-consultation-visible:hover::after,.expert-consultation-visible:focus-visible::after,
[data-expert-consultation].expert-consultation-visible:hover::after,[data-expert-consultation].expert-consultation-visible:focus-visible::after {
  animation:expert-shimmer .85s ease-out 1;
}
@keyframes expert-shimmer { to { transform:translateX(130%); } }
@keyframes expert-shimmer-cycle {
  0% { transform:translateX(-130%); }
  26% { transform:translateX(130%); }
  100% { transform:translateX(130%); }
}
@media (max-width:767px) {
  #hero .hero-inner { padding-top:max(8rem, calc(7.25rem + env(safe-area-inset-top, 0px))); }
}
@media (min-width:1024px) {
  #hero .hero-panels { max-width:1320px; }
}
@media(prefers-reduced-motion:reduce) { .expert-consultation::after,[data-expert-consultation]::after { display:none; animation:none; } }


/* R10 — consistent vertical rhythm across journey detail sections.
   Scoped to four section IDs; no change to data, content or global typography. */
section:is(#stays,#journey-offers,#reserve,#testimonials) {
  padding-block:3.75rem !important; /* 60px symmetrical mobile rhythm; overrides inline Offers padding */
}

/* Identical eyebrow-to-title gap: 12px in all four sections. */
#stays > div > div:first-child > p:first-child,
section#journey-offers > div > header > p:first-child,
#reserve > div > p:first-child,
#testimonials > div > div:first-child > div:first-child > p:first-child {
  margin-top:0 !important;
  margin-bottom:.75rem !important;
  line-height:1.5;
}

/* Prevent overly loose accommodation heading leading; long FR/DE lines stay legible. */
#stays > div > div:first-child h2,
section#journey-offers > div > header > h2,
#reserve > div > h2,
#testimonials > div > div:first-child h2 {
  margin-top:0 !important;
  line-height:1.22 !important;
  overflow-wrap:anywhere;
}

/* Consistent title-to-content distance across stays, offers, CTA, testimonials. */
#stays > div > div:first-child,
section#journey-offers > div > header,
#testimonials > div > div:first-child {
  margin-bottom:2.5rem !important; /* 40px */
}
#reserve > div > h2 {
  margin-bottom:2.5rem !important;
}

@media (min-width:768px) {
  section:is(#stays,#journey-offers,#reserve,#testimonials) {
    padding-block:5.5rem !important; /* 88px symmetrical desktop rhythm */
  }
  #stays > div > div:first-child,
  section#journey-offers > div > header,
  #testimonials > div > div:first-child,
  #reserve > div > h2 {
    margin-bottom:3rem !important; /* 48px */
  }
}
