/* ====================================================================
   INVOLVED HOLIDAYS — holiday page
   All selectors are scoped under .ihv and namespaced ihv-*.
   No theme classes, no !important, no external dependencies.
   ==================================================================== */
.ihv{
  /* brand — sampled from the logo */
  --ihv-blue-900:#12283f; --ihv-blue-800:#1b3f63; --ihv-blue-700:#275a92;
  --ihv-blue-600:#2f6ba9; --ihv-blue-500:#2595c6; --ihv-blue-100:#e6f2f9;
  --ihv-blue-050:#f3f9fc;
  --ihv-gold-600:#8f7c45; --ihv-gold-500:#ab8b44; --ihv-gold-300:#d9b769;
  /* Brand gold for call-to-action buttons */
  --ihv-gold-btn:#c69a40; --ihv-gold-btn-hover:#ab8334;
  --ihv-sand:#f6f2e9;
  --ihv-ink:#243746; --ihv-body:#3a4b59; --ihv-lead:#5a6b79; --ihv-muted:#6a7a87;
  --ihv-line:#e6eaee; --ihv-line-strong:#c9d4de;
  --ihv-danger:#a6362c; --ihv-danger-soft:#f8e9e7;

  --ihv-r-sm:6px; --ihv-r-md:10px; --ihv-r-lg:16px; --ihv-r-xl:18px; --ihv-r-pill:999px;
  --ihv-sh-sm:0 2px 6px rgba(18,40,63,.08);
  --ihv-sh-md:0 6px 18px rgba(18,40,63,.10);
  --ihv-sh-lg:0 14px 36px rgba(18,40,63,.16);
  --ihv-ease:cubic-bezier(.4,0,.2,1);
  --ihv-wrap:1240px; --ihv-gut:24px;

  font-family:Lato,system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  font-size:17px; line-height:1.6; color:var(--ihv-ink); background:#fff;
  -webkit-font-smoothing:antialiased;
}
.ihv *,.ihv *::before,.ihv *::after{box-sizing:border-box}
.ihv img,.ihv svg{display:block;max-width:100%}
.ihv button{font:inherit;color:inherit}
.ihv :focus-visible{outline:none;box-shadow:0 0 0 3px rgba(37,149,198,.45);border-radius:var(--ihv-r-sm)}

/* ---------- layout ---------- */
.ihv-wrap{max-width:var(--ihv-wrap);margin:0 auto;padding-inline:var(--ihv-gut)}
.ihv-section{padding-block:80px}
.ihv-section--tight{padding-block:56px}
.ihv-tint{background:var(--ihv-blue-050)}
.ihv-split{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:56px;align-items:start}
.ihv-block{margin-top:72px}

/* ---------- type ---------- */
/* The theme applies text-transform:uppercase to headings. Everything below
   is meant to read as written ("Dates & Prices", "Walking in Provence"),
   so it is switched off explicitly. The small kickers further down keep
   their uppercase deliberately. */
.ihv .ihv-h2,.ihv .ihv-h3,.ihv .ihv-hero__title,.ihv .ihv-card__title,
.ihv .ihv-card__title a,.ihv .ihv-hotel__name,.ihv .ihv-itin__title,
.ihv .ihv-modal__title,.ihv .ihv-review__quote,.ihv .ihv-price__amount,
.ihv .ihv-crumbs,.ihv .ihv-chip,.ihv .ihv-highlights__item,
.ihv .ihv-hotel__feature,.ihv .ihv-nav__link,.ihv .ihv-btn{
  text-transform:none !important;font-variant:normal}

.ihv-eyebrow{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ihv-gold-500);margin:0 0 8px}
.ihv-h2{font-size:clamp(26px,4vw,36px);line-height:1.2;font-weight:900;
  color:var(--ihv-blue-700);margin:0 0 40px}
.ihv-h2--tight{margin-bottom:20px}
.ihv-h3{font-size:26px;line-height:1.25;font-weight:900;color:var(--ihv-blue-700);margin:0 0 22px}
.ihv-prose{font-size:17px;line-height:1.6;color:var(--ihv-body);max-width:68ch}
.ihv-prose p{margin:0 0 20px}
.ihv-prose p:last-child{margin-bottom:0}
/* Holiday description: one consistent size throughout. */
.ihv-desc{max-width:68ch}
.ihv-desc p{margin:0 0 20px;font-size:19px;font-weight:300;line-height:1.65;color:var(--ihv-lead)}
.ihv-desc p:last-child{margin-bottom:0}

.ihv-stars{display:inline-flex;gap:3px;color:var(--ihv-gold-500);vertical-align:middle}
.ihv-star{width:18px;height:18px;fill:currentColor}

/* ---------- buttons ---------- */
/* Buttons are scoped `.ihv .ihv-btn` (0,2,0) so theme rules like
   `.something button` (0,1,1) can't outrank them. The gold fill also
   carries !important because the theme colours <button> directly and was
   overriding the background outright. */
