
.plan-proto{
    --white:#FFFFFF;
    --navy:#1D476B;
    --pink:#E8768F;
    --gold:#C9A15C;
    --blue-gray:#55657F;
    --hairline:rgba(85,101,127,.4);
    --text:rgba(0,0,0,.88);

    --header-h:56px;      /* temp */
    --bottomnav-h:56px;   /* temp */
    --lh-title:1.2;       /* temp */
    --lh-body:1.5;        /* temp */
    --lh-micro:1.4;       /* temp */
    --fw-title:600;       /* temp */
    --fw-body:400;        /* temp */
    --fw-micro:500;       /* temp */
    --control-h:48px;     /* temp — min touch target */
    --gutter:20px;        /* approved mobile gutter */
  }
.plan-proto *{box-sizing:border-box;margin:0;padding:0}
.plan-proto, .plan-proto{background:var(--white);color:var(--text);font-family:'Montserrat',sans-serif;-webkit-font-smoothing:antialiased}
.plan-proto{padding-bottom:var(--bottomnav-h)}
.plan-proto a{color:var(--navy);text-decoration:none}
.plan-proto a:focus-visible, .plan-proto button:focus-visible, .plan-proto summary:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.plan-proto .shell{max-width:100%;margin:0 auto}
.plan-proto.container,.plan-proto .container{padding-left:var(--gutter);padding-right:var(--gutter)}
.plan-proto .measure{max-width:720px}
.plan-proto header.app-header{
    height:var(--header-h);position:sticky;top:0;z-index:10;
    background:var(--white);border-bottom:1px solid var(--hairline);
    display:flex;align-items:center;justify-content:space-between;
  }
.plan-proto .logo{display:block;height:32px;width:auto}
.plan-proto .lang{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:var(--fw-micro);line-height:var(--lh-micro);color:var(--navy)}
.plan-proto .lang .sep{color:var(--hairline)}
.plan-proto .lang .off{color:var(--blue-gray);font-weight:var(--fw-body)}
.plan-proto /* Compact Hero — AppShell owns H1. No marketing. */
  .page-title{font-size:32px;font-weight:var(--fw-title);line-height:var(--lh-title);padding-top:32px}
.plan-proto .page-sub{margin-top:12px;font-size:16px;font-weight:var(--fw-body);line-height:var(--lh-body);color:var(--blue-gray)}
.plan-proto /* SectionHeader (H2) — one per module */
  section.module{margin-top:56px}
.plan-proto .section-header h2{font-size:22px;font-weight:var(--fw-title);line-height:var(--lh-title)}
.plan-proto .section-header p{margin-top:8px;font-size:14px;font-weight:var(--fw-body);line-height:var(--lh-body);color:var(--blue-gray)}
.plan-proto /* Accordion (L2) — topics, .plan-proto collapsed by default */
  .accordion{margin-top:20px;border-top:1px solid var(--hairline)}
.plan-proto .accordion details{border-bottom:1px solid var(--hairline)}
.plan-proto .accordion summary{list-style:none;cursor:pointer;min-height:var(--control-h);display:flex;align-items:flex-start;
    gap:12px;padding:20px 0;color:var(--text)}
.plan-proto .accordion summary::-webkit-details-marker{display:none}
.plan-proto .accordion summary::marker{content:""}
.plan-proto .t-ico{flex:0 0 20px;width:20px;height:20px;margin-top:3px;color:var(--blue-gray);opacity:.7}
.plan-proto .t-ico svg{width:20px;height:20px;display:block}
.plan-proto .t-head{flex:1 1 auto;min-width:0;display:block}
.plan-proto .t-title{display:block;font-size:17px;font-weight:var(--fw-micro);line-height:1.35;color:var(--text);
    overflow-wrap:anywhere;word-break:break-word;hyphens:auto}
.plan-proto .t-meta{display:block;margin-top:6px;font-size:12px;font-weight:var(--fw-body);line-height:var(--lh-micro);
    letter-spacing:.01em;color:var(--blue-gray);overflow-wrap:anywhere}
.plan-proto .accordion summary .chev{width:20px;height:20px;flex:0 0 20px;margin-top:4px;color:var(--blue-gray);transition:transform .2s ease}
.plan-proto .accordion details[open] summary .chev{transform:rotate(180deg)}
.plan-proto .accordion .body{padding:4px 0 36px;padding-left:32px}
.plan-proto /* Topic content blocks — fixed order:
     Essential Information → Why it matters → MayTip/May Reflection → TrustNotice */
  .block{margin-top:4px}
.plan-proto .block + .block{margin-top:32px}
.plan-proto .block h3{font-size:13px;font-weight:var(--fw-micro);line-height:var(--lh-micro);
    letter-spacing:.01em;color:var(--blue-gray)}
