/* =============================================================
   Jiminy App — Home Page Styles (#page-home only)
   /css/home.css

   Home-page-only styles. Selectors here are scoped to
   #page-home (or related ids) so editing this file cannot
   accidentally affect other pages.
   Load LAST, after variables.css and shared.css, only on
   home.html.
============================================================= */

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media(max-width:620px){

      #page-home .grid.two{gap:14px}
}

@media(max-width:620px){
#page-home .grid.two{grid-template-columns:1fr;gap:14px}
}


  .main,.content{max-width:100%!important;overflow-x:hidden!important;}
  #page-home{max-width:100%!important;overflow-x:hidden!important;display:flex;flex-direction:column;}

  #page-home .book-trip-promo{width:100%;max-width:none;align-self:stretch;}


  #page-home .home-v456-shell,#page-home .home-v456-shell *{box-sizing:border-box;min-width:0;}


  #page-home .home-v456-shell{display:grid;gap:18px;width:100%;max-width:100%;overflow:visible;padding-bottom:0;}


  #page-home .home-v456-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,43%);gap:0;overflow:hidden;padding:0;border-radius:32px;background:#FBF6EEF0;border:1px solid var(--navy);isolation:isolate;}


  #page-home .home-v456-photo{min-height:430px;background-image:url('/assets/heroes/dl-home-hero.jpeg?v=460');background-size:cover;background-position:center 40%;order:2;}


  #page-home .home-v456-content{order:1;padding:42px 28px;color:var(--navy);background:#FBF6EEF0;display:flex;flex-direction:column;justify-content:center;}


  #page-home .home-v456-eyebrow{display:inline-flex;align-items:center;width:max-content;max-width:100%;border:1px solid rgba(7,31,65,.18);background:rgba(7,31,65,.06);border-radius:999px;padding:9px 13px;color:var(--navy);font-size:13px;font-weight:1000;margin-bottom:18px;}


  #page-home .home-v456-hero h1{font-family:Georgia,serif;font-size:clamp(42px,6.5vw,72px);line-height:.96;letter-spacing:-.055em;margin:0 0 12px;color:var(--navy);}


  #page-home .home-v456-tagline{margin:0 0 14px;color:var(--gold);font-size:22px;font-weight:1000;}


  #page-home .home-v456-copy{margin:0;color:var(--muted);font-size:17px;line-height:1.48;max-width:560px;}


  #page-home .home-v456-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;}


  #page-home .home-v456-actions .btn{min-height:52px;justify-content:center;}


  #page-home .home-v456-actions .secondary:not(.home-v456-start-story){background:var(--gold);color:var(--navy);}
  #page-home .home-v456-actions .secondary:not(.home-v456-start-story):hover{filter:brightness(1.1);}
  body.jiminy-signed-in #page-home .home-v456-actions .secondary:not(.home-v456-start-story){background:#60738D;color:#fff;}


  #page-home .home-v456-start-story.is-disabled{
    background:rgba(7,31,65,.12);
    color:rgba(11,23,54,.45);
    cursor:not-allowed;
    pointer-events:none;
    box-shadow:none;
  }


  #page-home .home-v456-start-story:not(.is-disabled){
    background:var(--navy);
    color:#fff;
    box-shadow:0 12px 28px rgba(7,31,65,.28);
  }
  #page-home .home-v456-start-story:not(.is-disabled):hover{
    filter:brightness(1.15);
    box-shadow:0 16px 34px rgba(7,31,65,.4);
  }


  /* ── EXPLORER PASS BANNER ─────────────────────────────────────
     Sits above the hero inside .home-v456-shell, so it inherits the
     shell's grid gap/width and stays aligned with the hero without
     any extra width-matching CSS. The whole banner is a single link
     (no separate CTA buttons) — content on the left, a chevron on
     the right, sparkle decoration in the top-right corner. */

  #page-home .explorer-pass-banner {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    padding: 16px 22px;
    border-radius: 28px;
    border: 1px solid var(--gold);
    background: linear-gradient(135deg, var(--navy) 0%, var(--navy2) 100%);
    box-shadow: 0 12px 28px rgba(7,31,65,.22);
    color: var(--cream);
    text-decoration: none;
    transition: box-shadow .15s ease, filter .15s ease;
  }
  #page-home .explorer-pass-banner:hover {
    filter: brightness(1.05);
    box-shadow: 0 14px 32px rgba(7,31,65,.3);
  }
  #page-home .explorer-pass-banner:active {
    filter: brightness(.97);
  }
  #page-home .explorer-pass-banner:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 3px;
  }

  /* Decorative sparkle cluster only — positioned near the top-right
     corner, not tied to any flex item, so it never affects content
     layout. */
  #page-home .explorer-pass-banner__visual {
    position: absolute;
    top: 14px;
    right: 24px;
    width: auto;
    height: auto;
  }
  #page-home .explorer-pass-banner__sparkle {
    position: absolute;
    color: var(--gold);
    font-size: 10px;
    opacity: .85;
  }
  #page-home .explorer-pass-banner__sparkle--1 { top: -4px; right: 0; font-size: 14px; }
  #page-home .explorer-pass-banner__sparkle--2 { top: 12px; right: 20px; font-size: 9px; }
  #page-home .explorer-pass-banner__sparkle--3 { top: 4px; right: -14px; font-size: 8px; }
  @media (prefers-reduced-motion: no-preference) {
    #page-home .explorer-pass-banner__sparkle {
      animation: explorerPassSparkle 3.2s ease-in-out infinite;
    }
    #page-home .explorer-pass-banner__sparkle--2 { animation-delay: .6s; }
    #page-home .explorer-pass-banner__sparkle--3 { animation-delay: 1.2s; }
  }
  @keyframes explorerPassSparkle {
    0%, 100% { opacity: .5; transform: scale(.85); }
    50% { opacity: 1; transform: scale(1.1); }
  }

  #page-home .explorer-pass-banner__content {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
  }
  #page-home .explorer-pass-banner__eyebrow {
    display: block;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 4px;
  }

  #page-home .explorer-pass-banner__content p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.4;
    color: rgba(251,247,238,.78);
    max-width: 46ch;
  }

  @media (max-width: 640px) {
    #page-home .explorer-pass-banner {
      align-items: center;
      gap: 8px;
      padding: 12px 14px;
      border-radius: 18px;
    }
    #page-home .explorer-pass-banner__visual {
      top: 10px;
      right: 12px;
    }
    #page-home .explorer-pass-banner__sparkle--1 { top: 0; right: 2px; font-size: 12px; }
    #page-home .explorer-pass-banner__sparkle--2 { top: 14px; right: 20px; font-size: 8px; }
    #page-home .explorer-pass-banner__sparkle--3 { top: 6px; right: -2px; font-size: 7px; }
    #page-home .explorer-pass-banner__eyebrow {
      font-size: 10px;
      margin-bottom: 2px;
      padding-right: 40px; /* clears the sparkle cluster */
    }
    #page-home .explorer-pass-banner__content p {
      font-size: 11.5px;
      padding-right: 40px;
      line-height: 1.35;
    }
  }


  #page-home .home-v456-go-pill{
    background:linear-gradient(135deg,#ffd766,var(--gold));
    color:#1a1200;
    box-shadow:0 12px 28px rgba(244,184,37,.28);
  }
  #page-home .home-v456-go-pill:hover{
    filter:brightness(1.06);
    box-shadow:0 16px 34px rgba(244,184,37,.4);
  }



  #page-home .home-v456-ask{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(280px,.9fr);gap:16px;align-items:center;padding:18px 20px;border-radius:28px;margin:0!important;position:relative;z-index:1;}


  #page-home .home-v456-ask-icon{width:60px;height:60px;border-radius:21px;background:linear-gradient(135deg,var(--navy),#123d7e);color:var(--gold);display:grid;place-items:center;font-size:29px;}


  #page-home .home-v456-ask h2{font-family:Georgia,serif;color:var(--navy);font-size:30px;line-height:1;margin:0 0 4px;}


  #page-home .home-v456-ask p{margin:0;color:#293656;font-weight:950;}


  #page-home .home-v456-search{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 10px 10px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-weight:900;cursor:pointer;box-shadow:0 10px 24px rgba(7,31,65,.06);min-width:0;width:100%;}


  #page-home .home-v456-search span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}


  #page-home .home-v456-search b{width:38px;height:38px;flex:0 0 38px;border-radius:999px;background:var(--navy);color:var(--gold);display:grid;place-items:center;}



  #page-home .home-v456-section{display:grid;gap:14px;}


  #page-home .home-v456-section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;}


  #page-home .home-v456-section-head h2,#page-home .home-v456-hey h2,#page-home .home-v456-planning h2,#page-home .home-v456-creator h2,#page-home .home-v456-final h2{font-family:Georgia,serif;color:var(--navy);font-size:30px;line-height:1;margin:0;letter-spacing:-.035em;}


  #page-home .home-v456-link{border:0;background:transparent;color:var(--navy);font-weight:1000;cursor:pointer;white-space:nowrap;}


  #page-home .home-v456-journey-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}


  #page-home .home-v456-journey-card{min-height:220px;border-radius:26px;padding:18px;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:16px;position:relative;overflow:hidden;color:#fff;border:1px solid var(--navy);box-shadow:0 16px 40px rgba(7,31,65,.12);background-size:cover;background-position:center;}


  #page-home .home-v456-journey-card::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,31,65,.84),rgba(7,31,65,.12));z-index:0;}


  #page-home .home-v456-journey-card>*{position:relative;z-index:1;}
  #page-home .home-v456-journey-card-link{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:18px;color:#fff;text-decoration:none;}


  #page-home .home-v456-journey-card h3{font-family:Georgia,serif;font-size:29px;line-height:1;margin:0;}


  #page-home .home-v456-journey-card p{margin:5px 0 0;color:#edf4ff;font-weight:850;line-height:1.35;}


  #page-home .home-v456-journey-card .btn{padding:11px 15px;border-radius:15px;}

  #page-home .home-v456-plan-pill{background:#60738D;color:#fff;}
  #page-home .home-v456-plan-pill:hover{filter:brightness(1.1);}


  #page-home .home-v456-journey-actions{display:flex;gap:10px;flex-wrap:wrap;}


  #page-home .home-v456-journey-card.disneyland{background-image:url('/images/disneyland-station.jpeg');}


  #page-home .home-v456-journey-card.wdw{background-image:url('/images/wdw-epcot.jpg');background-size:cover;background-position:center;}


  #page-home .home-v456-journey-card.cruise{background-image:url('/images/disney-wish.jpg');background-size:cover;background-position:center;}



  #page-home .home-v456-hey{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:18px;align-items:center;background:linear-gradient(135deg,#ffffff 0%,#f7fbff 52%,#fff8e6 100%);border:1px solid var(--navy);}


  #page-home .home-v456-hopper{width:82px;height:82px;border-radius:28px;background:#fff8e6;border:1px solid rgba(244,184,37,.42);display:grid;place-items:center;font-size:42px;}


  #page-home .home-v456-hey-copy p{margin:7px 0 0;color:var(--muted);font-weight:850;line-height:1.4;}


  #page-home .home-v456-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:13px;}


  #page-home .home-v456-feature-grid span{border:1px solid var(--line);background:#fff;border-radius:16px;padding:10px 11px;color:var(--navy);font-size:13px;font-weight:1000;}


  #page-home .home-v456-hey .btn{justify-content:center;min-width:132px;}



  #page-home .home-v456-snapshot-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;}


  #page-home .home-v456-snapshot-card{border:1px solid var(--line);background:#fff;border-radius:22px;padding:15px;box-shadow:0 12px 30px rgba(7,31,65,.06);min-height:104px;}


  #page-home .home-v456-snapshot-card b{display:block;color:var(--navy);font-size:18px;line-height:1.18;}


  #page-home .home-v456-snapshot-card span{display:block;color:var(--muted);font-size:13px;font-weight:850;margin-top:8px;}


  #page-home .home-v456-bars{display:flex;gap:4px;margin-top:10px;}

