/* =========================================================
   tour.html · tour detail template (page-scoped: .p-tour)
   v2: openers rotate d · a · e · a · f · e · b, then the shared finale (DESIGN.md § System v2)
   ========================================================= */
.p-tour{--t-sub:58px;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace}
.p-tour .badge .icon{width:13px;height:13px;stroke-width:2.5}
.p-tour .t-label{display:block;font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--steel);margin:32px 0 12px}

/* entrances (and the island's labels) must never widen the phone viewport */
.p-tour #main{overflow-x:clip}

/* anchors + keyboard focus must land below the sticky subnav (and, on phones, below the sticky mini-map) */
html:has(>body.p-tour){scroll-padding-top:calc(var(--hdr-offset,0px) + 74px)}
@media (max-width:999px){
  .p-tour .t-day__card,.p-tour .t-day__card :is(button,a){scroll-margin-top:calc(clamp(250px,42svh,400px) + 20px)}
}

/* yellow sections: wipe reveals instead of opacity fades (black type over yellow must never go olive).
   tour.js (yReveal) triggers these: a fully clipped element is invisible to IntersectionObserver. */
@media (prefers-reduced-motion:no-preference){
  .js .p-tour .sec--y .reveal{opacity:1;transform:translateY(26px);clip-path:inset(0 0 100% 0);transition:clip-path .9s var(--ease),transform .9s var(--ease)}
  .js .p-tour .sec--y .reveal.is-in{transform:none;clip-path:inset(-40px -40px -60px -40px)}
}

/* focus rings follow the surface they sit on: ciao.css inks them on paper/yellow sections, so dark cards inside those
   (calculator, FAQ help box, the tailor-made hotel card, the weather card) go back to yellow, and the yellow pass takes ink */
.p-tour :is(.t-calc,.t-fq__more,.t-stay--ask,.t-when) :focus-visible{outline-color:var(--y)}
.p-tour .t-bp :focus-visible{outline-color:var(--ink)}

/* in-page anchors focus the target section (tabindex=-1) so Tab continues from there: no ring round a whole section */
.p-tour #main section[tabindex="-1"]:focus{outline:none}

/* =========================================================
   HERO
   A5: the photo is never full-bleed behind the H1 with a watermark under it. It is drawn from its top-left at 125% of
   the screen width (phones: around --fx), so the top-right mark (x ≥ 82%) falls outside the frame, and the frame fades
   to solid ink at 68% of the photo's height, above the low mark (y ≥ 71%). The H1 and the pass sit on that fade.
   ========================================================= */
.p-tour .t-hero{position:relative;min-height:max(100svh,760px);display:flex;flex-direction:column;color:var(--white);background:var(--ink);overflow:hidden;isolation:isolate}
.p-tour .t-hero__media{--mw:125vw;--fx:.42;position:absolute;left:0;right:0;top:0;z-index:-3;height:min(100%,calc(var(--mw) / 1.5 * .68));overflow:hidden}
.p-tour .t-hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,12,0) 38%,rgba(11,11,12,.5) 60%,rgba(11,11,12,.86) 80%,var(--ink) 99%)}
.p-tour .t-hero__media img{position:absolute;top:0;left:0;width:var(--mw);height:auto;max-width:none;transform-origin:calc(var(--fx) * 100%) 0;opacity:0;transition:opacity .7s var(--ease)}
.p-tour .t-hero__media img.is-ld{opacity:1}
.p-tour .t-hero__shade{position:absolute;inset:0;z-index:-2;pointer-events:none;background:
  linear-gradient(180deg,rgba(11,11,12,.6) 0,rgba(11,11,12,0) 22%),
  linear-gradient(90deg,rgba(11,11,12,.62) 0,rgba(11,11,12,.16) 52%,rgba(11,11,12,0) 72%)}
.p-tour .t-hero__in{position:relative;flex:1;display:flex;flex-direction:column;padding-top:calc(var(--hdr) + 22px);padding-bottom:clamp(30px,4vw,60px)}
.p-tour .t-crumb{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:.8rem;font-weight:600;color:rgba(255,255,255,.8)}
.p-tour .t-crumb a{text-underline-offset:3px}
.p-tour .t-crumb a:hover{color:var(--y);text-decoration:underline}
.p-tour .t-crumb [aria-current]{color:var(--white)}
.p-tour .t-hero__grid{margin-top:auto;padding-top:48px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,470px);gap:clamp(24px,4vw,72px);align-items:end}
.p-tour .t-hero__tags{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-bottom:20px}
.p-tour .t-hero__badge{display:inline-flex;align-items:center;padding:.4rem .78rem;border-radius:999px;background:var(--y);color:var(--ink);font-weight:800;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.1}
.p-tour .t-hero__dn{display:inline-flex;align-items:center;flex-wrap:wrap;gap:10px;font-weight:700;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
.p-tour .t-hero__dn i{width:5px;height:5px;border-radius:50%;background:var(--y)}
.p-tour .t-hero__h1{font-weight:900;text-transform:uppercase;letter-spacing:-.05em;line-height:.84;font-size:clamp(3.3rem,8.4vw,9.2rem);text-wrap:balance;text-shadow:0 12px 50px rgba(0,0,0,.35)}
.p-tour .t-hero__sl{display:inline-block;font-size:.84em;line-height:1.05;color:var(--y);transform:rotate(-4deg) translateY(.03em);padding-right:.1em;white-space:nowrap}
.p-tour .t-hero__tag{margin-top:22px;font-size:clamp(1.05rem,1.45vw,1.3rem);font-weight:500;line-height:1.45;color:rgba(255,255,255,.92);max-width:44ch;text-shadow:0 1px 2px rgba(0,0,0,.45),0 4px 22px rgba(0,0,0,.5)}
.p-tour .t-hero__acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;align-items:center}
.p-tour .t-hero__count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:999px;background:var(--ink);color:var(--y);font-size:.74rem}
.p-tour .t-hero__acts .btn--light:hover .t-hero__count{background:var(--white);color:var(--ink)}
.p-tour .t-hero .btn--ghost{color:var(--white)}
.p-tour .t-hero__ico{width:52px;height:52px;background:rgba(11,11,12,.5);color:var(--white);box-shadow:none;border:1.5px solid rgba(255,255,255,.4)}
.p-tour .t-hero__ico:hover{background:var(--y);color:var(--ink);border-color:var(--y)}
.p-tour .t-hero__ico[aria-pressed="true"]{background:var(--y);color:var(--ink);border-color:var(--y)}
.p-tour .t-hero__ico[aria-pressed="true"] svg{fill:currentColor}
@media (prefers-reduced-motion:no-preference){
  .p-tour .t-hero__media img{animation:tKen 16s cubic-bezier(.2,.6,.2,1) both}
  .p-tour .t-hero__copy>*{animation:tUp 1s var(--ease) both}
  .p-tour .t-hero__copy>:nth-child(2){animation-delay:.08s}.p-tour .t-hero__copy>:nth-child(3){animation-delay:.18s}.p-tour .t-hero__copy>:nth-child(4){animation-delay:.26s}
  .p-tour .t-hero__pass{animation:tPass 1.1s var(--ease-back) .3s both}
}
/* zooming in (scale ≥ 1) only ever crops more: the marks stay out of frame */
@keyframes tKen{from{transform:scale(1.12)}to{transform:scale(1)}}
@keyframes tUp{from{opacity:0;transform:translateY(40px)}}
@keyframes tPass{from{opacity:0;transform:translateY(70px) rotate(5deg)}}