.plan-proto .block p{margin-top:10px;font-size:16px;font-weight:var(--fw-body);line-height:1.65;color:var(--text)}
.plan-proto .block p + p{margin-top:14px}
.plan-proto .block .qualifier{font-weight:var(--fw-micro)}
.plan-proto .checklist{margin-top:10px;padding-left:18px}
.plan-proto .checklist li{font-size:16px;font-weight:var(--fw-body);line-height:1.65;color:var(--text)}
.plan-proto .checklist li + li{margin-top:6px}
.plan-proto /* MayMessage (L4) — same component for MayTip and May Reflection.
     Differentiated only by label, .plan-proto attribution and editorial voice. No avatar changes. */
  .may{margin-top:32px;display:flex;gap:14px;align-items:flex-start}
.plan-proto .may-avatar{flex:0 0 32px;width:32px;height:32px;border-radius:999px;background:var(--pink);
    display:flex;align-items:center;justify-content:center;color:var(--white);font-size:12px;font-weight:var(--fw-micro)}
.plan-proto .may-body .may-label{font-size:13px;font-weight:var(--fw-micro);line-height:var(--lh-micro);color:var(--blue-gray)}
.plan-proto .may-body p{margin-top:8px;font-size:16px;font-weight:var(--fw-body);line-height:1.65;color:var(--text)}
.plan-proto .may-body .attribution{margin-top:10px;font-size:13px;font-weight:var(--fw-body);line-height:var(--lh-micro);color:var(--blue-gray)}
.plan-proto /* TrustNotice — end of every topic. Single discreet line. */
  .trust{margin-top:32px;font-size:12px;font-weight:var(--fw-body);line-height:var(--lh-micro);color:var(--blue-gray)}
.plan-proto .trust span{color:var(--blue-gray)}
.plan-proto .pending{color:var(--blue-gray)}
.plan-proto .module-pending{margin-top:16px;border-top:1px solid var(--hairline);padding-top:16px;
    font-size:14px;font-weight:var(--fw-body);line-height:var(--lh-body);color:var(--blue-gray)}
.plan-proto /* SponsorSlot — single, .plan-proto global, .plan-proto terminal position only. */
  .sponsor{margin-top:48px;border:1px dashed var(--hairline);border-radius:12px;padding:16px}
.plan-proto .sponsor .label{font-size:12px;letter-spacing:.01em;color:var(--blue-gray);font-weight:var(--fw-micro)}
.plan-proto .sponsor .name{margin-top:8px;font-size:15px;font-weight:var(--fw-micro);color:var(--text)}
.plan-proto .validation-note{margin-top:40px;border-top:1px dashed var(--hairline);padding-top:16px;
    font-size:12px;font-weight:var(--fw-body);line-height:var(--lh-body);color:var(--blue-gray)}
.plan-proto footer.app-footer{margin-top:64px;border-top:1px solid var(--hairline);padding-top:32px;padding-bottom:40px}
.plan-proto .footer-links{display:flex;flex-direction:column;gap:12px;font-size:14px;font-weight:var(--fw-body);line-height:var(--lh-body)}
.plan-proto .footer-note{margin-top:24px;font-size:12px;font-weight:var(--fw-body);line-height:var(--lh-micro);color:var(--blue-gray)}
.plan-proto nav.bottom-nav{
    position:fixed;left:0;right:0;bottom:0;height:var(--bottomnav-h);
    background:var(--white);border-top:1px solid var(--hairline);
    display:flex;align-items:center;justify-content:space-around;z-index:20;
  }
.plan-proto .nav-item{flex:1;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;font-weight:var(--fw-micro);line-height:var(--lh-micro);color:var(--blue-gray)}
.plan-proto .nav-item svg{width:24px;height:24px}
.plan-proto /* ===== Shared desktop layout system (structural) — centering + density ===== */
  @media (min-width:1024px){
.plan-proto{--gutter:48px}
.plan-proto .shell{max-width:1120px;margin-left:auto;margin-right:auto}
.plan-proto header.app-header{max-width:816px;margin-left:auto;margin-right:auto}
.plan-proto .header-inner{max-width:816px;margin-left:auto;margin-right:auto;padding:0}
.plan-proto main.container, .plan-proto footer.app-footer{max-width:816px;margin-left:auto;margin-right:auto}
.plan-proto .measure{max-width:720px;margin-left:auto;margin-right:auto}
.plan-proto /* Density calibration (final pass) — editorial density, .plan-proto media supports */
    .r43{aspect-ratio:16/9}
.plan-proto .hero-media{aspect-ratio:21/9}
.plan-proto .thumb{aspect-ratio:16/9}
.plan-proto .map{aspect-ratio:16/9}
.plan-proto .collection{gap:16px}
.plan-proto .card-body{padding:10px}
.plan-proto .card-title{font-size:17px;margin-top:4px}
.plan-proto .card-meta{margin-top:4px;font-size:13px}
.plan-proto section{margin-top:28px}
  }
