/* ==========================================================================
   Itinerary page layout (every header-menu page)
   Four looks share one structure: route · postcard · blueprint · notebook
   ========================================================================== */
.lp section{padding-block:clamp(48px,7vw,96px)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- 1. top section ---------- */
.lp .lp-hero{position:relative;overflow:clip;padding-block:clamp(28px,5vw,64px) clamp(40px,6vw,80px);isolation:isolate}
.lp-hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(28px,5vw,64px);align-items:center}
.lp-copy{display:grid;gap:18px;min-width:0;align-content:center}
.lp-copy h1{font-size:clamp(2.2rem,4.8vw,3.9rem);font-weight:800}
.lp-copy .lede{max-width:56ch}
.lp-points{margin:2px 0 0;font-weight:600}
.lp-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:0}
.lp-facts div{background:var(--glass);border:1px solid var(--line);border-radius:14px;padding:10px 14px;backdrop-filter:blur(10px)}
.lp-facts dt{font:600 .7rem/1.2 var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.lp-facts dd{margin:4px 0 0;font-weight:700}
.lp-media{min-width:0;display:grid;justify-items:center}
.lp-frame{position:relative;width:min(100%,440px)}
.lp-frame .story,.lp-frame .slot{aspect-ratio:4/5;width:100%;border-radius:22px}
.lp-ph{display:grid;place-content:center;justify-items:center;gap:12px;text-align:center;padding:24px;color:var(--red-ink);font-weight:600;background:radial-gradient(120% 90% at 30% 20%,#fff 0%,var(--blush) 60%,#FFC9D4 100%)}
.lp-ph-play{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--red);color:#fff;font-size:1.5rem;box-shadow:0 12px 30px -10px var(--red);animation:lpPulse 2.4s ease-in-out infinite}
@keyframes lpPulse{50%{transform:scale(1.08)}}
.lp-stamp{position:absolute;z-index:3;font:700 .8rem/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase}
.lp-deco{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;color:var(--red)}

/* route: dotted travel line + boarding-pass frame */
.lp--route .lp-deco{opacity:.32}
.lp--route .lp-frame{background:var(--solid);padding:12px 12px 52px;border-radius:28px;box-shadow:var(--shadow);transform:rotate(1.2deg)}
.lp--route .lp-frame::after{content:"";position:absolute;left:18px;right:18px;bottom:30px;border-top:2px dashed var(--line)}
.lp--route .lp-frame::before{content:"✈  STI · BOARDING PASS";position:absolute;left:22px;bottom:9px;font:600 .68rem/1 var(--f-mono);letter-spacing:.12em;color:var(--muted)}
.lp--route .lp-stamp{top:-14px;left:-14px;background:var(--red);color:var(--on-red);padding:10px 14px;border-radius:999px;transform:rotate(-6deg);box-shadow:0 10px 20px -10px var(--red)}

/* postcard: polaroid + postage stamp */
.lp--postcard .lp-deco{opacity:.18;transform:translate(52%,-4%);width:60%;left:auto;right:0}
.lp--postcard .lp-frame{background:#fff;padding:12px 12px 56px;border-radius:6px;box-shadow:0 2px 4px rgba(0,0,0,.06),0 28px 50px -24px rgba(120,10,40,.45);transform:rotate(2.6deg)}
.lp--postcard .lp-frame .story,.lp--postcard .lp-frame .slot{border-radius:3px}
.lp--postcard .lp-stamp{top:-22px;right:-18px;width:96px;height:112px;display:grid;place-items:center;text-align:center;padding:12px;background:var(--red);color:#fff;font:800 .8rem/1.15 var(--f-display);letter-spacing:.02em;text-transform:none;transform:rotate(8deg);border-radius:3px;outline:2px dashed rgba(255,255,255,.85);outline-offset:-7px;box-shadow:0 0 0 5px #fff,0 14px 24px -12px rgba(120,10,40,.5)}
.lp--postcard .lp-media::after{content:"";position:absolute;width:150px;height:150px;border:3px solid var(--red);border-radius:50%;opacity:.22;right:4%;bottom:-6%;pointer-events:none}
.lp--postcard .lp-media{position:relative}

/* blueprint: grid paper + crop marks + mono spec labels */
.lp-grid{background-image:linear-gradient(rgba(255,23,68,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,23,68,.07) 1px,transparent 1px);background-size:32px 32px;-webkit-mask:linear-gradient(180deg,#000 40%,transparent);mask:linear-gradient(180deg,#000 40%,transparent)}
.lp--blueprint .lp-frame{padding:14px}
.lp--blueprint .lp-frame::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(var(--red),var(--red)) 0 0/26px 3px,linear-gradient(var(--red),var(--red)) 0 0/3px 26px,linear-gradient(var(--red),var(--red)) 100% 0/26px 3px,linear-gradient(var(--red),var(--red)) 100% 0/3px 26px,linear-gradient(var(--red),var(--red)) 0 100%/26px 3px,linear-gradient(var(--red),var(--red)) 0 100%/3px 26px,linear-gradient(var(--red),var(--red)) 100% 100%/26px 3px,linear-gradient(var(--red),var(--red)) 100% 100%/3px 26px;background-repeat:no-repeat}
.lp--blueprint .lp-frame .story,.lp--blueprint .lp-frame .slot{border-radius:10px}
.lp--blueprint .lp-stamp{bottom:28px;left:-10px;background:var(--ink);color:#fff;font-family:var(--f-mono);font-weight:500;padding:8px 12px;border-radius:6px}
.lp--blueprint .lp-copy .eyebrow{font-family:var(--f-mono)}

/* notebook: ruled paper, red margin, taped photo, sticky-note badge */
.lp-lines{background:repeating-linear-gradient(180deg,transparent 0 35px,rgba(20,33,61,.07) 35px 36px);-webkit-mask:linear-gradient(180deg,#000 50%,transparent);mask:linear-gradient(180deg,#000 50%,transparent)}
.lp-lines::before{content:"";position:absolute;top:0;bottom:0;left:clamp(10px,4vw,56px);width:2px;background:rgba(255,23,68,.25)}
.lp--notebook .lp-frame{transform:rotate(-1.6deg)}
.lp--notebook .lp-frame .story,.lp--notebook .lp-frame .slot{border-radius:8px;box-shadow:var(--shadow);border:8px solid #fff}
.lp--notebook .lp-frame::before,.lp--notebook .lp-frame::after{content:"";position:absolute;z-index:4;width:96px;height:28px;background:rgba(255,201,60,.75);top:-12px;box-shadow:0 2px 4px rgba(0,0,0,.08)}
.lp--notebook .lp-frame::before{left:-18px;transform:rotate(-28deg)}
.lp--notebook .lp-frame::after{right:-18px;transform:rotate(26deg)}
.lp--notebook .lp-stamp{right:-16px;bottom:22px;background:var(--bee);color:var(--bee-ink);padding:16px 14px;border-radius:2px 2px 14px 2px;transform:rotate(4deg);box-shadow:0 12px 18px -10px rgba(0,0,0,.35);font-family:var(--f-display);text-transform:none;font-size:.95rem;letter-spacing:0}
.lp--notebook .lp-copy h1 em.s{background:linear-gradient(transparent 62%,rgba(255,201,60,.55) 62%);padding-inline:.06em}

/* ---------- 2. why cards ---------- */
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:16px;position:relative}
.wcard{position:relative;display:grid;align-content:start;gap:10px;padding:22px;border-radius:20px;background:var(--solid);border:1px solid var(--line);box-shadow:var(--shadow);transition:transform .25s,border-color .25s}
.wcard:hover{transform:translateY(-5px);border-color:var(--red)}
.wicon{font-size:1.9rem;line-height:1}
.wcard h3{font:700 1.14rem/1.25 var(--f-display)}
.wcard p{color:var(--muted);font-size:.95rem}
.wnum{font:500 .72rem/1 var(--f-mono);letter-spacing:.12em;color:var(--red-ink)}
.lp--route .why-grid::before{content:"";position:absolute;left:24px;right:24px;top:30px;border-top:2px dashed rgba(255,23,68,.35);z-index:0}
.lp--route .wcard{padding-top:54px}
.lp--route .wnum{position:absolute;top:16px;left:18px;background:var(--red);color:#fff;padding:7px 10px;border-radius:999px;box-shadow:0 0 0 5px var(--blush-2)}
.lp--route .wnum::before{content:"STOP "}
.lp--postcard .wcard{border-radius:8px;outline:2px dashed rgba(255,23,68,.25);outline-offset:-10px;padding:28px}
.lp--postcard .wcard:nth-child(odd){transform:rotate(-1deg)}.lp--postcard .wcard:nth-child(even){transform:rotate(1deg)}
.lp--postcard .wcard:hover{transform:rotate(0) translateY(-5px)}
.lp--postcard .wnum{position:absolute;top:18px;right:20px;font-family:var(--f-em);font-style:italic;font-size:1.6rem;letter-spacing:0;opacity:.6}
.lp--blueprint .wcard{background:rgba(255,255,255,.75);border:1px dashed rgba(255,23,68,.45);border-radius:12px;box-shadow:none}
.lp--blueprint .wnum::before{content:"SPEC-"}
.lp--blueprint .wcard::after{content:"";position:absolute;right:14px;top:14px;width:14px;height:14px;border-top:2px solid var(--red);border-right:2px solid var(--red)}
.lp--notebook .wcard{border:0;border-radius:3px 3px 18px 3px;box-shadow:0 14px 24px -14px rgba(60,20,0,.35)}
.lp--notebook .wcard:nth-child(4n+1){background:#FFF7CF;transform:rotate(-1.2deg)}
.lp--notebook .wcard:nth-child(4n+2){background:#FFE6EB;transform:rotate(.9deg)}
.lp--notebook .wcard:nth-child(4n+3){background:#E7F3FF;transform:rotate(-.6deg)}
.lp--notebook .wcard:nth-child(4n+4){background:#E9F7EE;transform:rotate(1.3deg)}
.lp--notebook .wcard:hover{transform:rotate(0) translateY(-5px)}
.lp--notebook .wcard::before{content:"";position:absolute;top:-10px;left:50%;width:70px;height:20px;margin-left:-35px;background:rgba(255,255,255,.7);box-shadow:0 1px 3px rgba(0,0,0,.08)}

/* ---------- 3. itinerary cards ---------- */
.igrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:18px}
.icard{position:relative;display:grid;grid-template-rows:auto 1fr;border-radius:22px;background:var(--solid);border:1px solid var(--line);overflow:hidden;cursor:pointer;box-shadow:var(--shadow);transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .25s}
.icard::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%),rgba(255,23,68,.10),transparent 60%);opacity:0;transition:opacity .25s}
.icard:hover{transform:translateY(-6px);border-color:var(--red)}
.icard:hover::after{opacity:1}
.icard-media{position:relative;aspect-ratio:16/11;background:var(--blush);overflow:hidden}
.icard-media img,.icard-media video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
.icard:hover .icard-media img,.icard:hover .icard-media video{transform:scale(1.06)}
.icard .pin{position:absolute;top:12px;left:12px;font:600 .7rem/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;padding:7px 10px;border-radius:999px;background:var(--red);color:var(--on-red)}
.icard .dur{position:absolute;right:12px;bottom:12px;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);font-weight:700;font-size:.8rem}
.icard-body{display:flex;flex-direction:column;gap:10px;padding:16px 18px 18px}
.icard-body .chips{gap:6px}
.icard .route{font:500 .72rem/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--red-ink)}
.icard h3{font:700 1.2rem/1.2 var(--f-display)}
.icard p{color:var(--muted);font-size:.93rem}
.icard .chips span{font-size:.76rem;padding:5px 10px}
.imeta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;font-size:.84rem}
.imeta dt{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
.imeta dd{margin:2px 0 0;font-weight:600}
.icard-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:4px;flex-wrap:wrap}
.icard-foot .btn{padding:11px 18px;font-size:.92rem}
.itrip{font-size:.84rem;font-weight:600;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.itrip:hover{color:var(--red-ink)}
.lp--route .icard-body{border-top:2px dashed var(--line);position:relative}
.lp--route .icard-body::before,.lp--route .icard-body::after{content:"";position:absolute;top:-11px;width:20px;height:20px;border-radius:50%;background:var(--blush-2);border:1px solid var(--line)}
.lp--route .icard-body::before{left:-11px}.lp--route .icard-body::after{right:-11px}
.lp--postcard .icard{padding:10px 10px 0;border-radius:8px}
.lp--postcard .icard-media{border-radius:4px}
.lp--postcard .icard:nth-child(odd){transform:rotate(-.8deg)}.lp--postcard .icard:nth-child(even){transform:rotate(.8deg)}
.lp--postcard .icard:hover{transform:rotate(0) translateY(-6px)}
.lp--blueprint .icard{border:1px dashed rgba(255,23,68,.45);border-radius:14px;box-shadow:none;background:rgba(255,255,255,.85)}
.lp--blueprint .icard h3{font-family:var(--f-display)}
.lp--notebook .icard{border-radius:6px 6px 22px 6px}
.lp--notebook .icard-media::after{content:"";position:absolute;top:-8px;left:50%;width:80px;height:24px;margin-left:-40px;background:rgba(255,201,60,.7);transform:rotate(-3deg)}

/* ---------- 4. body text + side card ---------- */
.lp-body-grid,.trip-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(24px,5vw,64px);align-items:start}
.lp-aside,.trip-side{position:sticky;top:100px;display:grid;gap:16px}
.aside-card{display:grid;gap:12px;padding:22px;border-radius:22px;background:var(--glass);border:1px solid var(--glass-edge);backdrop-filter:blur(14px);box-shadow:var(--shadow)}
.aside-card .aside-h{font:800 1.3rem/1.2 var(--f-display)}
.aside-card p{color:var(--muted);font-size:.95rem}
.aside-card .btn{justify-content:center}
.aside-tel{font-size:.88rem;font-weight:600;color:var(--red-ink);text-align:center}
.trip-links .chips a span{display:inline-block}
.lp-kids{padding-block:clamp(32px,5vw,64px)!important}

/* ---------- day plan ---------- */
.days{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:0;position:relative}
.days li{display:grid;grid-template-columns:76px 1fr;gap:14px;padding:14px 0;position:relative}
.days li + li{border-top:1px dashed var(--line)}
.days .dnum{align-self:start;justify-self:start;font:500 .74rem/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--red-ink);background:var(--blush);padding:8px 10px;border-radius:999px;white-space:nowrap}
.days h3,.days h4{font:700 1.06rem/1.3 var(--f-display);margin:0}
.days p{color:var(--muted);font-size:.94rem;margin-top:4px}
.days-locked .lock-line{height:10px;width:min(100%,380px);border-radius:6px;margin-top:10px;background:linear-gradient(90deg,var(--blush) 0 70%,transparent 70%),linear-gradient(90deg,var(--blush-2),var(--blush));opacity:.9;position:relative}
.days-locked .lock-line::after{content:"🔒";position:absolute;right:-26px;top:-5px;font-size:.8rem}
.demo-title{font:700 .82rem/1.3 var(--f-body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}

/* ---------- questions dialog ---------- */
html.im-lock{overflow:hidden}
.imodal{border:0;padding:0;border-radius:26px;width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;background:var(--solid);color:var(--ink);box-shadow:0 40px 90px -30px rgba(60,10,25,.6)}
.imodal::backdrop{background:rgba(26,20,22,.55);backdrop-filter:blur(4px)}
.imodal[open]{animation:imIn .32s cubic-bezier(.2,.8,.2,1)}
@keyframes imIn{from{opacity:0;transform:translateY(18px) scale(.98)}}
.iform{position:relative;display:grid;gap:16px;padding:clamp(20px,4vw,34px)}
.im-x{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--solid);cursor:pointer;font-size:1rem}
.im-x:hover{border-color:var(--red);color:var(--red-ink)}
.im-head{display:grid;gap:8px;padding-right:40px}
.im-trip{justify-self:start;font:600 .74rem/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;padding:7px 11px;border-radius:999px;background:var(--blush);color:var(--red-ink)}
.im-head .im-title{margin:0;font:800 clamp(1.5rem,3.4vw,2rem)/1.1 var(--f-display)}
.im-lede{color:var(--muted)}
.im-steps{list-style:none;padding:0;margin:6px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;font-size:.72rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.im-steps li{padding-top:8px;border-top:4px solid var(--blush);transition:border-color .3s,color .3s}
.im-steps li.on{border-color:var(--red);color:var(--red-ink)}
.im-step{border:0;margin:0;padding:0;display:grid;gap:14px;min-width:0}
.im-h3{font:800 1.15rem/1.25 var(--f-display);padding:0;margin-bottom:2px}
.iform .three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.iform textarea{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--blush-2);font:inherit;color:var(--ink);resize:vertical}
.iform textarea:focus{outline:2px solid var(--red);border-color:transparent}
.flabel{font-size:.82rem;font-weight:600;color:var(--muted)}
.ichips{display:flex;flex-wrap:wrap;gap:8px}
.ichips label{position:relative;cursor:pointer}
.ichips input{position:absolute;opacity:0;inset:0;cursor:pointer}
.ichips span{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:var(--blush-2);font-size:.88rem;font-weight:600;transition:background .2s,border-color .2s,color .2s}
.ichips input:checked + span{background:var(--red);border-color:var(--red);color:#fff}
.ichips input:checked + span::before{content:"✓"}
.ichips input:focus-visible + span{outline:3px solid var(--red);outline-offset:2px}
.im-err{padding:11px 14px;border-radius:12px;background:var(--wait-bg);color:var(--wait);font-weight:600;font-size:.9rem}
.im-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:4px}
.im-done{text-align:center;justify-items:center;outline:none}
.im-ok{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--ok-bg);color:var(--ok);font-size:2rem;font-weight:800;animation:imPop .5s cubic-bezier(.2,1.6,.4,1)}
@keyframes imPop{from{transform:scale(.3);opacity:0}}
.im-thanks{font:800 clamp(1.5rem,3.6vw,2.1rem)/1.1 var(--f-display)}
.im-thanks-text{font-size:1.08rem;font-weight:600;color:var(--red-ink)}
.im-demo{text-align:left;width:100%;background:var(--blush-2);border:1px solid var(--line);border-radius:18px;padding:18px 18px 4px;margin-top:6px}
.im-demo-note{color:var(--muted);font-size:.92rem;margin-bottom:10px}
.im-demo-note .tag{display:inline-block;font:600 .68rem/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;background:var(--ink);color:#fff;padding:5px 8px;border-radius:6px;margin-right:4px}
.im-demo .days{margin-bottom:8px}
.im-done .im-nav{width:100%}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .lp-hero-grid,.lp-body-grid,.trip-grid{grid-template-columns:1fr}
  .lp-frame{width:min(100%,400px)}
  .lp-aside,.trip-side{position:static}
}
@media (max-width:620px){
  .iform .three{grid-template-columns:1fr 1fr}
  .iform .three .field:first-child{grid-column:1/-1}
  .lp--route .why-grid::before{display:none}
  .days li{grid-template-columns:1fr;gap:8px}
  .lp--postcard .lp-stamp{right:-6px;width:80px;height:94px;font-size:.72rem}
  .lp--notebook .lp-stamp{right:-6px}
  .lp--route .lp-stamp{left:-4px}
  .lp--postcard .lp-deco{display:none}
}
@media print{
  body.im-printing > *:not(.imodal){display:none!important}
  .imodal{position:static;box-shadow:none;max-height:none;width:auto}
  .imodal .im-nav,.imodal .im-x{display:none!important}
}

.imodal[data-step="3"] .im-head{display:none}

.lp-updated{font-size:.82rem;color:var(--muted)}
.lp-updated time{font-weight:600;color:var(--ink)}
.lp-faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,5vw,64px);align-items:start}
.lp-faq .sec-head{position:sticky;top:100px}
.lp-faq .sec-head a{color:var(--red-ink);text-decoration:underline}
.lp-faq summary h3{display:inline;font:inherit;margin:0}
.js-story > img{border-radius:inherit}
@media (max-width:960px){.lp-faq-grid{grid-template-columns:1fr}.lp-faq .sec-head{position:static}}
