/* ═══════════════════════════════════════════════════════════════════════════
   vE · Packages & Offers (motion in /ve/packages.js).
   Three ways to stay (the offer, then full-height panels for the trail,
   heritage stays and the whole estate, each opening to list its packages) →
   trail packages with "you walk, we carry the rest" → heritage stays → the
   page turns to night → the whole estate → build your own (the shared
   "Your stay" list) → always included → good to know → ask us.
   Every rate is printed exactly as the CMS / template gives it.
═══════════════════════════════════════════════════════════════════════════ */
.ve-pk { --pk-cream: #f3eee4; --pk-paper: #f8f4ec; --pk-night: #08140e; }

/* ── 1. Three ways to stay ─────────────────────────────────────────── */
.pk-hero { position: relative; display: grid; grid-template-columns: minmax(0, 35fr) minmax(0, 65fr); height: 100vh; height: 100svh; min-height: 700px; overflow: hidden; isolation: isolate; background: var(--pk-night); color: var(--ve-cream); }
.pk-hero__side { position: relative; display: flex; flex-direction: column; justify-content: center; padding: calc(var(--ve-header-h) + 3vh) clamp(24px, 3.4vw, 60px) 5vh var(--ve-gutter);
  background: radial-gradient(90% 60% at 20% 30%, rgba(30, 77, 43, .35), transparent 70%), var(--pk-night); }
.pk-hero__side .ve-kicker { color: var(--ve-gold); margin-bottom: 22px; }
.pk-hero__title { margin: 0; font-family: var(--ve-display); font-weight: 400; font-size: clamp(44px, 5.2vw, 88px); line-height: .98; }
.pk-hero__title em { font-family: var(--ve-serif); font-style: italic; color: var(--ve-gold-light); }
.pk-hero__line { display: block; overflow: hidden; padding-bottom: .08em; }
.pk-hero__line > * { display: block; }
.pk-hero__sub { margin: 22px 0 30px; max-width: 27em; font-size: clamp(16.5px, 1.2vw, 19px); line-height: 1.6; color: rgba(245, 241, 233, .78); }
/* The introductory offer */
.pk-deal { display: grid; justify-items: start; gap: 6px; max-width: 360px; padding: 20px 24px 22px; border: 1px solid rgba(223, 192, 128, .45); background: linear-gradient(135deg, rgba(223, 192, 128, .12), rgba(223, 192, 128, .03)); }
.pk-deal .ve-label { font-size: 12px; color: var(--ve-gold); }
.pk-deal__deal { margin: 2px 0 0; font-family: var(--ve-display); font-size: clamp(22px, 1.9vw, 30px); line-height: 1.1; color: var(--ve-gold-light); }
.pk-deal__note { margin: 0 0 10px; font-size: 15px; line-height: 1.5; color: rgba(245, 241, 233, .7); }
.pk-deal .ve-btn--gold { color: var(--ve-forest-deep); }
.pk-hero__facts { list-style: none; display: grid; gap: 8px; margin: 28px 0 0; padding: 0; font-size: 14.5px; color: rgba(245, 241, 233, .66); }
.pk-hero__facts li { display: flex; gap: 10px; align-items: baseline; }
.pk-hero__facts li::before { content: ''; flex: none; width: 10px; height: 1px; margin-top: -.3em; background: var(--ve-gold); align-self: center; }
.pk-hero__facts b { font-family: var(--ve-display); font-weight: 400; color: var(--ve-cream); }

/* The three stays: full-height panels; the open one widens and lists its packages */
.pk-hero__panels { position: relative; display: flex; min-width: 0; }
.pk-panel { position: relative; flex: 1 1 0; min-width: 0; overflow: hidden; isolation: isolate; display: block; color: inherit; text-decoration: none; border-left: 1px solid rgba(223, 192, 128, .25); transition: flex-grow 1.1s var(--ve-ease); outline: none; }
.pk-panel.is-open { flex-grow: 1.9; }
.pk-panel__media { position: absolute; inset: 0; z-index: -2; }
.pk-panel__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); filter: saturate(.78) brightness(.6); transition: transform 1.8s var(--ve-ease), filter 1s ease; }
.pk-panel.is-open .pk-panel__media img { transform: scale(1.01); filter: saturate(.95) brightness(.74); }
.pk-panel::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgba(8, 20, 14, .55) 0%, rgba(8, 20, 14, .05) 30%, rgba(8, 20, 14, .2) 52%, rgba(8, 20, 14, .92) 100%); }
.pk-panel__body { position: absolute; left: 0; right: 0; bottom: 0; display: grid; gap: 10px; padding: 0 clamp(20px, 2.2vw, 40px) clamp(40px, 7vh, 72px); }
.pk-panel__no { display: flex; align-items: center; gap: 12px; font-family: var(--ve-display); font-size: 12px; letter-spacing: .24em; color: var(--ve-gold-light); }
.pk-panel__no::after { content: ''; width: 36px; height: 1px; background: currentColor; opacity: .6; transition: width .9s var(--ve-ease); }
.pk-panel.is-open .pk-panel__no::after { width: 70px; }
.pk-panel__title { font-family: var(--ve-display); font-size: clamp(24px, 2.2vw, 38px); line-height: 1.08; text-shadow: 0 2px 24px rgba(0, 0, 0, .4); }
.pk-panel__title em { font-family: var(--ve-serif); font-style: italic; color: var(--ve-gold-light); }
.pk-panel__count { max-width: 22em; font-style: italic; font-size: 15.5px; line-height: 1.45; color: rgba(245, 241, 233, .78); }
.pk-panel__more { display: grid; max-height: 0; overflow: hidden; opacity: 0; transition: max-height 1s var(--ve-ease), opacity .5s ease; }
.pk-panel.is-open .pk-panel__more { max-height: 420px; opacity: 1; transition-delay: 0s, .25s; }
.pk-panel__list { display: grid; margin-top: 12px; min-width: min(26em, 100%); border-top: 1px solid rgba(223, 192, 128, .32); }
.pk-panel__item { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; padding: 8px 0; border-bottom: 1px solid rgba(245, 241, 233, .14); font-size: 15px; }
.pk-panel__item em { flex: none; font-size: 13.5px; color: rgba(245, 241, 233, .6); }
.pk-panel__go { display: inline-flex; gap: 10px; margin-top: 18px; font-family: var(--ve-display); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--ve-gold-light); }
.pk-panel:focus-visible .pk-panel__title { text-decoration: underline; text-decoration-color: var(--ve-gold); text-underline-offset: 6px; }
html.ve-motion .pk-hero__line > * { transform: translateY(110%); }
html.ve-motion .pk-hero__side .ve-crumbs, html.ve-motion .pk-hero__side .ve-kicker, html.ve-motion .pk-hero__sub, html.ve-motion .pk-deal, html.ve-motion .pk-hero__facts li, html.ve-motion .pk-panel__body { opacity: 0; }