/* hero boarding pass (the page's one pass: a bookable tour) */
.p-tour .t-hero__pass{filter:drop-shadow(0 34px 40px rgba(0,0,0,.5))}
/* desktop: the pass ends above the dock's corner (bottom-right 78px) */
@media (min-width:1000px){.p-tour .t-hero__in{padding-bottom:92px}}
.p-tour .t-bp{transform:rotate(-2deg);transform-origin:70% 100%}
.p-tour .t-bp .pass__main{display:flex;flex-direction:column;gap:10px;padding:20px 22px 18px}
.p-tour .t-bp__row{display:flex;justify-content:space-between;gap:10px}
.p-tour .t-bp__fly{display:flex;align-items:center;gap:6px;margin:2px 0 4px}
.p-tour .t-bp__fly>div{display:flex;flex-direction:column;line-height:1.1}
.p-tour .t-bp .pass__label{opacity:1;color:var(--y-ink)}
.p-tour .t-bp__fly small{font-size:.7rem;font-weight:600;color:var(--y-ink);margin-top:3px}
.p-tour .t-bp .pass__code{font-size:2.5rem;letter-spacing:-.04em}
.p-tour .t-bp__to{text-align:right;align-items:flex-end}
.p-tour .t-bp__arc{position:relative;flex:1;height:2px;margin:10px 8px 0;background:repeating-linear-gradient(90deg,var(--ink) 0 6px,transparent 6px 11px)}
.p-tour .t-bp__arc svg{position:absolute;left:50%;top:50%;width:30px;height:30px;padding:4px;border-radius:50%;background:var(--ink);color:var(--y);transform:translate(-50%,-50%) rotate(45deg)}
.p-tour .t-bp__rt{display:grid;gap:6px}
.p-tour .t-bp__route{color:var(--ink)}
.p-tour .t-bp__route .route__c{font-size:.74rem;gap:4px 7px}
.p-tour .t-bp__route .route__c b{padding:3px 6px 2px;border-radius:5px;background:var(--ink);color:var(--y)}
.p-tour .t-bp__f{display:flex;justify-content:space-between;align-items:flex-end;gap:10px 16px;flex-wrap:wrap;margin-top:2px;padding-top:12px;border-top:2px dashed rgba(11,11,12,.28)}
.p-tour .t-bp__dl{display:flex;gap:22px}
.p-tour .t-bp__dl dd{font-weight:900;font-size:1.3rem;letter-spacing:-.02em;line-height:1.15}
.p-tour .t-bp__price .price__n{font-size:clamp(2.1rem,3.2vw,2.8rem)}
.p-tour .t-bp__cta{margin-top:4px}
.p-tour .t-bp__fine{font-size:.68rem;font-weight:600;line-height:1.35;color:var(--y-ink)}
.p-tour .t-bp .pass__stub{justify-content:center;gap:12px}
.p-tour .t-bp__id{font-size:1.85rem}
.p-tour .t-bp .barcode{height:64px}
.p-tour .t-bp__si{font-size:.8rem;font-weight:400}