#page-home .home-v456-bars i{width:18px;height:8px;border-radius:999px;background:#42a66c;}

#page-home .home-v456-bars i.dim{background:#dfe7f2;}


  #page-home .home-v456-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}


  #page-home .home-v456-planning,#page-home .home-v456-creator{display:grid;grid-template-columns:118px minmax(0,1fr);gap:16px;align-items:center;}


  #page-home .home-v456-mini-photo{width:118px;height:118px;border-radius:24px;background-image:url('/assets/heroes/dl-home-hero.jpeg?v=460');background-size:cover;background-position:center;border:1px solid var(--line);}


  #page-home .home-v456-food-photo{width:118px;height:118px;border-radius:24px;background:linear-gradient(135deg,#fff2cf,#f2e4d7);display:grid;place-items:center;font-size:48px;border:1px solid var(--line);}


  #page-home .home-v456-planning h3,#page-home .home-v456-creator h3{margin:8px 0 4px;color:var(--navy);font-size:18px;}

#page-home .home-v456-planning p,#page-home .home-v456-creator p{margin:0;color:#293656;font-weight:900;}

#page-home .home-v456-planning small,#page-home .home-v456-creator small{display:block;color:var(--muted);font-weight:850;margin:7px 0 12px;}


  #page-home .home-v456-progress{height:9px;border-radius:999px;background:#dfe7f2;margin:10px 0 5px;overflow:hidden;}