/* ── Where you are ─────────────────────────────────────────────────── */
.pk-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 8800; background: rgba(243, 238, 228, .92); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--ve-line); color: var(--ve-forest-deep);
  transform: translateY(-101%); transition: transform .55s var(--ve-ease), background-color .5s, color .5s, border-color .5s; }
.pk-nav.is-visible { transform: none; }
.pk-nav.is-visible.is-under { transform: translateY(var(--ve-header-h)); }
.pk-nav.is-dark { background: rgba(8, 20, 14, .9); color: var(--ve-cream); border-color: var(--ve-line-light); }
.pk-nav__inner { display: flex; align-items: center; gap: clamp(18px, 2.6vw, 38px); height: 54px; overflow-x: auto; scrollbar-width: none; }
.pk-nav__inner::-webkit-scrollbar { display: none; }
.pk-nav a { position: relative; flex: none; padding: 19px 0; font-family: var(--ve-display); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; color: inherit; opacity: .55; transition: opacity .3s; }
.pk-nav a:hover, .pk-nav a.is-on { opacity: 1; }
.pk-nav a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 12px; height: 1px; background: var(--ve-gold); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ve-ease); }
.pk-nav a.is-on::after { transform: none; }
.pk-nav__cta { all: unset; flex: none; margin-left: auto; padding: 9px 18px; cursor: pointer; background: var(--ve-gold); color: var(--ve-forest-deep); font-family: var(--ve-display); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; }
.pk-nav__cta:focus-visible { outline: 2px solid var(--ve-forest); outline-offset: 2px; }
html:not(.ve-motion) .pk-nav { display: none; }

