/* Private Tour in Barcelona: tour detail pages. Generated by final/build-detail.mjs, do not edit by hand.
   Palette "Midnight & Champagne"; Fraunces (display) + Manrope (UI). Tokens, header, footer, buttons, hairlines,
   FAQ accordion and closing CTA are the homepage's (final/build.mjs). */
:root{
  --navy:#0E1B2C; --navy-2:#142438; --navy-3:#1C3048; --navy-4:#2A4160;
  --champ:#C8A96A; --champ-d:#9C7B40; --champ-l:#E3CD9E; --champ-100:#EFE4CC; --champ-50:#F8F2E6;
  --ivory:#F5F1EA; --ivory-2:#ECE6DA;
  --teal:#1F6F6B; --teal-d:#185955;
  --white:#FFFFFF;
  --ink:#0E1B2C; --ink-2:#394656; --ink-3:#56606E;
  --on-dark:#F5F1EA; --on-dark-2:rgba(245,241,234,.78); --on-dark-3:rgba(245,241,234,.62);
  --hair:rgba(14,27,44,.12); --hair-dark:rgba(200,169,106,.26);
  --rule:rgba(200,169,106,.7); --rule-dark:rgba(200,169,106,.45);
  --r-card:24px; --r-media:28px; --r-field:14px;
  --shadow:0 1px 2px rgba(14,27,44,.05),0 18px 40px -18px rgba(14,27,44,.22);
  --shadow-lg:0 2px 4px rgba(14,27,44,.06),0 32px 64px -24px rgba(14,27,44,.34);
  --wrap:1280px; --gut:40px;
  /* height of the navy "shelf" the gallery and booking card sit on at the top of .dstage; the hero photo layer
     runs down through it so the title band and the shelf read as one background */
  --shelf:220px;
  --serif:"Fraunces", Georgia, serif; --sans:"Manrope", system-ui, sans-serif;
  --t1:88px; --t2:58px; --t3:40px; --t4:28px; --t5:22px; --t6:18px;
  --w-display:320; --w-title:380; --w-small:420;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;font-weight:500;-webkit-font-smoothing:antialiased;text-wrap:pretty}
img{display:block;max-width:100%;height:auto}
figure{margin:0}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;font-family:var(--serif);font-weight:var(--w-title);font-optical-sizing:auto;font-variation-settings:"SOFT" 40;letter-spacing:-.018em;line-height:1.06;text-wrap:balance}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.site-header :focus-visible,.dtop :focus-visible,.cta :focus-visible,.footer :focus-visible,.mbar :focus-visible{outline-color:var(--champ-l)}
.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.wrap{max-width:calc(var(--wrap) + var(--gut)*2);margin:0 auto;padding:0 var(--gut)}
.nw{white-space:nowrap}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
a.sr-only:focus{left:16px;top:16px;z-index:100;width:auto;height:auto;margin:0;padding:12px 18px;overflow:visible;clip:auto;white-space:normal;background:var(--ivory);color:var(--navy);border-radius:12px;font-weight:700;box-shadow:var(--shadow-lg)}
.sm-only{display:none}
.eyebrow{font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);display:inline-flex;align-items:center;flex-wrap:wrap;gap:0 12px}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.7}
.eyebrow--light{color:var(--champ-l)}
.h2{font-size:var(--t2);font-weight:var(--w-display)}
.h2 em{font-style:italic;font-weight:var(--w-display)}

/* champagne hairline above every section heading */
.hair{position:relative;border-top:1px solid var(--rule);padding-top:40px}
.hair::before{content:"";position:absolute;left:0;top:-4px;width:7px;height:7px;background:var(--champ);transform:rotate(45deg)}
.sec-head{margin-bottom:48px}
/* inset champagne frame on large feature photos */
.frame{position:relative}
.frame::after{content:"";position:absolute;inset:12px;border:1px solid rgba(227,205,158,.72);border-radius:12px;pointer-events:none}