/* the admin's preview only (tour.html?id=…&preview=1): a banner above the crumb + a corner tag that stays on screen */
.p-tour .t-pv{align-self:flex-start;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;max-width:100%;margin-bottom:16px;padding:10px 16px 10px 10px;border-radius:14px;background:var(--y);color:var(--ink);border:2.5px solid var(--ink);box-shadow:4px 4px 0 var(--ink);font-size:.86rem;line-height:1.35}
.p-tour .t-pv__k{display:inline-flex;align-items:center;gap:6px;padding:5px 10px 4px;border-radius:999px;background:var(--sl-maroon);color:var(--white);font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.p-tour .t-pv__k .icon{width:14px;height:14px}
.p-tour .t-pv__t{font-weight:900}
.p-tour .t-pvtag{position:fixed;left:max(16px,env(safe-area-inset-left));bottom:calc(16px + env(safe-area-inset-bottom));z-index:155;padding:8px 12px 7px;border-radius:999px;background:var(--sl-maroon);color:var(--white);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;pointer-events:none}
@media (max-width:640px){.p-tour .t-pvtag__x{display:none}}   /* phones: just "Anteprima", over less of the page */

/* =========================================================
   STICKY SUBNAV (a solid ink bar: tour sections + the from-price atom + quote)
   ========================================================= */
.p-tour .t-sub{position:sticky;top:var(--hdr-offset,0px);z-index:120;background:var(--ink);color:var(--white);border-bottom:1px solid var(--line-l);transition:top .45s var(--ease)}
.p-tour .t-sub__in{display:flex;align-items:center;gap:16px;height:var(--t-sub)}
.p-tour .t-sub__links{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.p-tour .t-sub__links::-webkit-scrollbar{display:none}
.p-tour .t-sub__links.is-r{-webkit-mask:linear-gradient(90deg,#000 82%,transparent);mask:linear-gradient(90deg,#000 82%,transparent)}
.p-tour .t-sub__links.is-l{-webkit-mask:linear-gradient(90deg,transparent,#000 14%);mask:linear-gradient(90deg,transparent,#000 14%)}
.p-tour .t-sub__links.is-l.is-r{-webkit-mask:linear-gradient(90deg,transparent,#000 14%,#000 82%,transparent);mask:linear-gradient(90deg,transparent,#000 14%,#000 82%,transparent)}
.p-tour .t-sub__links a{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 15px;border-radius:999px;font-weight:700;font-size:.86rem;color:#c4c4cc;transition:color .2s,background .25s}
.p-tour .t-sub__links a:hover{color:var(--white);background:var(--ink-3)}
.p-tour .t-sub__links a[aria-current]{background:var(--y);color:var(--ink)}
.p-tour .t-sub__r{display:flex;align-items:center;gap:16px;flex:none}
.p-tour .t-sub__price .price{gap:2px}
.p-tour .t-sub__price .price__n{font-size:1.15rem}
.p-tour .t-sub__price .price__from{font-size:.58rem}
.p-tour .t-sub__price .price__pp{font-size:.54rem}
.p-tour .t-sub__bar{position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--y);transform-origin:0 50%;transform:scaleX(0);pointer-events:none}
.p-tour .t-sub :focus-visible{outline-color:var(--y)}

/* =========================================================
   PANORAMICA (paper) · opener (d)
   ========================================================= */
.p-tour .t-ov__grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(36px,6vw,96px);align-items:start}
.p-tour .t-ov__op{margin-bottom:clamp(22px,2.6vw,32px)}
.p-tour .t-ov__op .h2{max-width:16ch}
.p-tour .t-ov__lead{max-width:60ch;color:var(--ink);opacity:.82}
.p-tour .t-chips{display:flex;flex-wrap:wrap;gap:8px}
.p-tour .t-chip{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:.35rem .85rem .35rem .45rem;border:2px solid var(--ink);border-radius:999px;background:var(--white);font-weight:600;font-size:.85rem;line-height:1.1;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s}
.p-tour .t-chip .icon{width:16px;height:16px}
.p-tour .t-chip__c{font:800 .66rem/1 var(--mono);background:var(--ink);color:var(--y);padding:5px 5px 4px;border-radius:999px}
.p-tour .t-chip.is-major{font-weight:800}
.p-tour .t-chip.is-major .t-chip__c{background:var(--y);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.p-tour .t-chip__u{font-size:.56rem;font-weight:900;letter-spacing:.1em;color:var(--sl-maroon);border:1.5px solid currentColor;border-radius:4px;padding:2px 4px 1px}
.p-tour .t-chip:hover{background:var(--y-100);transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--ink)}
.p-tour .t-ov__side{display:grid;gap:26px;padding-top:6px}
/* two facts the hero doesn't already give */
.p-tour .t-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:3px solid var(--ink)}
.p-tour .t-facts>div{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:6px;padding:14px 14px 0 0}
.p-tour .t-facts>div+div{padding-left:16px;border-left:1px solid var(--line)}
.p-tour .t-facts dd{font-weight:900;font-size:clamp(2.6rem,4.4vw,3.8rem);line-height:.85;letter-spacing:-.06em}
.p-tour .t-facts dt{font-size:.78rem;font-weight:600;line-height:1.3;color:var(--steel)}
.p-tour .t-when{background:var(--ink);color:var(--white);border-radius:var(--r);padding:18px 18px 16px;box-shadow:6px 6px 0 var(--y-600)}
.p-tour .t-when__head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.p-tour .t-when .t-label{margin:0;color:var(--y)}
.p-tour .t-when__ind{font-size:.6rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--mist);border:1px solid var(--ink-4);border-radius:999px;padding:3px 7px}
.p-tour .t-when__bars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;height:92px;margin:14px 0 12px}
.p-tour .t-when__m{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;min-width:0}
.p-tour .t-when__m i{display:block;width:100%;height:calc(var(--h) * 66px);border-radius:4px 4px 2px 2px;background:rgba(253,182,28,calc(var(--h) * .55));transition:outline-color .2s}
.p-tour .t-when__m.is-best i{background:var(--y)}
.p-tour .t-when__m b{font-size:.6rem;font-weight:800;color:var(--mist);line-height:1;padding:2px 3px;border-radius:3px}
.p-tour .t-when__m.is-sel b{background:var(--white);color:var(--ink)}
.p-tour .t-when__m.is-sel i{outline:2px solid var(--white);outline-offset:1px}
.p-tour .t-when__txt{font-size:.78rem;line-height:1.45;color:var(--mist)}
.p-tour .t-when__txt b{color:var(--white)}

.p-tour .t-ov{padding-bottom:clamp(56px,6vw,96px)}
.p-tour .t-moments{margin-top:clamp(64px,8vw,112px)}
.p-tour .t-moments__head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}
.p-tour .t-railnav{display:flex;gap:10px;flex:none}
.p-tour .t-railnav .icon-btn{border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}
.p-tour .t-railnav .icon-btn:disabled{opacity:.3;box-shadow:none;cursor:default;transform:none;background:var(--white)}
.p-tour .t-rail{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(240px,23vw,310px);gap:20px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:6px 10px 26px 4px;margin-inline:-4px;scrollbar-width:thin;scrollbar-color:var(--ink) transparent}
.p-tour .t-rail>*{scroll-snap-align:start}
@media (min-width:700px){.p-tour .t-rail{margin-right:min(-4px,calc(50% - 50vw));padding-right:max(10px,calc(50vw - 50%))}}
.p-tour .t-rail.is-drag{scroll-snap-type:none;cursor:grabbing}
.p-tour .t-rail.is-drag *{pointer-events:none}
@media (hover:hover){.p-tour .t-rail{cursor:grab}}
.p-tour .t-mom__btn{position:relative;display:block;width:100%;aspect-ratio:4/5;overflow:hidden;border-radius:var(--r);border:2.5px solid var(--ink);box-shadow:var(--sh-hard);background:var(--ink-3);color:var(--white);text-align:left;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.p-tour .t-mom__btn:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--ink)}
.p-tour .t-mom__img{position:absolute;inset:0}
.p-tour .t-mom__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.p-tour .t-mom__btn:hover .t-mom__img img{transform:scale(1.07)}
/* the portrait crop drops the top-right mark; the heavy foot buries the low one under the caption (A5) */
.p-tour .t-mom__btn::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(11,11,12,.3) 0,transparent 24%,transparent 36%,rgba(11,11,12,.72) 62%,rgba(11,11,12,.95) 82%)}
.p-tour .t-mom.is-cut .t-mom__btn{background:var(--y)}
.p-tour .t-mom.is-cut .t-mom__img img{object-fit:contain;object-position:50% 38%;padding:0 6%}
/* no fitting photo left on the page: a typographic card */
.p-tour .t-mom.is-plain .t-mom__btn{background:var(--y);color:var(--ink)}
.p-tour .t-mom.is-plain .t-mom__btn::after{display:none}
.p-tour .t-mom__ico{position:absolute;left:50%;top:40%;translate:-50% -50%;display:grid;place-items:center;width:46%;aspect-ratio:1;border-radius:50%;background:var(--ink);color:var(--y)}
.p-tour .t-mom__ico .icon{width:46%;height:46%;stroke-width:1.6}
.p-tour .t-mom.is-plain .badge{background:var(--ink);color:var(--y)}
.p-tour .t-mom.is-plain .t-mom__cap span{color:var(--y-ink)}
.p-tour .t-mom__top{position:absolute;z-index:2;top:14px;left:14px;right:14px;display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.p-tour .t-mom__day{display:grid;place-content:center;text-align:center;width:60px;height:60px;flex:none;border-radius:50%;background:var(--white);color:var(--ink);border:2.5px solid var(--ink);font-weight:900;font-size:1.35rem;line-height:.85;letter-spacing:-.04em;transform:rotate(9deg)}
.p-tour .t-mom__day small{font-size:.5rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.p-tour .t-mom__cap{position:absolute;z-index:2;left:18px;right:18px;bottom:16px;display:grid;gap:6px}
.p-tour .t-mom__cap b{font-size:1.14rem;font-weight:800;line-height:1.15;letter-spacing:-.01em}
.p-tour .t-mom__cap span{font-size:.8rem;line-height:1.4;color:rgba(255,255,255,.85);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* the page's one cape: a straight diagonal cut from paper into the ink itinerary */
.p-tour .t-cape{background:var(--paper);color:var(--ink)}

/* =========================================================
   ITINERARIO (ink) — signature · opener (a)
   ========================================================= */
.p-tour .t-it{padding-top:clamp(40px,5vw,80px)}
.p-tour .t-it__head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:28px 56px;align-items:end;margin-bottom:clamp(36px,5vw,64px)}
.p-tour .t-it__op{margin-bottom:0}
.p-tour .t-it__intro .lead{font-size:1.02rem;margin-bottom:18px}
.p-tour .t-it__acts{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.p-tour .t-it__all{color:var(--y)}
.p-tour .t-it__all .icon{width:18px;height:18px}
.p-tour .t-it__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(28px,4vw,64px);align-items:start}

.p-tour .t-map{order:2;position:sticky;top:calc(var(--hdr-offset,0px) + var(--t-sub) + 20px);height:min(calc(100svh - var(--t-sub) - 110px),860px);min-height:520px;border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line-l);isolation:isolate;transition:top .45s var(--ease);
  background:radial-gradient(ellipse 70% 52% at 50% 58%,rgba(253,182,28,.17),transparent 72%),var(--ink-2)}
.p-tour .t-map::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(rgba(253,182,28,.13) 1.2px,transparent 1.5px);background-size:16px 16px;-webkit-mask:radial-gradient(ellipse at 50% 55%,#000 25%,transparent 78%);mask:radial-gradient(ellipse at 50% 55%,#000 25%,transparent 78%)}
.p-tour .t-map__stage{position:absolute;inset:0;z-index:0}   /* own stacking context: CSS2D label z-indexes stay under the HUD */
.p-tour .t-map__stage img,.p-tour .t-map__stage canvas{max-width:none}
.p-tour .t-map__stage .fallback3d{object-fit:contain;padding:96px 20px 70px}
.p-tour .t-map.is-static .t-map__hint,.p-tour .t-map.is-static .t-map__reset,.p-tour .t-map:has(.fallback3d) .t-map__hint,.p-tour .t-map:has(.fallback3d) .t-map__reset{display:none}
.p-tour .t-map__hud{position:absolute;z-index:3;left:16px;top:16px;max-width:calc(100% - 32px);display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 14px;border-radius:18px;background:linear-gradient(180deg,rgba(20,20,22,.94),rgba(20,20,22,.78));border:1px solid var(--line-l);pointer-events:none;box-shadow:0 18px 40px -20px rgba(0,0,0,.8)}
.p-tour .t-hud__k{font-size:.64rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--y)}
.p-tour .t-hud__d{font-size:1.75rem;line-height:1}
.p-tour .t-hud__d span{background:var(--ink);box-shadow:inset 0 0 0 1px var(--ink-4)}
.p-tour .t-hud__t{display:flex;flex-direction:column;gap:2px;font-size:.8rem;line-height:1.3;color:var(--mist);min-width:0}
.p-tour .t-hud__t b{color:var(--white);font-size:.98rem;font-weight:800}
.p-tour .t-hud__t>span{display:block}
.p-tour .t-hud__t .icon{display:inline-block;width:14px;height:14px;margin-right:5px;vertical-align:-2px;color:var(--y)}
.p-tour .t-hud__x{flex-basis:100%}
.p-tour .t-hud__x:empty{display:none}
.p-tour .t-hud__route{color:var(--white)}
.p-tour .t-hud__route .route__c b{color:var(--y)}
.p-tour .t-map__tools{position:absolute;z-index:3;right:16px;bottom:70px;display:flex;align-items:center;gap:12px}
.p-tour .t-map__hint{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:999px;background:rgba(11,11,12,.72);font-size:.64rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--mist)}
.p-tour .t-map__reset{min-height:40px;padding:0 15px;border-radius:999px;border:1.5px solid var(--y);color:var(--y);font-weight:700;font-size:.78rem;background:rgba(11,11,12,.6);transition:color .2s,background .2s}
.p-tour .t-map__reset:hover{background:var(--y);color:var(--ink)}
.p-tour .t-map__dots{position:absolute;z-index:3;left:12px;right:12px;bottom:12px;display:flex;justify-content:center;gap:4px;overflow-x:auto;scrollbar-width:none}
.p-tour .t-map__dots::-webkit-scrollbar{display:none}
.p-tour .t-map__dots button{flex:none;min-width:44px;height:44px;border-radius:12px;font:700 .74rem/1 var(--mono);color:var(--mist);background:rgba(11,11,12,.7);border:1px solid var(--ink-4);transition:color .2s,background .2s,border-color .2s}
.p-tour .t-map__dots button:hover{color:var(--y);border-color:var(--y)}
.p-tour .t-map__dots button[aria-current="true"]{background:var(--y);color:var(--ink);border-color:var(--y)}