/* ── Section heads ─────────────────────────────────────────────────── */
.pk-head { max-width: 760px; margin-bottom: clamp(44px, 7vh, 74px); }
.pk-head .ve-kicker { color: var(--ve-gold-deep); }
.pk-head .ve-lede { margin-top: 24px; }
.pk-head--light .ve-kicker { color: var(--ve-gold); }
.pk-head--light .ve-h2 em { color: var(--ve-gold-light); }
.pk-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.pk-head--center .ve-kicker { justify-content: center; }
.pk-head--center .ve-h2 em { display: block; }

/* ── 2. The trail ──────────────────────────────────────────────────── */
.pk-trail, .pk-heritage { background: var(--pk-cream); color: var(--ve-forest-deep); padding: clamp(100px, 15vh, 170px) 0 clamp(50px, 8vh, 90px); }
.pk-heritage { padding-top: clamp(60px, 10vh, 120px); padding-bottom: clamp(90px, 14vh, 150px); }
.pk-journey { margin: 0 0 clamp(64px, 10vh, 110px); }
.pk-journey__map { display: block; width: 100%; height: auto; overflow: visible; }
.pk-journey__road { fill: none; stroke: rgba(30, 77, 43, .4); stroke-width: 2; stroke-dasharray: 10 8; }
.pk-journey__ties { fill: none; stroke: rgba(30, 77, 43, .2); stroke-width: 1.2; stroke-dasharray: 2 5; }
.pk-journey__trail-bg { fill: none; stroke: rgba(199, 168, 94, .45); stroke-width: 3; stroke-linecap: round; stroke-dasharray: .5 8; }
.pk-journey__trail { fill: none; stroke: var(--ve-gold-deep); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 1 1; stroke-dashoffset: 0; }
html.ve-motion .pk-journey__trail { stroke-dashoffset: 1; }
.pk-journey__stages text { text-anchor: middle; font-family: var(--ve-display); font-size: 13px; letter-spacing: .14em; fill: var(--ve-gold-deep); }
.pk-journey__nodes circle { fill: var(--pk-cream); stroke: var(--ve-gold-deep); stroke-width: 2.5; }
.pk-journey__home { fill: var(--ve-forest); stroke: var(--pk-cream); stroke-width: 1.5; stroke-linejoin: round; }
.pk-journey__places text { text-anchor: middle; font-family: var(--ve-serif); font-style: italic; font-size: 18px; fill: var(--ve-muted); }
.pk-journey__places text:first-child { text-anchor: start; }
.pk-journey__places text:last-child { text-anchor: end; }
.pk-journey__places .is-home { font-style: normal; font-family: var(--ve-display); font-size: 15px; letter-spacing: .06em; fill: var(--ve-forest-deep); }
.pk-journey__lane { font-family: var(--ve-display); font-size: 12px; letter-spacing: .26em; text-transform: uppercase; fill: var(--ve-muted); }
.pk-journey__lane--trail { fill: var(--ve-gold-deep); }
.pk-journey__bag rect { fill: var(--ve-forest); }
.pk-journey__bag path { fill: none; stroke: var(--ve-forest); stroke-width: 2.4; }
.pk-journey__walker circle { fill: var(--ve-gold); }
.pk-journey__walker .pk-journey__halo { fill: rgba(199, 168, 94, .25); }
.pk-journey figcaption { margin-top: 22px; font-size: 17px; color: var(--ve-muted); max-width: 44em; }
.pk-journey figcaption b { display: block; margin-bottom: 6px; font-family: var(--ve-display); font-weight: 400; font-size: clamp(20px, 1.9vw, 27px); color: var(--ve-forest-deep); }
.pk-journey figcaption em { font-family: var(--ve-serif); font-style: italic; color: var(--ve-gold-deep); }
.pk-journey__list { display: none; }