/* ===== Home travel editorial — presentation over the SAME content ===== */
.plan-trip-section{margin-top:48px}
.plan-proto.container > .measure > .plan-trip-section{margin-top:20px}
.plan-editorial-card{
  position:relative;min-height:440px;overflow:hidden;border-radius:14px;background:var(--navy);
  box-shadow:0 18px 44px rgba(29,71,107,.16);isolation:isolate;
}
.plan-editorial-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% center}
.plan-editorial-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,35,53,.08) 18%,rgba(13,35,53,.82) 100%)}
.plan-editorial-copy{position:absolute;z-index:1;left:0;right:0;bottom:0;padding:26px 22px 24px;color:var(--white)}
.plan-editorial-kicker{display:block;margin-bottom:10px;font-size:11px;font-weight:600;line-height:1.4;text-transform:uppercase;letter-spacing:.08em}
.plan-editorial-copy h2{max-width:10ch;font-size:31px;font-weight:600;line-height:1.12;color:var(--white)}
.plan-editorial-copy p{max-width:38ch;margin-top:10px;font-size:14px;line-height:1.55;color:var(--white)}
.plan-editorial-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;margin-top:18px;
  padding:0 20px;border-radius:999px;background:var(--pink);color:var(--white)!important;
  font-size:14px;font-weight:600;box-shadow:0 8px 22px rgba(15,34,48,.22)
}
.plan-editorial-cta span{font-size:18px;line-height:1;transition:transform .2s ease}
.plan-editorial-cta:hover span{transform:translateX(3px)}
.plan-bubbles-block{margin-top:28px}
.plan-topics-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;color:var(--navy);font-size:14px;font-weight:600}
.plan-swipe-hint{font-size:11px;font-weight:500;color:var(--blue-gray)}
.plan-bubbles{
  display:flex;gap:14px;overflow-x:auto;padding:4px 2px 14px;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.plan-bubbles::after{content:"";flex:0 0 6px}
.plan-bubbles::-webkit-scrollbar{display:none}
.plan-bubble{
  flex:0 0 auto;scroll-snap-align:start;background:none;border:0;padding:0;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:9px;width:78px;min-height:96px;
}
.plan-bubble-dot{
  position:relative;width:62px;height:62px;border-radius:999px;display:flex;align-items:center;justify-content:center;
  color:var(--navy);background:rgba(134,183,200,.14);
  border:1px solid rgba(29,71,107,.2);transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.plan-bubble-dot > svg{width:25px;height:25px;stroke-width:1.6}
.plan-bubble-dot .plan-wifi{position:absolute;right:7px;bottom:7px;width:13px;height:13px;stroke-width:2;background:var(--white);border-radius:999px}
.plan-bubble-label{
  max-width:78px;font-size:11px;line-height:1.3;text-align:center;color:var(--blue-gray);font-weight:500;
}
.plan-bubble:focus-visible{outline:none}
.plan-bubble:focus-visible .plan-bubble-dot{outline:2px solid #1D476B;outline-offset:3px}
.plan-bubble.is-active .plan-bubble-dot{
  background:var(--navy);border-color:var(--navy);color:var(--white);transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(29,71,107,.2);
}
.plan-bubble.is-active .plan-wifi{background:var(--navy)}
.plan-bubble.is-active .plan-bubble-label{color:#1D476B;font-weight:600}

.plan-topic-panel{
  margin-top:8px;border:1px solid rgba(85,101,127,.2);border-radius:12px;
  padding:4px 16px 8px;background:var(--white);box-shadow:0 8px 26px rgba(29,71,107,.07);
}
.plan-topic-panel .accordion summary{display:grid;grid-template-columns:20px minmax(0,1fr) 20px;align-items:start}
.plan-topic-panel .t-head{min-width:0}
.plan-topic-panel .t-meta{margin-top:6px}
/* Inline reuse of the ratified module markup inside Home. */
.plan-proto.plan-inline{padding-bottom:0}
.plan-proto.plan-inline section.module,
.plan-inline > section.module{margin-top:0}
.plan-proto.plan-inline .accordion .body{padding-bottom:24px}
@media (min-width:720px){
  .plan-editorial-card{min-height:480px}
  .plan-editorial-image{object-position:center 55%}
  .plan-editorial-copy{padding:38px 40px 34px}
  .plan-editorial-copy h2{font-size:38px}
  .plan-editorial-copy p{font-size:15px}
  .plan-bubbles{justify-content:center;gap:20px;overflow-x:visible}
  .plan-bubbles::after{display:none}
  .plan-swipe-hint{display:none}
}
@media (max-width:719px){
  .plan-proto.container{padding-left:var(--gutter);padding-right:var(--gutter)}
  .plan-editorial-card{min-height:520px}
  .plan-topics-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
  .plan-topics-heading > *{min-width:0}
  .plan-swipe-hint{white-space:nowrap}
  .plan-bubble{width:84px}
  .plan-bubble-label{max-width:84px;overflow-wrap:anywhere}
  .plan-topic-panel{padding-left:14px;padding-right:14px}
  .plan-topic-panel .accordion summary{gap:10px;padding:18px 0}
  .plan-topic-panel .t-title{font-size:16px}
  .plan-topic-panel .accordion .body{padding-left:30px}
}
@media (prefers-reduced-motion:reduce){
  .plan-bubble-dot,.plan-editorial-cta span{transition:none}
}