.ihv .ihv-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 26px;border:1px solid transparent;border-radius:var(--ihv-r-pill);
  font-family:inherit;font-size:15px;font-weight:700;line-height:1;text-decoration:none;
  cursor:pointer;white-space:nowrap;text-transform:none;
  transition:background-color .16s var(--ihv-ease),color .16s var(--ihv-ease),
  border-color .16s var(--ihv-ease),box-shadow .16s var(--ihv-ease),transform .16s var(--ihv-ease)}
.ihv .ihv-btn:active{transform:scale(.985)}
.ihv .ihv-btn--primary{background:var(--ihv-blue-700);border-color:var(--ihv-blue-700);color:#fff}
.ihv .ihv-btn--primary:hover{background:var(--ihv-blue-800);border-color:var(--ihv-blue-800);color:#fff}

.ihv .ihv-btn--gold,
.ihv a.ihv-btn--gold,
.ihv button.ihv-btn--gold{background:var(--ihv-gold-btn) !important;
  border-color:var(--ihv-gold-btn) !important;color:#fff !important}
.ihv .ihv-btn--gold:hover,
.ihv a.ihv-btn--gold:hover,
.ihv button.ihv-btn--gold:hover{background:var(--ihv-gold-btn-hover) !important;
  border-color:var(--ihv-gold-btn-hover) !important;color:#fff !important}

.ihv .ihv-btn--outline{background:transparent;border-color:var(--ihv-line-strong);color:var(--ihv-blue-700)}
.ihv .ihv-btn--outline:hover{background:var(--ihv-blue-050);border-color:var(--ihv-blue-700)}
.ihv .ihv-btn--inverse{background:transparent;border-color:rgba(255,255,255,.5);color:#fff}
.ihv .ihv-btn--inverse:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
.ihv .ihv-btn--sm{padding:10px 18px;font-size:14px}
.ihv .ihv-btn--lg{padding:16px 26px}
.ihv .ihv-btn--block{width:100%}

.ihv-badge{display:inline-flex;align-items:center;padding:6px 14px;border-radius:var(--ihv-r-pill);
  font-size:13px;font-weight:700;line-height:1.2}
.ihv-badge--gold{background:var(--ihv-gold-500);color:#fff}
.ihv-badge--danger{background:var(--ihv-danger-soft);color:var(--ihv-danger)}

/* ---------- hero ---------- */
.ihv-hero{position:relative;height:420px;overflow:hidden;background:var(--ihv-blue-700)}
.ihv-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ihv-hero__scrim{position:absolute;inset:0;
  background:linear-gradient(to top,rgba(12,28,45,.85) 0%,rgba(12,28,45,.45) 38%,rgba(12,28,45,0) 74%)}
.ihv-hero__inner{position:absolute;left:0;right:0;bottom:0;padding:0 var(--ihv-gut) 56px}
.ihv-hero__box{max-width:var(--ihv-wrap);margin:0 auto}
/* The theme colours headings with an ID-based selector (e.g. #content h1),
   which outranks any class selector no matter how long. !important is the
   only thing that wins here, so it is used deliberately and ONLY on the
   hero text sitting over the photo, where the wrong colour is unreadable. */
.ihv-hero__eyebrow{font-size:16px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ihv-gold-300) !important;margin:0 0 16px}
.ihv-hero__title{font-size:clamp(38px,6vw,62px);line-height:1.06;font-weight:900;
  color:#fff !important;letter-spacing:-.015em;max-width:18ch;margin:0}
.ihv-hero__title a,.ihv-hero__box{color:#fff !important}

/* ---------- breadcrumbs (rewritten, no shortcode) ---------- */
.ihv-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  margin:0;padding:32px 0 18px;list-style:none;font-size:14px;color:var(--ihv-muted)}
.ihv-crumbs__item{display:flex;align-items:center;gap:8px;margin:0}
.ihv-crumbs__link{color:var(--ihv-muted);text-decoration:none;transition:color .16s var(--ihv-ease)}
.ihv-crumbs__link:hover{color:var(--ihv-blue-700);text-decoration:underline;text-underline-offset:3px}
.ihv-crumbs__sep{color:var(--ihv-line-strong)}
.ihv-crumbs__current{color:var(--ihv-ink);font-weight:700}

/* ---------- sticky scrollspy nav ---------- */
/* --ihv-header-offset is measured at runtime from the theme's fixed header
   so our sticky bar parks underneath it instead of behind it. */
/* --ihv-nav-z is set at runtime to (site header z-index - 1) so this bar
   always slides UNDER the site header rather than over the top of it. */
.ihv-nav{position:sticky;top:var(--ihv-header-offset,0px);z-index:var(--ihv-nav-z,40);
  background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:saturate(1.2) blur(8px);backdrop-filter:saturate(1.2) blur(8px);
  border-bottom:1px solid transparent;transition:box-shadow .24s var(--ihv-ease),border-color .24s var(--ihv-ease)}
.ihv-nav.is-stuck{border-bottom-color:var(--ihv-line);box-shadow:var(--ihv-sh-sm)}
.ihv-nav__inner{max-width:var(--ihv-wrap);margin:0 auto;padding:12px var(--ihv-gut);
  transition:max-width .24s var(--ihv-ease)}
.ihv-nav.is-stuck .ihv-nav__inner{max-width:100%}
.ihv-nav__list{display:flex;gap:4px;overflow-x:auto;background:var(--ihv-blue-050);
  border-radius:var(--ihv-r-pill);padding:6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ihv-nav__list::-webkit-scrollbar{height:0}
.ihv-nav.is-stuck .ihv-nav__list{justify-content:center}
.ihv-nav__link{flex:0 0 auto;display:block;padding:11px 20px;border-radius:var(--ihv-r-pill);
  font-size:15px;font-weight:700;white-space:nowrap;color:var(--ihv-lead);background:transparent;
  text-decoration:none;transition:background .16s var(--ihv-ease),color .16s var(--ihv-ease)}
.ihv-nav__link:hover{background:rgba(37,90,146,.07);color:var(--ihv-blue-700)}
.ihv-nav__link.is-active{background:#8a6e32;color:#fff}

/* ---------- chips (at a glance) ---------- */
.ihv-chips{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 0;padding:0;list-style:none}
.ihv-chip{padding:9px 16px;border-radius:var(--ihv-r-pill);background:var(--ihv-blue-050);
  color:var(--ihv-blue-700);font-size:14px;font-weight:700;line-height:1.2}

/* ---------- price card ---------- */
/* Sticky price card. Sits below the theme header + our own tab bar.
   If this doesn't stick, an ancestor has overflow:hidden — see IHV_STICKY_FIX. */
.ihv-side{position:sticky;
  top:calc(var(--ihv-header-offset,0px) + var(--ihv-nav-h,72px) + 24px);
  display:flex;flex-direction:column;gap:20px;align-self:start}
.ihv-price{background:var(--ihv-blue-700);border-radius:var(--ihv-r-md);padding:32px 30px;color:#fff}
.ihv-price__eyebrow{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ihv-gold-300);margin:0 0 10px}
.ihv-price__amount{font-size:40px;font-weight:700;line-height:1;margin:0 0 6px}
.ihv-price__unit{font-size:18px;font-weight:400}
.ihv-price__sale{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;margin:0 0 6px}
.ihv-price__was{font-size:16px;color:rgba(255,255,255,.7);text-decoration:line-through}
.ihv-price__save{padding:5px 12px;border-radius:var(--ihv-r-pill);background:var(--ihv-gold-500);
  font-size:13px;font-weight:700}
.ihv-price__list{display:flex;flex-direction:column;gap:8px;margin:20px 0 0;padding:20px 0 0;
  border-top:1px solid rgba(255,255,255,.18);list-style:none;font-size:15px;color:rgba(255,255,255,.85)}
.ihv-price__label{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.7);margin:0 0 6px}
.ihv-price__depart{font-size:18px;font-weight:700}
.ihv-price__actions{display:flex;flex-direction:column;gap:12px;margin-top:24px}

/* ---------- highlights ---------- */
.ihv-highlights{margin-top:56px;background:var(--ihv-blue-050);border-radius:var(--ihv-r-md);padding:36px 40px}
.ihv-highlights__list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.ihv-highlights__item{display:grid;grid-template-columns:22px minmax(0,1fr);gap:14px;
  align-items:start;font-size:17px;line-height:1.55;color:var(--ihv-body)}
.ihv-highlights__item::before{content:"";display:block;width:8px;height:8px;margin:9px 0 0 7px;
  border-radius:50%;background:var(--ihv-gold-500)}

/* ---------- itinerary ---------- */
.ihv-itin__tools{display:flex;gap:12px;margin-bottom:20px}
.ihv-itin__list{display:flex;flex-direction:column;gap:12px}
.ihv-itin__item{background:#fff;border:1px solid var(--ihv-line);border-radius:var(--ihv-r-md);overflow:hidden}
/* The header is a real <button>. Reset the UA/theme button styling and
   scope to `.ihv .ihv-itin__head` so theme `button` rules can't win.
   No hover effect on the rows — deliberate. */
.ihv .ihv-itin__head{display:grid;grid-template-columns:48px minmax(0,1fr) 28px;gap:20px;
  align-items:center;width:100%;margin:0;padding:18px 24px;
  border:0;border-radius:0;background:#fff;box-shadow:none;
  color:inherit;font:inherit;text-align:left;text-transform:none;
  cursor:pointer;-webkit-appearance:none;appearance:none}
.ihv .ihv-itin__head:hover{background:#fff}
.ihv-itin__num{display:flex;align-items:center;justify-content:center;width:48px;height:48px;
  border-radius:50%;background:var(--ihv-blue-700);color:#fff;font-size:18px;font-weight:900}
.ihv-itin__title{font-size:19px;font-weight:900;color:var(--ihv-blue-700);margin:0}
.ihv-itin__sign{justify-self:end;color:var(--ihv-gold-500);font-size:22px;font-weight:700;line-height:1}
.ihv-itin__sign::after{content:"+"}
.ihv-itin__item.is-open .ihv-itin__sign::after{content:"\2013"}

/* Pure-CSS open/close, both directions. grid-template-rows 1fr <-> 0fr
   animates to the content's natural height with no max-height guess and,
   crucially, no JS timers — so there is no state to get out of sync. */
.ihv-itin__panel{display:grid;grid-template-rows:1fr;opacity:1;
  transition:grid-template-rows .32s var(--ihv-ease),opacity .24s var(--ihv-ease)}
.ihv-itin__item:not(.is-open) .ihv-itin__panel{grid-template-rows:0fr;opacity:0}
.ihv-itin__wrap{overflow:hidden;min-height:0}
.ihv-itin__body{margin:0;padding:0 24px 24px 92px;font-size:17px;line-height:1.6;
  color:var(--ihv-body);max-width:66ch}
/* CMS entries may bring their own <p>, <ul>, <strong> etc. */
.ihv-itin__body > :first-child{margin-top:0}
.ihv-itin__body > :last-child{margin-bottom:0}
.ihv-itin__body p{margin:0 0 16px;font-size:inherit;line-height:inherit;color:inherit}
.ihv-itin__body ul,.ihv-itin__body ol{margin:0 0 16px;padding-left:22px}
.ihv-itin__body li{margin-bottom:6px}
.ihv-itin__body strong,.ihv-itin__body b{font-weight:700;color:var(--ihv-ink)}
.ihv-itin__body a{color:var(--ihv-blue-500);text-decoration:underline;text-underline-offset:2px}
.ihv-itin__body img{border-radius:var(--ihv-r-sm);margin:6px 0}

/* ---------- accommodation ---------- */
.ihv-hotel{background:#fff;border-radius:var(--ihv-r-lg);box-shadow:var(--ihv-sh-sm);
  overflow:hidden;margin-bottom:28px}
.ihv-hotel.is-hidden{display:none}
.ihv-hotel__stage{position:relative;height:400px;background:var(--ihv-blue-050)}
.ihv-hotel__slide{position:absolute;inset:0;padding:0;border:0;background:transparent;cursor:zoom-in;
  opacity:0;pointer-events:none;transition:opacity .4s var(--ihv-ease)}
.ihv-hotel__slide.is-active{opacity:1;pointer-events:auto}
.ihv-hotel__img{width:100%;height:100%;object-fit:cover}
.ihv-hotel__zoom{position:absolute;top:16px;right:16px;padding:8px 14px;border-radius:var(--ihv-r-pill);
  background:rgba(255,255,255,.94);color:var(--ihv-blue-700);font-size:13px;font-weight:700;
  box-shadow:var(--ihv-sh-sm);pointer-events:none;opacity:0;transition:opacity .16s var(--ihv-ease)}
.ihv-hotel__slide.is-active:hover .ihv-hotel__zoom,
.ihv-hotel__slide.is-active:focus-visible .ihv-hotel__zoom{opacity:1}
.ihv-hotel__nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;
  border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--ihv-blue-700);
  font-size:20px;line-height:1;cursor:pointer;box-shadow:var(--ihv-sh-sm);z-index:2;
  transition:background .16s var(--ihv-ease)}
.ihv-hotel__nav:hover{background:#fff}
.ihv-hotel__nav--prev{left:16px} .ihv-hotel__nav--next{right:16px}
.ihv-hotel__dots{position:absolute;bottom:16px;left:0;right:0;display:flex;justify-content:center;
  gap:8px;z-index:2}
.ihv-hotel__dot{width:10px;height:10px;padding:0;border:0;border-radius:var(--ihv-r-pill);cursor:pointer;
  background:rgba(255,255,255,.55);transition:width .24s var(--ihv-ease),background .24s var(--ihv-ease)}
.ihv-hotel__dot.is-active{width:26px;background:#fff}
.ihv-hotel__thumbs{display:flex;gap:10px;overflow-x:auto;padding:14px 20px 4px;scrollbar-width:none}
.ihv-hotel__thumbs::-webkit-scrollbar{height:0}
.ihv-hotel__thumb{flex:0 0 auto;width:104px;height:70px;padding:0;border-radius:8px;cursor:pointer;
  background-color:var(--ihv-blue-050);background-size:cover;background-position:center;
  border:2px solid transparent;opacity:.68;
  transition:border-color .16s var(--ihv-ease),opacity .16s var(--ihv-ease)}
.ihv-hotel__thumb:hover{opacity:1}
.ihv-hotel__thumb.is-active{border-color:var(--ihv-gold-500);opacity:1}
.ihv-hotel__body{padding:26px 36px 36px}
.ihv-hotel__head{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:16px}
.ihv-hotel__name{font-size:26px;font-weight:700;color:var(--ihv-blue-700);margin:0}
.ihv-hotel__label{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ihv-ink);margin:28px 0 14px}
.ihv-hotel__features{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.ihv-hotel__feature{padding:9px 16px;border-radius:var(--ihv-r-pill);background:var(--ihv-gold-500);
  color:#fff;font-size:14px;font-weight:700;line-height:1.2}
.ihv-more{display:flex;justify-content:center;margin-top:8px}

/* ---------- gallery + lightbox ---------- */
.ihv-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:196px;gap:16px}
.ihv-gallery__tile{padding:0;border:0;cursor:pointer;border-radius:var(--ihv-r-md);
  box-shadow:var(--ihv-sh-sm);background-color:var(--ihv-blue-050);background-size:cover;
  background-position:center;transition:box-shadow .24s var(--ihv-ease),transform .24s var(--ihv-ease)}
.ihv-gallery__tile:hover{box-shadow:var(--ihv-sh-lg);transform:translateY(-2px)}
.ihv-gallery__tile:first-child{grid-column:span 2;grid-row:span 2}

.ihv-lb{position:fixed;inset:0;z-index:1000;background:rgba(12,28,45,.94);display:flex;
  flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:48px 24px;
  opacity:0;transition:opacity .22s var(--ihv-ease)}
.ihv-lb.is-open{opacity:1}
.ihv-lb.is-open .ihv-lb__fig{transform:scale(1);opacity:1}
.ihv-lb__fig{transform:scale(.97);opacity:0;
  transition:transform .26s var(--ihv-ease),opacity .26s var(--ihv-ease)}
.ihv-lb[hidden]{display:none}
.ihv-lb__inner{display:flex;align-items:center;gap:20px;max-width:1100px;width:100%}
.ihv-lb__fig{flex:1;min-width:0;display:flex;flex-direction:column;gap:14px}
.ihv-lb__img{width:100%;height:72vh;border-radius:var(--ihv-r-md);background:#0c1c2d center/contain no-repeat}
.ihv-lb__meta{display:flex;align-items:center;justify-content:space-between;gap:20px;
  color:rgba(255,255,255,.9);font-size:15px}
.ihv-lb__count{color:rgba(255,255,255,.6)}
/* Solid white glyphs on a dark disc so the controls read clearly over
   both light and dark photos. Invert to white-on-dark on hover. */
/* Scoped + !important: these are <button>s, and the theme styles buttons
   directly, which was overriding the white glyph and the disc. */
.ihv .ihv-lb__btn,
.ihv button.ihv-lb__btn{flex:none;display:flex;align-items:center;justify-content:center;
  width:58px;height:58px;padding:0;border-radius:50% !important;
  border:2px solid rgba(255,255,255,.92) !important;
  background:rgba(12,28,45,.55) !important;background-image:none !important;
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  color:#fff !important;font-family:inherit;font-size:30px !important;
  font-weight:700;line-height:1;cursor:pointer;text-transform:none;
  box-shadow:0 2px 12px rgba(0,0,0,.35);
  transition:background-color .16s var(--ihv-ease),color .16s var(--ihv-ease),
             border-color .16s var(--ihv-ease),transform .16s var(--ihv-ease)}
.ihv .ihv-lb__btn:hover,
.ihv button.ihv-lb__btn:hover{background:#fff !important;
  color:var(--ihv-blue-900) !important;border-color:#fff !important;transform:scale(1.06)}
.ihv .ihv-lb__btn:active{transform:scale(.97)}
.ihv-lb__close{position:absolute;top:24px;right:28px;width:52px;height:52px;font-size:26px}

/* ---------- location ---------- */
.ihv-map__img{width:100%;border-radius:var(--ihv-r-md);box-shadow:var(--ihv-sh-sm)}

/* ---------- reviews ---------- */
.ihv-reviews__head{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:28px}
.ihv-reviews__score{display:flex;align-items:center;gap:12px;padding:8px 16px;
  border-radius:var(--ihv-r-pill);background:var(--ihv-sand);font-size:14px;color:var(--ihv-lead)}
.ihv-reviews__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:20px}
.ihv-review{background:#fff;border-radius:var(--ihv-r-md);box-shadow:var(--ihv-sh-sm);
  padding:26px 26px 22px;display:flex;flex-direction:column;gap:16px}
.ihv-review.is-hidden{display:none}
.ihv-review__quote{margin:0;font-size:17px;line-height:1.55;color:var(--ihv-ink)}
/* Reviews are free text from the CMS and may carry their own <p>.
   Rendering them inline keeps the quote marks hugging the text. */
.ihv-review__quote p{display:inline;margin:0;font:inherit;color:inherit}
.ihv-review__quote br{display:none}
.ihv-review__name{font-size:14px;font-weight:700;color:var(--ihv-muted)}

/* ---------- dates & prices ---------- */
.ihv-dates__card{background:#fff;border-radius:var(--ihv-r-md);box-shadow:var(--ihv-sh-sm);overflow:hidden}
.ihv-dates__head,.ihv-dates__row{display:grid;
  grid-template-columns:1fr 1fr 1fr 1.2fr .9fr 180px;gap:16px;align-items:center;padding:18px 28px}
.ihv-dates__head{background:var(--ihv-blue-700);color:#fff;font-size:12px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase}
.ihv-dates__row{border-bottom:1px solid var(--ihv-line);font-size:16px;color:var(--ihv-body)}
.ihv-dates__row:last-child{border-bottom:0}
.ihv-dates__row:hover{background:var(--ihv-blue-050)}
.ihv-dates__label{display:none;font-size:11px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ihv-muted);margin:0 0 2px}
.ihv-dates__depart{font-weight:700;color:var(--ihv-ink)}
.ihv-dates__price{font-size:19px;font-weight:700;color:var(--ihv-blue-700)}
.ihv-dates__solo{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ihv-muted)}
.ihv-dates__soloicon{width:15px;height:15px;fill:var(--ihv-gold-500);flex:none}
.ihv-dates__book{justify-self:end;text-align:right}
.ihv-dates__note{margin:8px 0 0;font-size:12px;font-weight:700;color:var(--ihv-danger)}
.ihv-dates__soldout{justify-self:end}
.ihv-dates__empty{margin:0;color:var(--ihv-muted)}
/* Admin-only warning under the dates table (never shown to customers). */
.ihv-datewarn{margin-top:20px;padding:18px 22px;border-radius:var(--ihv-r-md);
  background:#fbf1dd;border:1px solid #e0c489;color:#6b4e12;font-size:15px;line-height:1.5}
.ihv-datewarn ul{margin:10px 0;padding-left:20px}
.ihv-datewarn li{margin-bottom:6px}
.ihv-datewarn a{color:#6b4e12;text-decoration:underline;font-weight:700}

/* ---------- upsell cards ---------- */
.ihv-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:32px}
.ihv-card{background:#fff;border-radius:var(--ihv-r-xl);box-shadow:var(--ihv-sh-md);overflow:hidden;
  display:flex;flex-direction:column;
  transition:box-shadow .24s var(--ihv-ease),transform .24s var(--ihv-ease)}
.ihv-card:hover{box-shadow:var(--ihv-sh-lg);transform:translateY(-2px)}
.ihv-card__media{height:250px;background:var(--ihv-blue-050)}
.ihv-card__img{width:100%;height:100%;object-fit:cover}
.ihv-card__body{padding:26px 28px 28px;display:flex;flex-direction:column;flex:1}
.ihv-card__country{font-size:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ihv-gold-500);margin:0 0 10px}
.ihv-card__title{font-size:26px;line-height:1.2;font-weight:700;margin:0 0 14px}
.ihv-card__title a{color:var(--ihv-blue-700);text-decoration:none}
.ihv-card__title a:hover{text-decoration:underline;text-underline-offset:3px}
.ihv-card__blurb{margin:0 0 28px;font-size:17px;line-height:1.55;color:var(--ihv-body)}
.ihv-card__foot{margin-top:auto;padding-top:22px;border-top:1px solid var(--ihv-line);
  display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.ihv-card__dur{font-size:14px;color:var(--ihv-muted);margin:0 0 4px}
.ihv-card__price{font-size:24px;font-weight:700;color:var(--ihv-gold-500);line-height:1}
.ihv-card__pp{font-size:16px;font-weight:400}

/* ---------- mobile sticky bar ---------- */
.ihv-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:50;background:#fff;
  border-top:1px solid var(--ihv-line);box-shadow:0 -4px 18px rgba(18,40,63,.12);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  align-items:center;justify-content:space-between;gap:16px}
.ihv-bar__price{margin:0;font-size:22px;font-weight:700;color:var(--ihv-blue-700)}
.ihv-bar__pp{font-size:14px;font-weight:400;color:var(--ihv-muted)}

/* ---------- modals ---------- */
/* Fade + lift. .is-open is added on the next frame after [hidden] is
   removed, so the transition actually runs instead of snapping. */
.ihv-overlay{position:fixed;inset:0;z-index:900;background:rgba(12,28,45,.6);
  opacity:0;transition:opacity .22s var(--ihv-ease)}
.ihv-overlay.is-open{opacity:1}
.ihv-overlay[hidden]{display:none}
.ihv-modal{position:fixed;z-index:901;top:50%;left:50%;
  width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;
  background:#fff;border-radius:var(--ihv-r-lg);box-shadow:var(--ihv-sh-lg);padding:28px;
  opacity:0;transform:translate(-50%,-50%) scale(.96);
  transition:opacity .22s var(--ihv-ease),transform .22s var(--ihv-ease)}
.ihv-modal.is-open{opacity:1;transform:translate(-50%,-50%) scale(1)}
.ihv-modal[hidden]{display:none}
.ihv-modal--wide{width:min(880px,calc(100vw - 32px))}
.ihv-modal__bar{display:flex;justify-content:flex-end;margin:-6px -6px 6px}
/* Obvious, tappable close: solid circle, dark ×, turns red on hover. */
.ihv-modal__close{display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;padding:0;border:1px solid var(--ihv-line-strong);
  background:#fff;color:var(--ihv-ink);font-size:24px;line-height:1;cursor:pointer;
  border-radius:50%;box-shadow:var(--ihv-sh-sm);
  transition:background .16s var(--ihv-ease),color .16s var(--ihv-ease),
             border-color .16s var(--ihv-ease),transform .16s var(--ihv-ease)}
.ihv-modal__close:hover{background:var(--ihv-danger);border-color:var(--ihv-danger);
  color:#fff;transform:rotate(90deg)}
.ihv-modal__title{font-size:22px;font-weight:900;color:var(--ihv-blue-700);margin:0 0 20px;
  padding-right:8px}
.ihv-field{margin-bottom:18px}
.ihv-field__label{display:block;margin-bottom:8px;font-size:13px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ihv-muted)}
/* height:auto — the theme sets a fixed height on selects which crops the text. */
.ihv-field__select{display:block;width:100%;height:auto;min-height:0;
  padding:13px 16px;border:1px solid var(--ihv-line-strong);
  border-radius:var(--ihv-r-sm);font-family:inherit;font-size:16px;line-height:1.4;
  color:var(--ihv-ink);background:#fff}
.ihv-field__select:focus{border-color:var(--ihv-blue-500);outline:none}
select.ihv-field__select{-webkit-appearance:none;appearance:none;padding-right:44px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23275a92'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:22px}
.ihv-perperson{min-height:28px;margin:0 0 18px;font-size:19px;font-weight:700;color:var(--ihv-blue-700)}
.ihv-error{margin:0 0 16px;padding:12px 16px;border-radius:var(--ihv-r-sm);
  background:var(--ihv-danger-soft);color:var(--ihv-danger);font-size:14px;font-weight:700}
.ihv-error[hidden]{display:none}
.ihv-modal__intro{margin:0 0 22px;font-size:16px;line-height:1.55;color:var(--ihv-lead)}

/* ---- Ask-a-question: restyle the forms-plugin markup we don't control ----
   Scoped to .ihv-modal--form so it can only ever affect this popup. */
.ihv-modal--form input[type=text],.ihv-modal--form input[type=email],
.ihv-modal--form input[type=tel],.ihv-modal--form input[type=number],
.ihv-modal--form input[type=date],.ihv-modal--form select,
.ihv-modal--form textarea{display:block;width:100%;height:auto;min-height:0;
  padding:13px 16px;border:1px solid var(--ihv-line-strong);
  border-radius:var(--ihv-r-sm);font-family:inherit;font-size:16px;line-height:1.4;
  color:var(--ihv-ink);background:#fff;margin-bottom:16px;box-shadow:none}
.ihv-modal--form textarea{min-height:130px;resize:vertical}
.ihv-modal--form input:focus,.ihv-modal--form select:focus,
.ihv-modal--form textarea:focus{border-color:var(--ihv-blue-500);outline:none}
.ihv-modal--form label{display:block;margin-bottom:8px;font-size:13px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ihv-muted)}
.ihv-modal--form input[readonly]{background:var(--ihv-blue-050);color:var(--ihv-lead);cursor:not-allowed}
/* Gold, pill-shaped submit to match the rest of the page.
   We don't control the forms plugin's markup, so this casts a wide net:
   input[type=submit|button], <button>, and anchors/elements carrying the
   usual .btn/.button/submit class names. Everything visual is !important
   because the theme styles these element types directly. */
.ihv-modal--form input[type=submit],
.ihv-modal--form input[type=button],
.ihv-modal--form button:not(.ihv-modal__close),
.ihv-modal--form .btn,
.ihv-modal--form .button,
.ihv-modal--form a.btn,
.ihv-modal--form a.button,
.ihv-modal--form [class*="submit"]:not(form),
.ihv-modal--form [type=submit]{
  display:inline-flex !important;align-items:center;justify-content:center;
  width:auto !important;max-width:100%;height:auto !important;min-height:0;
  margin-top:6px;
  padding:15px 32px !important;
  border:2px solid var(--ihv-gold-btn) !important;
  border-radius:var(--ihv-r-pill) !important;
  background:var(--ihv-gold-btn) !important;
  background-image:none !important;
  color:#fff !important;
  font-family:inherit !important;font-size:15px !important;font-weight:700 !important;
  line-height:1 !important;letter-spacing:normal;
  text-transform:none !important;text-decoration:none !important;
  box-shadow:none !important;cursor:pointer;
  transition:background-color .16s var(--ihv-ease),border-color .16s var(--ihv-ease)}
.ihv-modal--form input[type=submit]:hover,
.ihv-modal--form input[type=button]:hover,
.ihv-modal--form button:not(.ihv-modal__close):hover,
.ihv-modal--form .btn:hover,
.ihv-modal--form .button:hover,
.ihv-modal--form a.btn:hover,
.ihv-modal--form a.button:hover,
.ihv-modal--form [class*="submit"]:not(form):hover,
.ihv-modal--form [type=submit]:hover{
  background:var(--ihv-gold-btn-hover) !important;
  border-color:var(--ihv-gold-btn-hover) !important;color:#fff !important}
.ihv-lb__img--solo{background-size:contain}

/* ---------- error state ---------- */
.ihv-fail{max-width:var(--ihv-wrap);margin:0 auto;padding:80px var(--ihv-gut);text-align:center}

/* ===================== RESPONSIVE ===================== */
@media (max-width:1080px){
  .ihv-nav__list{flex-wrap:wrap;overflow-x:visible;border-radius:var(--ihv-r-lg);justify-content:flex-start}
  .ihv-nav__link{flex:1 1 auto;text-align:center}
  .ihv-split{grid-template-columns:minmax(0,1fr);gap:40px}
  .ihv-side{position:static;order:-1}
  .ihv-split > .ihv-main{order:0}
  .ihv-gallery{grid-template-columns:repeat(3,1fr);grid-auto-rows:170px}
  /* drop the solo-supplement column -> 5 columns */
  .ihv-dates__head,.ihv-dates__row{grid-template-columns:1fr 1fr 1fr 1.2fr 160px;font-size:15px}
  .ihv-dates__solo,.ihv-dates__head-solo{display:none}
}
@media (max-width:760px){
  /* 24px gutter — a touch more air at the screen edge. */
  .ihv{--ihv-gut:24px}
  .ihv-section{padding-block:52px}
  .ihv-block{margin-top:52px}
  .ihv-h2{margin-bottom:28px}
  .ihv-hero{height:280px}
  .ihv-hero__inner{padding-bottom:32px}
  .ihv-nav{position:static;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
  .ihv-nav__inner{padding:10px var(--ihv-gut)}
  .ihv-nav__list{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:5px;border-radius:14px}
  .ihv-nav__link{padding:8px 10px;font-size:13px}
  .ihv-nav__link:last-child{grid-column:1/-1}
  .ihv-split{gap:28px}
  .ihv-price{padding:28px 24px}
  .ihv-highlights{padding:30px 24px;margin-top:44px}
  .ihv-desc p{font-size:18px}
  .ihv-itin__head{grid-template-columns:40px minmax(0,1fr) 24px;gap:14px;padding:20px 22px}
  .ihv-itin__num{width:40px;height:40px;font-size:16px}
  .ihv-itin__title{font-size:17px}
  .ihv-itin__body{padding:0 22px 24px 76px;font-size:16px}
  .ihv-hotel__stage{height:240px}
  .ihv-hotel__nav{width:38px;height:38px;font-size:17px}
  .ihv-hotel__nav--prev{left:10px} .ihv-hotel__nav--next{right:10px}
  .ihv-hotel__thumbs{padding:14px 18px 4px;gap:8px}
  .ihv-hotel__thumb{width:78px;height:54px}
  .ihv-hotel__zoom{display:none}
  .ihv-hotel__body{padding:28px 24px 30px}
  .ihv-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px}
  .ihv-lb{padding:12px 10px;gap:10px}
  .ihv-lb__inner{position:relative;gap:0}
  .ihv-lb__img{height:58vh}
  .ihv-lb__prev,.ihv-lb__next{position:absolute;top:29vh;transform:translateY(-50%);z-index:2;
    width:50px;height:50px;font-size:26px;background:rgba(12,28,45,.6)}
  .ihv-lb__prev:hover,.ihv-lb__next:hover{transform:translateY(-50%) scale(1.06)}
  .ihv-lb__prev{left:8px} .ihv-lb__next{right:8px}
  .ihv-lb__close{top:12px;right:12px;width:46px;height:46px;font-size:24px}

  /* dates -> stacked label/value cards */
  .ihv-dates__head{display:none}
  .ihv-dates__row{grid-template-columns:minmax(0,1fr);gap:10px;padding:22px 24px}
  .ihv-dates__label{display:block}
  .ihv-dates__solo{display:flex}
  .ihv-dates__book,.ihv-dates__soldout{justify-self:stretch;text-align:left;margin-top:4px}
  /* Compact inline button on mobile rather than a full-width slab. */
  .ihv-dates__book .ihv-btn{width:auto;padding:11px 22px;font-size:14px}
  .ihv-dates__note{margin-top:6px}

  .ihv-bar{display:flex;padding:12px var(--ihv-gut) calc(12px + env(safe-area-inset-bottom))}
  /* These had no mobile override and kept desktop's roomy padding. */
  .ihv-card__body{padding:26px 24px 28px}
  .ihv-review{padding:24px 24px 22px}
  .ihv-reviews__head{gap:14px;margin-bottom:22px}
  .ihv-hero__inner{padding-left:var(--ihv-gut);padding-right:var(--ihv-gut)}
  .ihv-crumbs{padding:20px 0 14px;font-size:13px}
  .ihv-chips{gap:8px}
  .ihv-gallery{gap:12px}
  .ihv-cards{gap:24px}
  .ihv-modal{padding:26px 22px}
}
@media (prefers-reduced-motion:reduce){
  .ihv *{animation-duration:.01ms;transition-duration:.01ms}
}