/* The featured package */
.pk-feature { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(36px, 5vw, 80px); align-items: center; margin-bottom: clamp(60px, 9vh, 100px); }
.pk-feature__media { position: relative; margin: 0; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 999px 999px 0 0; }
.pk-feature__media::after { content: ''; position: absolute; inset: 14px 14px 0; border: 1px solid rgba(245, 241, 233, .55); border-bottom: 0; border-radius: 999px 999px 0 0; }
.pk-feature__media img { width: 100%; height: 100%; object-fit: cover; }
.pk-feature__media figcaption { position: absolute; left: 0; right: 0; bottom: 0; display: grid; gap: 6px; padding: 80px 30px 28px; color: var(--ve-cream); background: linear-gradient(180deg, transparent, rgba(8, 20, 14, .82)); }
.pk-feature__nights { font-family: var(--ve-display); font-size: clamp(56px, 6vw, 88px); line-height: 1; color: var(--ve-gold-light); }
.pk-feature__label { font-family: var(--ve-display); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; }
.pk-feature__badge { display: inline-block; margin: 0 0 16px; padding: 6px 12px; background: var(--ve-forest-deep); color: var(--ve-gold-light); font-family: var(--ve-display); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; }
.pk-feature__name { margin: 0 0 14px; font-family: var(--ve-display); font-weight: 400; font-size: clamp(30px, 3.2vw, 48px); line-height: 1.08; }
.pk-feature__tag { margin: 0 0 24px; font-size: clamp(17px, 1.3vw, 19.5px); line-height: 1.6; color: var(--ve-muted); }
.pk-feature__list { list-style: none; margin: 0 0 26px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 26px; font-size: 15.5px; line-height: 1.45; }
.pk-feature__list li { display: flex; gap: 10px; }
.pk-feature__list li::before { content: ''; flex: none; width: 12px; height: 1px; margin-top: .72em; background: var(--ve-gold-deep); }
.pk-feature__meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 26px; margin: 0 0 30px; padding: 20px 0; border-top: 1px solid var(--ve-line); border-bottom: 1px solid var(--ve-line); }
.pk-feature__meta dt { font-family: var(--ve-display); font-size: 12px; letter-spacing: .24em; text-transform: uppercase; color: var(--ve-muted); margin-bottom: 4px; }
.pk-feature__meta dd { margin: 0; font-size: 17px; }
.pk-feature__meta div:nth-child(3) dd { font-family: var(--ve-display); font-size: 19px; color: var(--ve-gold-deep); }