#page-home .home-v456-progress span{display:block;width:45%;height:100%;background:#42a66c;border-radius:999px;}



#page-home .home-v456-section-head.compact h2{font-size:26px;}

#page-home .home-v456-weekly{background:linear-gradient(135deg,#ffffff 0%,#f4ecff 56%,#fff8e6 100%);}

#page-home .home-v456-weekly-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;}

#page-home .home-v456-weekly-grid span{border-left:1px solid rgba(7,31,65,.12);padding:10px;color:var(--navy);font-weight:900;line-height:1.3;}

#page-home .home-v456-weekly-grid small{color:var(--muted);font-weight:850;}

#page-home .home-v456-weekly-grid span:first-child{border-left:0;}


  #page-home .home-v456-final{display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(135deg,var(--navy),#123d7e);color:#fff;overflow:hidden;}

#page-home .home-v456-final h2{color:#fff;}

#page-home .home-v456-final p{margin:7px 0 0;color:#dce8ff;font-weight:850;line-height:1.42;}

#page-home .home-v456-final .primary{background:var(--gold);color:var(--navy);}

@media(max-width:920px){

    #page-home .home-v456-hero{grid-template-columns:1fr;}

    #page-home .home-v456-photo{order:1;min-height:260px;}

    #page-home .home-v456-content{order:2;}

    #page-home .home-v456-ask{grid-template-columns:58px minmax(0,1fr);}
#page-home .home-v456-search{grid-column:1/-1;}

    #page-home .home-v456-journey-grid,#page-home .home-v456-snapshot-grid,#page-home .home-v456-weekly-grid{grid-template-columns:1fr 1fr;}

    #page-home .home-v456-hey{grid-template-columns:74px minmax(0,1fr);}
#page-home .home-v456-hey .btn{grid-column:1/-1;width:100%;}
#page-home .home-v456-feature-grid{grid-column:1/-1;grid-template-columns:1fr 1fr;}
#page-home .home-v456-two-col{grid-template-columns:1fr;}
}

