
/* tokens live in assets/tokens.css */
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--bronze);outline-offset:2px}

/* prototype chrome */
.protobar{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--ink);
  color:#F6F3EE;padding-inline:var(--gut);padding-block:9px;display:flex;flex-wrap:wrap;
  gap:6px 18px;align-items:baseline;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase}
.protobar b{font-weight:500;color:#fff}
.protobar span{color:#A9A296;text-transform:none;letter-spacing:.02em;font-size:13.5px}
.protobar a{color:#E8E2D8;text-transform:none;letter-spacing:.02em;font-size:13.5px;text-underline-offset:3px}

/* site header */
.site{border-bottom:1px solid var(--line-soft);background:var(--paper)}
.site-in{padding-inline:var(--gut);max-width:1220px;margin-inline:auto;padding-block:16px;
  display:flex;flex-wrap:wrap;gap:10px 26px;align-items:baseline;justify-content:space-between}
.mark{font-family:var(--label);font-size:17px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;text-decoration:none}
.mark img{height:22px;width:auto;display:block}
.site nav{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:14px;letter-spacing:.06em}
.site nav a{text-decoration:none;color:var(--muted);text-underline-offset:4px}
.site nav a:hover,.site nav a[aria-current]{color:var(--ink);text-decoration:underline}

.wrap{padding-inline:var(--gut);max-width:1220px;margin-inline:auto}
.narrow{max-width:860px}
.crumb{padding-block:16px 0;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.crumb a{text-decoration:none;text-underline-offset:3px}
.crumb a:hover{text-decoration:underline}
.crumb span{margin-inline:7px;color:#B9B1A4}

.eyebrow{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}
h1,h2,h3{font-family:var(--display);font-weight:400;text-wrap:balance;margin:0}
h1{font-size:clamp(38px,6vw,68px);line-height:1.05;letter-spacing:-.01em}
h2{font-size:clamp(28px,4vw,42px);line-height:1.12}
h3{font-size:22px;line-height:1.2}
.kicker{display:block;font-family:var(--body);font-size:12px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.lede{max-width:60ch;color:var(--body-ink);font-size:18px}
p{margin:0 0 14px}
section{padding-block:clamp(44px,6vw,80px)}
@media(max-width:759px){section{padding-block:76px}}   /* phones: more air between sections (Valentina, 30 Sep) */
.band{background:var(--stone)}

.btn{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;font-size:15px;
  letter-spacing:.04em;padding:13px 26px;border-radius:3px;border:1px solid var(--ink);
  transition:background .18s ease,color .18s ease}
.btn:hover{background:transparent;color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}

/* hero */
.hero{padding:0}
.hero-img{width:100%;height:clamp(240px,38vw,500px);object-fit:cover;object-position:center 55%;filter:saturate(.92)}
.hero-copy{padding-block:clamp(30px,4vw,48px) 0}
.hero-copy h1{margin-bottom:16px}
.hero-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 28px;margin-top:24px;padding-top:20px;
  border-top:1px solid var(--line-soft);font-size:14px;color:var(--muted);letter-spacing:.04em}
.hero-meta b{font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
/* the facts line under a page title: readable size, numbers in the display face */
.hero-copy .hero-meta{font-size:16.5px;gap:12px 36px;letter-spacing:.02em}
.hero-copy .hero-meta b{font-family:var(--display);font-size:24px;font-weight:400;margin-right:2px}

/* tier badge */
.tier{display:inline-flex;align-items:baseline;gap:9px;font-size:11.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--bronze);border:1px solid var(--line);border-radius:999px;
  padding:6px 14px;margin-bottom:16px}
.tier.dest{color:var(--muted)}
.door .tier{margin-bottom:26px}   /* pill sits clear of the door's title */

/* columns */
.cols{display:grid;gap:clamp(26px,3.4vw,52px);grid-template-columns:1fr}
@media(min-width:860px){.cols{grid-template-columns:1.15fr .85fr;align-items:start}}

/* included list */
.incl-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.incl-list li{padding-block:15px;border-bottom:1px solid var(--line-soft);
  display:grid;gap:3px 22px;grid-template-columns:1fr}
@media(min-width:640px){.incl-list li{grid-template-columns:200px 1fr}}
.incl-list b{font-weight:500;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.incl-list span{font-size:16px;color:var(--body-ink)}

/* price panel */
.panel{border:1px solid var(--line);padding:26px 24px;background:var(--stone);position:sticky;top:96px}
.panel .from{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.panel .amt{font-family:var(--display);font-size:46px;line-height:1.05;font-variant-numeric:tabular-nums;margin-top:4px}
.panel .tbc{font-family:var(--display);font-size:30px;line-height:1.1;margin-top:4px;color:var(--muted)}
.panel .note{font-size:14.5px;color:var(--body-ink);margin:12px 0 0;line-height:1.5}
.panel .acts{display:flex;flex-direction:column;gap:9px;margin-top:20px}
.panel .acts .btn{text-align:center}
.venue-line{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.venue-line .from{display:block;margin-bottom:5px}
.venue-line p{margin:0;font-size:15.5px;line-height:1.45;color:var(--body-ink)}

.chips{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.pcard .chips{margin:10px 0 14px}   /* keeps the pills off the price hairline on the tallest card */
.chips li{font-size:13.5px;color:#4A443C;border:1px solid var(--line-soft);border-radius:999px;padding:4px 11px}
/* on a package card the pills must stay on one row, however many there are */
.pcard .chips{flex-wrap:nowrap;overflow:hidden;gap:5px}
.pcard .chips li{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;padding:4px 9px}

/* photo strip */
.strip{display:grid;gap:10px;grid-template-columns:1fr}
@media(min-width:700px){.strip{grid-template-columns:repeat(3,1fr)}}
.strip img{width:100%;height:100%;aspect-ratio:3/4;object-fit:cover;background:var(--stone)}
.strip figure{margin:0}

/* cards */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:clamp(20px,2.6vw,32px)}
@media(min-width:1000px){.pgrid.n4{grid-template-columns:repeat(4,1fr)}}
.pgrid-more{grid-column:1/-1;margin:clamp(6px,1.4vw,18px) 0 0;text-align:center}
@media(max-width:700px){
  /* destination pages, phones: two experiences across, as on the packages page — photo, title, place, venue, price on one line (3 Oct) */
  .pgrid.hx.n4{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px 12px}
  .pgrid.hx.n4 .pcard h3{font-size:16px;line-height:1.25;min-height:0;margin-top:9px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .pgrid.hx.n4 .pcard .where{font-size:10.5px;letter-spacing:.08em;margin-top:5px}
  .pgrid.hx.n4 .pcard .venue{font-size:13px;margin-top:5px;line-height:1.35}
  .pgrid.hx.n4 .pcard .chips,.pgrid.hx.n4 .pcard .go{display:none}
  .pgrid.hx.n4 .pcard .price{margin-top:auto;padding-top:8px;border:0;display:flex;align-items:baseline;justify-content:space-between;gap:6px}
  .pgrid.hx.n4 .pcard .price .from{font-size:10px;letter-spacing:.12em}
  .pgrid.hx.n4 .pcard .price .amt{font-size:16px}
}
.pcard{display:flex;flex-direction:column;text-decoration:none}
.pcard .shot{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--stone)}
.pcard .shot img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.pcard:hover .shot img{transform:scale(1.035)}
.pcard h3{margin-top:12px;font-size:19px;line-height:1.25;min-height:2.5em}   /* room for two lines, so the venue below starts on the same line on every card */
.pcard .where{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}   /* one line always */
.pcard .venue{display:block;margin:9px 0 0;font-size:15px;line-height:1.45;color:var(--body-ink)}   /* block: the generic .venue grid rule must not squeeze it */
.price{margin-top:auto;padding-top:11px;display:flex;align-items:baseline;justify-content:space-between;
  gap:12px;border-top:1px solid var(--line-soft)}
.price .from{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.price .amt{font-family:var(--display);font-size:25px;font-variant-numeric:tabular-nums}
.pcard .go{margin-top:11px;font-size:14.5px;letter-spacing:.04em;text-decoration:underline;
  text-underline-offset:4px;color:var(--body-ink)}
.pcard:hover .go{color:var(--ink)}

/* experience pages: "Other experiences" — a sideways carousel with arrows at the sides and a
   country filter above it. Three cards a screen on desktop, two on tablets, one and a peek on phones. */
.mx-tabs{margin-top:clamp(18px,2.2vw,26px)}
.hx .pcard .venue{font-size:14px;line-height:1.4;color:var(--muted);margin-top:6px}
.hx .pcard .where{margin-bottom:0}
.hx .pcard h3{min-height:0}
.mx.hx .pcard .price,.pgrid.hx .pcard .price,.hx .hx-row .pcard .price{display:flex;margin-top:14px;padding-top:11px;border-top:1px solid var(--line-soft)}   /* same price row as the packages page */
.mx.hx .pcard .price .from,.pgrid.hx .pcard .price .from,.hx .hx-row .pcard .price .from{display:inline;font-size:12px;letter-spacing:.16em}
.mx.hx .pcard .price .amt,.pgrid.hx .pcard .price .amt,.hx .hx-row .pcard .price .amt{display:inline;font-size:25px;margin-top:0}
/* the pills stay on the already designed experiences (carousel and ready-made grids), not on the home row or the catalogue */
.mx.hx .pcard .chips,.pgrid.hx .pcard .chips,.hx .hx-row .pcard .chips{display:flex;margin:10px 0 0}   /* tight under the venue; the price no longer sinks to the foot of the tallest card */
/* home row cards are narrower: the pills wrap instead of being cut, prices line up at the foot, a smaller amount */
.hx .hx-row .pcard .chips{flex-wrap:wrap;overflow:visible}
.hx .hx-row .pcard .chips li{overflow:visible;white-space:nowrap;text-overflow:clip}
.hx .hx-row .pcard .price{margin-top:auto;position:relative}
.hx .hx-row .pcard .chips{margin-bottom:14px}
.hx .hx-row .pcard .price .amt{font-size:21px}
.mx-stage{position:relative;margin-top:clamp(24px,3vw,36px)}
.mx-track{--mxgap:clamp(20px,2.6vw,32px);display:flex;gap:var(--mxgap);overflow-x:auto;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none}
.mx-track::-webkit-scrollbar{display:none}
.mx-track > .pcard{flex:0 0 calc((100% - 2 * var(--mxgap)) / 3);min-width:0;scroll-snap-align:start}
.mx-track > .pcard[hidden]{display:none}
@media(max-width:959px){.mx-track > .pcard{flex-basis:calc((100% - var(--mxgap)) / 2)}}
@media(max-width:600px){.mx-track > .pcard{flex-basis:82%}}
.mx-arrow{position:absolute;top:var(--mxtop,38%);transform:translateY(-50%);z-index:2;
  width:48px;height:48px;border-radius:50%;border:1px solid var(--ink);background:var(--paper);color:var(--ink);
  display:grid;place-items:center;cursor:pointer;transition:background .18s ease,color .18s ease,opacity .18s ease}
.mx-arrow svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4}
.mx-arrow:hover:not(:disabled){background:var(--ink);color:#fff}
.mx-arrow:disabled{opacity:0;pointer-events:none}
.mx-arrow.prev{left:-24px}.mx-arrow.next{right:-24px}
@media(min-width:1400px){.mx-arrow.prev{left:-72px}.mx-arrow.next{right:-72px}}
.mx-fits .mx-arrow{display:none}
@media(max-width:600px){.mx-arrow{display:none}}   /* phones swipe */
.mx-all{margin-top:clamp(34px,4vw,50px);text-align:center}

/* home page only: two rows of designed experiences sliding past on their own, on every screen
   size (phones too — Valentina, 28 Sep); the filterable grid lives on catalogue.html. The old
   phone-only grid (.pgrid-wrap) stays in the HTML, hidden, so it can come back with one line. */
.pgrid-wrap{display:none}
.hcountry .chip{text-decoration:none;display:inline-block}
.hcountry{margin-top:clamp(20px,2.6vw,30px)}
.ctrack-mask{overflow:hidden;margin-top:clamp(26px,3vw,40px);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.ctrack-mask + .ctrack-mask{margin-top:clamp(24px,3vw,38px)}
.ctrack{display:flex;gap:clamp(24px,3vw,38px);width:max-content;animation:cscroll 50s linear infinite}
.ctrack.rev{animation-direction:reverse;animation-duration:62s}
.ctrack-mask:hover .ctrack{animation-play-state:paused}
.ctrack .pcard{flex:0 0 270px;width:270px;min-width:0;max-width:270px}   /* every card exactly the same width, so every photo is the same size */
/* no hover on a phone: a finger held on a row stops it, so a card can be read and tapped */
.ctrack-mask:active .ctrack{animation-play-state:paused}
@media(max-width:700px){.ctrack .pcard{flex-basis:250px;width:250px;max-width:250px}.ctrack{gap:20px}}
/* when motion is switched off the rows stand still, so let them be scrolled by hand instead */
@media (prefers-reduced-motion: reduce){.ctrack-mask{overflow-x:auto}}
/* arrows on the sliding rows: same round button as the "Other experiences" carousel, sitting on the photos */
.ctrack-stage{position:relative}
.hc-arrow{position:absolute;top:var(--hctop,150px);transform:translateY(-50%);z-index:2;width:48px;height:48px;border-radius:50%;
  border:1px solid var(--ink);background:var(--paper);color:var(--ink);display:grid;place-items:center;cursor:pointer;
  transition:background .18s ease,color .18s ease}
.hc-arrow svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4}
.hc-arrow:hover{background:var(--ink);color:#fff}
.hc-arrow.prev{left:clamp(6px,2vw,28px)}.hc-arrow.next{right:clamp(6px,2vw,28px)}
@media(max-width:700px){.hc-arrow{width:40px;height:40px;--hctop:125px}}
@keyframes cscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:clamp(20px,2.6vw,32px)}
.dcard{text-decoration:none;display:flex;flex-direction:column}
.dcard .shot{aspect-ratio:3/2;overflow:hidden;background:var(--stone)}
.dcard .shot img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.dcard:hover .shot img{transform:scale(1.04)}
.dhead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:12px}
.dcard h3{font-size:20px}
.flag{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--bronze);white-space:nowrap}
.dcard p{margin:6px 0 0;font-size:15px;line-height:1.5;color:#4A443C}
.dcard .dprice{margin-top:9px;padding-top:9px;border-top:1px solid var(--line-soft);
  font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.dcard .dprice b{color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:0;font-size:15px}
.dcard .go{margin-top:9px;font-size:14px;letter-spacing:.04em;text-decoration:underline;
  text-underline-offset:4px;color:var(--muted)}
.dcard:hover .go{color:var(--ink)}

/* faq + details */
.faq details{border-bottom:1px solid var(--line);padding:18px 0}
.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{cursor:pointer;font-family:var(--display);font-size:21px;list-style:none;
  display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--muted);font-family:var(--body);font-size:20px}
.faq details[open] summary::after{content:"\2013"}
.faq p{margin:12px 0 0;color:#4A443C;max-width:64ch}

.includes{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:16px}
.includes.open{padding-block:22px}
.inc-title{margin:0;font-size:15px;letter-spacing:.04em;color:var(--body-ink)}
.includes summary{cursor:pointer;list-style:none;font-size:15px;letter-spacing:.04em;color:var(--body-ink);
  display:flex;justify-content:space-between;gap:16px;align-items:baseline}
.includes summary::-webkit-details-marker{display:none}
.includes summary::after{content:"+";color:var(--muted);font-size:19px}
.includes[open] summary::after{content:"\2013"}
.inc-cols{display:grid;gap:22px;grid-template-columns:1fr;margin-top:20px}
@media(min-width:640px){.inc-cols{grid-template-columns:1fr 1fr;gap:44px}}
.inc-h{margin:0 0 9px;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.inc-cols ul{margin:0;padding-left:17px;font-size:15.5px;color:#4A443C;line-height:1.5}
.inc-cols li{margin-bottom:4px}
.inc-note{margin:10px 0 0;font-size:13.5px;color:var(--muted);font-style:italic}

/* two doors */
.doors{display:grid;gap:0;grid-template-columns:1fr;border-top:1px solid var(--line)}
@media(min-width:760px){.doors{grid-template-columns:1fr 1fr}}
.door{padding:24px 0 26px;border-bottom:1px solid var(--line);display:flex;flex-direction:column}
@media(min-width:760px){
  .door{padding:26px 34px 28px}
  .door:first-child{padding-left:0;border-right:1px solid var(--line)}
  .door:last-child{padding-right:0}
}
.door h3{font-size:25px}
.door p{margin:9px 0 0;font-size:16px;line-height:1.5;color:#4A443C;max-width:44ch}
.door .dfrom{margin-top:16px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.door .dfrom b{font-family:var(--display);font-size:26px;letter-spacing:0;color:var(--ink);
  font-weight:400;font-variant-numeric:tabular-nums;margin-left:8px}
.door .acts{margin-top:18px}

/* one door — the destination page sells only the custom-made package, so the panel
   runs the full width: copy on the left, price and call to action on the right. */
.doors.one{grid-template-columns:1fr}
@media(min-width:760px){.doors.one{grid-template-columns:1fr}}
.doors.one .door{padding-left:0;padding-right:0;border-right:none}
.doors.one .door-copy{min-width:0}
@media(min-width:760px){
  .doors.one .door{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:56px}
  .doors.one .door-copy p{max-width:50ch}
  .doors.one .door-buy{flex:0 0 auto;text-align:right}
  .doors.one .door-buy .dfrom{margin-top:0}
}

/* planner */
.planner{display:grid;gap:clamp(22px,3vw,40px);grid-template-columns:1fr;align-items:start}
@media(min-width:720px){.planner{grid-template-columns:260px 1fr}}
.portrait{aspect-ratio:4/5;overflow:hidden;background:var(--stone);max-width:100%}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.role{margin:0 0 4px;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--bronze)}
.quote{margin:14px 0 0;padding-left:15px;border-left:1px solid var(--line);font-style:italic;
  font-size:17px;line-height:1.5;color:var(--body-ink);max-width:42ch}

.cta{text-align:center}
.cta h2{margin-bottom:14px}
.cta p{margin:0 auto 26px;max-width:46ch;color:#4A453E}
.cta-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

.note-box{border-left:2px solid var(--bronze);padding:2px 0 2px 18px;margin-top:24px;
  font-size:15.5px;line-height:1.55;color:var(--body-ink);max-width:62ch}
.note-box b{color:var(--ink);font-weight:500}

footer.foot{border-top:1px solid var(--line);background:#FAF8F5}
.foot-in{padding-inline:var(--gut);max-width:1220px;margin-inline:auto;padding-block:32px 40px;
  display:flex;flex-wrap:wrap;gap:14px 40px;justify-content:space-between;font-size:14px;color:var(--muted)}
.foot-in a{text-decoration:none;text-underline-offset:3px}
.foot-in a:hover{text-decoration:underline;color:var(--ink)}
.foot-nav{display:flex;flex-wrap:wrap;gap:8px 22px}


/* ================= one level up: home, destinations, about, blog, quote ================= */

/* ---- labels: every uppercase line uses --label (EB Garamond capitals), spaced, in soft grey ---- */
.eyebrow,.kicker,.flabel,.tier,.role,.meta,.where,.flag,.from,.dprice,.inc-h,.crumb,.fmeta,.stage-meta,
.fcol h2,.sc-base .vals,.gfacts dt,.vfacts dt,.qtotal .label,.sheet caption,.sheet .inc,
.price .from,.panel .from,.qprice .from,.why-price span,.stat span,.crow .facts,.enq-part span,.lb-count,
.pcard .go,.value .num,.door .dfrom,.incl-list b,.gmeta,.swipe,.exflag{
  font-family:var(--label);font-weight:400}
.eyebrow,.kicker{font-size:12px;letter-spacing:.22em}
.pcard .go{font-size:12.5px;letter-spacing:.16em}
/* Made Mirage has no italic here; italic moments use EB Garamond's real italic instead */
.stage h1 .l2,.values-line em,.crow .hi,.letter .sign{font-family:var(--body);font-style:italic}

/* ---- a pinch of red (Valentina, 24 Sep): one word only — "Europe" in the home hero, as on the
   live site. No red buttons, no red anywhere else. ---- */
.stage h1 .accent{color:var(--red)}
/* two lines: "Elopement packages" / "across Europe" (Valentina, 24 Sep) — upright, only "Europe" red */
.stage .stage-copy h1{font-size:clamp(50px,8.8vw,136px);line-height:.95}
.stage h1 span.l1,.stage h1 span.l2{display:block}
.stage h1 span.accent{display:inline;animation:none}
.stage h1 span.l2{white-space:nowrap}
.stage-copy h1 span.l2,.stage-copy h1 span.l2 .accent{font-family:var(--body);font-style:italic;font-weight:400}

/* the red budget, as classes, so a page can only spend it one of these two ways */
.band-red{background:var(--red);color:#fff}
.band-red h2{color:#fff;font-size:clamp(44px,7vw,84px);line-height:1;letter-spacing:-.015em}
.band-red .big{font-size:clamp(22px,2.4vw,26px);line-height:1.4;max-width:34ch;margin:22px auto 30px;color:#fff}
/* on black the line no longer has to be large to stay legible, so it steps back behind the headline */
.band-ink .big{font-size:21px;line-height:1.55;max-width:42ch;margin:20px auto 34px;color:rgba(255,255,255,.78)}
.band-red .btn{background:#fff;border-color:#fff;color:var(--ink)}
.band-red .btn:hover{background:transparent;color:#fff}
.band-red .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}
.band-red .btn.ghost:hover{background:#fff;color:var(--ink)}
/* same band in black — what the live home page closes on, and what Valentina chose over red */
.band-ink{background:var(--ink)}
.btn.primary{background:var(--red);border-color:var(--red);color:#fff}
.btn.primary:hover{background:transparent;color:var(--ink);border-color:var(--ink)}

/* home hero — full-bleed plate, everything on one centre line.
   The photo drifts in very slowly (a 24s push) and the headline rises in two lines;
   both switch off under prefers-reduced-motion. */
.stage{position:relative;height:clamp(520px,92vh,900px);background:var(--ink);overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;
  padding:clamp(26px,3.4vw,44px) var(--gut) clamp(26px,3vw,40px)}
.stage > *{position:relative;z-index:2}
.stage .plate{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;
  transform-origin:60% 55%;animation:push 24s cubic-bezier(.25,.1,.25,1) both}
.stage::after{content:"";position:absolute;inset:0;z-index:1;
  background:radial-gradient(ellipse 70% 55% at 50% 62%,rgba(10,8,6,.42) 0%,rgba(10,8,6,0) 70%),
             linear-gradient(180deg,rgba(10,8,6,.38) 0%,rgba(10,8,6,0) 26%,rgba(10,8,6,0) 60%,rgba(10,8,6,.5) 100%)}
.stage .logo{width:clamp(150px,15vw,210px);height:auto;filter:drop-shadow(0 1px 12px rgba(0,0,0,.35));
  animation:fade 1.4s ease .2s both}
.stage-copy{margin-top:auto;margin-bottom:clamp(40px,7vh,90px)}
.stage h1{color:#fff;font-size:clamp(46px,8.4vw,112px);line-height:.98;letter-spacing:-.015em;
  text-shadow:0 2px 30px rgba(0,0,0,.35);max-width:none}
.stage h1 span{display:block;animation:rise 1.3s cubic-bezier(.2,.7,.2,1) both}
.stage h1 .l1{animation-delay:.35s}
.stage h1 .l2{font-style:italic;font-weight:300;animation-delay:.6s}
.stage-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 0;margin:26px 0 0;
  font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.9);
  animation:fade 1.2s ease 1.1s both}
.stage-meta span + span::before{content:"";display:inline-block;width:28px;height:1px;background:rgba(255,255,255,.55);
  vertical-align:middle;margin:0 16px}
.cue{display:block;width:1px;height:54px;background:rgba(255,255,255,.28);position:relative;overflow:hidden;
  animation:fade 1s ease 1.6s both}
.cue span{position:absolute;left:0;top:-40%;width:1px;height:40%;background:#fff;animation:drip 2.2s ease-in-out 2s infinite}
/* phones: a tall full-height crop of this wide photo cuts the couple off at both sides.
   A shorter stage shows more of the photo's width, framed on the two of them (Valentina, 28 Sep),
   and the headline drops lower so it sits under their faces rather than over them. */
@media(max-width:700px){.stage{height:min(78svh,640px)}
  .stage .plate{object-position:72% 50%;transform-origin:72% 45%}
  .stage-copy{margin-bottom:22px}}
@keyframes push{from{transform:scale(1.12)}to{transform:scale(1)}}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes drip{0%{top:-40%}60%,100%{top:100%}}
/* pages converted from the live site (convert.py) */
.flow figure{margin:0}
.flow-split{display:grid;gap:clamp(28px,5vw,72px);align-items:center;max-width:1100px;margin-inline:auto}
@media(min-width:860px){.flow-split{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}}
.flow-split .prose{max-width:none;margin:0}
/* text-only sections (page openers) sit on the same left edge as the breadcrumb and the sections below */
.flow .wrap>.prose{margin-inline:0}
.flow-pic img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.flow-pics{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:clamp(28px,4vw,48px)}
.flow-pics:first-child{margin-top:0}
@media(min-width:860px){.flow-pics.n3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.flow-pics img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.flow-pics.n1{grid-template-columns:minmax(0,1fr);max-width:900px;margin-inline:auto}
.flow-pics.n1 img{aspect-ratio:auto}
.flow-acts{justify-content:flex-start;margin-top:26px}
.flow-embed{position:relative;aspect-ratio:16/9;margin:30px 0}
.flow-embed iframe,.flow-embed video{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover;background:var(--ink)}
.flow-split .flow-embed{margin:0}
.flow-embeds{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:clamp(28px,4vw,48px)}
.flow-embeds:first-child{margin-top:0}
.flow-embeds .flow-embed{margin:0}
@media(min-width:860px){.flow-embeds.n3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.flow-head{margin-bottom:6px}
.flow-cards{margin-top:26px}
.flow .gwall{margin-top:clamp(20px,3vw,36px)}
.flow .gwall:first-child{margin-top:0}
.flow hr{border:0;border-top:1px solid var(--line-soft);margin:34px 0}
.flow .prose table{width:100%;border-collapse:collapse;font-size:16px}
.flow .prose td,.flow .prose th{border-bottom:1px solid var(--line-soft);padding:10px 8px;text-align:left;vertical-align:top}

@media (prefers-reduced-motion: reduce){.stage .plate,.stage h1 span,.stage-meta,.stage .logo,.cue,.cue span{animation:none}}

/* home intro and the package doors: far more room than an inner page (keep this block
   outside the hero block above, so rewriting the hero cannot take it with it) */
.home-copy{padding-block:clamp(96px,12vw,180px) clamp(72px,9vw,140px);text-align:center}
.home-copy .lede{font-family:var(--display);font-weight:300;font-size:clamp(28px,3.2vw,42px);line-height:1.3;
  max-width:26ch;margin-inline:auto;color:var(--ink)}
.home-copy .eyebrow{margin-bottom:22px}
.values-line{margin:clamp(36px,4.5vw,56px) auto 0;max-width:900px;display:flex;flex-wrap:wrap;justify-content:center;
  gap:10px 56px;font-family:var(--display);font-weight:300;font-size:clamp(19px,1.9vw,24px);line-height:1.35;color:var(--muted)}
.values-line em{font-style:italic;color:var(--ink);margin-right:.18em}
.home-copy .hero-meta{justify-content:center;margin:clamp(40px,5vw,64px) auto 0;padding-top:0;border-top:none;gap:14px 48px}
.home-doors{padding-block:clamp(56px,7vw,104px) clamp(64px,8vw,120px);border-top:1px solid var(--line-soft)}
.home-doors .door{padding-block:30px 34px}
.home-doors .door .role{margin-bottom:8px}

/* home: the two packages, text only — easy to scan */
.doors2 .door{padding-block:34px 36px}
.doors2 .door h3{font-size:clamp(30px,3.2vw,40px);margin-top:4px}
.ticks3{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}
.ticks3 li{display:flex;gap:12px;align-items:baseline;font-size:17px;color:var(--body-ink)}
.ticks3 li::before{content:"—";color:var(--bronze)}
.door-foot{margin-top:auto;padding-top:28px;display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between}
.door-foot .dfrom{margin:0}

/* phones: more breath — airy intro, then the two packages as roomy white cards on a stone band */
@media(max-width:759px){
  .home-copy{padding-block:88px 72px}
  .home-copy .eyebrow{margin-bottom:30px}
  .home-copy .lede{font-size:27px;line-height:1.38;max-width:15em}
  .values-line{margin-top:44px;flex-direction:column;align-items:center;gap:8px;font-size:21px}
  .home-copy .hero-meta{margin-top:40px;gap:8px 18px;flex-wrap:nowrap;font-size:13.5px;letter-spacing:0}
  .home-copy .hero-meta b{font-size:19px}
  .home-doors{background:var(--stone);border-top:none;padding-block:72px 64px}
  .home-doors h2{margin-bottom:44px!important}
  .doors2{border-top:none;gap:24px}
  .doors2 .door{background:#fff;border:1px solid var(--line-soft);border-radius:4px;padding:44px 30px 36px}
  .doors2 .role{color:var(--bronze);margin-bottom:16px}
  .doors2 .door h3{font-size:33px;margin-top:0}
  .doors2 .ticks3{display:grid;gap:14px;margin-top:26px}
  .doors2 .ticks3 li{font-size:17px;line-height:1.5;color:var(--body-ink)}
  .doors2 .door-foot{margin-top:34px;padding-top:26px;border-top:1px solid var(--line-soft)}
  .doors2 .door-foot .btn{border:none;padding:0;min-height:0;background:none;font-size:17px;text-decoration:underline;text-underline-offset:6px;text-decoration-color:var(--bronze)}
  .doors2 .door-foot .btn::after{content:" →"}
  #designed{padding-top:84px!important}
}

/* filter rows (same as the Italy page) */
.filters{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:20px;
  margin:30px 0 34px;display:grid;gap:16px}
.frow{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.flabel{flex:0 0 96px;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.chip{font-family:var(--body);font-size:15px;line-height:1;padding:9px 15px;border:1px solid var(--line);
  background:transparent;color:var(--body-ink);border-radius:999px;cursor:pointer;
  transition:border-color .16s ease,background .16s ease,color .16s ease}
.chip:hover{border-color:#B9B1A4}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.fmeta{font-size:14px;color:var(--muted);gap:8px 18px}
.fmeta strong{color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums}
.clear{background:none;border:0;padding:0;font-family:var(--body);font-size:14px;color:var(--muted);
  text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.empty{grid-column:1/-1;padding:44px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line)}
.empty b{display:block;font-family:var(--display);font-size:24px;color:var(--ink);margin-bottom:6px;font-weight:400}
/* the country grid (home + Custom-made packages, and the regions on the Spain/Portugal/France pages) on phones: fifteen full-width cards ran to
   ~6,800px, so it becomes two columns of photo tiles — name, flag and starting price only; the
   one-line description stays on each country page. Its filter rows scroll sideways instead of
   wrapping onto four lines. (Valentina, 28 Sep) */
@media(max-width:600px){
  .tiles{grid-template-columns:1fr 1fr;gap:26px 14px}
  .tiles .shot{aspect-ratio:4/5}
  .tiles .dhead{flex-direction:column;align-items:flex-start;gap:3px;margin-top:10px}
  .tiles h3{font-size:19px}
  .tiles .flag{font-size:9.5px;letter-spacing:.14em;white-space:normal}
  .tiles p:not(.dprice),.tiles .go{display:none}
  .tiles .dhead{margin-bottom:7px}
  /* pushed to the tile's foot so prices line up across a row, flag or no flag */
  .tiles .dprice{margin-top:auto;padding-top:7px;font-size:11px;letter-spacing:.08em}
  .tiles .dprice b{font-size:14px}
  /* filter chips wrap under their label (a sideways-scrolling row cut "Countryside" off), 1 Oct */
  .filters[data-filter-grid="cgrid"] .flabel{flex:0 0 100%}
  /* the three hub facts side by side instead of two-then-one */
  .stats.hub-stats{display:grid;grid-template-columns:repeat(3,auto);justify-content:space-between;gap:0 14px}
  .hub-stats .stat b{font-size:32px}
  .hub-stats .stat span{display:block;margin-top:8px;font-size:10px;letter-spacing:.12em;line-height:1.45}
}
.ext{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-left:6px}

/* what we handle */
.handle-grid{display:grid;gap:clamp(30px,4vw,64px);grid-template-columns:1fr;margin-top:8px}
@media(min-width:860px){.handle-grid{grid-template-columns:1fr 1.05fr;align-items:start}}
.handled{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.handled li{display:flex;gap:14px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--line-soft);font-size:16.5px}
.handled li::before{content:"—";color:var(--bronze);flex:0 0 auto}

.seeall-home{margin:clamp(34px,4vw,52px) 0 0;text-align:center}

/* what we handle: heading and lede side by side, then three phases well below */
.handle-head{display:grid;gap:18px 56px;grid-template-columns:1fr}
@media(min-width:860px){.handle-head{grid-template-columns:1fr 1fr;align-items:end}}
.handle-head .lede{margin:0}
.phases{display:grid;gap:0 clamp(24px,3vw,44px);grid-template-columns:1fr;margin-top:clamp(44px,5vw,72px)}
@media(min-width:800px){.phases{grid-template-columns:repeat(3,1fr)}}
.phase{padding-top:22px;border-top:1px solid var(--ink);margin-bottom:34px}
.phase .num{font-family:var(--display);font-size:15px;letter-spacing:.1em;color:var(--bronze)}
.phase h3{margin:6px 0 16px;font-size:24px}
.phase .handled{border-top:none}
.phase .handled li:last-child{border-bottom:none}
.handle-foot{margin:6px 0 0;padding-top:20px;border-top:1px solid var(--line-soft);font-size:16px;color:var(--muted)}

/* founder / proof */
.proof{display:grid;gap:clamp(28px,3.4vw,52px);grid-template-columns:1fr}
@media(min-width:800px){.proof{grid-template-columns:.85fr 1.15fr;align-items:center}}
.proof .portrait{max-width:420px}
/* the founder portrait is shown whole (it is a 2:3 studio shot), not cropped to 4:5 */
.proof .portrait,.letter .portrait{aspect-ratio:2/3;max-width:380px}
.proof .portrait img,.letter .portrait img{object-fit:contain;object-position:center top;background:#fff}
.stats{display:flex;flex-wrap:wrap;gap:12px 46px;margin:26px 0 0;padding-top:22px;border-top:1px solid var(--line)}
.stat b{display:block;font-family:var(--display);font-size:38px;line-height:1;font-weight:400;font-variant-numeric:tabular-nums}
.stat span{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
/* Destinations and Packages hubs: the facts row sits under the lede, not beside it */
.hub-stats{margin-top:clamp(28px,3.4vw,40px);gap:18px clamp(36px,5vw,72px)}

/* destinations landing — one row per country */
.crow{display:grid;gap:clamp(18px,3vw,44px);grid-template-columns:1fr;padding-block:clamp(26px,3.4vw,42px);
  border-top:1px solid var(--line);text-decoration:none}
.clist .crow:last-child{border-bottom:1px solid var(--line)}
@media(min-width:760px){.crow{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
  .crow:nth-child(even) .shot{order:2}}
.crow .shot{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--stone)}
@media(min-width:760px){.crow .shot{aspect-ratio:5/4}}
.crow .shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.crow:hover .shot img{transform:scale(1.03)}
.crow .hi{font-family:var(--display);font-style:italic;font-size:22px;color:var(--bronze);margin:0 0 4px}
.crow h2{font-size:clamp(32px,4.4vw,50px)}
.crow p.long{margin:14px 0 0;color:#4A443C;max-width:52ch}
.crow .facts{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line-soft);
  font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.crow .facts b{font-family:var(--display);font-size:22px;letter-spacing:0;color:var(--ink);font-weight:400;
  text-transform:none;font-variant-numeric:tabular-nums;margin-left:6px}
.crow .go{display:inline-block;margin-top:18px;font-size:15px;letter-spacing:.04em;text-decoration:underline;
  text-underline-offset:4px;color:var(--body-ink)}
.jump{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:26px;font-size:15px}
.jump a{color:var(--muted);text-decoration:none;text-underline-offset:3px}
.jump a:hover{color:var(--ink);text-decoration:underline}

/* about */
.letter{display:grid;gap:clamp(24px,3.4vw,56px);grid-template-columns:1fr}
@media(min-width:800px){.letter{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start}}
.letter .sign{font-family:var(--display);font-style:italic;font-size:30px;margin-top:18px}
.team{display:grid;gap:clamp(30px,3.4vw,48px) clamp(22px,2.6vw,34px);grid-template-columns:repeat(auto-fill,minmax(230px,1fr));margin-top:36px}
@media(min-width:900px){.team{grid-template-columns:repeat(3,1fr)}}   /* six people: two even rows */
.member h3{margin-top:14px;font-size:24px}
.member .role{margin-top:4px}
.member .plans{font-size:14.5px;color:var(--muted);margin:6px 0 0}
.member details{margin-top:12px;border-top:1px solid var(--line-soft);padding-top:10px}
.member summary{cursor:pointer;list-style:none;font-size:14.5px;letter-spacing:.04em;color:var(--body-ink);
  text-decoration:underline;text-underline-offset:4px}
.member summary::-webkit-details-marker{display:none}
.member details p{font-size:15.5px;line-height:1.55;color:#4A443C;margin:10px 0 0}
.member .quote{font-size:15.5px}
.values{display:grid;gap:0;grid-template-columns:1fr;border-top:1px solid var(--line);margin-top:32px}
@media(min-width:800px){.values{grid-template-columns:repeat(3,1fr)}}
.value{padding:24px 0 26px;border-bottom:1px solid var(--line)}
@media(min-width:800px){.value{padding:26px 30px 28px;border-bottom:none}
  .value:first-child{padding-left:0}.value + .value{border-left:1px solid var(--line)}}
.value .num{font-family:var(--display);font-size:15px;color:var(--bronze);letter-spacing:.1em}
.value h3{margin-top:8px}
.value p{margin:10px 0 0;font-size:16px;color:#4A443C}

.careers-hero{padding-block:clamp(56px,8vw,112px) clamp(52px,7vw,96px)}
.careers-hero h1{margin-bottom:22px}
.careers-hero .lede{margin-bottom:34px}
.bwc-hero{padding:0;margin-top:16px;position:relative;background:var(--ink);color:#fff}
.bwc-hero figure{margin:0;aspect-ratio:3/2;overflow:hidden}
.bwc-hero img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;display:block}
.bwc-hero-txt{padding-block:34px 44px}
.bwc-hero .eyebrow{color:rgba(255,255,255,.72)}
.bwc-hero h1{color:#fff;margin-bottom:18px}
.bwc-hero .lede{color:rgba(255,255,255,.86);margin:0}
@media(min-width:760px){
  .bwc-hero figure{aspect-ratio:auto;height:clamp(520px,72vh,760px)}
  .bwc-hero-txt{position:absolute;inset:auto 0 0 0;padding-block:120px clamp(44px,5vw,72px);
    background:linear-gradient(to top,rgba(20,18,16,.72),rgba(20,18,16,.38) 55%,rgba(20,18,16,0))}
  .bwc-hero-txt .wrap>*{max-width:min(420px,34vw)}
  .bwc-hero .lede{font-size:17px}}
.bwc-promise{padding-block:clamp(72px,10vw,140px);text-align:center}
.bwc-promise h2{font-size:clamp(34px,5vw,58px);line-height:1.08;max-width:18ch;margin:0 auto 34px}
.bwc-promise p{max-width:58ch;margin:0 auto;font-size:17.5px;line-height:1.7;color:#4A443C}
.bwc-pledge{margin:40px auto 0!important;padding-top:40px;border-top:1px solid var(--line);max-width:36ch!important;
  font-family:var(--display);font-size:clamp(22px,2.4vw,28px)!important;line-height:1.42!important;color:var(--ink)!important}
.bwc-pledge::before{content:"";display:block;width:44px;height:1px;background:var(--bronze);margin:-41px auto 40px}
.bwc-scope{display:grid;gap:clamp(18px,2.4vw,32px);grid-template-columns:minmax(0,1fr)}
@media(min-width:880px){.bwc-scope{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}}
.bwc-yes,.bwc-no{padding:clamp(30px,4vw,56px)}
.bwc-yes{background:var(--paper)}
.bwc-no{border:1px solid var(--line);display:flex;flex-direction:column}
.bwc-scope h2{margin-bottom:18px}
.bwc-scope p{font-size:16.5px;line-height:1.65;color:#4A443C}
.bwc-yes ul{list-style:none;margin:22px 0 0;padding:0;border-top:1px solid var(--line-soft)}
.bwc-yes li{position:relative;padding:16px 0 16px 34px;border-bottom:1px solid var(--line-soft);
  font-size:17px;line-height:1.5;color:var(--body-ink)}
.bwc-yes li::before{content:"";position:absolute;left:4px;top:22px;width:12px;height:6px;
  border-left:1.5px solid var(--bronze);border-bottom:1.5px solid var(--bronze);transform:rotate(-45deg)}
.bwc-no .eyebrow,.bwc-no h2{color:var(--muted)}
.bwc-terms{margin-top:auto;padding-top:22px;align-self:flex-start;font-size:12.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink);text-underline-offset:5px}
.bwc-steps{list-style:none;margin:44px 0 0;padding:0;display:grid;gap:34px;grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.bwc-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,3vw,48px)}}
.bwc-steps li{position:relative}
.bwc-steps .num{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--bronze);border-radius:50%;
  font-family:var(--display);font-size:19px;color:var(--bronze);background:var(--paper);position:relative;z-index:1}
@media(min-width:900px){.bwc-steps li:not(:last-child)::after{content:"";position:absolute;top:23px;left:58px;
  right:calc(-1 * clamp(28px,3vw,48px) + 12px);height:1px;background:var(--line)}}
.bwc-steps h3{margin-top:20px;font-size:24px}
.bwc-steps p{margin:10px 0 0;font-size:16px;line-height:1.65;color:#4A443C;max-width:40ch}
.bwc-close{margin:clamp(64px,8vw,112px) auto 0;padding-top:clamp(40px,5vw,56px);border-top:1px solid var(--line);
  text-align:center;font-family:var(--display);font-size:clamp(22px,2.6vw,30px);line-height:1.4;max-width:32ch;color:var(--ink)}
.jobs{display:grid;gap:18px;grid-template-columns:1fr;margin-top:32px}
@media(min-width:760px){.jobs{grid-template-columns:1fr 1fr;gap:24px}}
.job{display:flex;flex-direction:column;gap:10px;padding:clamp(26px,3vw,40px);border:1px solid var(--line);
  text-decoration:none;color:inherit;transition:border-color .18s ease}
.job:hover{border-color:var(--ink)}
.job .meta{margin:0;font-size:12px;letter-spacing:.18em;color:var(--muted)}
.job h3{font-size:clamp(24px,2.4vw,30px)}
.job .go{margin-top:auto;padding-top:14px;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;
  text-decoration:underline;text-underline-offset:4px;color:var(--body-ink)}
.job:hover .go{color:var(--ink)}
.about-video{margin:0;aspect-ratio:16/9;background:var(--ink);overflow:hidden}
.about-video video{width:100%;height:100%;object-fit:cover;display:block}
.about-video{position:relative}
.stage video.plate{animation:none}
.home-trailer{padding-top:0}
@media(max-width:700px){.trailer-fig{aspect-ratio:9/16;width:min(100%,calc(80svh*9/16))}}
.sound-on{position:absolute;left:20px;top:20px;padding:10px 18px;border:1px solid rgba(255,255,255,.7);
  background:rgba(20,18,16,.55);color:#fff;font-family:var(--body);font-size:13px;letter-spacing:.18em;
  text-transform:uppercase;cursor:pointer}
.sound-on:hover{background:rgba(20,18,16,.8)}

/* blog */
.feature{display:grid;gap:clamp(22px,3vw,48px);grid-template-columns:1fr;text-decoration:none}
@media(min-width:820px){.feature{grid-template-columns:1.2fr .8fr;align-items:end}}
.feature .shot{aspect-ratio:3/2;overflow:hidden;background:var(--stone)}
.feature .shot img{width:100%;height:100%;object-fit:cover}
.feature h2{font-size:clamp(32px,4.4vw,52px)}
.feature p{margin:14px 0 0;color:#4A443C}
.meta{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.bgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:clamp(28px,3vw,40px) clamp(22px,2.6vw,34px)}
.bcard{text-decoration:none;display:flex;flex-direction:column}
.bcard .shot{aspect-ratio:4/5;overflow:hidden;background:var(--stone)}
.bcard .shot img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.bcard:hover .shot img{transform:scale(1.035)}
.bcard .meta{margin:14px 0 6px}
.bcard h3{font-size:21px}
.bcard p{margin:8px 0 0;font-size:15px;line-height:1.5;color:#4A443C}
.archive{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.archive li{border-bottom:1px solid var(--line-soft)}
.archive a{display:grid;grid-template-columns:1fr;gap:2px 24px;padding:13px 0;text-decoration:none}
@media(min-width:640px){.archive a{grid-template-columns:110px 1fr}}
.archive time{font-size:13px;letter-spacing:.08em;color:var(--muted);font-variant-numeric:tabular-nums}
.archive span{font-size:17px}
.archive a:hover span{text-decoration:underline;text-underline-offset:4px}

/* one post */
.post-head{max-width:860px}
.post-head h1{font-size:clamp(36px,5.4vw,62px)}
.post-cover{margin:clamp(28px,4vw,48px) 0 0}
.post-cover img{width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--stone)}
.prose{max-width:680px;margin-inline:auto;font-size:19px;line-height:1.7;color:var(--body-ink)}
.prose h2{font-size:clamp(28px,3.4vw,36px);margin:52px 0 16px;color:var(--ink)}
.prose h3{font-size:26px;margin:40px 0 12px;color:var(--ink)}
.prose h4{font-family:var(--display);font-weight:400;font-size:21px;margin:26px 0 8px;color:var(--ink)}
.prose p{margin:0 0 18px}
.prose ul{margin:0 0 20px;padding-left:20px}
.prose li{margin-bottom:10px}
.prose b{color:var(--ink);font-weight:500}
.prose a{text-underline-offset:3px;text-decoration-color:var(--bronze)}
.prose figure{margin:34px -40px}
@media(max-width:780px){.prose figure{margin-inline:0}}
.prose figure img{width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--stone)}
.prose figcaption{font-size:13.5px;color:var(--muted);margin-top:8px}
.lead{font-size:22px;line-height:1.55;color:var(--ink)}

/* photo mosaic — natural proportions, masonry columns, like the live destination pages */
.mosaic{columns:2 160px;column-gap:10px}
@media(min-width:760px){.mosaic{columns:4}}
.mosaic figure{margin:0 0 10px;break-inside:avoid}
.mosaic img{width:100%;height:auto;background:var(--stone)}

/* custom-made package block: the place left, the contents right */
.why{display:grid;gap:clamp(34px,5vw,80px);grid-template-columns:1fr}
@media(min-width:900px){.why{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
  .why-copy{position:sticky;top:90px}}
.why-copy .lede{margin-top:18px}
.why-long{margin:16px 0 0;font-size:16px;line-height:1.6;color:#4A443C;max-width:56ch}
.why-price{display:flex;align-items:baseline;gap:12px;margin:30px 0 18px;padding-top:20px;border-top:1px solid var(--line)}
.why-price span{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.why-price b{font-family:var(--display);font-weight:400;font-size:40px;font-variant-numeric:tabular-nums}
.why-list .inc-h{margin-bottom:6px}
.xtick{display:flex;gap:12px;align-items:baseline;cursor:pointer}
.xtick input{accent-color:var(--ink);width:17px;height:17px;margin:0;transform:translateY(2px)}
.xvar{padding-left:29px}
.est-note{margin:-8px 0 18px;font-size:14px;color:var(--muted)}
.est{transition:color .2s ease}
/* phones: the price is far above the extras, so ticking one pins the running estimate to the
   bottom of the screen while the list is in view (sticky inside .why-list, so it leaves with it) */
.est-bar{position:sticky;bottom:0;z-index:5;display:flex;justify-content:space-between;align-items:center;
  gap:16px;margin:22px 0 0;padding:14px 18px calc(14px + env(safe-area-inset-bottom));
  background:var(--ink);color:#fff}
.est-bar[hidden]{display:none}
.est-bar span{display:block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;opacity:.75}
.est-bar b{font-family:var(--display);font-weight:400;font-size:26px;font-variant-numeric:tabular-nums}
.est-bar .btn{white-space:nowrap;background:#fff;color:var(--ink);border-color:#fff}
@media(min-width:900px){.est-bar{display:none}}
.flow-pkg{margin-top:clamp(34px,5vw,64px);text-align:left}
.flow-pkg + .flow-pkg{padding-top:clamp(34px,5vw,64px);border-top:1px solid var(--line)}
ul.plain{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
ul.plain li{padding:13px 0;border-bottom:1px solid var(--line);font-size:16.5px;color:var(--body-ink)}
ul.priced li{display:flex;justify-content:space-between;gap:18px;align-items:baseline}
ul.priced b{font-weight:400;font-family:var(--display);font-size:18px;color:var(--ink);white-space:nowrap}
ul.priced .xtick{flex:1;min-width:0}
/* already-designed extras: name and description in the type of the included list, price on the right */
ul.xdesc li{align-items:flex-start}
ul.priced.xdesc b{display:block;font-family:inherit;font-size:16.5px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--body-ink);white-space:normal;text-align:left;max-width:none;line-height:1.35}
ul.xdesc span{display:block;margin-top:3px;font-size:14.5px;line-height:1.45;color:var(--muted)}
ul.xdesc .xtick input{transform:translateY(0);flex:none;margin-top:1px}
ul.xdesc em{font-style:normal;font-family:var(--display);font-size:18px;color:var(--ink);white-space:nowrap}
ul.xdesc .xvar{padding-left:29px}
@media(max-width:520px){ul.xdesc em{font-size:16.5px;text-align:right;white-space:normal;max-width:40%;line-height:1.25}}
ul.priced .xvar{flex:1;min-width:0}
/* phones: a long price ("from €450 per person") wraps under the name's column instead of being pushed off screen */
@media(max-width:520px){ul.priced li{gap:12px}ul.priced b{font-size:16.5px;text-align:right;white-space:normal;max-width:42%;line-height:1.25}}

/* contact */
.contact{display:grid;gap:clamp(36px,5vw,80px);grid-template-columns:minmax(0,1fr)}
@media(min-width:940px){.contact{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start}}
/* the left column is taller than a screen now (photo + steps), so it scrolls with the page */
.contact-copy .step{font-size:24px;margin:40px 0 10px;padding-top:22px;border-top:1px solid var(--line)}
.contact-band{padding-block:clamp(40px,5vw,72px) clamp(56px,7vw,100px)}
.contact-pic{margin:30px 0 0;aspect-ratio:4/5;max-width:380px;overflow:hidden;background:var(--paper)}
.contact-pic img{width:100%;height:100%;object-fit:cover}
@media(max-width:939px){.contact-pic{max-width:none;aspect-ratio:4/3;margin-top:28px}}
.next{list-style:none;margin:22px 0 0;padding:0;counter-reset:n;border-top:1px solid var(--line)}
.next li{counter-increment:n;position:relative;padding:14px 0 14px 44px;border-bottom:1px solid var(--line);
  font-size:15px;color:#4A443C}
.next li::before{content:"0" counter(n);position:absolute;left:0;top:14px;font-family:var(--display);font-size:20px;color:var(--bronze)}
.next b{display:block;font-weight:500;color:var(--ink);font-size:16px}
.enq-card{background:var(--paper);padding:clamp(24px,3.4vw,48px);border:1px solid var(--line-soft)}
.enq-part{display:flex;align-items:baseline;gap:14px;margin:34px 0 4px;font-family:var(--display);font-size:26px;color:var(--ink)}
.enq-part:first-child{margin-top:0}
.enq-part span{font-size:15px;letter-spacing:.1em;color:var(--bronze)}
.enq{border-top:none}
.enq .field:first-of-type{border-top:none}
.field{padding:20px 0;border-bottom:1px solid var(--line-soft)}
.flab{margin:0 0 12px;font-size:16.5px;color:var(--ink)}
.flab span{color:var(--muted)}
.flab em{display:block;font-style:normal;font-size:14.5px;color:var(--muted);margin-top:3px}
.enq input[type=text],.enq input[type=email],.enq select{width:100%;font:inherit;font-size:16px;color:var(--ink);
  background:transparent;border:none;border-bottom:1px solid var(--line);padding:10px 0;border-radius:0}
.enq input:focus,.enq select:focus{outline:none;border-bottom-color:var(--ink)}
.enq .two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pill input{position:absolute;opacity:0;pointer-events:none}
.pill span{display:inline-block;font-size:15px;line-height:1;padding:9px 15px;border:1px solid var(--line);
  border-radius:999px;cursor:pointer;color:var(--body-ink);transition:background .16s ease,color .16s ease,border-color .16s ease}
.pill span:hover{border-color:#B9B1A4}
.pill input:checked + span{background:var(--ink);border-color:var(--ink);color:#fff}
.pill input:focus-visible + span{outline:2px solid var(--bronze);outline-offset:2px}
.tick{display:flex;gap:10px;align-items:baseline;font-size:15.5px;color:var(--body-ink);cursor:pointer}
.tick input{accent-color:var(--ink);width:16px;height:16px}
.ticks{display:flex;flex-wrap:wrap;gap:10px 28px}
.enq-foot{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;padding-top:26px}
.enq-foot span{font-size:13.5px;color:var(--muted)}
.info3{display:grid;gap:0 clamp(24px,4vw,56px);grid-template-columns:1fr;border-top:1px solid var(--line);margin-top:8px}
@media(min-width:800px){.info3{grid-template-columns:repeat(3,1fr)}}
.info3 > div{padding:22px 0}
.info3 h3{font-size:22px}
.info3 p{margin:10px 0 0;font-size:15.5px;color:#4A443C}
.info3 a{text-underline-offset:3px}

/* experience cards: the call to action is a real button, filled when the card is hovered */
.pcard .go{display:block;margin-top:12px;padding:10px 16px;border:1px solid var(--ink);border-radius:3px;
  text-align:center;text-decoration:none;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);
  transition:background .18s ease,color .18s ease}
.pcard:hover .go,.pcard:focus-visible .go{background:var(--ink);color:#fff}

/* happy couples index */
.cpgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:clamp(26px,3vw,38px) clamp(18px,2.4vw,30px)}
.ccard{display:flex;flex-direction:column;text-decoration:none}
.ccard .shot{aspect-ratio:4/5;overflow:hidden;background:var(--stone)}
.ccard .shot img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.ccard:hover .shot img{transform:scale(1.035)}
.ccard h3{margin-top:14px;font-size:22px}
.ccard .where{margin:5px 0 0;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
/* a short row of couples on a converted page (3–5 of them) sits on one line on a wide screen,
   so the last one isn't left alone on a second row */
@media(min-width:1000px){.cpgrid.n3{grid-template-columns:repeat(3,1fr)}.cpgrid.n4{grid-template-columns:repeat(4,1fr)}
  .cpgrid.n5{grid-template-columns:repeat(5,1fr)}}
@media(max-width:560px){.flow-cards.cpgrid{grid-template-columns:1fr 1fr;gap:28px 16px}.flow-cards .ccard h3{font-size:18px}
  .flow-cards .ccard .where{font-size:11px;letter-spacing:.1em}}

/* couple gallery */
.ghead2{display:grid;gap:26px clamp(32px,5vw,80px);grid-template-columns:1fr}
@media(min-width:900px){.ghead2{grid-template-columns:1fr 1fr;align-items:end}}
.gfacts{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 28px;border-top:1px solid var(--ink)}
.gfacts div{padding:14px 0;border-bottom:1px solid var(--line)}
.gfacts dt{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.gfacts dd{margin:4px 0 0;font-size:16px;color:var(--ink)}
.gfacts dd a{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}
.gfacts dd a:hover{text-decoration-color:currentColor}
.gfilm{padding-bottom:clamp(36px,5vw,64px)}
.gfilm h2{margin-top:10px}
.gfilms{display:grid;gap:16px;margin-top:clamp(20px,3vw,32px)}
@media(min-width:900px){.gfilms.n2{grid-template-columns:1fr 1fr}}
.gfilms .flow-embed{margin:0}
.gwall{columns:2 150px;column-gap:10px}
@media(min-width:760px){.gwall{columns:3}}
@media(min-width:1100px){.gwall{columns:4}}
.gwall a{display:block;margin:0 0 10px;break-inside:avoid;cursor:zoom-in}
.gwall img{width:100%;height:auto;background:var(--stone);transition:opacity .2s ease}
.gwall a:hover img{opacity:.88}
.gintro{columns:1;column-gap:clamp(32px,5vw,72px);margin-top:clamp(28px,4vw,44px)}
@media(min-width:900px){.gintro{columns:2}}
.gintro .gpara{break-inside:avoid}
.gintro p{margin:0 0 16px;font-size:18px;line-height:1.7;color:var(--body-ink);break-inside:avoid}
.gnote{margin:18px 0 0;font-size:14px;color:var(--muted)}
.gstory p{margin:0 0 18px;font-size:18px;line-height:1.7;color:var(--body-ink);max-width:60ch}
.gnext{display:flex;flex-wrap:wrap;gap:24px 56px;align-items:flex-end;justify-content:space-between}
.gnext > div:first-child{max-width:56ch}
.lb{position:fixed;inset:0;z-index:60;background:rgba(14,12,10,.94);display:flex;align-items:center;justify-content:center}
.lb[hidden]{display:none!important}
.lb img{max-width:min(92vw,1100px);max-height:86vh;width:auto;height:auto;object-fit:contain}
.lb button{position:absolute;background:none;border:0;color:#fff;font-size:44px;line-height:1;cursor:pointer;padding:12px 18px;opacity:.8}
.lb button:hover{opacity:1}
.lb-close{top:12px;right:10px}
.lb-prev{left:6px;top:50%;transform:translateY(-50%)}
.lb-next{right:6px;top:50%;transform:translateY(-50%)}
.lb-count{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:rgba(255,255,255,.7);font-size:13px;letter-spacing:.14em}

/* the venue behind an experience */
.venue{display:grid;gap:clamp(30px,5vw,72px);grid-template-columns:1fr}
@media(min-width:900px){.venue{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center}}
.venue-pics{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:1fr 1fr;gap:10px;aspect-ratio:5/4}
.venue-pics figure{margin:0;overflow:hidden;background:var(--stone)}
.venue-pics figure:first-child{grid-row:span 2}
.venue-pics img{width:100%;height:100%;object-fit:cover}
.venue-pics.ph{display:flex;align-items:center;justify-content:center;border:1px dashed var(--line);
  color:var(--muted);font-size:14px;letter-spacing:.14em;text-transform:uppercase}
.vfacts{margin:26px 0 0;border-top:1px solid var(--ink)}
.vfacts div{padding:14px 0;border-bottom:1px solid var(--line);display:grid;gap:4px 22px;grid-template-columns:1fr}
@media(min-width:640px){.vfacts div{grid-template-columns:120px 1fr}}
.vfacts dt{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.vfacts dd{margin:0;font-size:16px;line-height:1.55;color:var(--body-ink)}

/* quote sheet */
.qrow{display:grid;gap:22px clamp(32px,5vw,80px);grid-template-columns:1fr}
@media(min-width:900px){.qrow{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);align-items:start}}
.qlab h2{font-size:clamp(26px,3vw,34px)}
.qlab p:not(.eyebrow){margin:12px 0 0;font-size:15.5px;line-height:1.55;color:#4A443C;max-width:36ch}
.qrow .fees{margin-top:0}
@media(min-width:760px){.qrow .fees{grid-template-columns:1fr 1fr}}
.qhead{display:grid;gap:26px;grid-template-columns:1fr}
@media(min-width:860px){.qhead{grid-template-columns:1.2fr .8fr;align-items:end}}
.qprice{border:1px solid var(--line);background:var(--stone);padding:26px 26px 24px}
.qprice .from{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.qprice .amt{font-family:var(--display);font-size:clamp(46px,6vw,64px);line-height:1;margin-top:6px;font-variant-numeric:tabular-nums}
.qprice p{margin:12px 0 0;font-size:15px;line-height:1.5;color:var(--body-ink)}
.qprice .acts{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.sheet{width:100%;border-collapse:collapse;font-size:16px}
.sheet caption{text-align:left;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding-bottom:12px}
.sheet th,.sheet td{text-align:left;vertical-align:baseline;padding:14px 0;border-bottom:1px solid var(--line-soft)}
.sheet tr:first-child th,.sheet tr:first-child td{border-top:1px solid var(--line)}
.sheet th{font-weight:500;width:36%;padding-right:22px;color:var(--ink)}
.sheet td{color:#4A443C}
.sheet td.amt{text-align:right;white-space:nowrap;font-family:var(--display);font-size:21px;color:var(--ink);
  font-variant-numeric:tabular-nums;padding-left:18px}
.sheet .inc{color:var(--bronze);font-size:12px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;text-align:right;padding-left:18px}
@media(max-width:600px){.sheet th{width:auto;display:block;padding-bottom:2px;border-bottom:none}
  .sheet td{display:block;padding-top:0}.sheet tr{display:block;border-bottom:1px solid var(--line-soft);padding-block:12px}
  .sheet th,.sheet td{border:none!important}.sheet td.amt,.sheet .inc{text-align:left;padding-left:0}
  .sheet tr:first-child{border-top:1px solid var(--line)}
  .sheet tr{padding-block:10px}.sheet td.inc{display:none!important}}
.fees{display:grid;gap:0 clamp(22px,3vw,40px);grid-template-columns:1fr;border-top:1px solid var(--line)}
@media(min-width:640px){.fees{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.fees{grid-template-columns:repeat(3,1fr)}}
.fee{padding:14px 0 16px;border-bottom:1px solid var(--line-soft)}
.fee h3{font-size:18px}
.fee ul{list-style:none;margin:6px 0 0;padding:0;font-size:15.5px;line-height:1.45;font-variant-numeric:tabular-nums;color:var(--ink)}
.fee p{margin:6px 0 0;font-size:14px;line-height:1.5;color:#4A443C}
/* the fees continue the Custom-made package band above them: same background, little gap */
section.fees-sec{padding-top:0}
#included:has(+ .fees-sec){padding-bottom:clamp(28px,3vw,40px)}
.fees-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 18px;margin-bottom:14px;
  padding-top:clamp(26px,3vw,36px);border-top:1px solid var(--line)}
.fees-head .eyebrow{flex-basis:100%;margin:0 0 4px}
.fees-head h2{font-size:clamp(22px,2.4vw,28px)}
.fees-head p:not(.eyebrow){margin:0;font-size:15px;color:#4A443C}
@media(min-width:1000px){.qrow .fees{grid-template-columns:1fr 1fr}}
.qtotal{display:flex;flex-wrap:wrap;gap:10px 30px;align-items:baseline;justify-content:space-between;
  margin-top:26px;padding:18px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.qtotal .label{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.qtotal output{font-family:var(--display);font-size:34px;font-variant-numeric:tabular-nums}
.sheet input{width:18px;height:18px;accent-color:var(--ink);margin:0 10px 0 0;vertical-align:-3px}
.sheet label{cursor:pointer}

/* designed venues: the photo carousel under the price panel, and the price bar on phones */
/* photo gallery, moved by hand (experience pages) */
.gallery-sec{padding-left:0;padding-right:0}
.gallery-wrap{position:relative}
.gallery{overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;
  padding-inline:var(--gut,20px);scroll-padding-inline:var(--gut,20px);outline:none}
.gallery::-webkit-scrollbar{display:none}
.gallery:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.gallery-set{display:flex;gap:10px;width:max-content}
.gallery figure{margin:0;flex:0 0 auto;width:clamp(220px,26vw,360px);aspect-ratio:3/4;overflow:hidden;
  background:var(--stone);scroll-snap-align:start}
.gallery img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.gallery-nav{display:flex;justify-content:flex-end;gap:10px;padding:18px var(--gut,20px) 0}
.gallery-nav button{position:static;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;
  background:transparent;color:var(--ink);font-size:18px;line-height:1;padding:0;cursor:pointer;opacity:1;
  transition:background .2s,color .2s}
.gallery-nav button:hover:not(:disabled){background:var(--ink);color:var(--paper,#fff)}
.gallery-nav button:disabled{opacity:.35;cursor:default}
/* mobile price bar — keeps the price in view on phones until the price panel scrolls in */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--paper);border-top:1px solid var(--line);
  padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;
  justify-content:space-between;gap:14px;transition:transform .3s ease}
.mbar.off{transform:translateY(110%)}
.mbar .from{display:block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.mbar .amt{font-family:var(--display);font-size:26px;line-height:1.1;font-variant-numeric:tabular-nums}
.mbar .btn{white-space:nowrap}
@media(max-width:859px){body{padding-bottom:78px}}
@media(min-width:860px){.mbar{display:none}}

/* catalogue filters: country tabs + dropdowns (1 Oct 2026) */
.ff{margin-top:34px;border-top:1px solid var(--line);position:relative}
.ff-countries{display:flex;gap:6px 30px;flex-wrap:wrap;padding:6px 0 0;border-bottom:1px solid var(--line-soft)}
.ff-countries button{background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:16px 0 13px;
  font-family:var(--display);font-size:25px;line-height:1;color:var(--muted);cursor:pointer;transition:color .16s,border-color .16s}
.ff-countries button sup{font-family:var(--body);font-size:12px;letter-spacing:.04em;margin-left:5px;color:var(--muted);vertical-align:top;position:relative;top:-2px}
.ff-countries button:hover{color:var(--ink)}
.ff-countries button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--ink)}
/* The custom-made door in the catalogue: appears once a country is chosen, next to its already-designed packages */
.ff-search{display:flex;align-items:center;gap:10px 22px;flex-wrap:wrap;padding:6px 0 26px}
.ff-slabel{font-size:15px;color:var(--muted)}
.ff-sbox{display:flex;align-items:center;gap:10px;flex:1 1 320px;max-width:560px;border:1px solid var(--line);border-radius:999px;padding:0 20px;background:var(--paper,#fff);color:var(--muted);transition:border-color .2s}
.ff-sbox:focus-within{border-color:var(--ink);color:var(--ink)}
.ff-sbox input{flex:1;min-width:0;font:inherit;font-size:16px;color:var(--ink);background:transparent;border:0;outline:0;padding:13px 0;-webkit-appearance:none;appearance:none}
.ff-sbox input::placeholder{color:var(--body-ink);opacity:.62}
.ff-side{display:flex;align-items:baseline;gap:8px 28px;flex-wrap:wrap;justify-content:flex-end}
.ff-cm{font-size:14.5px;letter-spacing:.02em;color:var(--body-ink);text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.ff-cm:hover{color:var(--ink)}
.pcard.cm{background:var(--stone);border:1px solid var(--line-soft);padding:clamp(22px,2.4vw,32px);justify-content:flex-start;cursor:pointer;transition:border-color .3s}
.pcard.cm:hover{border-color:var(--bronze)}
.pcard.cm .eyebrow{margin:0 0 14px}
.pcard.cm h3{margin-top:0;min-height:0;font-size:clamp(22px,2vw,27px);line-height:1.2}
.pcard.cm p.cm-text{margin:14px 0 0;font-size:15.5px;line-height:1.55;color:var(--body-ink)}
.pcard.cm .cm-foot{margin-top:auto;padding-top:clamp(26px,3vw,40px)}   /* price and button sit at the foot of the card, so no empty space is left under the button */
.pcard.cm .price{margin:0;padding:18px 0 0;display:flex;align-items:baseline;justify-content:space-between;gap:8px;border-top:1px solid var(--line)}
.pcard.cm .price .from{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.pcard.cm .price .amt{font-family:var(--display);font-size:25px;color:var(--ink)}
.pcard.cm .go{margin-top:22px;display:block;text-align:center}
#catgrid .pcard.cm .go{display:block}   /* the catalogue hides the cards' links; this door keeps its own */
.ff-bar{display:flex;justify-content:space-between;align-items:center;gap:16px 24px;flex-wrap:wrap;padding:16px 0}
.ff-btns{display:flex;gap:8px;flex-wrap:wrap}
.ff-dd{position:relative}
.ff-dd>button{font-family:var(--body);font-size:15px;line-height:1;padding:10px 16px;border:1px solid var(--line);background:transparent;
  color:var(--body-ink);border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:9px;transition:border-color .16s,background .16s,color .16s}
.ff-dd>button:hover{border-color:#B9B1A4}
.ff-dd>button::after{content:"";width:6px;height:6px;border-right:1.4px solid currentColor;border-bottom:1.4px solid currentColor;
  transform:translateY(-2px) rotate(45deg);transition:transform .16s}
.ff-dd.open>button{border-color:var(--ink)}
.ff-dd.open>button::after{transform:translateY(1px) rotate(-135deg)}
.ff-dd.has>button{background:var(--ink);border-color:var(--ink);color:#fff}
.ff-dd .n{font-size:12px;font-variant-numeric:tabular-nums;opacity:.8}
.ff-panel{position:absolute;z-index:30;top:calc(100% + 10px);left:0;min-width:300px;max-width:min(560px,92vw);background:var(--paper,#fff);
  border:1px solid var(--line);box-shadow:0 18px 44px rgba(20,16,10,.12);padding:20px 22px 16px}
.ff-panel[hidden]{display:none}
.ff-dd[data-key="area"] .ff-panel{width:540px}
.ff-dd[data-key="exp"] .ff-panel,.ff-dd[data-key="vtype"] .ff-panel{width:460px}
.ff-panel h4{margin:16px 0 8px;font-family:var(--body);font-weight:400;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ff-panel h4:first-child{margin-top:0}
.ff-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2px 22px}
.ff-opt{display:flex;align-items:center;gap:11px;padding:8px 0;font-size:16px;color:var(--body-ink);cursor:pointer}
.ff-opt input{appearance:none;width:17px;height:17px;border:1px solid #B9B1A4;border-radius:2px;margin:0;flex:none;display:grid;place-content:center;cursor:pointer}
.ff-opt input:checked{background:var(--ink);border-color:var(--ink)}
.ff-opt input:checked::after{content:"";width:8px;height:4px;border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:translateY(-1px) rotate(-45deg)}
.ff-opt input:focus-visible{outline:2px solid var(--bronze);outline-offset:2px}
.ff-opt .c{margin-left:auto;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.ff-opt.zero{opacity:.38}
.ff-foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft);font-size:14px;color:var(--muted)}
.ff-foot button{background:none;border:0;padding:0;font:inherit;color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.ff-foot .done{display:none}
.ff-count{margin:0;font-size:14px;color:var(--muted)}
.ff-count strong{color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums}
.ff-active{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 0 18px}
.ff-active[hidden]{display:none}
.ff-tag{display:inline-flex;align-items:center;gap:9px;font-size:14.5px;line-height:1;padding:8px 8px 8px 14px;border:1px solid var(--ink);border-radius:999px;background:transparent;color:var(--ink);cursor:pointer;font-family:var(--body)}
.ff-tag i{font-style:normal;font-size:15px;opacity:.6}
.ff-tag:hover i{opacity:1}
.ff-clear{background:none;border:0;padding:0 4px;font:inherit;font-size:14px;color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.ff-backdrop{position:fixed;inset:0;background:rgba(20,16,10,.35);z-index:29}
.ff-backdrop[hidden]{display:none}
@media(max-width:700px){
  .ff-dd .ff-panel{width:auto!important}
  .ff-countries{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:24px;margin-inline:calc(-1 * var(--gut,16px));padding-inline:var(--gut,16px)}
  .ff-countries::-webkit-scrollbar{display:none}
  .ff-countries button{font-size:21px;white-space:nowrap;flex:none}
  .ff-btns{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * var(--gut,16px));padding-inline:var(--gut,16px);width:calc(100% + 2 * var(--gut,16px))}
  .ff-btns::-webkit-scrollbar{display:none}
  .ff-dd{position:static;flex:none}
  .ff-dd>button{white-space:nowrap}
  .ff-panel{position:fixed;left:0;right:0;bottom:0;top:auto;max-width:none;max-height:78vh;overflow:auto;border:0;border-radius:14px 14px 0 0;padding:24px var(--gut,20px) 18px;z-index:31}
  .ff-opts{grid-template-columns:1fr}
  .ff-opt{padding:12px 0;font-size:17px}
  .ff-foot{position:sticky;bottom:-18px;background:var(--paper,#fff);padding-bottom:6px;margin-bottom:-6px}
  .ff-foot .done{display:inline-block;background:var(--ink);color:#fff;border-radius:3px;padding:12px 26px;text-decoration:none;font-size:15px;letter-spacing:.04em}
}
/* compact pass (1 Oct) */
.ff{margin-top:26px}
.ff-countries{gap:4px 24px;padding-top:0}
.ff-countries button{font-size:21px;padding:12px 0 10px}
.ff-countries button sup{font-size:11px}
.ff-bar{padding:12px 0}
.ff-dd>button{font-size:14px;padding:8px 13px;gap:7px}
.ff-panel{top:calc(100% + 8px);min-width:0;padding:12px 16px 10px}
.ff-dd[data-key="area"] .ff-panel{width:440px}
.ff-dd[data-key="exp"] .ff-panel,.ff-dd[data-key="vtype"] .ff-panel{width:380px}
.ff-panel h4{margin:10px 0 2px;font-size:10.5px}
.ff-opts{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:0 18px}
.ff-opt{padding:5px 0;font-size:15px;gap:9px}
.ff-opt input{width:15px;height:15px}
.ff-foot{margin-top:6px;padding-top:8px;font-size:13px}
.ff-active{padding-bottom:12px;gap:6px}
.ff-tag{font-size:13px;padding:6px 7px 6px 11px}
@media(max-width:700px){
  .ff{margin-top:20px}
  .ff-countries{gap:18px}
  .ff-countries button{font-size:17px;padding:10px 0 8px}
  .ff-bar{padding:10px 0 8px;gap:8px}
  .ff-dd>button{font-size:13.5px;padding:7px 11px}
  .ff-count{font-size:13px}
  .ff-panel{top:auto;max-height:62vh;padding:16px var(--gut,20px) 12px}
  .ff-opts{grid-template-columns:1fr 1fr;gap:0 16px}
  .ff-opt{padding:8px 0;font-size:15px}
  .ff-opt .c{font-size:12px}
  .ff-dd[data-key="area"] .ff-opts,.ff-dd[data-key="budget"] .ff-opts{grid-template-columns:1fr 1fr}
  .ff-foot{margin-top:6px;padding-top:10px;bottom:-12px}
  .ff-foot .done{padding:10px 20px;font-size:14px}
  .ff-active{padding-bottom:10px}
}
/* packages page, desktop and tablet: the same tight card as the experience pages — pills stay, the button goes (1 Oct) */
#catgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:36px 24px}
@media(max-width:1100px){#catgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
#catgrid .pcard{min-width:0}
#catgrid .pcard h3{min-height:0;font-size:18px;margin-top:10px}
#catgrid .pcard .where{margin-bottom:0}
#catgrid .pcard .venue{font-size:14px;line-height:1.4;margin-top:6px;color:var(--muted)}
#catgrid .pcard .chips{display:flex;margin:10px 0 0}
#catgrid .pcard .go{display:none}
#catgrid .pcard .price{margin-top:8px}
@media(max-width:700px){
  /* two experiences side by side: photo, title, place, venue, price. Pills and the button stay on the experience page. */
  #catgrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px 12px}
  #catgrid .pcard{min-width:0}
  #catgrid .pcard h3{font-size:16px;line-height:1.25;min-height:0;margin-top:9px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  #catgrid .pcard .where{font-size:10.5px;letter-spacing:.08em;margin-top:5px}
  #catgrid .pcard .venue{font-size:13px;margin-top:5px;line-height:1.35;color:var(--muted)}
  #catgrid .pcard .chips,#catgrid .pcard .go{display:none}
  #catgrid .pcard .price{margin-top:auto;padding-top:8px;border:0;display:flex;align-items:baseline;justify-content:space-between;gap:6px}
  #catgrid .pcard .price .from{font-size:10px;letter-spacing:.12em;display:inline}
  #catgrid .pcard .price .amt{font-size:16px;display:inline;margin-top:0}
}
/* home: one row of already-designed packages, packages block, intro (1 Oct 2026) */
/* compact card: photo, title, place, price. Pills and the button live on the experience page */
.hx .pcard{min-width:0}
.hx .pcard h3{font-size:17px;line-height:1.25;min-height:0;margin-top:10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.hx .pcard .where{font-size:11px;letter-spacing:.09em;margin-top:5px}
.hx .pcard .chips,.hx .pcard .go{display:none}
.hx .pcard .price{margin-top:auto;padding-top:9px;border:0;display:flex;align-items:baseline;justify-content:space-between;gap:6px}
.hx .pcard .price .from{display:inline;font-size:10px;letter-spacing:.12em}
.hx .pcard .price .amt{display:inline;font-size:17px;margin-top:0}
@media(min-width:701px){.hx .pcard h3{font-size:18px}}   /* one title size on every grid of experiences, as on the packages page (3 Oct) */
.hx-count{margin:0 0 14px}
.hx-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 22px;margin-top:clamp(26px,3vw,40px)}
@media(max-width:960px){.hx-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.hx-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 12px}
  .hx .pcard h3{font-size:16px}.hx .pcard .where{font-size:10.5px;letter-spacing:.08em}.hx .pcard .price .amt{font-size:16px}}
.hx-rows{margin-top:clamp(26px,3vw,40px);display:grid;grid-template-columns:minmax(0,1fr);gap:28px}
.hx-stage{min-width:0}
.hx-stage{position:relative}
.hx-row{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding-bottom:2px}
.hx-row::-webkit-scrollbar{display:none}
.hx-row .pcard{flex:0 0 clamp(200px,22vw,250px);scroll-snap-align:start}
@media(max-width:700px){.hx-row{gap:12px;margin-inline:calc(-1 * var(--gut,16px));padding-inline:var(--gut,16px);scroll-padding-inline:var(--gut,16px)}
  .hx-row .pcard{flex-basis:42vw}}
.hx-all .shot{display:grid;place-items:center;text-align:center;background:var(--ink);color:#fff;font-size:15px;letter-spacing:.14em;text-transform:uppercase;line-height:1.7}
.hx-all .shot b{font-family:var(--display);font-weight:400;font-size:54px;letter-spacing:0;line-height:1.1}
.hx-all h3{color:var(--muted)}
.hx-arrow{position:absolute;top:130px;transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid var(--ink);
  background:var(--paper);color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:background .18s,color .18s}
.hx-arrow svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4}
.hx-arrow:hover{background:var(--ink);color:#fff}
.hx-arrow.prev{left:-10px}.hx-arrow.next{right:-10px}
@media(max-width:700px){.hx-arrow{width:38px;height:38px;top:calc(42vw * .625);box-shadow:0 2px 10px rgba(20,16,10,.14)}
  .hx-arrow.prev{left:calc(var(--gut,16px) - 4px)}.hx-arrow.next{right:calc(var(--gut,16px) - 4px)}
  .hx-arrow svg{width:17px;height:17px}
  .hcountry .frow{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * var(--gut,16px));padding-inline:var(--gut,16px)}
  .hcountry .frow::-webkit-scrollbar{display:none}.hcountry .flabel,.hcountry .chip{flex:0 0 auto;white-space:nowrap}}
/* B: a slim switch, two halves side by side, no lists */
.pkB{padding:clamp(30px,5vw,52px) 0 clamp(6px,2vw,16px)}
.pkB .pkh{margin:0 0 26px}
.pkB .sw{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line)}
.pkB .sw a{display:block;padding:16px 16px 15px;text-decoration:none;color:var(--ink);transition:background .18s}
.pkB .sw a + a{border-left:1px solid var(--line)}
.pkB .sw a:hover{background:var(--stone)}
.pkB .sw small{display:block;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.pkB .sw b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(20px,3vw,26px);line-height:1.15}
.pkB .sw span{display:block;font-size:14px;line-height:1.4;color:var(--body-ink);margin-top:6px}
.pkB .sw em{font-style:normal;display:block;margin-top:10px;font-size:13px;color:var(--muted)}
.pkB .sw em::after{content:" →"}
@media(min-width:701px){.pkB .sw a{padding:30px 32px 28px}
  .pkB{padding-bottom:clamp(44px,6vw,84px)}
  .pkB .sw small{font-size:11.5px}.pkB .sw b{font-size:32px}.pkB .sw span{font-size:17px;margin-top:8px}.pkB .sw em{font-size:15px;margin-top:14px}}
@media(max-width:700px){
  .home-copy{padding-block:72px 40px}
  .pkB{padding-top:72px}
}
@media (prefers-reduced-motion: reduce){*{transition:none !important;animation:none !important}}