/* Package cards: a consignment each, carrying the estate's shipping mark */
.pk-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2vw, 30px); }
.pk-card { display: flex; flex-direction: column; align-items: flex-start; padding: 26px clamp(22px, 2vw, 32px) 30px; background: var(--pk-paper); border: 1px solid rgba(26, 21, 16, .1); box-shadow: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 18px 40px -26px rgba(60, 40, 20, .35); transition: transform .7s var(--ve-ease), box-shadow .7s var(--ve-ease); }
.pk-card:hover { transform: translateY(-6px); box-shadow: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 30px 50px -26px rgba(60, 40, 20, .45); }
.pk-card__top { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; align-self: stretch; margin: 0 0 20px; padding-bottom: 14px; border-bottom: 1px solid var(--ve-line); }
.pk-card__no { font-family: var(--ve-display); font-size: 13px; letter-spacing: .14em; color: var(--ve-gold-deep); }
.pk-card__dur { font-family: var(--ve-display); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--ve-muted); text-align: right; }
.pk-card__name { margin: 0 0 10px; font-family: var(--ve-display); font-weight: 400; font-size: clamp(21px, 1.7vw, 26px); line-height: 1.15; }
.pk-card__badge { margin: 0 0 12px; padding: 4px 10px; border: 1px solid var(--ve-gold); font-family: var(--ve-display); font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--ve-gold-deep); }
.pk-card__tag { margin: 0 0 18px; font-style: italic; font-size: 16.5px; line-height: 1.5; color: var(--ve-muted); }
.pk-card__list { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 8px; font-size: 15px; line-height: 1.45; }
.pk-card__list li { display: flex; gap: 10px; }
.pk-card__list li::before { content: ''; flex: none; width: 10px; height: 1px; margin-top: .72em; background: var(--ve-gold-deep); }
.pk-card__rate { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; align-self: stretch; margin: auto 0 20px; padding-top: 18px; border-top: 1px solid var(--ve-line); }
.pk-card__rate span { font-family: var(--ve-display); font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--ve-muted); }
.pk-card__rate b { font-family: var(--ve-display); font-weight: 400; font-size: 19px; color: var(--ve-gold-deep); }
.pk-card__rate em { font-size: 15px; color: var(--ve-muted); }
.pk-card--gold { border-top: 3px solid var(--ve-gold); }
.pk-card--ink { background: var(--ve-forest-deep); color: var(--ve-cream); border-color: transparent; }
.pk-card--ink .pk-card__top { border-color: var(--ve-line-light); }
.pk-card--ink .pk-card__no { color: var(--ve-gold-light); }
.pk-card--ink .pk-card__dur, .pk-card--ink .pk-card__tag, .pk-card--ink .pk-card__rate span, .pk-card--ink .pk-card__rate em { color: rgba(245, 241, 233, .66); }
.pk-card--ink .pk-card__rate { border-color: var(--ve-line-light); }
.pk-card--ink .pk-card__rate b { color: var(--ve-gold-light); }
.pk-card--ink .pk-card__list li::before { background: var(--ve-gold-light); }
.pk-card--ink .ve-btn { color: var(--ve-cream); border-color: rgba(223, 192, 128, .5); }

/* ── The page turns to night ───────────────────────────────────────── */
.pk-dusk { display: grid; place-items: center; height: 56vh; min-height: 360px; background: linear-gradient(180deg, var(--pk-cream) 0%, #c9b595 30%, #56604a 66%, var(--pk-night) 100%); }
.pk-dusk p { margin: 0; padding-top: 18vh; font-family: var(--ve-serif); font-style: italic; font-size: clamp(26px, 3.4vw, 48px); color: rgba(245, 241, 233, .94); text-align: center; }
.pk-dusk em { color: var(--ve-gold-light); }
.pk-night { position: relative; background: var(--pk-night); color: var(--ve-cream); }

/* ── 4. The whole estate ───────────────────────────────────────────── */
.pk-estate { position: relative; overflow: hidden; isolation: isolate; padding: clamp(50px, 8vh, 90px) 0 clamp(90px, 14vh, 150px); }
.pk-estate__bg { position: absolute; inset: 0; z-index: -1; }
.pk-estate__bg img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.6) brightness(.42) contrast(1.08); }
.pk-estate__bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, var(--pk-night) 0%, rgba(8, 20, 14, .45) 28%, rgba(8, 20, 14, .55) 70%, var(--pk-night) 100%); }
.pk-offers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 2.4vw, 36px); }
.pk-offer { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(28px, 3vw, 44px); background: rgba(8, 20, 14, .62); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border: 1px solid rgba(223, 192, 128, .3); }
.pk-offer .pk-card__top { border-color: rgba(223, 192, 128, .3); }
.pk-offer .pk-card__no { color: var(--ve-gold-light); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; }
.pk-offer .pk-card__dur { color: rgba(245, 241, 233, .6); }
.pk-offer--week { border-color: rgba(223, 192, 128, .6); }
.pk-offer__name { margin: 0 0 12px; font-family: var(--ve-display); font-weight: 400; font-size: clamp(24px, 2.2vw, 34px); line-height: 1.15; }
.pk-offer__tag { margin: 0 0 22px; font-size: 17px; line-height: 1.6; color: rgba(245, 241, 233, .78); }
.pk-offer__list { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 9px; font-size: 15.5px; color: rgba(245, 241, 233, .86); }
.pk-offer__list li { display: flex; gap: 10px; }
.pk-offer__list li::before { content: ''; flex: none; width: 12px; height: 1px; margin-top: .72em; background: var(--ve-gold); }
.pk-offer__rate { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; align-self: stretch; margin: auto 0 24px; padding-top: 18px; border-top: 1px solid var(--ve-line-light); }
.pk-offer__rate span { font-family: var(--ve-display); font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: rgba(245, 241, 233, .6); }
.pk-offer__rate b { font-family: var(--ve-display); font-weight: 400; font-size: 22px; color: var(--ve-gold-light); }
.pk-offer__rate em { font-size: 15px; color: rgba(245, 241, 233, .6); }
.pk-offer .ve-btn--gold { color: var(--ve-forest-deep); }