/* buttons */
.btn{border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:52px;padding:0 26px;border-radius:999px;font:700 15.5px/1 var(--sans);letter-spacing:.01em;white-space:nowrap;transition:transform .2s ease,background .2s ease,box-shadow .2s ease,color .2s ease}
.btn .ic{width:18px;height:18px}
.btn:active{transform:translateY(1px)}
.btn--gold{background:var(--champ);color:var(--navy)}
.btn--gold:hover{background:var(--champ-l)}
.btn--line{color:var(--navy);box-shadow:inset 0 0 0 1px rgba(14,27,44,.3)}
.btn--line:hover{box-shadow:inset 0 0 0 1px var(--teal);color:var(--teal)}
.btn--ghost-light{color:var(--ivory);box-shadow:inset 0 0 0 1px rgba(245,241,234,.5)}
.btn--ghost-light:hover{box-shadow:inset 0 0 0 1px var(--champ);color:var(--champ-l)}
.btn--lg{height:60px;padding:0 32px;font-size:16.5px}
.link-arrow{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:700;font-size:15.5px;color:var(--teal)}
.link-arrow .ic{width:18px;height:18px;transition:transform .2s}
.link-arrow:hover .ic{transform:translateX(3px)}

/* ---------- header (the homepage's, on a solid navy band instead of over the hero photo) ---------- */
.site-header{position:relative;z-index:20;color:var(--ivory)}
.site-header__bar{position:relative;display:flex;align-items:center;gap:32px;height:96px}
.site-header__bar::after{content:"";position:absolute;left:var(--gut);right:var(--gut);bottom:0;height:1px;background:rgba(200,169,106,.26)}
.logo{display:inline-flex;align-items:center;gap:14px;flex:none;min-height:48px}
.logo__mark{width:48px;height:48px}
.logo__text{display:flex;flex-direction:column;line-height:1}
.logo__name{font-family:var(--serif);font-size:23px;font-weight:var(--w-small);letter-spacing:-.01em;font-variation-settings:"SOFT" 60}
.logo__sub{font-size:10.5px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--champ);margin-top:6px}
.nav{display:flex;gap:28px;margin-left:auto}
.nav a{font-size:14.5px;font-weight:600;color:rgba(245,241,234,.9);padding:6px 0;white-space:nowrap}
.nav a:hover{color:var(--champ-l)}
.header-actions{display:flex;align-items:center;gap:20px}
.header-wa{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14.5px;font-weight:700;white-space:nowrap}
.header-wa .ic{color:var(--champ)}
.header-actions .btn{height:46px;padding:0 22px;font-size:14.5px}
.menu-btn{display:none}

/* ---------- detail hero: navy band with breadcrumb, category, title and facts, the tour's own first photo
   behind it. .dtitle caps at 22ch, so on desktop the photo's right side carries no text at all — same situation
   as the homepage hero, so it gets the same fix: a left-to-right shade (strong behind the text, fading out
   toward the right) instead of one flat tint everywhere, which was flattening real photo detail into what read
   as a blank patch on the right regardless of viewport width (that was never really a cropping problem: cover
   always shows this band's full photo width, so a "wide screen" theory doesn't hold once you shade it evenly —
   what's on the right is just genuinely part of the photo, made illegible by a uniform 86% tint). ---------- */
/* The photo layers (navy base, photo, shade) run past the bottom of .dtop by var(--shelf), down through the
   navy shelf at the top of .dstage, so the band and the shelf behind the gallery are one continuous background
   instead of photo above a hard seam and flat navy below it. .dstage is lifted above them (z-index:1, see below)
   and its shelf made transparent, so the gallery and booking card still sit on top. */
.dtop{position:relative;background:var(--navy);color:var(--ivory)}
.dtop::before{content:"";position:absolute;left:0;right:0;top:0;bottom:calc(var(--shelf) * -1);background:var(--navy)}
/* belt-and-braces cap for genuinely ultrawide monitors: past 1920px, cover would otherwise keep stretching this
   short a photo across the extra width, thinning the vertical slice it can show. Inert below 1920px. */
/* an <img> is a replaced element, so top+bottom would not stretch it (it keeps its own aspect ratio): the height
   has to be set explicitly, .dtop's height plus the shelf */
.dtop__img{position:absolute;top:0;left:50%;width:100%;max-width:1920px;height:calc(100% + var(--shelf));transform:translateX(-50%);object-fit:cover;object-position:50% 38%}
.dtop__shade{position:absolute;top:0;right:0;left:0;bottom:calc(var(--shelf) * -1);z-index:1;background:
  linear-gradient(90deg,rgba(14,27,44,.92) 0%,rgba(14,27,44,.82) 38%,rgba(14,27,44,.4) 60%,rgba(14,27,44,.22) 100%),
  linear-gradient(180deg,rgba(14,27,44,.5) 0%,rgba(14,27,44,.12) 30%,rgba(14,27,44,.12) 70%,rgba(14,27,44,.45) 100%)}