.p-tour .t-days{order:1;position:relative;list-style:none;padding-left:48px;--prog:0px}
.p-tour .t-days::before{content:"";position:absolute;left:16px;top:10px;bottom:30px;width:2px;background:repeating-linear-gradient(180deg,rgba(253,182,28,.42) 0 8px,transparent 8px 16px)}
.p-tour .t-days::after{content:"";position:absolute;left:16px;top:10px;width:2px;height:var(--prog);background:var(--y);box-shadow:0 0 14px rgba(253,182,28,.7);transition:height .6s var(--ease)}
.p-tour .t-day{position:relative;padding-bottom:20px}
.p-tour .t-day__node{position:absolute;z-index:1;left:-40px;top:30px;width:18px;height:18px;border-radius:50%;background:var(--ink);border:2px solid rgba(253,182,28,.6);transition:background .3s,border-color .3s,box-shadow .3s}
.p-tour .t-day.is-past .t-day__node{background:var(--y);border-color:var(--y)}
.p-tour .t-day.is-active .t-day__node{background:var(--y);border-color:var(--y);box-shadow:0 0 0 7px rgba(253,182,28,.22),0 0 24px rgba(253,182,28,.6)}
.p-tour .t-day__card{position:relative;padding:22px 24px 20px;border-radius:var(--r);background:var(--ink-2);border:1px solid var(--line-l);transition:border-color .35s,background .35s,box-shadow .35s;outline-offset:4px}
.p-tour .t-day.is-active .t-day__card{background:var(--ink-3);border-color:var(--y);box-shadow:0 30px 60px -34px rgba(253,182,28,.45)}
.p-tour .t-day__head{display:flex;align-items:center;gap:16px}
/* outlined numerals: real sequential days (the one place this motif belongs on the page) */
.p-tour .t-day__n{flex:none;font-weight:900;font-size:clamp(2.8rem,4.2vw,3.9rem);line-height:.8;letter-spacing:-.07em;color:transparent;-webkit-text-stroke:1.5px var(--y);transition:color .35s}
.p-tour .t-day.is-active .t-day__n,.p-tour .t-day.is-past .t-day__n{color:var(--y)}
.p-tour .t-day.is-past .t-day__n{opacity:.55}
.p-tour .t-day__ttl{min-width:0}
.p-tour .t-it .t-day__kick{font-size:.66rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--mist);margin-bottom:4px}
.p-tour .t-day__title{font-size:clamp(1.15rem,1.7vw,1.42rem);font-weight:800;letter-spacing:-.02em;line-height:1.15;color:var(--white)}
.p-tour .t-day__meta{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 14px}
.p-tour .t-day__meta>span{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border-radius:999px;border:1px solid var(--ink-4);background:rgba(255,255,255,.04);font-size:.78rem;color:var(--mist)}
.p-tour .t-day__meta .icon{width:15px;height:15px;color:var(--y)}
.p-tour .t-day__meta b{color:var(--white);font-weight:700}
.p-tour .t-day__items{list-style:none;display:grid;gap:9px}
.p-tour .t-day__items li{position:relative;padding-left:24px;font-size:.94rem;line-height:1.55;color:#d6d6dc}
.p-tour .t-day__items li::before{content:"";position:absolute;left:0;top:.7em;width:12px;height:2px;border-radius:2px;background:var(--y)}
.p-tour .t-day:not(.is-open) .t-day__items li:nth-child(n+3){display:none}
.p-tour .t-day__more{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;font-weight:700;font-size:.82rem;color:var(--y);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1.5px}
.p-tour .t-day__more:hover{text-decoration-thickness:3px}
.p-tour .t-day__stops{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:14px;border-top:1px dashed var(--ink-4)}
.p-tour .t-pill{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:4px 11px 4px 5px;border-radius:999px;border:1px solid var(--ink-4);font-size:.76rem;font-weight:600;color:var(--white);transition:color .2s,border-color .2s}
.p-tour .t-pill span{font:800 .6rem/1 var(--mono);padding:5px 5px 4px;border-radius:999px;background:var(--y);color:var(--ink)}
.p-tour .t-pill:hover{border-color:var(--y);color:var(--y)}
@media (pointer:coarse){.p-tour .t-pill{min-height:44px}}

/* =========================================================
   HOTEL (yellow) · opener (e)
   ========================================================= */
.p-tour .t-ho__head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px 48px;margin-bottom:40px}
.p-tour .t-ho__head .lead{max-width:56ch;margin-top:16px}
@media (max-width:999px){.p-tour .t-ho__head{grid-template-columns:minmax(0,1fr)}}
.p-tour .t-ho__ctrl{display:grid;gap:10px}
.p-tour .t-seg{background:rgba(11,11,12,.1)}
.p-tour .t-seg button{min-height:46px;min-width:66px;font-size:1rem}
.p-tour .t-seg__req{display:inline-flex;align-items:center;gap:6px;min-height:46px;padding:.5rem 1rem;border-radius:999px;border:2px dashed rgba(11,11,12,.45);font-weight:800;font-size:.95rem}
.p-tour .t-seg__req small{font-size:.66rem;font-weight:700;letter-spacing:.04em}
.p-tour .t-seg__req:hover{background:var(--ink);color:var(--y);border-color:var(--ink)}
.p-tour .t-stays{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));gap:24px}
/* typographic stay cards (no place photos: they weren't the hotels and repeated the moments rail) */
.p-tour .t-stay{position:relative;display:flex;flex-direction:column;background:var(--white);border:2.5px solid var(--ink);border-radius:var(--r);box-shadow:var(--sh-hard);overflow:hidden}
.p-tour .t-stay__top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 14px 0 18px}
.p-tour .t-stay__code{padding:8px 10px 7px;border-radius:10px;background:var(--ink);color:var(--y);font:900 1.55rem/1 var(--mono);letter-spacing:.02em}
.p-tour .t-stay__nights{width:62px;height:62px;flex:none;display:grid;place-content:center;text-align:center;border-radius:50%;background:var(--y);border:2.5px solid var(--ink);font-size:.54rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;line-height:1;transform:rotate(8deg)}
.p-tour .t-stay__nights b{display:block;font-size:1.65rem;font-weight:900;letter-spacing:-.04em;line-height:.9}
.p-tour .t-stay__body{display:flex;flex-direction:column;gap:3px;flex:1;padding:14px 18px 16px}
/* the ruled foot (next leg): cards stretched to the tallest one in their row or rail end on it, not on blank white */
.p-tour .t-stay p.t-stay__next{display:flex;align-items:center;gap:8px;margin:0 18px;padding:11px 0 14px;border-top:2px dashed rgba(11,11,12,.16);font-size:.74rem;font-weight:600;line-height:1.3;color:var(--steel)}
.p-tour .t-stay__next b{font-weight:800;color:var(--ink)}
.p-tour .t-stay__next .icon{width:16px;height:16px;flex:none;color:var(--ink)}
.p-tour .t-stay p.t-stay__where{font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
.p-tour .t-stay__hotel{margin-top:4px;font-size:1.16rem;font-weight:800;letter-spacing:-.02em;line-height:1.2}
.p-tour .t-stay p.t-stay__room{font-size:.84rem;color:var(--steel)}
.p-tour .t-stay p.t-stay__alt{margin-top:6px;padding-top:6px;border-top:1px dashed var(--line);font-size:.84rem;font-weight:600;color:var(--ink)}
.p-tour .t-stay__alt small{margin-right:4px;font-size:.6rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.p-tour .t-stay.is-swap .t-stay__body,.p-tour .t-stay.is-swap .t-stay__nights{animation:tSwap .5s var(--ease) both}
@keyframes tSwap{from{opacity:.15;transform:translateY(8px)}}
/* "tailor-made" card: fills the grid's one empty slot (tour.js sets data-fill-d / data-fill-t) */
.p-tour .t-stay.t-stay--ask{display:none;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:10px;padding:22px 20px 22px;background:var(--ink);color:var(--white)}
.p-tour .t-stays[data-fill-d] .t-stay.t-stay--ask{display:flex}
.p-tour .t-stay p.t-stay__askt{font-weight:900;font-size:1.6rem;line-height:.95;letter-spacing:-.04em;text-transform:uppercase;color:var(--y)}
.p-tour .t-stay p.t-stay__askp{font-size:.86rem;line-height:1.45;color:#d6d6dc;max-width:30ch}
.p-tour .t-stay--ask .btn{margin-top:4px}
@media (max-width:1024px){
  .p-tour .t-stays{grid-template-columns:repeat(2,minmax(0,1fr))}
  .p-tour .t-stays .t-stay.t-stay--ask,.p-tour .t-stays[data-fill-d] .t-stay.t-stay--ask{display:none}
  .p-tour .t-stays[data-fill-t] .t-stay.t-stay--ask{display:flex}
}
.p-tour .t-ho__note{display:flex;gap:10px;align-items:flex-start;max-width:86ch;margin-top:30px;font-size:.9rem;font-weight:500}
.p-tour .t-ho__note .icon{flex:none;width:20px;height:20px;margin-top:1px}

/* =========================================================
   PREZZI (paper) · opener (a), pushed right
   ========================================================= */
/* desktop: the caption box heads the calculator column while the rates table rides alongside (no dead corner) */
.p-tour .t-pr__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);grid-template-areas:"tab op" "tab calc";gap:clamp(28px,4vw,60px);align-items:start}
.p-tour .t-pr__op{grid-area:op;max-width:min(100%,40rem);margin-bottom:0}
.p-tour .t-pr__table{grid-area:tab}
.p-tour .t-pr__calc{grid-area:calc}
@media (min-width:1000px){.p-tour .t-pr__table{position:sticky;top:calc(var(--hdr-offset,0px) + var(--t-sub) + 28px);transition:top .45s var(--ease)}}
.p-tour .t-ind{display:inline-flex;align-items:center;flex:none;padding:4px 9px 3px;border:1.5px solid currentColor;border-radius:999px;font-size:.6rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
.p-tour .t-rates{padding:22px;background:var(--white);border:2.5px solid var(--ink);border-radius:var(--r);box-shadow:var(--sh-hard)}
.p-tour .t-rates__head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.p-tour .t-rates__h{font-size:1.25rem}
.p-tour .t-rates table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:5px}
.p-tour .t-rates th,.p-tour .t-rates td{padding:0;text-align:center}
.p-tour .t-rates thead th{padding:12px 4px;border-radius:10px;background:var(--ink);color:var(--y);font-weight:900;font-size:1.02rem}
.p-tour .t-rates thead th:first-child{background:transparent;color:var(--steel);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;text-align:left;padding-left:4px}
.p-tour .t-rates thead th.is-col{background:var(--y);color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.p-tour .t-rates tbody th{text-align:left;padding-left:4px;font-size:.74rem;font-weight:600;color:var(--steel);line-height:1.1}
.p-tour .t-rates tbody th b{display:block;font-size:1.55rem;font-weight:900;letter-spacing:-.04em;color:var(--ink)}
.p-tour .t-rates td button{width:100%;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:10px;border:2px solid transparent;background:var(--paper);font-weight:800;font-size:1.05rem;letter-spacing:-.01em;font-variant-numeric:tabular-nums;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}
.p-tour .t-rates td button small{font-size:.6rem;font-weight:700;color:var(--steel);letter-spacing:0}
.p-tour .t-rates td.is-col button,.p-tour .t-rates tr.is-row td button{background:var(--y-100)}
.p-tour .t-rates td button:hover{border-color:var(--ink)}
.p-tour .t-rates td button[aria-pressed="true"]{background:var(--y);border-color:var(--ink);box-shadow:3px 3px 0 var(--ink);transform:translate(-1px,-1px)}
.p-tour .t-rates td.is-na span{display:grid;place-items:center;min-height:64px;padding:0 4px;border-radius:10px;border:2px dashed var(--line);font-size:.64rem;font-weight:700;line-height:1.2;color:var(--steel)}
.p-tour .t-rates__notes{list-style:none;display:grid;gap:8px;margin-top:16px;padding-top:16px;border-top:2px dashed var(--line);font-size:.8rem;line-height:1.45;color:var(--steel)}
.p-tour .t-rates__notes li{display:flex;gap:8px}
.p-tour .t-rates__notes .icon{width:16px;height:16px;flex:none;margin-top:1px;color:var(--ink)}

.p-tour .t-calc{position:relative;border-radius:var(--r-l);background:var(--ink);color:var(--white);box-shadow:0 40px 70px -36px rgba(11,11,12,.7)}
.p-tour .t-calc__top{display:grid;gap:18px;padding:28px 26px 22px}
.p-tour .t-calc .pass__label{color:var(--mist);opacity:1}
.p-tour .t-calc .field>label,.p-tour .t-calc .label{color:var(--y)}
.p-tour .t-calc .seg{background:var(--ink-3)}
.p-tour .t-calc .seg button{color:var(--white)}
.p-tour .t-calc .seg button[aria-pressed="true"]{background:var(--y);color:var(--ink)}
.p-tour .t-calc .seg button.is-req{color:var(--mist);box-shadow:inset 0 0 0 1.5px var(--ink-4)}
.p-tour .t-calc .seg button.is-req[aria-pressed="true"]{background:var(--ink-4);color:var(--y);box-shadow:inset 0 0 0 2px var(--y)}
.p-tour .t-calc__two{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px 22px;align-items:end}
.p-tour .t-calc .stepper button{color:var(--y)}
.p-tour .t-calc .stepper button .icon{width:18px;height:18px}
.p-tour .t-calc .stepper button:disabled{opacity:.3;cursor:default;background:none;color:var(--y);border-color:currentColor}
.p-tour .t-calc .stepper output{min-width:2.2ch;font-size:1.75rem;color:var(--white)}
.p-tour .t-calc .select{background-color:var(--ink-3);border-color:var(--ink-4);color:var(--white);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDB61C' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
.p-tour .t-calc .select:focus{box-shadow:4px 4px 0 var(--y)}
.p-tour .t-calc__wx ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.p-tour .t-calc__wx li{display:flex;align-items:center;gap:8px;padding:6px 11px 6px 6px;border-radius:12px;background:var(--ink-3);font-size:.76rem;font-weight:600;line-height:1.15}
.p-tour .t-calc__wx li .icon{width:28px;height:28px;padding:5px;border-radius:8px;background:var(--ink-4);color:var(--mist)}
.p-tour .t-calc__wx li.w2 .icon{background:var(--y);color:var(--ink)}
.p-tour .t-calc__wx li.w1 .icon{background:var(--y-100);color:var(--ink)}
.p-tour .t-calc__wx small{display:block;margin-top:2px;font-size:.64rem;font-weight:600;color:var(--mist)}
.p-tour .t-calc__cut{position:relative;height:0;margin:0 26px;border-top:2px dashed rgba(255,255,255,.2)}
.p-tour .t-calc__cut::before,.p-tour .t-calc__cut::after{content:"";position:absolute;top:-17px;width:32px;height:32px;border-radius:50%;background:var(--paper)}
.p-tour .t-calc__cut::before{left:-42px}.p-tour .t-calc__cut::after{right:-42px}
.p-tour .t-calc__out{display:grid;gap:12px;padding:22px 26px 26px}
.p-tour .t-calc__price .price__n{font-size:clamp(2.8rem,5vw,4.2rem)}
.p-tour .t-calc__req{display:block;font-weight:900;font-size:clamp(2.1rem,3.6vw,2.9rem);line-height:.95;letter-spacing:-.04em;color:var(--y)}
.p-tour .t-calc__br{font-size:.8rem;color:var(--mist)}
.p-tour .t-calc__br b{color:var(--white)}
.p-tour .t-calc__tot{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 16px;border-radius:14px;background:var(--ink-3)}
.p-tour .t-calc__tot b{font-size:1.5rem;font-weight:900;letter-spacing:-.02em}
.p-tour .t-calc__say{padding:2px 0 2px 14px;border-left:3px solid var(--y);font-size:.9rem;font-weight:600;line-height:1.45;color:var(--white)}
.p-tour .t-calc__say.is-pop{animation:tSay .45s var(--ease) both}
@keyframes tSay{from{opacity:.2;transform:translateX(-6px)}}
.p-tour .t-calc__btns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:4px}
.p-tour .t-calc__btns .btn{min-width:0;padding-inline:1rem}
.p-tour .t-calc .btn--ghost{color:var(--white)}
.p-tour .t-calc__how{font-size:.74rem;line-height:1.5;color:var(--mist);text-align:center}
.p-tour .t-calc__mail{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 4px;font-weight:700;color:var(--white);text-decoration:underline;text-underline-offset:4px}
.p-tour .t-calc__mail .icon{width:16px;height:16px;color:var(--y)}
.p-tour .t-calc__mail:hover{color:var(--y)}

/* =========================================================
   INCLUSO / ESCLUSO (ink) · opener (f): no header, the lists start straight away
   ========================================================= */
.p-tour .t-in__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.p-tour .t-list{padding:28px;border-radius:var(--r);background:var(--ink-2);border:1px solid var(--line-l)}
.p-tour .t-list h3{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.p-tour .t-list h3 .icon{width:38px;height:38px;padding:8px;border-radius:50%;stroke-width:3}
.p-tour .t-list ul{list-style:none;display:grid;gap:13px}
.p-tour .t-list li{display:flex;gap:12px;align-items:flex-start;font-size:.95rem;line-height:1.5}
.p-tour .t-list li .icon{width:20px;height:20px;flex:none;margin-top:2px;stroke-width:3}
.p-tour .t-list--in{background:var(--y);color:var(--ink);border-color:var(--y);box-shadow:8px 8px 0 var(--ink-4)}
.p-tour .t-list--in h3 .icon{background:var(--ink);color:var(--y)}
.p-tour .t-list--in li{color:var(--ink)}
.p-tour .t-list--ex h3 .icon{border:2px solid var(--ink-4);color:var(--mist)}
.p-tour .t-list--ex li{color:#c9c9d0}
.p-tour .t-list--ex li .icon{color:var(--mist)}
/* the CIAO gifts + free visits (their content home is tour/tours): one paper panel, no stamps */
.p-tour .t-gifts{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,64px);margin-top:clamp(48px,6vw,80px);padding:clamp(24px,3.4vw,44px);border-radius:var(--r);background:var(--paper);color:var(--ink);box-shadow:8px 8px 0 var(--y)}
.p-tour .t-gifts .h3{margin-bottom:18px}
.p-tour .t-gifts .h3 .num{display:inline-grid;place-items:center;min-width:1.7em;height:1.7em;margin-right:.15em;border-radius:50%;background:var(--y);border:2px solid var(--ink);font-size:.85em;letter-spacing:-.03em}
.p-tour .t-gifts__list{list-style:none;display:grid;gap:13px}
.p-tour .t-gifts__list li{display:flex;gap:12px;align-items:flex-start;font-size:.9rem;line-height:1.45;color:var(--ink)}
.p-tour .t-gifts__list .icon{flex:none;width:34px;height:34px;padding:7px;border-radius:50%;background:var(--ink);color:var(--y)}
.p-tour .t-free{list-style:none;columns:2;column-gap:28px}
.p-tour .t-free li{position:relative;break-inside:avoid;padding:8px 0 8px 22px;border-bottom:1px dashed var(--line);font-size:.9rem;font-weight:600;line-height:1.35;color:var(--ink)}
.p-tour .t-free li::before{content:"";position:absolute;left:0;top:.95em;width:11px;height:11px;border-radius:3px;background:var(--y);box-shadow:inset 0 0 0 2px var(--ink)}

/* =========================================================
   NOTE + FAQ (paper) · opener (e)
   ========================================================= */
.p-tour .t-fq__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,5vw,80px);align-items:start;margin-top:clamp(28px,3.4vw,44px)}
.p-tour .t-fq__grid:has(>.t-fq__notes[hidden]){grid-template-columns:minmax(0,1fr)}   /* a tour with no notes */
.p-tour .t-fq__k{margin-bottom:14px;font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--steel)}
.p-tour .t-notes{list-style:none;display:grid;gap:12px}
.p-tour .t-notes li{position:relative;padding:0 0 12px 22px;border-bottom:1px dashed var(--line);font-size:.9rem;line-height:1.55;color:var(--steel)}
.p-tour .t-notes li::before{content:"";position:absolute;left:0;top:.72em;width:12px;height:3px;border-radius:2px;background:var(--ink)}
.p-tour .t-fq__acc .acc{border-top-width:2.5px}
.p-tour .t-fq__acc summary{font-size:1.04rem}
.p-tour .t-fq__acc .acc__body p{color:var(--steel)}
.p-tour .t-fq__all{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:14px;font-weight:800;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.p-tour .t-fq__all .icon{width:18px;height:18px;transition:transform .3s var(--ease)}
.p-tour .t-fq__all:hover .icon{transform:translateX(4px)}
.p-tour .t-fq__more{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:18px;padding:18px 20px;border-radius:var(--r);background:var(--ink);color:var(--white)}
.p-tour .t-fq__more p{font-weight:700;color:var(--white)}

/* =========================================================
   ALTRI TOUR (ink) · opener (b) + the shared tour card (dark)
   ========================================================= */
/* one row of up to 4 cards (tour.js shows at most 4; fewer keep their size, from the left) */
@media (min-width:1180px){.p-tour .t-otg{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:700px) and (max-width:1179px){.p-tour .t-otg{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* more tours than the board shows: the link to all of them */
.p-tour .t-ot__all{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:22px;font-weight:800;color:var(--y);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.p-tour .t-ot__all .icon{width:18px;height:18px;transition:transform .3s var(--ease)}
.p-tour .t-ot__all:hover .icon{transform:translateX(4px)}

/* =========================================================
   LIGHTBOX
   ========================================================= */
.p-tour .t-lb{position:fixed;inset:0;z-index:260;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:16px clamp(12px,3vw,40px) 18px;background:rgba(11,11,12,.96);color:var(--white);opacity:0;transition:opacity .28s}
.p-tour .t-lb.is-open{opacity:1}
.p-tour .t-lb__top{display:flex;justify-content:space-between;align-items:center}
.p-tour .t-lb__count{font:700 .9rem/1 var(--mono);letter-spacing:.12em;color:var(--y)}
.p-tour .t-lb__stage{min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;margin:12px 0}
.p-tour .t-lb__stage img{width:auto;height:auto;max-width:min(1400px,100%);max-height:calc(100svh - 230px);object-fit:contain;border-radius:14px;opacity:0;transform:scale(.98);transition:opacity .35s,transform .5s var(--ease)}
.p-tour .t-lb__stage img.is-in{opacity:1;transform:none}
.p-tour .t-lb__cap{font-weight:600;font-size:.95rem;text-align:center}
.p-tour .t-lb__nav{position:absolute;top:50%;width:56px;height:56px;transform:translateY(-50%)}
.p-tour .t-lb__nav:hover{transform:translateY(-50%) scale(1.06)}
.p-tour .t-lb__nav--prev{left:clamp(8px,2vw,28px)}.p-tour .t-lb__nav--next{right:clamp(8px,2vw,28px)}
.p-tour .t-lb__thumbs{display:flex;justify-content:center;gap:8px;overflow-x:auto;padding:4px}
.p-tour .t-lb__thumbs button{flex:none;width:84px;height:56px;overflow:hidden;border-radius:10px;border:2px solid transparent;opacity:.5;transition:opacity .2s,border-color .2s}
.p-tour .t-lb__thumbs button:hover{opacity:.85}
.p-tour .t-lb__thumbs button[aria-current="true"]{opacity:1;border-color:var(--y)}
.p-tour .t-lb__thumbs img{width:100%;height:100%;object-fit:cover}

/* =========================================================
   NOT FOUND (a tour-level 404: no finale; the shared tour cards are the way out)
   ========================================================= */
.p-tour .t-nf{position:relative;min-height:100svh;overflow:hidden;padding:calc(var(--hdr) + clamp(40px,6vw,80px)) 0 clamp(70px,8vw,120px);background:var(--y);color:var(--ink);isolation:isolate}
.p-tour .t-nf__cloud{position:absolute;z-index:-1;width:min(46vw,560px);pointer-events:none;opacity:.95}
.p-tour .t-nf__cloud--l{left:-14%;bottom:-6%}
.p-tour .t-nf__cloud--r{right:-12%;top:6%}
@media (prefers-reduced-motion:no-preference){.p-tour .t-nf__cloud--l{animation:tDrift 14s ease-in-out infinite alternate}.p-tour .t-nf__cloud--r{animation:tDrift 18s ease-in-out infinite alternate-reverse}}
@keyframes tDrift{to{translate:40px -10px}}
.p-tour .t-nf__h{margin:6px 0 24px;font-size:clamp(3.6rem,10.5vw,10rem)}
.p-tour .t-nf code{font:800 .9em var(--mono);background:var(--ink);color:var(--y);padding:2px 6px;border-radius:6px;letter-spacing:0;text-transform:none}
.p-tour .t-nf__more{margin-top:clamp(56px,7vw,96px)}
/* desktop: copy left, the voided boarding pass right (the tour template's hero layout, gone off course) */
.p-tour .t-nf__top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,450px);gap:clamp(32px,4vw,72px);align-items:center}
.p-tour .t-nf__top .t-nf__h{font-size:clamp(3.6rem,7.6vw,8.8rem)}
.p-tour .t-nf__pass{filter:drop-shadow(0 30px 36px rgba(11,11,12,.35))}
.p-tour .t-nfp{transform:rotate(2.5deg);transform-origin:30% 100%}
.p-tour .t-nfp .pass__main{display:flex;flex-direction:column;gap:16px;padding:22px 22px 20px}
.p-tour .t-nfp .pass__label{opacity:1;color:var(--mist);white-space:nowrap}
.p-tour .t-nfp__row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.p-tour .t-nfp__st{padding:5px 9px 4px;border-radius:999px;background:var(--sl-maroon);color:var(--white);font-size:.58rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;line-height:1;white-space:nowrap}
.p-tour .t-nfp__fly{display:flex;align-items:center;gap:6px}
.p-tour .t-nfp__fly>div{display:flex;flex-direction:column;gap:3px;line-height:1.1}
.p-tour .t-nfp__fly .pass__code{font-size:2.3rem;letter-spacing:-.04em;color:var(--white)}
.p-tour .t-nfp__fly small{font-size:.7rem;font-weight:600;color:var(--mist)}
.p-tour .t-nfp__to{text-align:right;align-items:flex-end}
.p-tour .t-nfp__to .pass__code{color:var(--y)}
.p-tour .t-nfp__arc{position:relative;flex:1;min-width:56px;height:2px;margin:10px 6px 0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 6px,transparent 6px 11px)}
/* the plane veers off the dashed line */
.p-tour .t-nfp__arc svg{position:absolute;left:50%;top:50%;width:30px;height:30px;padding:5px;border-radius:50%;background:var(--y);color:var(--ink);transform:translate(-50%,-50%) rotate(45deg)}
.p-tour .t-nfp__arc::after{content:"?";position:absolute;left:calc(50% + 12px);top:-24px;font-weight:900;font-size:.9rem;color:var(--y)}
.p-tour .t-nf p.t-nfp__note{padding-top:14px;border-top:2px dashed rgba(255,255,255,.16);font-size:.8rem;font-weight:600;line-height:1.4;color:var(--mist)}
.p-tour .t-nfp .pass__stub{justify-content:center;gap:12px;color:var(--white)}
.p-tour .t-nfp__id{font-size:1.45rem;color:var(--y)}
.p-tour .t-nfp .barcode{height:60px;opacity:.45}
/* the tour grid's last card */
.p-tour .t-nf__plan{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:12px;padding:clamp(24px,2.4vw,32px);border-radius:var(--r);filter:drop-shadow(0 16px 22px rgba(11,11,12,.18))}
.p-tour .t-nf__planic{display:grid;place-items:center;width:64px;height:64px;margin-bottom:auto;border-radius:50%;background:var(--y);color:var(--ink)}
.p-tour .t-nf__planic .icon{width:30px;height:30px;stroke-width:1.8}
.p-tour .t-nf__plank{font-size:.66rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--mist)}
.p-tour .t-nf__plant{font-weight:900;font-size:clamp(1.9rem,2.6vw,2.5rem);line-height:.95;letter-spacing:-.04em;text-transform:uppercase;color:var(--y)}
.p-tour .t-nf .t-nf__plan p{max-width:32ch;font-size:.92rem;line-height:1.5;color:#d6d6dc}
.p-tour .t-nf__plan .btn{margin-top:6px}
.p-tour .t-nf__plan :focus-visible{outline-color:var(--y)}
/* stretched over the last row's empty slots (tour.js fitPlan): icon, words and button side by side */
.p-tour .t-nf__plan.is-wide{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"ic k go" "ic t go" "ic p go";align-items:center;align-content:center;gap:6px clamp(20px,3vw,48px)}
.p-tour .t-nf__plan.is-wide .t-nf__planic{grid-area:ic;margin:0}
.p-tour .t-nf__plan.is-wide .t-nf__plank{grid-area:k}
.p-tour .t-nf__plan.is-wide .t-nf__plant{grid-area:t}
.p-tour .t-nf .t-nf__plan.is-wide p{grid-area:p;max-width:60ch}
.p-tour .t-nf__plan.is-wide .btn{grid-area:go;margin:0}
@media (max-width:999px){
  .p-tour .t-nf__top{grid-template-columns:minmax(0,1fr)}
  .p-tour .t-nf__top .t-nf__h{font-size:clamp(3.6rem,10.5vw,10rem)}
  .p-tour .t-nf__pass{display:none}
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1180px){
  .p-tour .t-hero__grid{grid-template-columns:minmax(0,1fr) minmax(0,430px)}
}
@media (max-width:999px){
  /* phones/tablets: a taller crop around the subject, still left of the top-right mark (≤ 80% across) and above the low one */
  .p-tour .t-hero__media{--mw:max(125vw,1320px)}
  .p-tour .t-hero__media img{left:clamp(calc(100vw - .8 * var(--mw)),calc(50vw - var(--fx) * var(--mw)),0px)}
  .p-tour .t-hero__grid{grid-template-columns:minmax(0,1fr);gap:36px}
  .p-tour .t-hero__pass{max-width:520px}
  .p-tour .t-ov__grid,.p-tour .t-pr__grid,.p-tour .t-fq__grid,.p-tour .t-it__head{grid-template-columns:minmax(0,1fr)}
  .p-tour .t-pr__grid{grid-template-areas:"op" "tab" "calc"}
  .p-tour .t-pr__op{margin-bottom:clamp(6px,2vw,16px)}
  .p-tour .t-ov__side{max-width:560px}
  .p-tour .t-it__grid{display:block}
  .p-tour .t-map{position:sticky;top:calc(var(--hdr-offset,0px) + var(--t-sub) - 1px);z-index:5;height:clamp(250px,42svh,400px);min-height:0;margin:0 0 20px;border-radius:0 0 24px 24px;border-top:0;box-shadow:0 24px 30px -20px rgba(0,0,0,.9)}
  .p-tour .t-map__dots,.p-tour .t-map__hint{display:none}
  .p-tour .t-map__tools{right:10px;bottom:10px}
  .p-tour .t-map__hud{left:10px;top:10px;padding:9px 11px;gap:6px 10px;border-radius:14px;max-width:calc(100% - 20px)}
  .p-tour .t-hud__d{font-size:1.35rem}
  .p-tour .t-hud__t{font-size:.72rem}.p-tour .t-hud__t b{font-size:.86rem}
  .p-tour .t-hud__x{display:none}
  .p-tour .t-gifts{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:699px){
  /* the other departures become a swipe rail on phones (four stacked passes were ~1700px of scroll) */
  .p-tour .t-otg{display:flex;gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;margin-right:-16px;padding:6px 18px 24px 2px;scrollbar-width:none}
  .p-tour .t-otg::-webkit-scrollbar{display:none}
  .p-tour .t-otg>.tcard{flex:none;width:84%;scroll-snap-align:start}
}
@media (max-width:640px){
  .p-tour{--t-sub:54px}
  .p-tour .t-hero{min-height:100svh}
  .p-tour .t-hero__in{padding-top:calc(var(--hdr) + 4px);padding-bottom:28px}
  .p-tour .t-hero__grid{padding-top:180px;gap:28px}
  .p-tour .t-hero__h1{font-size:clamp(2.9rem,13.4vw,4rem)}
  .p-tour .t-hero__tag{margin-top:16px}
  .p-tour .t-hero__acts{margin-top:22px;gap:10px}
  .p-tour .t-hero__acts .btn{min-height:48px;padding:.8rem 1.15rem;font-size:.9rem}
  .p-tour .t-hero__ico{width:48px;height:48px}
  .p-tour .t-bp__row>span:last-child{display:none}
  .p-tour .t-bp{transform:none}
  .p-tour .t-bp .pass__main{padding:16px 16px 14px}
  .p-tour .t-bp .pass__code{font-size:2rem}
  .p-tour .t-bp__dl{gap:16px}
  .p-tour .t-bp__id{font-size:1.35rem}
  .p-tour .t-bp .barcode{height:48px}
  .p-tour .t-sub__in{gap:10px}
  .p-tour .t-sub__links a{padding:0 12px;font-size:.82rem}
  .p-tour .t-sub__price{display:none}
  .p-tour .t-sub__r .btn{width:44px;min-height:44px;padding:0}
  .p-tour .t-sub__r .btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .p-tour .t-chips{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,auto);justify-content:start;gap:8px;overflow-x:auto;margin-right:-16px;padding:2px 16px 12px 2px;scroll-snap-type:x proximity;scrollbar-width:none}
  .p-tour .t-chips::-webkit-scrollbar{display:none}
  .p-tour .t-chip{width:max-content;scroll-snap-align:start}
  .p-tour .t-rail{grid-auto-columns:78%}
  .p-tour .t-days{padding-left:30px}
  .p-tour .t-days::before,.p-tour .t-days::after{left:8px}
  .p-tour .t-day__node{left:-30px;top:26px;width:16px;height:16px}
  .p-tour .t-day__card{padding:18px 16px 16px}
  .p-tour .t-day__head{gap:12px}
  .p-tour .t-day__n{font-size:2.5rem}
  .p-tour .t-ho__head{margin-bottom:28px}
  .p-tour .t-stays{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78%;overflow-x:auto;scroll-snap-type:x mandatory;margin-right:-16px;padding:2px 22px 18px 2px;gap:16px;scrollbar-width:none}
  .p-tour .t-stays .t-stay.t-stay--ask,.p-tour .t-stays[data-fill-t] .t-stay.t-stay--ask{display:flex}
  .p-tour .t-stays::-webkit-scrollbar{display:none}
  .p-tour .t-stay{scroll-snap-align:start}
  .p-tour .t-rates{padding:12px 10px}
  .p-tour .t-rates__head{padding:4px 4px 0}
  .p-tour .t-rates table{border-spacing:3px}
  .p-tour .t-rates thead th{font-size:.9rem;padding:10px 2px}
  .p-tour .t-rates thead th:first-child{font-size:.56rem;letter-spacing:.06em}
  .p-tour .t-rates tbody th{font-size:.62rem}
  .p-tour .t-rates tbody th b{font-size:1.25rem}
  .p-tour .t-rates td button{min-height:56px;font-size:.88rem}
  .p-tour .t-rates td button small{font-size:.54rem}
  .p-tour .t-rates td.is-na span{min-height:56px;font-size:.56rem}
  .p-tour .t-calc__top{padding:24px 18px 20px}
  .p-tour .t-calc__two{grid-template-columns:1fr}
  .p-tour .t-calc__cut{margin:0 18px}
  .p-tour .t-calc__cut::before{left:-34px}.p-tour .t-calc__cut::after{right:-34px}
  .p-tour .t-calc__out{padding:20px 18px 22px}
  .p-tour .t-calc__btns{grid-template-columns:minmax(0,1fr)}
  .p-tour .t-it__acts .btn{flex:1 1 auto}
  .p-tour .t-in__cols{grid-template-columns:minmax(0,1fr)}
  .p-tour .t-list{padding:22px 18px}
  .p-tour .t-gifts{padding:22px 18px}
  /* twelve visits as compact pills on phones, not twelve ruled rows */
  .p-tour .t-free{columns:auto;display:flex;flex-wrap:wrap;gap:7px}
  .p-tour .t-free li{padding:7px 11px 7px 26px;border:1.5px solid var(--ink);border-radius:999px;font-size:.8rem;background:var(--white)}
  .p-tour .t-free li::before{left:9px;top:50%;width:9px;height:9px;translate:0 -50%}
  .p-tour .t-fq__more{padding:16px}
  .p-tour .t-moments__head{align-items:flex-end}
  .p-tour .t-lb__nav{top:auto;bottom:96px;transform:none;width:48px;height:48px}
  .p-tour .t-lb__nav:hover{transform:none}
  .p-tour .t-lb__thumbs{justify-content:flex-start}
}
@media (prefers-reduced-motion:reduce){
  .p-tour .t-sub,.p-tour .t-map,.p-tour .t-pr__table{transition:none}
}