/* ── 5. Build your own ─────────────────────────────────────────────── */
.pk-build { padding: clamp(90px, 14vh, 150px) 0 clamp(60px, 10vh, 110px); }
.pk-build__grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: clamp(36px, 5vw, 90px); align-items: start; }
.pk-addons { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ve-line-light); }
.pk-addon { display: grid; grid-template-columns: minmax(0, 1fr) 104px 150px auto; gap: 8px 22px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--ve-line-light); }
.pk-addon h3 { margin: 0 0 4px; font-family: var(--ve-display); font-weight: 400; font-size: 16.5px; }
.pk-addon__what p { margin: 0; font-size: 15px; line-height: 1.5; color: rgba(245, 241, 233, .64); }
.pk-addon__when, .pk-addon__price { margin: 0; font-size: 14.5px; font-style: italic; color: rgba(245, 241, 233, .7); }
.pk-addon__price { color: var(--ve-gold-light); font-style: normal; font-family: var(--ve-display); font-size: 12.5px; letter-spacing: .04em; }
.pk-add { all: unset; box-sizing: border-box; display: inline-flex; align-items: center; gap: 10px; padding: 9px 15px; cursor: pointer; border: 1px solid rgba(223, 192, 128, .45); border-radius: 999px; font-family: var(--ve-display); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--ve-cream); transition: background-color .35s, color .35s, border-color .35s; }
.pk-add:hover { border-color: var(--ve-gold-light); background: rgba(223, 192, 128, .12); }
.pk-add:focus-visible { outline: 2px solid var(--ve-gold); outline-offset: 3px; }
.pk-add[aria-pressed="true"] { background: var(--ve-gold-light); border-color: var(--ve-gold-light); color: var(--pk-night); }
.pk-add__icon { position: relative; width: 11px; height: 11px; flex: none; }
.pk-add__icon::before, .pk-add__icon::after { content: ''; position: absolute; left: 0; top: 4.75px; width: 11px; height: 1.5px; background: currentColor; transition: transform .45s var(--ve-ease), width .45s var(--ve-ease), left .45s var(--ve-ease), top .45s var(--ve-ease); }
.pk-add__icon::after { transform: rotate(90deg); }
.pk-add[aria-pressed="true"] .pk-add__icon::before { top: 6.5px; width: 4.5px; transform: rotate(45deg); }
.pk-add[aria-pressed="true"] .pk-add__icon::after { left: 2.3px; top: 4.6px; width: 9px; transform: rotate(-50deg); }
.pk-stay { position: sticky; top: calc(var(--ve-header-h) + 80px); padding: clamp(26px, 2.6vw, 40px); background: rgba(255, 255, 255, .03); border: 1px solid rgba(223, 192, 128, .3); }
.pk-stay > .ve-label { color: var(--ve-gold-light); font-size: 12px; }
.pk-stay__title { margin: 12px 0 18px; font-family: var(--ve-display); font-size: clamp(22px, 2vw, 30px); line-height: 1.15; }
.pk-stay__count { color: var(--ve-gold-light); }
.pk-stay__list { list-style: none; margin: 0 0 18px; padding: 0; }
.pk-stay__list li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--ve-line-light); font-size: 16.5px; }
.pk-stay__list li:first-child { border-top: 1px solid var(--ve-line-light); }
.pk-stay [data-remove] { all: unset; cursor: pointer; flex: none; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: rgba(245, 241, 233, .6); font-size: 18px; line-height: 1; transition: color .3s, background-color .3s; }
.pk-stay [data-remove]:hover { color: var(--ve-cream); background: rgba(223, 192, 128, .15); }
.pk-stay [data-remove]:focus-visible { outline: 2px solid var(--ve-gold); }
.pk-stay__empty { margin: 0 0 24px; font-style: italic; font-size: 15.5px; line-height: 1.55; color: rgba(245, 241, 233, .6); }
.pk-stay.has-items .pk-stay__empty { display: none; }
.pk-stay__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; }
.pk-stay__cta .ve-link { color: var(--ve-gold-light); }