/* site-header must out-rank dhead, not tie with it: dhead comes later in DOM, so an equal z-index let its
   title/facts text paint over the open mobile nav dropdown (a site-header descendant) instead of under it */
.dtop>.dhead{position:relative;z-index:1}
.dtop>.site-header{position:relative;z-index:3}
.dhead{padding-top:28px;padding-bottom:44px}
.crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;font-size:14px;font-weight:600;color:var(--on-dark-3)}
.crumbs li{display:inline-flex;align-items:center;min-width:0}
.crumbs li+li::before{content:"/";margin:0 12px;color:rgba(200,169,106,.7)}
.crumbs a{display:inline-flex;align-items:center;min-height:32px;color:var(--on-dark-2)}
.crumbs a:hover{color:var(--champ-l)}
.crumbs [aria-current]{color:var(--champ-l)}
.dhead .eyebrow{margin-top:40px}
.eyebrow__sep{color:var(--champ);opacity:.8}
.dtitle{font-size:60px;line-height:1.04;font-weight:var(--w-display);letter-spacing:-.024em;max-width:22ch;margin:18px 0 26px;font-variation-settings:"SOFT" 50;color:var(--ivory)}
.dfacts{display:flex;flex-wrap:wrap;align-items:center;gap:12px 0;font-size:15.5px;font-weight:600;color:rgba(245,241,234,.92)}
.dfacts li{display:inline-flex;align-items:center;gap:10px;padding:0 24px;border-left:1px solid rgba(200,169,106,.4);white-space:nowrap}
.dfacts li:first-child{padding-left:0;border-left:0}
.dfacts .ic{width:19px;height:19px;color:var(--champ)}
.dfacts strong{color:var(--ivory);font-weight:800}

/* ---------- stage: gallery + booking card sit across the navy/ivory edge ---------- */
/* the shelf is transparent: the hero photo layers from .dtop show through it (see .dtop above) */
.dstage{position:relative;z-index:1;background:linear-gradient(180deg,transparent 0,transparent var(--shelf),var(--ivory) var(--shelf))}
.dgrid{display:grid;grid-template-columns:minmax(0,1fr) 392px;grid-template-rows:auto 1fr;column-gap:56px}
.dgal{grid-column:1;grid-row:1;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);grid-template-rows:238px 238px;gap:10px}
.dgal__item{position:relative;overflow:hidden;border-radius:14px;background:var(--navy-3)}
.dgal__item img{width:100%;height:100%;object-fit:cover}
.dgal__item--1{grid-column:1;grid-row:1/3;border-radius:22px 14px 14px 22px}
.dgal--3 .dgal__item--2{grid-column:2/4;grid-row:1}
.dgal--3 .dgal__item--3{grid-column:2/4;grid-row:2}
.dgal--4 .dgal__item--2{grid-column:2;grid-row:1}
.dgal--4 .dgal__item--3{grid-column:3;grid-row:1}
.dgal--4 .dgal__item--4{grid-column:2/4;grid-row:2}
.dgal--2 .dgal__item--2{grid-column:2/4;grid-row:1/3}
.dgal--1 .dgal__item--1{grid-column:1/4}
.dgal__badge{position:absolute;z-index:2;left:24px;top:24px;display:inline-flex;align-items:center;height:32px;padding:0 15px;border-radius:999px;background:var(--navy);color:var(--champ-l);font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;box-shadow:inset 0 0 0 1px rgba(200,169,106,.6)}