@media(max-width:620px){

    #page-home .home-v456-shell{gap:16px!important;padding-bottom:0!important;}

    #page-home .home-v456-hero{border-radius:24px!important;display:block!important;width:100%!important;max-width:100%!important;overflow:hidden!important;}

    #page-home .home-v456-photo{display:block!important;width:100%!important;height:210px!important;min-height:0!important;background-position:center 12%!important;}

    #page-home .home-v456-content{display:block!important;width:100%!important;padding:18px 16px 20px!important;background:#FBF6EEF0!important;}

    #page-home .home-v456-eyebrow{display:none!important;}

    #page-home .home-v456-hero h1{font-size:40px!important;line-height:.98!important;margin:0 0 10px!important;letter-spacing:-.052em!important;}

    #page-home .home-v456-tagline{font-size:20px!important;margin:0 0 12px!important;}

    #page-home .home-v456-copy{font-size:15.5px!important;line-height:1.45!important;}

    #page-home .home-v456-actions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;margin-top:18px!important;}

    #page-home .home-v456-actions .btn{width:100%!important;min-height:54px!important;border-radius:18px!important;}

    #page-home .home-v456-ask{grid-template-columns:46px minmax(0,1fr)!important;gap:12px!important;padding:14px!important;border-radius:22px!important;width:100%!important;margin:0!important;transform:none!important;}

    #page-home .home-v456-ask-icon{width:46px!important;height:46px!important;border-radius:16px!important;font-size:24px!important;}

    #page-home .home-v456-ask h2{font-size:25px!important;line-height:1.02!important;}
#page-home .home-v456-ask p{font-size:14px!important;}

    #page-home .home-v456-search{grid-column:1/-1!important;min-height:54px!important;padding:9px 9px 9px 15px!important;border-radius:22px!important;}
#page-home .home-v456-search span{font-size:13.5px!important;line-height:1.2!important;}
#page-home .home-v456-search b{width:40px!important;height:40px!important;flex-basis:40px!important;}

    #page-home .home-v456-section-head{display:grid!important;grid-template-columns:1fr auto!important;align-items:end!important;gap:10px!important;padding:0 2px!important;}
#page-home .home-v456-section-head h2{font-size:31px!important;line-height:.98!important;}
#page-home .home-v456-link{font-size:14px!important;}

    #page-home .home-v456-journey-grid,#page-home .home-v456-snapshot-grid,#page-home .home-v456-weekly-grid,#page-home .home-v456-feature-grid{grid-template-columns:1fr!important;}

    #page-home .home-v456-journey-card{min-height:190px!important;border-radius:24px!important;padding:16px!important;}
    #page-home .home-v456-journey-card-link{padding:16px!important;}
#page-home .home-v456-journey-card h3{font-size:27px!important;}

    #page-home .home-v456-hey{grid-template-columns:1fr!important;text-align:left!important;}
#page-home .home-v456-hopper{width:66px!important;height:66px!important;border-radius:22px!important;font-size:34px!important;}
#page-home .home-v456-hey .btn{grid-column:auto!important;width:100%!important;}

    #page-home .home-v456-two-col{grid-template-columns:1fr!important;}
#page-home .home-v456-planning,#page-home .home-v456-creator{grid-template-columns:86px minmax(0,1fr)!important;}
#page-home .home-v456-mini-photo,#page-home .home-v456-food-photo{width:86px!important;height:86px!important;border-radius:20px!important;}
#page-home .home-v456-food-photo{font-size:38px!important;}

    #page-home .home-v456-weekly-grid span{border-left:0!important;border-top:1px solid rgba(7,31,65,.12)!important;}
#page-home .home-v456-weekly-grid span:first-child{border-top:0!important;}

    #page-home .home-v456-final{display:grid!important;}
#page-home .home-v456-final .btn{width:100%!important;justify-content:center!important;}
}