/* ── 6. Always included ────────────────────────────────────────────── */
.pk-always { padding: clamp(70px, 11vh, 120px) 0; }
.pk-always__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 30px; text-align: center; }
.pk-always__grid li { display: grid; justify-items: center; gap: 10px; }
.pk-always__grid .ve-ico { width: 38px; height: 38px; color: var(--ve-gold-light); margin-bottom: 6px; }
.pk-always__grid h3 { margin: 0; font-family: var(--ve-display); font-weight: 400; font-size: 16.5px; }
.pk-always__grid p { margin: 0; max-width: 18em; font-size: 15px; line-height: 1.5; color: rgba(245, 241, 233, .64); }

/* ── 7. Good to know ───────────────────────────────────────────────── */
.pk-terms { padding: clamp(60px, 10vh, 110px) 0; }
.pk-terms__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(36px, 6vw, 110px); align-items: start; }
.pk-faq { border-color: var(--ve-line-light); }
.pk-faq details { border-color: var(--ve-line-light); }
.pk-faq summary:hover { color: var(--ve-gold-light); }
.pk-faq details > div { color: rgba(245, 241, 233, .72); }
.pk-faq ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pk-faq li { display: flex; gap: 12px; }
.pk-faq li::before { content: ''; flex: none; width: 12px; height: 1px; margin-top: .8em; background: var(--ve-gold); }

/* ── 8. Ask us ─────────────────────────────────────────────────────── */
.pk-close { position: relative; overflow: hidden; isolation: isolate; padding: clamp(40px, 6vh, 80px) 0 clamp(110px, 16vh, 180px); text-align: center; }
.pk-close::before { content: ''; position: absolute; left: 50%; top: 50%; z-index: -1; width: 80vw; height: 60vw; transform: translate(-50%, -50%); background: radial-gradient(closest-side, rgba(199, 168, 94, .12), transparent); pointer-events: none; }
.pk-close__inner { display: grid; justify-items: center; }
.pk-close .ve-kicker { justify-content: center; color: var(--ve-gold); }
.pk-close__title { margin: 0 0 26px; max-width: 14em; font-family: var(--ve-display); font-weight: 400; font-size: clamp(38px, 5.2vw, 84px); line-height: 1.04; }
.pk-close__title em { font-family: var(--ve-serif); font-style: italic; color: var(--ve-gold-light); }
.pk-close .ve-lede { margin: 0 auto; }
.pk-close__chips { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 34px 0 40px; padding: 0; }
.pk-close__chips li { padding: 8px 14px; border: 1px solid rgba(223, 192, 128, .38); font-family: var(--ve-display); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--ve-gold-light); }
.pk-close__cta { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 16px 30px; }
.pk-close__cta .ve-link { color: var(--ve-gold-light); }

/* ── Your stay, one tap away ───────────────────────────────────────── */
.pk-sticky { all: unset; box-sizing: border-box; position: fixed; left: 50%; bottom: 20px; z-index: 60; display: inline-flex; align-items: center; gap: 12px; padding: 13px 22px; cursor: pointer; border-radius: 999px;
  background: rgba(8, 20, 14, .9); color: var(--ve-cream); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border: 1px solid rgba(223, 192, 128, .45); box-shadow: 0 14px 40px rgba(0, 0, 0, .3);
  font-family: var(--ve-display); font-size: 12px; letter-spacing: .18em; text-transform: uppercase; white-space: nowrap;
  opacity: 0; pointer-events: none; transform: translate(-50%, 24px); transition: opacity .5s ease, transform .6s var(--ve-ease), background-color .3s; }