/* booking card: sticky beside the content on desktop */
.dside{grid-column:2;grid-row:1/3}
.book{position:sticky;top:24px;background:var(--white);border-radius:var(--r-card);padding:30px 32px 26px;box-shadow:var(--shadow-lg);border:1px solid rgba(200,169,106,.4);scroll-margin-top:24px}
.book__label{font-size:12.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.book__price{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:12px}
.book__num{font-family:var(--serif);font-size:56px;font-weight:var(--w-title);letter-spacing:-.025em;line-height:.95;color:var(--navy);font-variant-numeric:lining-nums}
.book__unit{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-d)}
.book__split{margin-top:14px;padding-top:14px;border-top:1px solid var(--hair);font-size:14.5px;font-weight:700;color:var(--ink-3)}
.book__btns{display:grid;gap:12px;margin-top:24px}
.book__btns .btn{width:100%}
.book__btns .btn--line .ic{color:var(--teal)}
.book__trust{display:grid;gap:12px;margin-top:22px;padding-top:20px;border-top:1px solid var(--hair);font-size:15px;line-height:1.45;color:var(--ink-2)}
.book__trust li{display:flex;gap:12px;align-items:flex-start}
.book__trust .ic{width:20px;height:20px;color:var(--teal);margin-top:1px}
.book__trust strong{color:var(--navy);font-weight:800}
.book__trust a{color:var(--teal);font-weight:800;white-space:nowrap;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(31,111,107,.35)}
.book__twin{margin-top:20px;padding:16px 18px 4px;border-radius:16px;background:var(--champ-50);box-shadow:inset 0 0 0 1px rgba(200,169,106,.45);font-size:14.5px;line-height:1.5;color:var(--ink-2)}
.book__twin strong{color:var(--navy)}
.book__twin .link-arrow{display:flex;font-size:14.5px}

/* ---------- content sections ---------- */
.dmain{grid-column:1;grid-row:2;min-width:0}
.dsec{padding-top:80px}
.dsec__title{font-size:var(--t3);font-weight:var(--w-display);padding-top:34px;margin-bottom:28px}
.dsec__title em{font-style:italic;font-weight:var(--w-display)}
.dsec__note{margin:-12px 0 28px;font-size:15px;font-weight:700;color:var(--ink-3)}
.dlede{font-family:var(--serif);font-size:var(--t5);line-height:1.5;font-weight:var(--w-title);color:var(--navy);font-variation-settings:"SOFT" 60;max-width:40em;margin-bottom:22px}
.prose{max-width:68ch}
.prose p,.prose li{font-size:17.5px;line-height:1.72;color:var(--ink-2)}
.prose p+p,.prose p+ul,.prose ul+p,.prose p+ol,.prose ol+p,.prose h3+p{margin-top:18px}
.prose h3{font-size:var(--t5);margin-top:30px}
.prose strong{color:var(--navy);font-weight:700}
.prose a{color:var(--teal);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.prose__list{display:grid;gap:8px;padding-left:22px;list-style:disc}
.prose__list--num{list-style:decimal}
.droute{display:flex;gap:12px;margin-top:14px;padding:18px 22px;border-radius:18px;background:var(--white);box-shadow:inset 0 0 0 1px rgba(200,169,106,.45)}
.prose .droute{font-size:16px;line-height:1.6;font-weight:700;color:var(--navy)}
.droute .ic{width:20px;height:20px;margin-top:3px;color:var(--champ-d)}
.droute__sep{color:var(--champ-d);font-weight:800}

/* itinerary: numbered nodes on a champagne line; hotel pick-up and drop-off get the vehicle */
.tl{position:relative;display:grid}
.tl__stop{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);gap:24px;padding-bottom:30px}
.tl__stop:last-child{padding-bottom:0}
.tl__stop:not(:last-child)::before{content:"";position:absolute;left:23.5px;top:54px;bottom:6px;width:1px;background:linear-gradient(var(--champ),rgba(200,169,106,.2))}
.tl__node{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--white);box-shadow:inset 0 0 0 1px var(--champ);font-family:var(--serif);font-style:italic;font-size:20px;line-height:1;color:var(--champ-d);font-variant-numeric:lining-nums}
.tl__stop--hotel .tl__node{background:var(--navy);box-shadow:none;color:var(--champ)}
.tl__node .ic{width:21px;height:21px}
.tl__body{padding-top:9px}
.tl__name{font-size:var(--t5);font-weight:var(--w-small);line-height:1.25;color:var(--navy)}
.tl__body p{margin-top:8px;font-size:16.5px;line-height:1.65;color:var(--ink-2);max-width:62ch}