@media(max-width:390px){

    #page-home .home-v456-photo{height:190px!important;}
#page-home .home-v456-hero h1{font-size:36px!important;}
#page-home .home-v456-section-head{grid-template-columns:1fr!important;}
#page-home .home-v456-link{justify-self:start!important;}
}
/* Home-only: .main reserves 98px bottom padding for the floating nav on
   every page. When Home's content is shorter than the viewport, that
   reserved padding renders as visible empty space directly above the
   nav (instead of being scrolled past, as happens on longer pages).
   Override it here so Home's last card can sit closer to the nav,
   matching how it looks once a page's content naturally exceeds
   the viewport height. Uses #homeMain id for reliable targeting
   (works in all browsers, not just ones supporting :has()). */
@media(max-width:1080px){
  #homeMain{padding-bottom:24px!important;}
}

/* =============================================================
   EVERY STORY STARTS HERE
   Premium feature section inserted between the hero and
   Choose Your Journey. Scoped entirely under .home-story-starts
   and .home-story-* so it cannot affect any other section.
============================================================= */

.home-story-starts {
  position: relative;
  overflow: hidden;
  max-width: 1400px;
  margin: 0 auto 28px;
  padding: 48px 32px 44px;
  border-radius: 30px;
  background: var(--navy);
  border: 1px solid rgba(244,184,37,.28);
  box-shadow: 0 26px 64px rgba(6,20,42,.32);
  animation: homeStoryFadeUp .6s ease both;
}