.pk-sticky em { font-family: var(--ve-serif); font-style: italic; font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--ve-gold-light); }
.pk-sticky.is-visible { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.pk-sticky:hover { background: var(--ve-forest-deep); }
.pk-sticky:focus-visible { outline: 2px solid var(--ve-gold); outline-offset: 3px; }
.pk-sticky__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ve-gold); box-shadow: 0 0 0 0 rgba(199, 168, 94, .6); animation: pkDot 2.2s ease-out infinite; }
.pk-sticky.is-bumped .pk-sticky__dot { animation: pkBump .6s var(--ve-ease); }
@keyframes pkDot { to { box-shadow: 0 0 0 10px rgba(199, 168, 94, 0); } }
@keyframes pkBump { 50% { transform: scale(2.2); } }

/* ── Smaller screens ───────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .pk-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pk-always__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pk-addon { grid-template-columns: minmax(0, 1fr) auto; }
  .pk-addon__when, .pk-addon__price { grid-column: 1; display: inline; }
  .pk-addon .pk-add { grid-column: 2; grid-row: 1 / span 3; }
}
@media (max-width: 900px) {
  /* The hero stacks: the offer first, then the three stays as tall bands */
  .pk-hero { display: block; height: auto; min-height: 0; }
  .pk-hero__side { padding-top: calc(var(--ve-header-h) + 5vh); padding-bottom: 44px; padding-right: var(--ve-gutter); }
  .pk-hero__panels { flex-direction: column; }
  .pk-panel { flex: none; height: 38vh; min-height: 260px; border-left: 0; border-top: 1px solid rgba(223, 192, 128, .25); }
  .pk-panel.is-open { flex-grow: 0; }
  .pk-panel__more { display: none; }
  .pk-panel__body { padding-bottom: 28px; }
  .pk-panel__count::after { content: ' \2192'; color: var(--ve-gold-light); font-style: normal; }
  .pk-feature, .pk-offers, .pk-build__grid, .pk-terms__grid { grid-template-columns: 1fr; }
  .pk-feature__media { max-width: 420px; }
  .pk-stay { position: relative; top: auto; }
  /* The route as a list: the drawing needs the width */
  .pk-journey__map { display: none; }
  .pk-journey__list { display: grid; list-style: none; margin: 0; padding: 0 0 0 26px; gap: 18px; position: relative; }
  .pk-journey__list::before { content: ''; position: absolute; left: 6px; top: 8px; bottom: 8px; border-left: 2px dotted var(--ve-gold-deep); }
  .pk-journey__list li { position: relative; }
  .pk-journey__list li::before { content: ''; position: absolute; left: -26px; top: 6px; width: 12px; height: 12px; border-radius: 50%; background: var(--pk-cream); border: 2px solid var(--ve-gold-deep); }
  .pk-journey__list b { display: block; font-family: var(--ve-display); font-weight: 400; font-size: 17px; }
  .pk-journey__list span { font-size: 15px; font-style: italic; color: var(--ve-muted); }
}
@media (max-width: 640px) {
  .pk-grid, .pk-always__grid { grid-template-columns: 1fr; }
  .pk-feature__list, .pk-feature__meta { grid-template-columns: 1fr; }
  .pk-sticky { font-size: 12px; padding: 12px 18px; }
  .pk-close__title em { display: block; }
  .pk-always__grid li { justify-items: start; text-align: left; grid-template-columns: 44px minmax(0, 1fr); column-gap: 14px; }
  .pk-always__grid .ve-ico { grid-row: 1 / span 2; margin: 0; width: 32px; height: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  .pk-sticky__dot { animation: none; }
  .pk-panel, .pk-panel__media img, .pk-panel__more, .pk-card { transition: none; }
}