/* included / not included */
.incl{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:0;border-radius:var(--r-card);background:var(--white);box-shadow:var(--shadow);overflow:hidden}
.incl__col{padding:32px 34px}
.incl__col--not{background:var(--champ-50);box-shadow:inset 1px 0 0 rgba(200,169,106,.35)}
.incl__head{font-family:var(--sans);font-size:13px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-d);margin-bottom:18px}
.incl__col--not .incl__head{color:var(--ink-3)}
.incl__list{display:grid;gap:13px}
.incl__list li{display:flex;gap:12px;align-items:flex-start;font-size:16px;line-height:1.5;color:var(--ink-2)}
.incl__list .ic{width:19px;height:19px;margin-top:2px;color:var(--teal)}
.incl__col--not .incl__list li,.incl__col--not .incl__list .ic{color:var(--ink-3)}

/* FAQ accordion (the homepage's) */
.acc{border-radius:var(--r-card);background:var(--white);box-shadow:var(--shadow);padding:8px 36px}
.acc details{border-bottom:1px solid var(--hair)}
.acc details:last-child{border-bottom:0}
.acc summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;cursor:pointer;font-family:var(--serif);font-size:var(--t5);line-height:1.3;font-weight:var(--w-small);color:var(--navy)}
.acc summary::-webkit-details-marker{display:none}
.acc__tog{width:36px;height:36px;border-radius:50%;flex:none;display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(200,169,106,.7);color:var(--champ-d);transition:transform .25s ease,background .25s}
.acc__tog .ic{width:18px;height:18px}
.acc details[open] .acc__tog{transform:rotate(45deg);background:var(--champ);color:var(--navy)}
.acc details p{max-width:62ch;font-size:16.5px;line-height:1.65;color:var(--ink-2);padding:0 64px 26px 0;margin-top:-6px}

/* ---------- you may also like ---------- */
.section{padding:120px 0}
.rel{padding-bottom:104px}
.rel .sec-head{margin-bottom:40px}
.rel__title{font-size:var(--t2)}
.rel__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.rcard{position:relative;display:flex;flex-direction:column;border-radius:var(--r-card);overflow:hidden;background:var(--white);box-shadow:var(--shadow);transition:box-shadow .25s ease,transform .25s ease}
.rcard:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.rcard__media{aspect-ratio:16/10;overflow:hidden;background:var(--navy-3)}
.rcard__media img{width:100%;height:100%;object-fit:cover}
.rcard__body{display:flex;flex-direction:column;flex:1;padding:22px 26px 24px}
.rcard__cat{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.rcard__title{font-size:var(--t5);font-weight:var(--w-small);line-height:1.22;margin:10px 0 14px;color:var(--navy)}
.rcard__title a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.rcard:hover .rcard__title a{color:var(--teal)}
.rcard__meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:18px;font-size:14px;font-weight:700;color:var(--ink-2)}
.rcard__meta li{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.rcard__meta .ic{width:18px;height:18px;color:var(--teal)}
.rcard__foot{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin-top:auto;padding-top:18px;border-top:1px solid var(--hair)}
.rcard__price{font-family:var(--serif);font-size:var(--t4);font-weight:var(--w-title);line-height:1;color:var(--navy);letter-spacing:-.015em;font-variant-numeric:lining-nums}
.rcard__unit{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-d)}
.rcard__go{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:15px;font-weight:700;color:var(--teal)}
.rcard__go .ic{width:18px;height:18px}

/* ---------- closing CTA (the homepage's) ---------- */
.cta-sec{padding:0 0 120px}
.cta{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);border-radius:var(--r-media);overflow:hidden;background:var(--navy);color:var(--ivory);box-shadow:var(--shadow-lg);min-height:520px}
.cta__photo{margin:12px 0 12px 12px;border-radius:20px;overflow:hidden}
.cta__photo img{width:100%;height:100%;object-fit:cover;object-position:30% 50%}
.cta__body{display:flex;flex-direction:column;justify-content:center;padding:56px 48px}
.cta .h2 span,.cta .h2 em{display:block}
.cta .h2 em{padding-bottom:6px;color:var(--champ-l)}
.cta .h2{color:var(--ivory)}
.cta p{font-size:17.5px;line-height:1.6;color:rgba(245,241,234,.86);margin:22px 0 34px;max-width:40ch}
.cta__btns{display:flex;flex-direction:column;align-items:flex-start;gap:14px}