.home-story-starts__pattern {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .06;
  background-image:
    radial-gradient(circle at 12% 18%, #fff 0, transparent 1.4px),
    radial-gradient(circle at 82% 12%, #fff 0, transparent 1.4px),
    radial-gradient(circle at 65% 78%, #fff 0, transparent 1.4px),
    radial-gradient(circle at 30% 85%, #fff 0, transparent 1.4px),
    repeating-radial-gradient(circle at 50% 50%, transparent 0, transparent 46px, rgba(244,184,37,.5) 47px, transparent 48px);
  background-size: auto, auto, auto, auto, 260px 260px;
}

.home-story-starts__head {
  position: relative;
  z-index: 1;
  text-align: center;
  max-width: 640px;
  margin: 0 auto 40px;
}
.home-story-starts__title {
  font-family: Georgia, serif;
  color: var(--gold);
  font-size: clamp(28px, 4.2vw, 40px);
  margin: 0 0 12px;
  letter-spacing: -.01em;
}
.home-story-starts__subtitle {
  margin: 0;
  color: rgba(255,255,255,.72);
  font-size: 15.5px;
  line-height: 1.6;
}

.home-story-starts__cards {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-bottom: 40px;
}
@media (max-width: 980px) {
  .home-story-starts__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .home-story-starts__cards { grid-template-columns: 1fr; }
}

.home-story-card {
  background: linear-gradient(160deg, rgba(255,255,255,.07) 0%, rgba(255,255,255,.02) 100%);
  border: 1px solid rgba(244,184,37,.3);
  border-radius: 22px;
  padding: 28px 22px 26px;
  text-align: center;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  animation: homeStoryCardFadeIn .5s ease both;
}
.home-story-card:nth-child(1) { animation-delay: .08s; }
.home-story-card:nth-child(2) { animation-delay: .18s; }
.home-story-card:nth-child(3) { animation-delay: .28s; }
.home-story-card:hover {
  transform: translateY(-4px);
  border-color: rgba(244,184,37,.65);
  box-shadow: 0 14px 34px rgba(0,0,0,.28), 0 0 0 1px rgba(244,184,37,.25);
}
.home-story-card__icon {
  width: 60px;
  height: 60px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: rgba(244,184,37,.14);
  color: var(--gold);
  display: flex;
  align-items: center;
  justify-content: center;
}
.home-story-card__icon svg {
  width: 28px;
  height: 28px;
}
.home-story-card__title {
  font-family: Georgia, serif;
  color: #fff;
  font-size: 21px;
  margin: 0 0 8px;
}
.home-story-card__desc {
  margin: 0 0 16px;
  color: rgba(255,255,255,.72);
  font-size: 13.5px;
  line-height: 1.55;
}
.home-story-card__list {
  list-style: none;
  margin: 0;
  padding: 14px 0 0;
  border-top: 1px solid rgba(255,255,255,.12);
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.home-story-card__list li {
  font-size: 12.5px;
  font-weight: 700;
  color: rgba(255,255,255,.82);
  position: relative;
  padding-left: 16px;
}
.home-story-card__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
}

.home-story-starts__highlight {
  position: relative;
  z-index: 1;
  text-align: center;
  padding-top: 34px;
  border-top: 1px solid rgba(244,184,37,.22);
  animation: homeStoryFadeUp .55s ease both .38s;
}
.home-story-starts__highlight-title {
  font-family: Georgia, serif;
  color: var(--gold);
  font-size: clamp(22px, 3vw, 30px);
  margin: 0 0 12px;
  letter-spacing: -.01em;
}
.home-story-starts__destinations {
  margin: 0 0 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  color: rgba(255,255,255,.82);
  font-weight: 700;
  font-size: 14px;
}
.home-story-starts__sep {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--gold);
  opacity: .7;
}

.home-story-starts__cta {
  appearance: none;
  border: none;
  border-radius: 999px;
  padding: 16px 36px;
  font-weight: 900;
  font-size: 15px;
  color: #1a1200;
  background: linear-gradient(135deg, #ffd766, var(--gold));
  cursor: pointer;
  min-height: 44px;
  box-shadow: 0 12px 28px rgba(244,184,37,.28);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.home-story-starts__cta:hover {
  transform: translateY(-2px);
  filter: brightness(1.06);
  box-shadow: 0 16px 34px rgba(244,184,37,.4), 0 0 22px rgba(244,184,37,.28);
}
.home-story-starts__cta:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

.home-story-starts__hopper {
  position: absolute;
  right: 26px;
  bottom: 22px;
  width: 108px;
  height: auto;
  z-index: 1;
  pointer-events: none;
}
@media (max-width: 760px) {
  .home-story-starts__hopper { display: none; }
}

@keyframes homeStoryFadeUp {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes homeStoryCardFadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .home-story-starts,
  .home-story-card,
  .home-story-starts__highlight,
  .home-story-starts__cta {
    animation: none;
    transition: none;
  }
}

/* =============================================================
   v543 — HOME FOOTER CARD — added then removed per user request.
   Rules intentionally left out (not retained as dead code) since
   the feature was fully reverted, not just visually hidden.
============================================================= */

/* =============================================================
   JIMINY PURCHASE DIALOG
   Explorer Pass / Ride Advisor / Food Advisor — one-time,
   fixed-duration digital access products. Opened from the existing
   #explorerPassBannerTrigger anchor (js/purchase-dialog.js).
   Scoped entirely under .purchase-dialog* / .purchase-product* /
   .purchase-option* so it cannot affect any other component.
============================================================= */

.purchase-dialog {
  border: none;
  padding: 0;
  background: transparent;
  max-width: min(880px, calc(100vw - 24px));
  width: 100%;
  max-height: calc(100vh - 32px);
  border-radius: 26px;
  overflow: visible;
  color: var(--ink);
}
.purchase-dialog::backdrop {
  background: rgba(4, 13, 28, .62);
}
@media (prefers-reduced-motion: no-preference) {
  .purchase-dialog {
    animation: purchaseDialogIn .22s ease both;
  }
  .purchase-dialog::backdrop {
    animation: purchaseBackdropIn .22s ease both;
  }
}
@keyframes purchaseDialogIn {
  from { opacity: 0; transform: translateY(10px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes purchaseBackdropIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.purchase-dialog__surface {
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 32px);
  background: var(--cream);
  border: 1px solid var(--navy);
  border-radius: 26px;
  box-shadow: 0 30px 70px rgba(4,13,28,.4);
  overflow: hidden;
}

.purchase-dialog__header {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  background: var(--navy);
  border-bottom: 1px solid rgba(244,184,37,.35);
}
.purchase-dialog__brand {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: Georgia, serif;
  font-size: 18px;
  color: #fff;
}
.purchase-dialog__brand-icon {
  color: var(--gold);
  font-size: 15px;
}
.purchase-dialog__close {
  appearance: none;
  border: 1px solid rgba(244,184,37,.4);
  background: rgba(244,184,37,.08);
  color: var(--gold);
  width: 36px;
  height: 36px;
  min-width: 44px;
  min-height: 44px;
  border-radius: 50%;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.purchase-dialog__close:hover {
  background: rgba(244,184,37,.18);
}
.purchase-dialog__close:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}

.purchase-dialog__body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 20px 20px 8px;
}
.purchase-dialog__title {
  margin: 0 0 6px;
  font-family: Georgia, serif;
  font-size: clamp(22px, 3vw, 28px);
  color: var(--navy);
}
.purchase-dialog__description {
  margin: 0 0 16px;
  color: var(--muted);
  font-size: 14.5px;
  line-height: 1.5;
  max-width: 60ch;
}

.purchase-destination {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 14px 16px;
  margin: 0 0 16px;
  background: var(--soft, #f4f7fb);
}
.purchase-destination__label {
  padding: 0;
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 800;
  color: var(--navy);
  line-height: 1.4;
}
.purchase-destination__toggle {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.purchase-destination__option {
  position: relative;
  flex: 1 1 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1.5px solid var(--line);
  background: var(--card);
  color: var(--navy);
  font-weight: 800;
  font-size: 13.5px;
  text-align: center;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.purchase-destination__option input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.purchase-destination__option:has(input:checked) {
  border-color: var(--navy);
  background: var(--navy);
  color: #fff;
}
.purchase-destination__option:hover {
  border-color: var(--navy);
}
.purchase-destination__option input:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}
.purchase-destination__note {
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.45;
  color: var(--muted);
}

.purchase-dialog__status {
  min-height: 20px;
  margin-bottom: 14px;
  font-size: 13px;
  font-weight: 700;
  color: var(--navy);
}
.purchase-dialog__status--error {
  color: #a13a2f;
}
.purchase-dialog__status:empty {
  margin-bottom: 0;
}

.purchase-products {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.purchase-product {
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  padding: 22px 20px;
  color: #fff;
}
.purchase-product--explorer {
  background: linear-gradient(150deg, var(--navy) 0%, var(--navy2) 100%);
  border: 1px solid var(--gold);
}
.purchase-product--ride {
  background: linear-gradient(150deg, #4a2f78 0%, #2c1a4d 100%);
  border: 1px solid #b79ce8;
}
.purchase-product--food {
  background: linear-gradient(150deg, #1f4a34 0%, #12301f 100%);
  border: 1px solid #8fd6ab;
}

.purchase-product__decoration {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 72px;
  height: 72px;
  opacity: .9;
  pointer-events: none;
}
.purchase-product--explorer .purchase-product__decoration { color: var(--gold); }
.purchase-product--ride .purchase-product__decoration { color: #d8c6ff; }
.purchase-product--food .purchase-product__decoration { color: #bdeecb; }
.purchase-product__decoration img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.purchase-product__spark {
  position: absolute;
  font-size: 9px;
  opacity: .85;
}
.purchase-product__spark--1 { top: -2px; right: -6px; }
.purchase-product__spark--2 { bottom: 4px; left: -8px; font-size: 7px; }
@media (prefers-reduced-motion: no-preference) {
  .purchase-product__spark {
    animation: purchaseSparkle 3s ease-in-out infinite;
  }
  .purchase-product__spark--2 { animation-delay: .5s; }
}
@keyframes purchaseSparkle {
  0%, 100% { opacity: .5; transform: scale(.85); }
  50% { opacity: 1; transform: scale(1.1); }
}

.purchase-product__badge {
  display: inline-block;
  align-self: flex-start;
  margin-bottom: 8px;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--gold);
  color: var(--navy);
  font-size: 10.5px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.purchase-product__eyebrow {
  display: block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.purchase-product--explorer .purchase-product__eyebrow { color: var(--gold); }
.purchase-product--ride .purchase-product__eyebrow { color: #d8c6ff; }
.purchase-product--food .purchase-product__eyebrow { color: #bdeecb; }

.purchase-product__title {
  margin: 0 0 6px;
  font-family: Georgia, serif;
  font-size: clamp(22px, 3vw, 28px);
  color: #fff;
  max-width: 80%;
}
.purchase-product__includes {
  margin: 0 0 10px;
  font-weight: 800;
  font-size: 14px;
  color: #fff;
}
.purchase-product__description {
  margin: 0 0 16px;
  font-size: 13.5px;
  line-height: 1.5;
  color: rgba(255,255,255,.82);
  max-width: 46ch;
}

.purchase-product__pricing {
  border: none;
  padding: 0;
  margin: 0 0 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.purchase-option {
  position: relative;
  flex: 1 1 200px;
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1.5px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.06);
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}
.purchase-option:hover {
  background: rgba(255,255,255,.12);
}
.purchase-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.purchase-option__check {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.5);
  position: relative;
}
.purchase-option__check::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: var(--gold);
  opacity: 0;
  transform: scale(.6);
  transition: opacity .12s ease, transform .12s ease;
}
.purchase-option input:checked ~ .purchase-option__check {
  border-color: var(--gold);
}
.purchase-option input:checked ~ .purchase-option__check::after {
  opacity: 1;
  transform: scale(1);
}
.purchase-option:has(input:checked) {
  border-color: var(--gold);
  background: rgba(244,184,37,.14);
}
.purchase-option input:focus-visible ~ .purchase-option__check {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}
.purchase-option__text {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.purchase-option__duration {
  font-weight: 900;
  font-size: 13.5px;
  color: #fff;
}
.purchase-option__access {
  font-size: 11px;
  color: rgba(255,255,255,.7);
}
.purchase-option__price {
  flex-shrink: 0;
  font-weight: 900;
  font-size: 14px;
  color: var(--gold);
  white-space: nowrap;
}

.purchase-product__value {
  margin: 0 0 14px;
  font-size: 12.5px;
  font-weight: 800;
  color: var(--gold);
}

.purchase-product__button {
  appearance: none;
  border: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 46px;
  padding: 12px 18px;
  border-radius: 999px;
  font-weight: 900;
  font-size: 14.5px;
  cursor: pointer;
  transition: filter .15s ease, opacity .15s ease;
}
.purchase-product--explorer .purchase-product__button {
  background: var(--gold);
  color: var(--navy);
}
.purchase-product--ride .purchase-product__button {
  background: #c9b3f5;
  color: #2c1a4d;
}
.purchase-product--food .purchase-product__button {
  background: #a9e8bf;
  color: #12301f;
}
.purchase-product__button:hover {
  filter: brightness(1.06);
}
.purchase-product__button:active {
  filter: brightness(.96);
}
.purchase-product__button:disabled {
  opacity: .7;
  cursor: not-allowed;
}
.purchase-product__button:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.purchase-dialog__footer {
  flex-shrink: 0;
  padding: 10px 20px calc(10px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--line);
  background: var(--cream);
}
.purchase-dialog__restore {
  appearance: none;
  border: none;
  background: none;
  padding: 4px 0;
  margin-bottom: 3px;
  color: var(--navy);
  font-weight: 800;
  font-size: 12px;
  text-decoration: underline;
  cursor: pointer;
  min-height: 32px;
}
.purchase-dialog__restore:disabled {
  opacity: .6;
  cursor: not-allowed;
}
.purchase-dialog__restore:focus-visible {
  outline: 2px solid var(--navy);
  outline-offset: 2px;
}
.purchase-dialog__disclaimer {
  margin: 0;
  font-size: 10px;
  line-height: 1.4;
  color: var(--muted);
}

@media (min-width: 760px) {
  .purchase-products {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
  }
  .purchase-product {
    display: flex;
    flex-direction: column;
  }
  .purchase-product__button {
    margin-top: auto;
  }
  .purchase-product__pricing {
    flex-direction: column;
  }
}

@media (max-width: 480px) {
  .purchase-dialog {
    position: fixed;
    top: calc(66px + env(safe-area-inset-top, 0px));
    bottom: calc(78px + env(safe-area-inset-bottom, 0px));
    left: 12px;
    right: 12px;
    margin: 0;
    max-width: none;
    width: auto;
    max-height: none;
    height: auto;
  }
  .purchase-dialog__surface {
    max-height: 100%;
    height: 100%;
  }
  .purchase-dialog__body {
    padding: 16px 14px 4px;
  }
  .purchase-product {
    padding: 18px 16px;
  }
  .purchase-product__decoration {
    width: 52px;
    height: 52px;
  }
  .purchase-product__decoration img {
    width: 52px;
    height: 52px;
  }
  .purchase-option {
    flex: 1 1 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .purchase-dialog,
  .purchase-dialog::backdrop,
  .purchase-product__spark {
    animation: none;
  }
}