/* ---------- footer (the homepage's) ---------- */
.footer{background:var(--navy);color:var(--on-dark);padding:96px 0 40px}
.footer__top{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:80px;padding-bottom:64px;border-bottom:1px solid var(--hair-dark)}
.footer__tag{font-size:15.5px;line-height:1.65;color:var(--on-dark-2);margin:24px 0 20px;max-width:40ch}
.footer__contact{display:grid;gap:0}
.footer__contact a{display:flex;align-items:center;gap:12px;min-height:44px;font-weight:700;font-size:15.5px;overflow-wrap:anywhere}
.footer__contact .ic{color:var(--champ)}
.footer__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.footer__cols h3{font-family:var(--sans);font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--champ);margin-bottom:10px;text-wrap:initial}
.footer__cols ul{display:grid;gap:0}
.footer__cols a{display:inline-block;min-width:44px;padding:10px 0;line-height:24px;font-size:15px;color:var(--on-dark-2);font-weight:600}
.footer__cols a:hover{color:var(--champ-l)}
.footer__cols small{color:var(--on-dark-3);font-weight:600;font-size:13.5px}
.footer__bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:32px;font-size:14px;color:var(--on-dark-3);font-weight:600}
.footer__trust{display:flex;flex-wrap:wrap;gap:8px 28px}
.footer__trust li{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.footer__trust .ic{width:17px;height:17px;color:var(--champ)}

/* phones: slim booking bar once the booking card has scrolled away (shown by the page script) */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px calc(10px + env(safe-area-inset-bottom));background:var(--navy);color:var(--ivory);box-shadow:0 -12px 32px -12px rgba(0,0,0,.45);border-top:1px solid rgba(200,169,106,.35)}
.mbar[hidden]{display:none}
.mbar__price{font-size:14px;font-weight:700;color:var(--on-dark-2)}
.mbar__price strong{font-family:var(--serif);font-size:24px;font-weight:var(--w-title);color:var(--champ-l);margin-right:4px}
.mbar .btn{height:46px;padding:0 20px;font-size:15px}

/* site-wide floating WhatsApp button: fixed to the viewport, follows scroll on every page.
   A soft pulsing ring (::before, behind the icon) keeps it eye-catching without being loud. */
.wa-float{position:fixed;right:24px;bottom:24px;z-index:45;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(150deg,var(--teal),var(--teal-d));color:var(--white);border:2px solid rgba(245,241,234,.85);box-shadow:0 12px 28px -8px rgba(0,0,0,.45),0 4px 16px -2px rgba(31,111,107,.6),inset 0 1px 1px rgba(255,255,255,.25);transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease}
.wa-float::before{content:"";position:absolute;inset:-3px;border-radius:50%;background:var(--teal);opacity:.5;z-index:-1;animation:wa-pulse 2.6s cubic-bezier(.4,0,.6,1) infinite}
.wa-float:hover,.wa-float:focus-visible{transform:scale(1.1) translateY(-2px);box-shadow:0 16px 34px -8px rgba(0,0,0,.5),0 6px 20px -2px rgba(31,111,107,.75),inset 0 1px 1px rgba(255,255,255,.3)}
.wa-float .ic{position:relative;width:30px;height:30px;stroke-width:1.7;filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}
@keyframes wa-pulse{0%{transform:scale(1);opacity:.5}70%,100%{transform:scale(1.9);opacity:0}}

/* ================= responsive ================= */
@media (min-width:761px){.mbar{display:none!important}}
@media (min-width:761px) and (max-width:1359px){
  .nav{gap:24px}
  .cta{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media (max-width:1180px){
  .nav{gap:20px}.header-wa span{display:none}
  :root{--t2:50px}
  .dgrid{grid-template-columns:minmax(0,1fr) 360px;column-gap:40px}
  .dtitle{font-size:54px}
}
@media (max-width:1024px){
  .nav,.header-wa{display:none}
  .menu-btn{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(245,241,234,.4);color:var(--ivory);margin-left:auto;background:transparent;border:0;cursor:pointer}
  .header-actions{margin-left:0}
  .site-header[data-open] .nav{display:flex;flex-direction:column;gap:0;position:absolute;top:100%;left:var(--gut);right:var(--gut);margin:0;padding:6px 24px 12px;background:var(--navy);border-radius:0 0 20px 20px;box-shadow:0 24px 48px -16px rgba(0,0,0,.5)}
  .site-header[data-open] .nav a{display:flex;align-items:center;min-height:48px;padding:0;font-size:16px;border-bottom:1px solid var(--hair-dark)}
  .site-header[data-open] .nav a:last-child{border-bottom:0}
  /* facts: the row may wrap here, so gaps instead of hairline separators (a wrapped line would start with one) */
  .dfacts{gap:10px 30px}
  .dfacts li{padding:0;border-left:0}
  /* one column: gallery, then the booking card (price, buttons and trust side by side), then the content */
  .dgrid{grid-template-columns:minmax(0,1fr)}
  .dgal,.dside,.dmain{grid-column:1;grid-row:auto}
  .dside{margin-top:24px}
  .book{position:static;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:40px;align-items:start}
  .book__label{grid-column:1;grid-row:1}
  .book__price{grid-column:1;grid-row:2}
  .book__split{grid-column:1;grid-row:3}
  .book__btns{grid-column:2;grid-row:1/4;margin-top:0;align-self:center}
  .book__trust{grid-column:1;grid-row:4;margin-top:20px}
  .book__twin{grid-column:2;grid-row:4;align-self:end}
  .rel__grid{gap:20px}
  .rcard__body{padding:20px 22px 22px}
  .cta{grid-template-columns:minmax(0,1fr);min-height:0}
  .cta__photo{margin:12px 12px 0;height:340px}
  .cta__body{padding:44px 44px 48px}
  .cta__btns{flex-direction:row;flex-wrap:wrap}
}
@media (min-width:761px) and (max-width:900px){
  .rel__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rel__grid .rcard:nth-child(3){grid-column:1/-1;flex-direction:row}
  .rel__grid .rcard:nth-child(3) .rcard__media{aspect-ratio:auto;flex:0 0 44%}
  .footer__top{grid-template-columns:minmax(0,1fr);gap:48px}
  .incl{grid-template-columns:minmax(0,1fr)}
  .incl__col--not{box-shadow:inset 0 1px 0 rgba(200,169,106,.35)}
}
@media (max-width:760px){
  :root{--gut:20px;--t1:44px;--t2:38px;--t3:32px;--t4:25px;--t5:20px;--t6:18px;--shelf:120px}
  body{font-size:16px}
  /* the title runs close to full width here, unlike desktop, so back to one flat tint rather than the
     left-to-right fade (which would leave a real gap in contrast under whichever line runs into the lighter
     right-hand side) */
  .dtop__shade{background:rgba(14,27,44,.86)}
  /* sits above the sticky .mbar booking bar once it appears, not just above the safe-area */
  .wa-float{right:16px;bottom:88px;height:54px;width:54px}
  .wa-float .ic{width:26px;height:26px}
  .hair{padding-top:30px}
  .sec-head{margin-bottom:28px}
  .btn{white-space:normal;height:auto;min-height:48px;padding-block:10px;text-align:center;line-height:1.25}
  .site-header__bar{height:76px;gap:12px}
  .logo__mark{width:40px;height:40px}
  .logo{gap:10px;min-height:44px}
  .logo__name{font-size:19px}
  .logo__sub{font-size:9.5px;letter-spacing:.26em;margin-top:5px}
  .header-actions .btn{display:none}
  .menu-btn{width:44px;height:44px}
  .dhead{padding-top:18px;padding-bottom:30px}
  .crumbs ol{font-size:14px}
  .crumbs a{min-height:40px}
  .crumbs li+li::before{margin:0 8px}
  /* the current page is the h1 right below it, so phones show the trail up to the section only */
  .crumbs li:last-child{display:none}
  .dhead .eyebrow{margin-top:20px;font-size:12px;letter-spacing:.13em}
  .eyebrow::before{display:none}
  .dtitle{font-size:36px;line-height:1.08;margin:12px 0 20px}
  /* one row always: most tours (3 facts) fit outright; a 4th (pickup) scrolls rather than wrapping to a new line */
  .dfacts{flex-wrap:nowrap;overflow-x:auto;gap:0 20px;font-size:14px;margin:0 calc(var(--gut) * -1);padding:0 var(--gut) 4px;scrollbar-width:none}
  .dfacts::-webkit-scrollbar{display:none}
  .dfacts li{padding:0;border-left:0;flex:0 0 auto}
  .dfacts .ic{width:17px;height:17px}
  .dgal,.dgal--2,.dgal--3,.dgal--4{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto 92px;gap:8px}
  .dgal .dgal__item--1{grid-column:1/-1;grid-row:1;aspect-ratio:4/3;border-radius:18px}
  .dgal .dgal__item--2,.dgal .dgal__item--3,.dgal .dgal__item--4{grid-row:2;border-radius:12px}
  .dgal--3 .dgal__item--2{grid-column:1/3}.dgal--3 .dgal__item--3{grid-column:3}
  .dgal--4 .dgal__item--2{grid-column:1}.dgal--4 .dgal__item--3{grid-column:2}.dgal--4 .dgal__item--4{grid-column:3}
  .dgal--2 .dgal__item--2{grid-column:1/-1}
  .frame::after{inset:9px;border-radius:9px}
  .dgal__badge{left:18px;top:18px;height:30px;padding:0 13px;font-size:12px}
  .dside{margin-top:20px}
  .book{display:block;padding:24px 22px 20px}
  .book__num{font-size:48px}
  .book__split{font-size:15px}
  .book__btns{margin-top:20px}
  .book__trust{font-size:15.5px}
  .book__twin{font-size:15px}
  .dsec{padding-top:56px}
  .dsec__title{padding-top:26px;margin-bottom:22px}
  .dsec__note{margin:-8px 0 22px}
  .dlede{font-size:19px}
  .prose p,.prose li{font-size:16.5px;line-height:1.7}
  .droute{padding:16px 16px;gap:10px}
  .tl__stop{grid-template-columns:40px minmax(0,1fr);gap:16px;padding-bottom:24px}
  .tl__node{width:40px;height:40px;font-size:18px}
  .tl__stop:not(:last-child)::before{left:19.5px;top:46px}
  .tl__body{padding-top:6px}
  .tl__body p{font-size:16px}
  .incl{grid-template-columns:minmax(0,1fr);border-radius:20px}
  .incl__col{padding:24px 22px}
  .incl__col--not{box-shadow:inset 0 1px 0 rgba(200,169,106,.35)}
  .acc{padding:4px 22px}
  .acc summary{padding:20px 0;gap:16px;font-size:19px}
  .acc details p{padding-right:0;font-size:16px}
  .section{padding:64px 0}
  .rel{padding-bottom:64px}
  .rel__grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .rcard{display:grid;grid-template-columns:120px minmax(0,1fr);border-radius:20px}
  .rcard__media{aspect-ratio:auto;height:100%;min-height:140px}
  .rcard__body{padding:16px 16px 16px}
  .rcard__cat{font-size:11px;letter-spacing:.12em}
  .rcard__title{font-size:18px;margin:6px 0 10px}
  .rcard__meta{font-size:13.5px;gap:4px 12px;margin-bottom:12px}
  .rcard__meta .ic{width:16px;height:16px}
  .rcard__foot{padding-top:12px}
  .rcard__price{font-size:22px}
  .rcard__unit{font-size:11.5px}
  .rcard__go{display:none}
  .cta-sec{padding-bottom:64px}
  .cta{border-radius:24px}
  .cta__photo{margin:8px 8px 0;height:260px;border-radius:18px}
  .cta__body{padding:30px 24px}
  .cta p{font-size:16.5px;margin:18px 0 26px}
  .cta__btns{flex-direction:column;align-items:stretch}
  .cta__btns .btn{width:100%;padding:10px 18px;font-size:15.5px}
  .footer{padding:56px 0 104px}
  .footer__top{grid-template-columns:minmax(0,1fr);gap:36px;padding-bottom:36px}
  .footer__tag{margin:18px 0 12px;font-size:16px}
  .footer__contact a{font-size:16px}
  .footer__cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px}
  .footer__cols h3{margin-bottom:4px}
  .footer__cols a{font-size:16px}
  .footer__cols>div:last-child{grid-column:1/-1}
  .footer__cols>div:last-child ul{grid-template-columns:1fr 1fr;column-gap:24px}
  .lg-only{display:none}
  .sm-only{display:inline}
  .footer__bottom{flex-direction:column;align-items:flex-start;gap:16px}
  .footer__trust{flex-wrap:wrap;gap:10px 20px}
}
@media (max-width:360px){
  .rcard{grid-template-columns:96px minmax(0,1fr)}
  .dtitle{font-size:32px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}.wa-float::before{animation:none!important}html{scroll-behavior:auto}}
