.front-pass-list, .front-pass-detail { color:#1a1a1a; background:#fff; min-height:100%; }
.front-pass-list__header{position:sticky;top:52px;z-index:30;background:#fff;border-bottom:1px solid transparent;padding:14px 16px 12px}
.front-pass-list__title-row { display:flex; align-items:center; gap:9px; }
.front-pass-list__title-row h1 { margin:0; font-size:21px; font-weight:800; letter-spacing:-.4px; }
.front-pass-list__back { display:flex; margin-left:-2px; color:#1a1a1a; text-decoration:none; }
.front-pass-list__back .material-symbols-outlined { font-size:24px; }
.front-pass-list__header p { margin:2px 0 0 31px; color:#767676; font-size:13px; }
.front-pass-list__cards { display:flex; flex-direction:column; gap:16px; padding:16px; }
.front-pass-card { display:flex; overflow:hidden; flex-direction:column; border-radius:18px; background:#fff; box-shadow:0 3px 12px rgba(0,0,0,.09); color:inherit; text-decoration:none; }
.front-pass-card__media { position:relative; aspect-ratio:16/9; overflow:hidden; }
.front-pass-card__media img { width:100%; height:100%; display:block; object-fit:cover; }
.front-pass-card__uplus-benefit{position:absolute;right:11px;bottom:11px;left:auto;display:flex;max-width:calc(100% - 22px);min-width:0;align-items:center;gap:5px;padding:7px 10px;border:1px solid rgb(230 0 126/18%);border-radius:999px;background:rgb(255 255 255/94%);color:#e6007e;box-shadow:0 10px 22px rgb(230 0 126/18%);font-size:11px;font-weight:900;line-height:1;text-transform:uppercase;white-space:nowrap}
.front-pass-card__uplus-benefit .material-symbols-outlined{flex:0 0 auto;font-size:16px;line-height:1}
.front-pass-card__uplus-benefit span:last-child{overflow:hidden;text-overflow:ellipsis}
.front-pass-card__body { display:flex; flex:1 1 auto; flex-direction:column; padding:13px 15px 15px; }
.front-pass-card__body h2 { margin:0; font-size:16.5px; font-weight:800; letter-spacing:-.3px; line-height:1.2; }
.front-pass-card__body p { margin:4px 0 0; color:#767676; font-size:12.5px; white-space:pre-line; }
.front-pass-card__meta { display:flex; align-items:center; gap:5px; margin-top:auto; padding-top:9px; color:#e6007e; font-size:12.5px; font-weight:700; }
.front-pass-card__price{display:inline-flex;align-items:center;gap:5px;min-width:0}
.front-pass-card__price del{color:#9f9f9f;font-weight:600}
.front-pass-card__price strong{color:#e6007e;font-weight:900}
.front-pass-discount-rate{display:inline-flex;align-items:center;justify-content:center;min-height:20px;padding:2px 7px;border-radius:999px;background:#fff0f8;color:#c6007e;font-size:11px;font-weight:900;line-height:1;white-space:nowrap}
.front-pass-card__meta .material-symbols-outlined { font-size:16px; }
.front-pass-list__empty { padding:50px 18px; text-align:center; color:#767676; }
.front-pass-list__empty > .material-symbols-outlined { color:#d8d8d8; font-size:42px; }
.front-pass-list__empty h2 { margin:10px 0 0; color:#1a1a1a; font-size:16px; }
.front-pass-list__empty p { margin:5px 0 0; font-size:13px; }
.front-pass-detail__hero{position:relative;overflow:hidden;border-radius:0;background:#fff;color:#fff;isolation:isolate}
.front-pass-detail__media{position:relative;min-height:280px;overflow:hidden;background:#111;touch-action:pan-y;user-select:none}
.front-pass-detail__media > img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none}
.front-pass-detail__media--placeholder{min-height:176px;background:linear-gradient(135deg,#fff7fb,#f5edf2);color:#1a1a1a}
.front-pass-detail__media-placeholder{position:absolute;inset:0;z-index:1;display:grid;align-content:center;justify-items:start;gap:8px;padding:30px 20px 22px;background:radial-gradient(circle at 82% 8%,rgb(230 0 126/16%),transparent 32%),linear-gradient(135deg,#fff,#fff7fb);color:#1a1a1a}
.front-pass-detail__media-placeholder .material-symbols-outlined{display:grid;width:42px;height:42px;border-radius:14px;background:#e6007e;color:#fff;font-size:23px;place-items:center;box-shadow:0 14px 32px rgb(230 0 126/22%)}
.front-pass-detail__media-placeholder strong{max-width:20ch;font-size:22px;font-weight:900;letter-spacing:-.6px;line-height:1.08}
.front-pass-detail__media [data-gallery-preview]{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none;-webkit-user-drag:none}
.front-pass-detail__media > img.is-sliding-next{animation:front-pass-gallery-slide-next 360ms cubic-bezier(.22,1,.36,1)}.front-pass-detail__media > img.is-sliding-prev{animation:front-pass-gallery-slide-prev 360ms cubic-bezier(.22,1,.36,1)}
.front-pass-detail__gallery-controls{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 16px 8px;background:#fff}.front-pass-detail__gallery-count{flex:0 0 auto;min-width:54px;padding:5px 9px;border-radius:999px;background:#f3f4f6;color:#1a1a1a;font-size:11px;font-weight:800;letter-spacing:.2px;text-align:center}.front-pass-detail__gallery-nav{display:grid;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#fff;color:#1a1a1a;box-shadow:0 8px 22px rgb(16 24 40/12%);cursor:pointer;place-items:center}.front-pass-detail__gallery-nav:active{transform:scale(.96)}.front-pass-detail__gallery-nav:focus-visible{outline:2px solid #1a1a1a;outline-offset:2px}.front-pass-detail__gallery-nav .material-symbols-outlined{font-size:22px}.front-pass-detail__gallery{display:flex;gap:8px;overflow-x:auto;padding:10px 16px 12px;background:#fff;scrollbar-width:none}.front-pass-detail__gallery::-webkit-scrollbar{display:none}.front-pass-detail__gallery button{width:64px;height:48px;flex:0 0 auto;padding:0;border:2px solid transparent;border-radius:12px;background:#fff;box-shadow:0 6px 18px rgb(16 24 40/12%);cursor:pointer;transition:border-color 160ms ease,transform 160ms ease,box-shadow 160ms ease}.front-pass-detail__gallery button:active{transform:scale(.97)}.front-pass-detail__gallery button:focus-visible{outline:2px solid #1a1a1a;outline-offset:2px}.front-pass-detail__gallery button.is-active{border-color:#e6007e;box-shadow:0 8px 24px rgb(230 0 126/22%)}.front-pass-detail__gallery img{display:block;width:100%;height:100%;border-radius:10px;object-fit:cover}
.front-pass-detail__gradient{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.08),transparent 32%);pointer-events:none}
@keyframes front-pass-gallery-slide-next{from{opacity:.72;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}@keyframes front-pass-gallery-slide-prev{from{opacity:.72;transform:translateX(-24px)}to{opacity:1;transform:translateX(0)}}
.front-pass-detail__back { position:absolute; top:16px; left:18px; z-index:2; width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.88); backdrop-filter:blur(8px); color:#1a1a1a; text-decoration:none; box-shadow:0 10px 28px rgba(0,0,0,.16); }
.front-pass-detail__back .material-symbols-outlined { font-size:20px; }
.front-pass-detail__headline{position:relative;overflow:hidden;padding:22px 16px 16px;background:radial-gradient(circle at 88% 4%,rgb(230 0 126/12%),transparent 34%),linear-gradient(135deg,#fff 0%,#fff7fb 100%);color:#1a1a1a}
.front-pass-detail__headline::before{position:absolute;top:18px;bottom:18px;left:0;width:4px;border-radius:0 999px 999px 0;background:#e6007e;content:""}
.front-pass-detail__kicker{margin:0;color:#e6007e;font-size:11px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}
.front-pass-detail__headline h1{margin:6px 0 0;font-size:28px;font-weight:900;letter-spacing:-.75px;line-height:1.08}
.front-pass-detail__hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:11px;color:#767676;font-size:12.5px;font-weight:600}
.front-pass-detail__hero-meta span{padding:4px 10px;border-radius:20px;background:#fce4f1;color:#e6007e}
.front-pass-detail__hero-meta strong{font-weight:600}
.front-pass-detail__content{padding:18px 16px 18px}
.front-pass-detail__details{display:grid;gap:18px;padding:18px 16px 96px}
.front-pass-detail__summary{margin:10px 0 0;color:#5f5f5f;font-size:14px;font-weight:400;line-height:1.55;white-space:pre-line}
.front-pass-detail__description { margin:0; color:#2b2b2b; font-size:14.5px; line-height:1.65; }
.front-pass-detail__section-title { display:flex; align-items:center; justify-content:space-between; margin-top:22px; }
.front-pass-detail__section-title h2, .front-pass-detail__quantity-title { margin:0; color:#9a9a9a; font-size:11.5px; font-weight:800; letter-spacing:1px; text-transform:uppercase; }
.front-pass-detail__section-title > span { display:flex; align-items:center; gap:4px; color:#e6007e; font-size:11.5px; font-weight:700; }
.front-pass-detail__section-title .material-symbols-outlined { font-size:15px; }
.front-pass-course-card { overflow:hidden; border:1px solid #eee; border-radius:18px; background:#fff; box-shadow:0 2px 10px rgba(0,0,0,.04); transition:border-color 180ms ease,box-shadow 180ms ease,transform 180ms ease; }
.front-pass-course-card:focus-visible { outline:3px solid rgb(230 0 126/24%); outline-offset:4px; }
.front-pass-course-card__media { aspect-ratio:16/9; overflow:hidden; background:#f7f7f8; }
.front-pass-course-card__media img { display:block; width:100%; height:100%; object-fit:cover; }
.front-pass-course-card__body { padding:14px; }
.front-pass-course-card__heading { display:flex; align-items:flex-start; gap:10px; }
.front-pass-course-card__order { display:grid; width:32px; height:32px; flex:0 0 auto; border-radius:50%; background:#e6007e; color:#fff; font-size:13px; font-weight:800; place-items:center; }
.front-pass-course-card__heading p { margin:0; color:#e6007e; font-size:11px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; }
.front-pass-course-card__heading h3 { margin:3px 0 0; font-size:15.5px; font-weight:800; letter-spacing:-.2px; line-height:1.25; }
.front-pass-course-card__summary { margin:11px 0 0; color:#e6007e; font-size:13px; font-weight:700; line-height:1.45; }
.front-pass-course-card__detail-actions { margin-top:12px; }
.front-pass-course-card__detail-toggle { display:inline-flex; min-height:40px; align-items:center; gap:6px; padding:0 13px; border:1px solid rgb(230 0 126/20%); border-radius:999px; background:#fff; color:#e6007e; font:inherit; font-size:12.5px; font-weight:800; cursor:pointer; transition:background-color 160ms ease,border-color 160ms ease,transform 160ms ease,box-shadow 160ms ease; }
.front-pass-course-card__detail-toggle:active { transform:scale(.97); }
.front-pass-course-card__detail-toggle:focus-visible { outline:3px solid rgb(230 0 126/26%); outline-offset:3px; }
.front-pass-course-card__detail-toggle .material-symbols-outlined { font-size:18px; line-height:1; transition:transform 160ms ease; }
.front-pass-course-card.is-details-open .front-pass-course-card__detail-toggle { border-color:rgb(230 0 126/34%); background:#fff7fb; box-shadow:0 8px 20px rgb(230 0 126/10%); }
.front-pass-course-card.is-details-open .front-pass-course-card__detail-toggle .material-symbols-outlined { transform:rotate(180deg); }
.front-pass-course-card__details { margin-top:12px; padding-top:12px; border-top:1px solid #f1f1f1; }
.front-pass-course-card__details .front-pass-course-card__description:first-child { margin-top:0; }
.front-pass-course-card__description { margin:8px 0 0; color:#3a3a3a; font-size:13px; line-height:1.65; }
.front-pass-course-card__facts { display:flex; flex-direction:column; gap:8px; margin:12px 0 0; }
.front-pass-course-card__facts div { display:grid; grid-template-columns:74px minmax(0,1fr); gap:10px; padding-top:8px; border-top:1px solid #f1f1f1; }
.front-pass-course-card__facts dt { color:#9a9a9a; font-size:11px; font-weight:800; }
.front-pass-course-card__facts dd { display:flex; min-width:0; flex-direction:column; gap:2px; margin:0; color:#3a3a3a; font-size:12.5px; line-height:1.45; }
.front-pass-course-card__facts small { color:#767676; font-size:11.5px; line-height:1.4; }
.front-pass-course-card__location{display:flex;align-items:flex-start;gap:7px;margin:10px 0 0;color:#3a3a3a;font-size:12.5px;line-height:1.45}
.front-pass-course-card__location>.material-symbols-outlined{flex:0 0 auto;color:#e6007e;font-size:18px}
.front-pass-course-card__location span span{display:block}
.front-pass-course-card__location small{display:block;margin-top:2px;color:#767676;font-size:11.5px;line-height:1.35}
.front-pass-course-card__content-grid { display:grid; gap:8px; margin-top:12px; }
.front-pass-course-card__content-grid section { padding:11px 12px; border-radius:13px; background:#fff7fb; }
.front-pass-course-card__content-grid h4 { margin:0; color:#1a1a1a; font-size:12px; font-weight:800; }
.front-pass-course-card__content-grid p { margin:5px 0 0; color:#5f5f5f; font-size:12px; line-height:1.55; white-space:pre-line; }
.front-pass-detail__quantity-title { margin-top:24px; }
.front-pass-quantity { margin-top:12px; padding:15px; border:1px solid #eee; border-radius:16px; background:#fff; box-shadow:0 2px 8px rgba(0,0,0,.04); }
.front-pass-quantity__top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.front-pass-quantity__top h3 { margin:0; font-size:14px; font-weight:700; line-height:1.3; }
.front-pass-quantity__top p { display:flex; align-items:center; gap:6px; margin:4px 0 0; }
.front-pass-quantity__top del { color:#ababab; font-size:12px; }
.front-pass-quantity__top strong { color:#e6007e; font-size:15px; font-weight:800; }
.front-pass-quantity__top p>span:not(.front-pass-discount-rate){color:#767676;font-size:11px}
.front-pass-stepper { flex:0 0 auto; display:flex; box-sizing:border-box; align-items:center; gap:2px; height:42px; padding:3px; border:1px solid #e2e2e2; border-radius:11px; background:#fff; }
.front-pass-stepper button { display:grid; flex:0 0 34px; width:34px; height:34px; padding:0; border:0; border-radius:9px; background:transparent; color:#1a1a1a; line-height:1; cursor:pointer; place-items:center; }
.front-pass-stepper button:disabled { color:#d3d3d3; cursor:default; }
.front-pass-stepper .material-symbols-outlined { display:block; font-size:20px; line-height:1; }
.front-pass-stepper output { display:grid; min-width:30px; height:34px; place-items:center; text-align:center; font-size:16px; font-weight:800; line-height:1; }
.front-pass-quantity__rule { height:1px; margin:14px 0 12px; background:#f0f0f0; }
.front-pass-quantity__row { display:flex; align-items:center; justify-content:space-between; color:#767676; font-size:13px; }
.front-pass-quantity__row--discount { margin-top:6px; color:#e6007e; font-weight:700; }
.front-pass-quantity__total { display:flex; align-items:flex-end; justify-content:space-between; margin-top:12px; font-size:14px; font-weight:700; }
.front-pass-quantity__total strong { color:#e6007e; font-size:26px; font-weight:800; letter-spacing:-.8px; }
.front-pass-notice { margin-top:16px; padding:14px 15px; border-radius:14px; background:#fafafa; }
.front-pass-detail__story{margin-top:18px;padding:18px 16px;border:1px solid #f1d6e5;border-radius:20px;background:#fff;box-shadow:0 14px 40px rgb(230 0 126/6%)}
.front-pass-detail__story h2{margin:0 0 10px;color:#1a1a1a;font-size:18px;font-weight:800;letter-spacing:-.2px}
.front-pass-detail__story .front-pass-detail__description{margin:0}
.front-pass-notice h2 { margin:0; color:#5a5a5a; font-size:12px; font-weight:800; letter-spacing:.4px; text-transform:uppercase; }
.front-pass-notice p { margin:7px 0 0; color:#767676; font-size:12.5px; line-height:1.7; }
.front-cashback-estimate{display:flex;align-items:flex-start;gap:12px;margin:18px 0 0;padding:15px 16px;border:1px solid rgb(230 0 126/18%);border-radius:18px;background:#fff7fb;color:#2c1724}.front-cashback-estimate>.material-symbols-outlined{display:grid;width:38px;height:38px;flex:0 0 auto;border-radius:12px;background:#fce2f0;color:#c8006e;font-size:21px;place-items:center}.front-cashback-estimate h2{margin:0;color:#6b3555;font-size:12px;font-weight:800;letter-spacing:.02em}.front-cashback-estimate p{margin:3px 0 0;font-size:14px;line-height:1.45}.front-cashback-estimate strong{color:#c8006e;font-size:18px}.front-cashback-estimate small{display:block;margin-top:4px;color:#74666e;font-size:11.5px;line-height:1.45}
.front-pass-purchase { position:relative; z-index:1; width:100%; margin:18px 0 0; padding:14px; box-sizing:border-box; border:1px solid rgb(241 214 229/86%); border-radius:18px; display:flex; align-items:center; gap:10px; background:#fff; box-shadow:0 18px 48px rgb(230 0 126/10%); }
.front-pass-purchase a { display:block; flex:1; min-height:52px; padding:13px; box-sizing:border-box; border:0; border-radius:16px; background:#e6007e; color:#fff; box-shadow:0 14px 34px rgb(230 0 126/22%); font-size:14px; font-weight:800; line-height:26px; text-align:center; text-decoration:none; white-space:nowrap; }
.front-pass-purchase a:focus-visible { outline:3px solid rgb(230 0 126/25%); outline-offset:3px; }
@media (prefers-reduced-motion:reduce) {
  .front-pass-detail__media > img.is-sliding-next, .front-pass-detail__media > img.is-sliding-prev { animation:none; }
  .front-pass-card, .front-pass-stepper button, .front-pass-course-card, .front-pass-course-card__detail-toggle, .front-pass-course-card__detail-toggle .material-symbols-outlined { transition:none; animation:none; }
}

@media (min-width: 1024px) {
  .front-pass-list {
    box-sizing: border-box;
    width: min(100%, 1200px);
    min-height: calc(100vh - 72px);
    margin: 0 auto;
    padding: 44px 32px 80px;
    background: #fff;
  }

  .front-pass-list__header {
    position: relative;
    top: auto;
    z-index: 1;
    padding: 0;
    border-bottom: 0;
    background: transparent;
  }

  .front-pass-list__title-row {
    box-sizing: border-box;
    gap: 18px;
    padding: 34px 40px;
  }

  .front-pass-list__back {
    width: 48px;
    height: 48px;
    margin-left: 0;
    align-items: center;
    justify-content: center;
    border: 1px solid rgb(230 0 126 / 12%);
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 10px 24px rgb(230 0 126 / 10%);
    transition: transform var(--md-sys-motion-duration-short) var(--md-sys-motion-easing-standard), border-color var(--md-sys-motion-duration-short) var(--md-sys-motion-easing-standard), color var(--md-sys-motion-duration-short) var(--md-sys-motion-easing-standard);
  }

  .front-pass-list__back .material-symbols-outlined {
    font-size: 25px;
  }

  .front-pass-list__header p {
    margin-left: 0;
  }

  .front-pass-list__cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    padding: 34px 0 0;
  }

  .front-pass-card {
    min-width: 0;
    border: 1px solid #f0e6ec;
    border-radius: 22px;
    box-shadow: 0 14px 34px rgb(92 24 63 / 9%);
    transition: transform var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard), border-color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard), box-shadow var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard);
  }

  .front-pass-card__media {
    aspect-ratio: 4 / 3;
  }


  .front-pass-card__body {
    padding: 18px 20px 21px;
  }

  .front-pass-card__body h2 {
    font-size: 20px;
    letter-spacing: -.45px;
  }

  .front-pass-card__body p {
    margin-top: 8px;
    font-size: 14px;
    line-height: 1.55;
  }

  .front-pass-card__meta {
    padding-top: 14px;
    font-size: 14px;
  }

  .front-pass-list__empty {
    grid-column: 1 / -1;
    padding: 86px 24px;
    border: 1px dashed rgb(230 0 126 / 22%);
    border-radius: 22px;
    background: #fff8fc;
  }

  .front-pass-list__back:focus-visible,
  .front-pass-card:focus-visible {
    outline: 3px solid rgb(230 0 126 / 30%);
    outline-offset: 4px;
  }
}

@media (min-width: 1024px) and (hover: hover) and (pointer: fine) {
  .front-pass-list__back:hover,
  .front-pass-list__back:focus-visible {
    border-color: rgb(230 0 126 / 28%);
    color: #e6007e;
    transform: translateY(-1px);
  }

  .front-pass-card:hover,
  .front-pass-card:focus-visible {
    border-color: rgb(230 0 126 / 28%);
    box-shadow: 0 20px 44px rgb(92 24 63 / 14%);
    transform: translateY(-4px);
  }
}

@media (min-width: 1024px) and (prefers-reduced-motion: reduce) {
  .front-pass-list__back,
  .front-pass-card {
    transition: none;
  }

  .front-pass-list__back:hover,
  .front-pass-list__back:focus-visible,
  .front-pass-card:hover,
  .front-pass-card:focus-visible {
    transform: none;
  }
}
@media (min-width:1024px) {
  .front-pass-detail {
    box-sizing:border-box;
    width:min(100% - 48px,1200px);
    margin:0 auto;
    padding:32px 0 96px;
    background:#fff;
  }
  .front-pass-detail__headline {
    display:grid;
    gap:14px;
    margin:0 0 22px;
    padding:30px 34px 32px;
    border:1px solid #f0d8e5;
    border-radius:34px;
    background:radial-gradient(circle at 100% 0%,rgb(230 0 126/10%),transparent 34%),linear-gradient(135deg,#fff 0%,#fffafd 62%,#fff 100%);
    box-shadow:0 22px 70px rgb(16 24 40/8%);
  }
  .front-pass-detail__headline::before {
    top:28px;
    bottom:28px;
    width:5px;
  }
  .front-pass-detail__headline h1 {
    width:100%;
    max-width:none;
    margin:0;
    color:#151116;
    font-size:46px;
    letter-spacing:-1.8px;
    line-height:1.06;
    text-wrap:balance;
  }
  .front-pass-detail__headline .front-pass-detail__summary {
    width:100%;
    max-width:none;
    margin:0;
    color:#4f4650;
    font-size:18px;
    font-weight:400;
    line-height:1.58;
  }
  .front-pass-detail__shell {
    display:grid;
    grid-template-columns:minmax(0,590px) minmax(0,1fr);
    grid-template-areas:"hero content" "details details";
    align-items:start;
    gap:22px 40px;
  }
  .front-pass-detail__hero {
    grid-area:hero;
    position:relative;
    top:auto;
    min-height:auto;
    overflow:hidden;
    border-radius:32px;
    background:#fff;
    box-shadow:0 24px 70px rgb(16 24 40/12%);
  }
  .front-pass-detail__media{width:100%;height:min(680px,calc(100vh - 128px));min-height:auto;aspect-ratio:auto}
  .front-pass-detail__media-placeholder{box-sizing:border-box;width:100%;height:100%;align-content:start;padding:96px 32px 32px}
  .front-pass-detail__gallery-controls{gap:14px;padding:14px 24px 8px}
  .front-pass-detail__gallery-nav{width:44px;height:44px}
  .front-pass-detail__gallery{gap:10px;padding:10px 24px 14px}
  .front-pass-detail__gallery button{width:84px;height:64px;border-radius:16px}
  .front-pass-detail__gallery img{border-radius:14px}
  .front-pass-detail__gradient {
    background:linear-gradient(180deg,rgba(0,0,0,.08),transparent 30%);
  }
  .front-pass-detail__back {
    top:24px;
    left:26px;
    width:44px;
    height:44px;
    background:rgb(255 255 255/88%);
    box-shadow:0 10px 30px rgb(26 26 26/14%);
  }
  .front-pass-detail__kicker { font-size:12px; }
  .front-pass-detail__hero-meta {
    margin-top:18px;
    font-size:14px;
  }
  .front-pass-detail__content {
    grid-area:content;
    display:grid;
    grid-template-columns:1fr;
    align-items:start;
    gap:14px;
    min-width:0;
    padding:18px;
    border:1px solid #f1d6e5;
    border-radius:28px;
    background:#fff;
    box-shadow:0 18px 48px rgb(230 0 126/8%);
  }
  .front-pass-detail__details {
    grid-area:details;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:start;
    gap:20px;
    margin-top:34px;
    padding:0;
  }
  .front-pass-detail__quantity-title,.front-pass-quantity,.front-cashback-estimate,.front-pass-purchase{grid-column:1 / -1}
  .front-pass-journey,.front-pass-route{grid-column:1 / -1}
  .front-pass-detail__summary {
    font-size:16px;
  }
  .front-pass-detail__description {
    max-width:68ch;
    font-size:16px;
    line-height:1.75;
  }
  .front-pass-detail__detail-card {
    padding:24px;
    border:1px solid #f1d6e5;
    border-radius:28px;
    background:#fff;
    box-shadow:0 14px 40px rgb(230 0 126/6%);
  }
  .front-pass-detail__section-title { margin-top:0; }
  .front-pass-detail__section-title h2,
  .front-pass-detail__quantity-title {
    color:#1a1a1a;
    font-size:20px;
    letter-spacing:-.2px;
    text-transform:none;
  }
  .front-pass-detail__section-title > span {
    padding:6px 12px;
    border-radius:999px;
    background:#fce4f1;
    font-size:12px;
  }
  .front-pass-course-card {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    border-color:#f0e6ec;
    border-radius:22px;
    box-shadow:0 14px 40px rgb(230 0 126/6%);
  }
  .front-pass-course-card--no-media {
    grid-template-columns:minmax(0,1fr);
  }
  .front-pass-course-card--no-media .front-pass-course-card__body {
    grid-column:1 / -1;
  }
  .front-pass-course-card__media {
    min-height:100%;
    aspect-ratio:auto;
  }
  .front-pass-course-card__body {
    padding:20px;
  }
  .front-pass-course-card__order {
    width:38px;
    height:38px;
  }
  .front-pass-course-card__heading h3 {
    font-size:18px;
  }
  .front-pass-course-card__summary,
  .front-pass-course-card__description {
    font-size:14px;
  }
  .front-pass-course-card__location{margin-top:10px;font-size:13px}
  .front-pass-course-card__facts {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .front-pass-course-card__facts div {
    grid-template-columns:82px minmax(0,1fr);
  }
  .front-pass-course-card__content-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  .front-pass-course-card__content-grid section {
    border-radius:16px;
  }
  .front-pass-detail__quantity-title { margin-top:2px; }
  .front-pass-quantity {
    margin-top:0;
    padding:20px;
    border-color:#f1d6e5;
    border-radius:22px;
    box-shadow:0 18px 48px rgb(230 0 126/8%);
  }
  .front-pass-quantity__top { gap:16px; }
  .front-pass-quantity__top h3 { font-size:18px; }
  .front-pass-quantity__top strong { font-size:18px; }
  .front-pass-quantity__row { font-size:14px; }
  .front-pass-quantity__total strong {
    font-size:34px;
    letter-spacing:-1.2px;
  }
  .front-pass-stepper { border-radius:14px; }
  .front-pass-stepper button {
    width:40px;
    height:40px;
    border-radius:11px;
  }
  .front-pass-detail__details > .front-pass-notice,
  .front-pass-detail__story {
    grid-column:1 / -1;
  }
  .front-pass-detail__details>.front-pass-notice {
    margin-top:0;
    padding:24px;
    border:1px solid #f1d6e5;
    border-radius:28px;
    background:#fff;
    box-shadow:0 14px 40px rgb(230 0 126/6%);
  }
  .front-pass-notice h2 {
    color:#1a1a1a;
    font-size:16px;
    letter-spacing:-.1px;
    text-transform:none;
  }
  .front-pass-notice p { font-size:14px; }
  .front-pass-purchase {
    position:relative;
    top:auto;
    right:auto;
    bottom:auto;
    left:auto;
    z-index:1;
    box-sizing:border-box;
    width:auto;
    max-width:none;
    margin:4px -18px -18px;
    padding:18px;
    border:0;
    border-top:1px solid #f1d6e5;
    border-radius:0 0 28px 28px;
    background:#fff;
    box-shadow:none;
  }
  .front-pass-purchase a {
    min-height:52px;
    border-radius:16px;
    font-size:16px;
  }
  .front-pass-detail__story{
    margin-top:0;
    padding:24px;
    border-radius:28px;
  }
  .front-pass-detail__story h2{font-size:22px}
  .front-pass-detail__story .front-pass-detail__description{max-width:none;width:100%;font-size:15.5px;line-height:1.75}
}

@media (min-width:1024px) and (max-width:1120px) {
  .front-pass-detail {
    width:min(100% - 32px,1200px);
  }
  .front-pass-detail__shell {
    grid-template-columns:minmax(0,480px) minmax(0,1fr);
    gap:20px 28px;
  }
  .front-pass-detail__headline h1 { font-size:36px; }
  .front-pass-quantity { padding:18px; }
}

/* Local Pass detail sample-page cutover */
.front-pass-detail{
  --pass-accent:#e6007e;
  --pass-accent-strong:#be006a;
  --pass-accent-soft:#fff0f8;
  --pass-bg:#f6f6f7;
  --pass-surface:#fff;
  --pass-text:#171217;
  --pass-muted:#696169;
  --pass-line:#ece6ec;
  --pass-shadow:0 24px 80px rgb(16 24 40/10%);
  box-sizing:border-box;
  width:min(100%,1240px);
  margin:0 auto;
  padding:18px 16px 132px;
  background:var(--pass-bg);
  color:var(--pass-text);
  font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.front-pass-detail__shell{display:grid;gap:18px}
.front-pass-detail__hero{
  overflow:hidden;
  border:1px solid rgb(255 255 255/70%);
  border-radius:28px;
  background:#fff;
  box-shadow:0 20px 70px rgb(16 24 40/10%);
}
.front-pass-detail__media{
  min-height:0;
  aspect-ratio:16/10;
  background:linear-gradient(135deg,#f0f1f4 0%,#fff7fb 55%,#e8e9ee 100%);
}
.front-pass-detail__media>img{position:relative;inset:auto;width:100%;height:100%;object-fit:cover}
.front-pass-detail__media-placeholder{
  box-sizing:border-box;
  width:100%;
  height:100%;
  min-height:0;
  align-content:start;
  padding:52px 24px 24px;
  background:radial-gradient(circle at 82% 18%,rgb(230 0 126/18%),transparent 34%),linear-gradient(135deg,#fff 0%,#f6f6f7 100%);
}
.front-pass-detail__media-placeholder .material-symbols-outlined{display:inline-flex;width:58px;height:58px;align-items:center;justify-content:center;border-radius:18px;background:var(--pass-accent);color:#fff;font-size:32px;box-shadow:0 18px 42px rgb(230 0 126/24%)}
.front-pass-detail__media-placeholder strong{display:block;margin-top:16px;color:#111;font-size:26px;font-weight:950;letter-spacing:-1px}
.front-pass-detail__gradient{background:linear-gradient(180deg,rgb(0 0 0/10%),transparent 32%)}
.front-pass-detail__back{top:16px;left:16px;background:rgb(255 255 255/92%);box-shadow:0 12px 32px rgb(16 24 40/18%)}
.front-pass-detail__gallery-controls{position:absolute;right:14px;bottom:14px;z-index:3;display:flex;align-items:center;gap:8px;padding:7px;border:1px solid rgb(255 255 255/70%);border-radius:999px;background:rgb(255 255 255/90%);box-shadow:0 14px 34px rgb(16 24 40/18%);backdrop-filter:blur(10px)}
.front-pass-detail__gallery-count{min-width:48px;color:#211921;font-size:12px;font-weight:950;text-align:center}
.front-pass-detail__gallery-nav{display:grid;width:34px;height:34px;padding:0;border:0;border-radius:999px;background:#fff;color:#171017;box-shadow:0 8px 20px rgb(16 24 40/10%);cursor:pointer;place-items:center}
.front-pass-detail__gallery-nav:active{transform:scale(.96)}
.front-pass-detail__gallery-nav:focus-visible{outline:2px solid #111;outline-offset:3px}
.front-pass-detail__gallery-nav .material-symbols-outlined{font-size:20px;line-height:1}
.front-pass-detail__gallery{
  display:flex;
  gap:10px;
  padding:10px;
  overflow-x:auto;
  overflow-y:hidden;
  background:#fff;
  scroll-snap-type:x proximity;
  scrollbar-width:thin;
  scrollbar-color:rgb(230 0 126/38%) transparent;
}
.front-pass-detail__gallery::-webkit-scrollbar{display:block;height:6px}
.front-pass-detail__gallery::-webkit-scrollbar-track{background:transparent}
.front-pass-detail__gallery::-webkit-scrollbar-thumb{border-radius:999px;background:rgb(230 0 126/36%)}
.front-pass-detail__gallery button{flex:0 0 clamp(88px,24vw,112px);width:clamp(88px,24vw,112px);height:72px;min-width:0;padding:0;overflow:hidden;border:0;border-radius:18px;background:#fff;scroll-snap-align:start}
.front-pass-detail__gallery img{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;border-radius:16px}
.front-pass-section-art{display:grid;grid-template-columns:1fr;gap:12px;margin:18px 0 0}
.front-pass-section-art figure{margin:0;overflow:hidden;border:1px solid rgb(255 255 255/80%);border-radius:24px;background:#f7f7f8;box-shadow:0 18px 42px rgb(16 24 40/9%)}
.front-pass-section-art img{display:block;width:100%;max-width:100%;aspect-ratio:16/9;object-fit:cover}
.front-pass-section-art figure[hidden]{display:none}
.front-pass-detail__content{
  display:grid;
  gap:24px;
  padding:34px;
  border:1px solid var(--pass-line);
  border-radius:30px;
  background:linear-gradient(180deg,#fff 0%,#fffafd 100%);
  box-shadow:var(--pass-shadow);
}
.front-pass-detail__headline{display:grid;gap:18px;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.front-pass-detail__headline::before{content:none}
.front-pass-detail__kicker{width:max-content;margin:0;padding:8px 14px;border-radius:999px;background:#111;color:#fff;font-size:12px;font-weight:950;letter-spacing:-.1px;text-transform:none}
.front-pass-detail__headline h1{margin:0;color:var(--pass-text);font-size:36px;font-weight:950;line-height:1.02;letter-spacing:-1.8px;text-wrap:balance}
.front-pass-detail__summary{margin:0;color:var(--pass-muted);font-size:16px;line-height:1.72;white-space:pre-line}
.front-pass-detail__hero-meta{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.front-pass-detail__facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.front-pass-detail__facts div{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;min-width:0;min-height:76px;padding:15px 16px;border:1px solid #dbcfd9;border-radius:18px;background:#fff;box-shadow:0 10px 24px rgb(16 24 40/5%),inset 0 1px 0 rgb(255 255 255/92%)}
.front-pass-detail__facts div:last-child{grid-column:1 / -1;min-height:76px}
.front-pass-detail__facts strong{display:block;overflow:visible;color:#111;font-size:14px;font-weight:950;line-height:1.42;text-overflow:clip;white-space:normal;word-break:keep-all;overflow-wrap:anywhere}
.front-pass-detail__facts div:last-child strong{display:block;overflow:visible;white-space:normal}
.front-pass-detail__facts span{display:block;margin-top:5px;color:var(--pass-muted);font-size:11px;font-weight:800;line-height:1.35}
.front-pass-detail__facts .front-pass-discount-rate{display:inline-flex;margin-top:7px;color:#c6007e}
.front-pass-detail__quantity-title{margin:4px 0 -4px;color:var(--pass-text);font-size:18px;font-weight:950;letter-spacing:-.3px;text-transform:none}
.front-pass-quantity{margin:0;padding:17px;border:1px solid #d7cad4;border-radius:22px;background:#fff;box-shadow:0 12px 30px rgb(16 24 40/6%),inset 0 1px 0 rgb(255 255 255/92%)}
.front-pass-quantity__top h3{font-size:16px;font-weight:950}
.front-pass-quantity__top strong,.front-pass-quantity__total strong{color:var(--pass-accent)}
.front-pass-stepper{border-color:var(--pass-line);border-radius:16px}
.front-cashback-estimate{margin:0;border-color:rgb(230 0 126/18%);border-radius:22px;background:var(--pass-accent-soft)}
.front-pass-purchase{position:relative;right:auto;bottom:auto;left:auto;z-index:1;box-sizing:border-box;width:100%;margin:0;padding:0;border-top:0;background:transparent;box-shadow:none}
.front-pass-purchase a{min-height:52px;border-radius:18px;background:var(--pass-accent);box-shadow:0 18px 38px rgb(230 0 126/24%);font-size:15px;font-weight:950}
.front-pass-detail__section-nav{
  position:sticky;
  top:52px;
  z-index:10;
  display:flex;
  gap:10px;
  margin:18px -16px 0;
  padding:10px 16px;
  overflow-x:auto;
  background:linear-gradient(180deg,rgb(246 246 247/98%),rgb(246 246 247/90%));
  backdrop-filter:blur(12px);
  scrollbar-width:none;
}
.front-pass-detail__section-nav::-webkit-scrollbar{display:none}
.front-pass-detail__section-nav a{flex:0 0 auto;padding:11px 15px;border:1px solid var(--pass-line);border-radius:999px;background:#fff;color:#403840;font-size:13px;font-weight:950;text-decoration:none;box-shadow:0 8px 24px rgb(16 24 40/5%)}
.front-pass-detail__section-nav a:focus-visible,.front-pass-purchase a:focus-visible{outline:2px solid #111;outline-offset:3px}
.front-pass-long-sheet{display:grid;gap:18px;margin-top:18px;padding:0}
.front-pass-journey,.front-pass-route,.front-pass-detail__detail-card,.front-pass-detail__story{
  overflow:hidden;
  border:1px solid rgb(236 230 236/92%);
  border-radius:32px;
  background:#fff;
  box-shadow:0 20px 60px rgb(16 24 40/8%);
  scroll-margin-top:150px;
}
.front-pass-slice{min-width:0}
.front-pass-detail__story{display:grid;gap:16px;margin:0;padding:22px}
.front-pass-detail__story h2,.front-pass-detail__section-title h2,.front-pass-notice h2{margin:0;color:#111;font-size:30px;font-weight:950;line-height:1.08;letter-spacing:-1.2px;text-transform:none;text-wrap:balance}
.front-pass-detail__story h2{order:1;padding:0}
.front-pass-detail__story .front-pass-section-art{order:2;margin:0}
.front-pass-detail__story .front-pass-detail__description{order:3;margin:0;padding:0;color:#4d454d;font-size:15.5px;line-height:1.72;white-space:pre-line}
.front-pass-journey,.front-pass-route{display:grid;gap:0;margin:0;padding:22px}
.front-pass-detail__section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.front-pass-journey>.front-pass-detail__section-title,.front-pass-route>.front-pass-detail__section-title{padding:0}
.front-pass-journey__intro,.front-pass-route__intro{margin:10px 0 0;color:var(--pass-muted);font-size:15px;line-height:1.62}
.front-pass-journey__hero-art{margin:20px 0 0}
.front-pass-journey__hero-art figure{border-radius:26px}
.front-pass-journey__hero-art img{aspect-ratio:16/9}
.front-pass-journey__support-art{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(220px,78%);align-items:start;gap:12px;margin:18px -2px 0;padding:0 2px 4px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:rgb(230 0 126/32%) transparent}
.front-pass-journey__support-art figure{border-radius:18px;box-shadow:0 10px 24px rgb(16 24 40/6%);scroll-snap-align:start}
.front-pass-journey__list{display:grid;grid-template-columns:1fr;gap:14px;margin:18px 0 0;padding:0;list-style:none}
.front-pass-journey-chapter{display:grid;gap:16px;min-width:0;overflow:hidden;padding:18px;border:1px solid var(--pass-line);border-radius:24px;background:linear-gradient(180deg,#fff 0%,#fffcff 100%);box-shadow:0 12px 34px rgb(16 24 40/6%)}
.front-pass-journey-chapter__gallery{display:grid;grid-auto-flow:column;grid-auto-columns:84px;gap:9px;min-width:0;margin:2px 0 0;padding:2px 2px 5px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:rgb(230 0 126/28%) transparent}
.front-pass-journey-chapter__gallery-trigger{display:block;width:84px;height:64px;padding:0;overflow:hidden;border:2px solid transparent;border-radius:14px;background:#f2f2f3;cursor:zoom-in;scroll-snap-align:start;transition:border-color 160ms ease,transform 160ms ease,box-shadow 160ms ease}
.front-pass-journey-chapter__gallery-trigger:hover{border-color:rgb(230 0 126/48%);box-shadow:0 8px 20px rgb(16 24 40/12%);transform:translateY(-1px)}
.front-pass-journey-chapter__gallery-trigger:active{transform:scale(.97)}
.front-pass-journey-chapter__gallery-trigger:focus-visible{outline:3px solid rgb(230 0 126/28%);outline-offset:2px;border-color:var(--pass-accent)}
.front-pass-journey-chapter__gallery-trigger img{display:block;width:100%;height:100%;object-fit:cover}
.front-pass-journey-chapter__body{display:grid;gap:12px;min-width:0}
.front-pass-journey-chapter__heading,.front-pass-route-card__main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start}
.front-pass-journey-chapter__heading>span{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:999px;background:var(--pass-accent);color:#fff;font-size:15px;font-weight:950;box-shadow:0 10px 24px rgb(230 0 126/20%)}
.front-pass-journey-chapter__heading p,.front-pass-route-card__main p{margin:0 0 4px;color:var(--pass-accent);font-size:12px;font-weight:950}
.front-pass-journey-chapter__heading h3,.front-pass-route-card__main h3{margin:0;color:#111;font-size:22px;font-weight:950;line-height:1.18;letter-spacing:-.65px}
.front-pass-journey-chapter__lead{max-width:72ch;margin:0;color:var(--pass-accent-strong);font-size:15px;font-weight:900;line-height:1.48}
.front-pass-journey-chapter__description{max-width:72ch;margin:0;color:#3f3740;font-size:14px;line-height:1.62;white-space:pre-line}
.front-pass-journey-chapter__promise,.front-pass-route-card__conditions{display:grid;gap:10px}
.front-pass-journey-chapter__promise section,.front-pass-route-card__conditions section{padding:13px;border:1px solid rgb(230 0 126/8%);border-radius:18px;background:linear-gradient(135deg,#fff6fb 0%,#fff 100%)}
.front-pass-journey-chapter__promise h4,.front-pass-route-card__conditions h4{margin:0 0 6px;color:#111;font-size:13px;font-weight:950}
.front-pass-journey-chapter__promise p,.front-pass-route-card__conditions p{margin:0;color:#514650;font-size:13px;line-height:1.55;white-space:pre-line}
.front-pass-journey-image-hover{position:fixed;z-index:90;box-sizing:border-box;max-width:calc(100vw - 32px);padding:8px;border:1px solid rgb(255 255 255/88%);border-radius:20px;background:#fff;box-shadow:0 24px 70px rgb(16 24 40/26%);pointer-events:none}
.front-pass-journey-image-hover[hidden]{display:none}
.front-pass-journey-image-hover img{display:block;width:100%;max-height:min(420px,56vh);aspect-ratio:3/2;border-radius:14px;background:#f3f3f4;object-fit:contain}
.front-pass-journey-image-lightbox{position:fixed;inset:0;z-index:1000;display:grid;box-sizing:border-box;padding:64px 20px 24px;background:rgb(16 12 16/86%);place-items:center}
.front-pass-journey-image-lightbox[hidden]{display:none}
.front-pass-journey-image-lightbox__panel{position:relative;display:grid;width:min(1120px,100%);max-height:calc(100dvh - 88px);gap:10px;margin:0;padding:10px;border-radius:22px;background:#fff;box-shadow:0 32px 96px rgb(0 0 0/38%)}
.front-pass-journey-image-lightbox__panel img{display:block;width:100%;max-height:calc(100dvh - 144px);border-radius:15px;background:#f4f4f5;object-fit:contain}
.front-pass-journey-image-lightbox__panel figcaption{padding:0 8px 5px;color:#4d454d;font-size:13px;line-height:1.45;text-align:center}
.front-pass-journey-image-lightbox__close{position:absolute;top:-48px;right:0;display:grid;width:42px;height:42px;padding:0;border:1px solid rgb(255 255 255/46%);border-radius:50%;background:#fff;color:#111;box-shadow:0 10px 30px rgb(0 0 0/24%);cursor:pointer;place-items:center}
.front-pass-journey-image-lightbox__close:active{transform:scale(.96)}
.front-pass-journey-image-lightbox__close:focus-visible{outline:3px solid #fff;outline-offset:3px}
.front-pass-journey-image-lightbox__close-mark{display:block;font:400 30px/1 Arial,sans-serif;transform:translateY(-1px)}
body.front-pass-journey-preview-open{overflow:hidden}
.front-pass-detail__section-title>span{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;padding:8px 12px;border-radius:999px;background:var(--pass-accent-soft);color:var(--pass-accent-strong);font-size:12px;font-weight:950}
.front-pass-detail__section-title .material-symbols-outlined{font-size:17px;line-height:1}
.front-pass-route__list{display:grid;gap:14px;margin:16px 0 0;padding:0;list-style:none}
.front-pass-route-card{display:grid;gap:14px;padding:18px;border:1px solid var(--pass-line);border-radius:24px;background:#fff;box-shadow:0 12px 30px rgb(16 24 40/5%);transition:border-color 180ms ease,box-shadow 180ms ease,transform 180ms ease}
.front-pass-route-card:focus-visible{outline:3px solid rgb(230 0 126/24%);outline-offset:4px}
.front-pass-course-card__order{background:var(--pass-accent)}
.front-pass-route-card__facts{display:grid;gap:8px;margin:0}
.front-pass-route-card__facts div{display:grid;grid-template-columns:74px minmax(0,1fr);gap:10px;padding-top:8px;border-top:1px solid #f1f1f1}
.front-pass-route-card__facts dt{color:#9a9a9a;font-size:11px;font-weight:800}
.front-pass-route-card__facts dd{margin:0;color:#3a3a3a;font-size:12.5px;line-height:1.45}
.front-pass-route-card__location{display:flex;align-items:flex-start;gap:7px;margin:0;color:#3a3a3a;font-size:12.5px;line-height:1.45}
.front-pass-route-card__location>.material-symbols-outlined{flex:0 0 auto;color:var(--pass-accent);font-size:18px}
.front-pass-route-card__location small{display:block;margin-top:2px;color:#767676;font-size:11.5px;line-height:1.35}
.front-pass-detail__details>.front-pass-notice{display:grid;gap:16px;padding:22px;background:radial-gradient(circle at 88% 0%,rgb(230 0 126/10%),transparent 28%),linear-gradient(180deg,#fff 0%,#fff8fc 100%)}
.front-pass-guide__facts{display:grid;gap:10px}
.front-pass-guide__facts p{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;margin:0;padding:14px;border:1px solid rgb(230 0 126/12%);border-radius:18px;background:#fff;color:#373038;font-size:14.5px;line-height:1.6;box-shadow:0 10px 26px rgb(16 24 40/5%)}
.front-pass-guide__facts .material-symbols-outlined{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:999px;background:var(--pass-accent-soft);color:var(--pass-accent);font-size:17px}

@media (min-width:768px){
  .front-pass-detail{padding-right:24px;padding-left:24px}
  .front-pass-section-art{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
  .front-pass-journey__support-art{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;overflow-x:visible;padding:0;margin:18px 0 0}
  .front-pass-journey__support-art:has(> figure:only-child){grid-template-columns:1fr}
  .front-pass-route__list{grid-template-columns:1fr}
}


@media (min-width:1120px){
  .front-pass-detail{width:min(100%,1240px);padding:32px 24px 96px;background:var(--pass-bg)}
  .front-pass-detail__shell{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:32px}
  .front-pass-detail__hero{grid-area:auto;position:sticky;top:92px;width:100%;max-width:none;border-radius:34px}
  .front-pass-detail__media{width:100%;height:auto;aspect-ratio:6/5}
  .front-pass-detail__content{grid-area:auto;position:sticky;top:92px;width:100%;max-width:none;min-height:0;padding:40px;border-radius:34px}
  .front-pass-detail__headline h1{font-size:46px;letter-spacing:-2px}

  .front-pass-detail__facts div{padding:17px 18px}
  .front-pass-detail__facts div:last-child{grid-column:1 / -1}
  .front-pass-detail__summary{font-size:17px}
  .front-pass-detail__facts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .front-pass-detail__facts div{padding:17px 18px}
  .front-pass-detail__facts div:last-child{grid-column:1 / -1}
  .front-pass-purchase{position:relative;right:auto;bottom:auto;left:auto;width:100%;margin:0;padding:0;border:0;background:transparent;box-shadow:none}
  .front-pass-detail__section-nav{top:72px;margin:18px 0 0;padding-right:0;padding-left:0}
  .front-pass-long-sheet{gap:22px;margin-top:22px}
  .front-pass-journey,.front-pass-route,.front-pass-detail__detail-card,.front-pass-detail__story{border-radius:34px;scroll-margin-top:156px}
  .front-pass-detail__story{grid-template-columns:minmax(0,1fr) minmax(340px,.72fr);grid-template-areas:"story-title story-title" "story-copy story-media";gap:18px 28px;padding:32px;align-items:start}
  .front-pass-detail__story h2{grid-area:story-title;font-size:36px;letter-spacing:-1.6px}
  .front-pass-detail__story .front-pass-detail__description{grid-area:story-copy;max-width:72ch;font-size:16px;line-height:1.72}
  .front-pass-detail__story .front-pass-section-art{grid-area:story-media;align-self:start}
  .front-pass-detail__story .front-pass-section-art img{aspect-ratio:4/5}
  .front-pass-detail__section-title h2,.front-pass-notice h2{font-size:36px;letter-spacing:-1.6px}
  .front-pass-journey,.front-pass-route{padding:32px}
  .front-pass-journey__intro,.front-pass-route__intro{width:100%;max-width:none;font-size:16px}
  .front-pass-journey__support-art{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;gap:14px;margin-top:20px}
  .front-pass-journey__list{grid-template-columns:1fr;gap:14px;margin-top:22px}
  .front-pass-journey-chapter{gap:18px;padding:22px 24px}
  .front-pass-journey-chapter__body{grid-template-columns:minmax(0,1fr) minmax(240px,.36fr);grid-template-areas:"journey-heading journey-promise" "journey-lead journey-promise" "journey-description journey-promise";column-gap:22px;align-items:start}
  .front-pass-journey-chapter__heading{grid-area:journey-heading}
  .front-pass-journey-chapter__lead{grid-area:journey-lead}
  .front-pass-journey-chapter__description{grid-area:journey-description}
  .front-pass-journey-chapter__promise{grid-area:journey-promise;align-self:start}
  .front-pass-journey-chapter__gallery{grid-auto-columns:104px}
  .front-pass-journey-chapter__gallery-trigger{width:104px;height:78px}
  .front-pass-route__list{grid-template-columns:1fr;gap:16px;margin-top:18px}
  .front-pass-route-card{padding:20px}
  .front-pass-detail__details>.front-pass-notice{grid-template-columns:minmax(0,.82fr) minmax(320px,1fr);grid-template-areas:"guide-title guide-title" "guide-media guide-facts";gap:18px 22px;padding:32px}
  .front-pass-detail__details>.front-pass-notice h2{grid-area:guide-title}
  .front-pass-detail__details>.front-pass-notice .front-pass-section-art{grid-area:guide-media;align-self:start;margin:0}
  .front-pass-detail__details>.front-pass-notice .front-pass-section-art img{aspect-ratio:4/3}
  .front-pass-guide__facts{grid-area:guide-facts;align-self:stretch;align-content:start}
  .front-pass-guide__facts p{font-size:15.5px}
  .front-pass-detail{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    align-items:start;
    gap:32px;
  }
  .front-pass-detail__shell{display:contents}
  .front-pass-detail__hero{
    grid-column:1;
    grid-row:1;
    align-self:start;
    position:relative;
    top:auto;
    width:100%;
    z-index:1;
  }
  .front-pass-detail__media{
    height:min(720px,calc(100dvh - 220px));
    min-height:560px;
    aspect-ratio:auto;
  }
  .front-pass-detail__content{
    grid-column:2;
    grid-row:1;
    position:relative;
    top:auto;
    z-index:2;
  }
  .front-pass-detail__section-nav{
    grid-column:1 / -1;
    grid-row:2;
    min-width:0;
    margin:18px 0 0;
    z-index:3;
  }
  .front-pass-detail__details{
    grid-column:1 / -1;
    grid-row:3;
    min-width:0;
    z-index:3;
  }
}

@media (min-width:1024px) and (max-width:1119px){
  .front-pass-detail{width:min(100% - 48px,960px);padding:32px 24px 96px;background:var(--pass-bg)}
  .front-pass-detail__shell{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:none;gap:18px}
  .front-pass-detail__hero,.front-pass-detail__content{grid-area:auto;position:relative;top:auto;width:auto;min-height:0}
  .front-pass-detail__hero{border-radius:34px}
  .front-pass-detail__content{padding:28px;border-radius:34px}
  .front-pass-detail__facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .front-pass-purchase{position:relative;right:auto;bottom:auto;left:auto;width:100%;margin:0;padding:0;border:0;background:transparent;box-shadow:none}
  .front-pass-detail__section-nav{top:72px;margin:18px 0 0;padding-right:0;padding-left:0}
  .front-pass-route__list{grid-template-columns:1fr}
}

@media (max-width:360px){
  .front-pass-detail{padding-right:12px;padding-left:12px}
  .front-pass-detail__content{padding-right:24px;padding-left:24px}
  .front-pass-detail__details>.front-pass-notice{padding-right:18px;padding-left:18px}
  .front-pass-detail__headline h1{font-size:31px}
  .front-pass-purchase a{font-size:14px}
}

/* Local Pass V3 route-story design, reference variant A */
.front-pass-detail--route-story{
  --pass-accent:#bd007d;
  --pass-accent-on:#fff;
  --pass-bg:#fff;
  --pass-line:#e7e7ed;
  --pass-muted:#60636e;
  --pass-soft:#f6f6f9;
  --pass-text:#181b24;
  --route-coupon-bg:#f6eed8;
  --route-coupon-text:#796020;
  --route-free-bg:#e6f1ed;
  --route-free-text:#245b45;
  box-sizing:border-box;
  display:block;
  width:min(100%,1440px);
  margin:0 auto;
  padding:0;
  background:var(--pass-bg);
  color:var(--pass-text);
  font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.front-pass-detail--route-story *{box-sizing:border-box}
.front-pass-route-story__page{
  width:100%;
  padding:0 5% 72px;
}
.front-pass-route-story__hero{
  display:grid;
  min-height:330px;
  overflow:hidden;
  border:1px solid var(--pass-line);
  border-radius:18px;
  background:#fff;
}
.front-pass-route-story__hero-copy{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  min-width:0;
  align-content:center;
  gap:0;
  padding:34px;
}
.front-pass-route-story__eyebrow{
  margin:0 0 7px;
  color:var(--pass-accent);
  font-size:12px;
  font-weight:900;
  letter-spacing:1.7px;
  text-transform:uppercase;
}
.front-pass-route-story__hero h1{
  margin:0;
  color:var(--pass-text);
  font-size:clamp(30px,3.35vw,47px);
  font-weight:800;
  line-height:1.2;
  letter-spacing:-2px;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.front-pass-route-story__hero h1 span,
.front-pass-route-story__hero h1 em{
  display:block;
  word-break:normal;
  text-wrap:balance;
}
.front-pass-route-story__hero h1 br{
  display:none;
}
.front-pass-route-story__hero h1 em{
  color:var(--pass-accent);
  font-style:normal;
}
.front-pass-route-story__hero-body{
  margin:20px 0 0;
  color:var(--pass-muted);
  font-size:14px;
  line-height:1.9;
  white-space:pre-line;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.front-pass-route-story__hero-label{
  margin-top:23px;
  color:var(--pass-muted);
  font-size:11px;
  font-weight:800;
  letter-spacing:.02em;
}
.front-pass-route-story__hero-visual{
  position:relative;
  min-height:330px;
  overflow:hidden;
}
.front-pass-route-story__hero-visual>img,
.front-pass-route-story__hero-placeholder{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 20%;
}
.front-pass-route-story__hero-placeholder{
  display:grid;
  place-items:center;
  background:var(--pass-soft);
  color:var(--pass-muted);
  font-weight:900;
}
.front-pass-route-story__text-button:focus-visible,
.front-pass-purchase a:focus-visible,
.front-pass-stepper button:focus-visible{
  outline:3px solid rgb(20 119 212/.55);
  outline-offset:4px;
}
.front-pass-route-story__body-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:28px;
  padding-top:32px;
}
.front-pass-route-story__main,
.front-pass-journey{
  min-width:0;
}
.front-pass-journey{
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.front-pass-route-story__section-title{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
  margin:0 0 23px;
}
.front-pass-route-story__section-title h2{
  margin:0;
  color:var(--pass-text);
  font-size:25px;
  font-weight:800;
  line-height:1.4;
  letter-spacing:-.8px;
}
.front-pass-route-story__section-title>p{
  margin:0;
  color:var(--pass-muted);
  font-size:11px;
  line-height:1.6;
}
.front-pass-course-infographic{
  min-width:0;
  margin:0 0 26px;
  padding:18px;
  overflow:hidden;
  border:1px solid var(--pass-line);
  border-radius:16px;
  background:#fff;
  box-shadow:0 14px 34px rgb(24 27 36/7%);
}
.front-pass-course-infographic__frame{
  width:100%;
  max-width:960px;
  aspect-ratio:16/9;
  margin:0 auto;
  overflow:hidden;
  background:#f1f2f4;
}
.front-pass-course-infographic__frame img{
  display:block;
  width:100%;
  height:100%;
  max-width:960px;
  max-height:540px;
  object-fit:contain;
}
.front-pass-course-infographic__caption{
  max-width:960px;
  margin:10px auto 0;
  color:var(--pass-muted);
  font-size:11px;
  line-height:1.5;
}
.front-pass-journey__list{
  display:grid;
  gap:0;
  margin:0;
  padding:0;
  list-style:none;
}
.front-pass-journey-chapter{
  position:relative;
  display:block;
  margin:0;
  padding:0 0 0 40px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.front-pass-journey-chapter:not(:last-child)::before{
  position:absolute;
  top:45px;
  bottom:0;
  left:10px;
  width:1px;
  background:var(--pass-line);
  content:"";
}
.front-pass-journey-chapter__number{
  position:absolute;
  top:18px;
  left:0;
  z-index:1;
  color:var(--pass-accent);
  font-size:13px;
  font-weight:900;
}
.front-pass-journey-chapter__card{
  display:grid;
  grid-template-columns:145px minmax(0,1fr);
  overflow:hidden;
  border:1px solid var(--pass-line);
  border-radius:16px;
  background:#fff;
}
.front-pass-journey-chapter__media{
  min-height:240px;
  background:var(--pass-soft);
}
.front-pass-journey-chapter__media img{
  display:block;
  width:100%;
  height:100%;
  min-height:240px;
  object-fit:cover;
  object-position:center 20%;
}
.front-pass-route-story__art{
  display:flex;
  width:100%;
  height:100%;
  min-height:240px;
  flex-direction:column;
  justify-content:space-between;
  gap:14px;
  padding:22px;
  background:var(--pass-accent-soft);
  color:var(--pass-accent);
}
.front-pass-route-story__art.front-pass-route-story__badge--discount{
  background:var(--route-coupon-bg);
  color:var(--route-coupon-text);
}
.front-pass-route-story__art.front-pass-route-story__badge--free{
  background:var(--route-free-bg);
  color:var(--route-free-text);
}
.front-pass-route-story__art small{
  font-size:9px;
  font-weight:900;
  letter-spacing:1.7px;
  line-height:1.5;
  text-transform:uppercase;
}
.front-pass-route-story__art strong{
  font-size:28px;
  font-weight:900;
  line-height:1.05;
  letter-spacing:-1.5px;
  word-break:keep-all;
}
.front-pass-route-story__art span{
  font-size:8px;
  font-weight:900;
  letter-spacing:1.2px;
  text-transform:uppercase;
}
.front-pass-journey-chapter__copy{
  display:block;
  min-width:0;
  padding:21px 23px;
}
.front-pass-route-story__badge{
  display:inline-block;
  width:fit-content;
  margin:0;
  padding:5px 9px;
  border-radius:6px;
  background:var(--pass-accent-soft);
  color:var(--pass-accent);
  font-size:11px;
  font-weight:900;
  line-height:1.4;
}
.front-pass-route-story__badge--discount{
  background:var(--route-coupon-bg);
  color:var(--route-coupon-text);
}
.front-pass-route-story__badge--free{
  background:var(--route-free-bg);
  color:var(--route-free-text);
}
.front-pass-journey-chapter__copy h3{
  margin:12px 0 0;
  color:var(--pass-text);
  font-size:20px;
  font-weight:850;
  line-height:1.5;
  letter-spacing:-.5px;
  word-break:keep-all;
}
.front-pass-route-story__venue{
  display:block;
  margin:8px 0 0;
  color:var(--pass-muted);
  font-size:11px;
  line-height:1.5;
}
.front-pass-journey-chapter__copy>p{
  margin:12px 0 0;
  color:var(--pass-muted);
  font-size:12px;
  line-height:1.9;
  white-space:pre-line;
  word-break:keep-all;
}
.front-pass-route-story__use-inline{
  display:grid;
  gap:5px;
  margin-top:17px;
  font-size:12px;
}
.front-pass-route-story__use-inline b{
  color:var(--pass-text);
  font-size:12px;
  line-height:1.5;
}
.front-pass-route-story__use-inline span{
  color:var(--pass-muted);
  font-size:11px;
  line-height:1.5;
}
.front-pass-route-story__text-button{
  display:inline-flex;
  min-height:40px;
  align-items:center;
  gap:6px;
  margin-top:14px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--pass-accent);
  cursor:pointer;
  font:inherit;
  font-size:12px;
  font-weight:850;
  text-align:left;
  text-decoration:none;
}
body.front-pass-route-story-detail-open{
  overflow:hidden;
}
.front-pass-route-story__detail-layer{
  position:fixed;
  inset:0;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  padding:24px;
  background:#12121899;
}
.front-pass-route-story__detail-layer[hidden]{
  display:none;
}
.front-pass-route-story__detail-panel{
  --pass-detail-panel-pad:26px;
  position:relative;
  display:block;
  width:min(570px,100%);
  max-height:85dvh;
  overflow:auto;
  padding:var(--pass-detail-panel-pad);
  border:0;
  border-radius:20px;
  background:#fff;
  color:var(--pass-text);
  box-shadow:0 30px 100px #0004;
}
.front-pass-route-story__detail-panel:focus{
  outline:none;
}
.front-pass-route-story__detail-chrome{
  position:sticky;
  top:calc(var(--pass-detail-panel-pad) * -1);
  z-index:4;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:calc(var(--pass-detail-panel-pad) * -1) calc(var(--pass-detail-panel-pad) * -1) 14px;
  padding:var(--pass-detail-panel-pad) var(--pass-detail-panel-pad) 12px;
  background:linear-gradient(#fff 76%, rgb(255 255 255/.94));
}
.front-pass-route-story__detail-eyebrow{
  margin:0;
  color:var(--pass-accent);
  font-size:9px;
  font-weight:900;
  line-height:1.5;
  letter-spacing:2px;
}
.front-pass-route-story__detail-close{
  display:inline-flex;
  min-height:44px;
  align-items:center;
  gap:4px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--pass-text);
  cursor:pointer;
  font:inherit;
  font-size:12px;
  line-height:1.5;
}
.front-pass-route-story__detail-close:focus-visible{
  outline:3px solid rgb(20 119 212/.55);
  outline-offset:4px;
}
.front-pass-route-story__detail-media{
  margin:16px 0;
}
.front-pass-route-story__detail-media img,
.front-pass-route-story__detail-graphic{
  display:block;
  width:100%;
  height:200px;
  border-radius:12px;
  background:var(--pass-soft);
}
.front-pass-route-story__detail-media img{
  object-fit:cover;
  object-position:center 20%;
}
.front-pass-route-story__detail-graphic{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:18px;
  padding:22px;
  background:var(--pass-accent-soft);
  color:var(--pass-accent);
}
.front-pass-route-story__detail-graphic.front-pass-route-story__badge--discount{
  background:var(--route-coupon-bg);
  color:var(--route-coupon-text);
}
.front-pass-route-story__detail-graphic.front-pass-route-story__badge--free{
  background:var(--route-free-bg);
  color:var(--route-free-text);
}
.front-pass-route-story__detail-graphic strong{
  font-size:48px;
  font-weight:900;
  line-height:.95;
  letter-spacing:-2px;
}
.front-pass-route-story__detail-graphic small{
  font-size:9px;
  font-weight:900;
  line-height:1.5;
  letter-spacing:1.7px;
  text-transform:uppercase;
}
.front-pass-route-story__detail-tag{
  display:inline-block;
  width:fit-content;
  margin:0;
  padding:5px 9px;
  border-radius:6px;
  background:var(--pass-accent-soft);
  color:var(--pass-accent);
  font-size:11px;
  font-weight:850;
  line-height:1.4;
}
.front-pass-route-story__detail-tag.front-pass-route-story__badge--discount{
  background:var(--route-coupon-bg);
  color:var(--route-coupon-text);
}
.front-pass-route-story__detail-tag.front-pass-route-story__badge--free{
  background:var(--route-free-bg);
  color:var(--route-free-text);
}
.front-pass-route-story__detail-panel h2{
  margin:10px 0 14px;
  color:var(--pass-text);
  font-size:25px;
  font-weight:900;
  line-height:1.45;
  letter-spacing:-.8px;
  word-break:keep-all;
}
.front-pass-route-story__detail-summary{
  margin:0;
  color:var(--pass-text);
  font-size:13px;
  line-height:1.8;
  white-space:pre-line;
  word-break:keep-all;
}
.front-pass-route-story__detail-list{
  display:grid;
  margin:22px 0 0;
}
.front-pass-route-story__detail-list div{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:12px;
  padding:12px 0;
  border-top:1px solid var(--pass-line);
}
.front-pass-route-story__detail-list dt{
  color:var(--pass-muted);
  font-size:13px;
  font-weight:500;
  line-height:1.75;
}
.front-pass-route-story__detail-list dd{
  margin:0;
  color:var(--pass-text);
  font-size:13px;
  font-weight:800;
  line-height:1.75;
  white-space:pre-line;
  word-break:keep-all;
}
.front-pass-route-story__detail-notice{
  display:grid;
  gap:5px;
  margin-top:20px;
  padding:17px 19px;
  border-radius:10px;
  background:var(--pass-soft);
}
.front-pass-route-story__detail-notice b{
  color:var(--pass-text);
  font-size:12px;
  line-height:1.5;
}
.front-pass-route-story__detail-notice span{
  color:var(--pass-muted);
  font-size:12px;
  line-height:1.9;
  white-space:pre-line;
  word-break:keep-all;
}
@media (max-width:720px){
  .front-pass-route-story__detail-layer{
    padding:15px;
  }
  .front-pass-route-story__detail-panel{
    --pass-detail-panel-pad:22px;
  }
  .front-pass-route-story__detail-panel h2,
  .front-pass-route-story__detail-summary,
  .front-pass-route-story__detail-notice span{
    overflow-wrap:anywhere;
  }
  .front-pass-route-story__detail-notice{
    grid-template-columns:minmax(0,1fr);
  }
  .front-pass-route-story__detail-list div{
    grid-template-columns:88px minmax(0,1fr);
  }
  .front-pass-route-story__detail-list dd{
    overflow-wrap:anywhere;
  }
  .front-pass-route-story__detail-list dd:lang(ja),
  .front-pass-route-story__detail-list dd:lang(zh){
    word-break:normal;
  }
}
.front-pass-route-story__bridge{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0;
  padding:18px 0 20px;
  color:var(--pass-muted);
  font-size:11px;
  line-height:1.5;
}
.front-pass-route-story__bridge>span:first-child{
  color:var(--pass-accent);
  font-size:18px;
  line-height:1;
}
.front-pass-route-story__bridge strong{
  color:var(--pass-accent);
  font-weight:900;
}
.front-pass-route-story__booking{
  display:grid;
  gap:14px;
  align-content:start;
  align-self:start;
  min-width:0;
  padding:22px;
  border:1px solid var(--pass-line);
  border-radius:18px;
  background:#fff;
  color:var(--pass-text);
  box-shadow:0 10px 30px rgb(16 24 40/.05);
}
.front-pass-route-story__booking-kicker{
  margin:0;
  color:var(--pass-accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:1.6px;
}
.front-pass-route-story__booking h2{
  margin:0;
  color:var(--pass-text);
  font-size:22px;
  font-weight:850;
  line-height:1.35;
  letter-spacing:-.6px;
}
.front-pass-route-story__price{
  display:flex;
  align-items:baseline;
  gap:8px;
  flex-wrap:wrap;
}
.front-pass-route-story__price strong{
  color:var(--pass-text);
  font-size:27px;
  font-weight:900;
  line-height:1.1;
  letter-spacing:-1px;
}
.front-pass-route-story__price>span:not(.front-pass-discount-rate){
  color:var(--pass-muted);
  font-size:12px;
}
.front-pass-route-story__price del{
  color:#9b9da6;
  font-size:12px;
}
.front-pass-route-story__booking-summary{
  margin:0;
  color:var(--pass-muted);
  font-size:12px;
  line-height:1.8;
}
.front-pass-route-story__book-route{
  display:grid;
  gap:9px;
  margin-top:5px;
  padding-top:14px;
  border-top:1px solid var(--pass-line);
  font-size:11px;
}
.front-pass-route-story__book-route>span{
  color:var(--pass-muted);
  font-weight:850;
}
.front-pass-route-story__book-route ol{
  display:grid;
  gap:9px;
  margin:0;
  padding:0;
  list-style:none;
}
.front-pass-route-story__book-route li{
  display:flex;
  min-width:0;
  align-items:center;
  gap:10px;
}
.front-pass-route-story__book-route b{
  color:var(--pass-accent);
  font-size:9px;
}
.front-pass-route-story__book-route span:last-child{
  overflow:hidden;
  color:var(--pass-text);
  font-size:12px;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.front-pass-component-purchase{
  display:grid;
  gap:10px;
  padding:14px;
  border:1px solid rgb(230 0 126/.18);
  border-radius:18px;
  background:linear-gradient(180deg,#fff,rgba(230,0,126,.035));
}
.front-pass-component-purchase__kicker{
  margin:0;
  color:var(--pass-accent);
  font-size:10px;
  font-weight:900;
  letter-spacing:1.2px;
  text-transform:uppercase;
}
.front-pass-component-purchase h3{
  margin:0;
  color:var(--pass-text);
  font-size:15px;
  font-weight:900;
  letter-spacing:-.2px;
}
.front-pass-component-purchase__card{
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid var(--pass-line);
  border-radius:15px;
  background:#fff;
}
.front-pass-component-purchase__head{
  display:grid;
  gap:3px;
}
.front-pass-component-purchase__head>span{
  width:max-content;
  max-width:100%;
  padding:3px 8px;
  border-radius:999px;
  background:rgb(230 0 126/.08);
  color:var(--pass-accent);
  font-size:10px;
  font-weight:850;
}
.front-pass-component-purchase__head strong{
  color:var(--pass-text);
  font-size:14px;
  font-weight:900;
  line-height:1.35;
}
.front-pass-component-purchase__head small,
.front-pass-component-purchase__intro{
  margin:0;
  color:var(--pass-muted);
  font-size:11px;
  line-height:1.65;
}
.front-pass-component-purchase__date label{
  display:grid;
  gap:6px;
  color:var(--pass-muted);
  font-size:11px;
  font-weight:850;
}
.front-pass-component-purchase__date input{
  width:100%;
  min-height:40px;
  box-sizing:border-box;
  padding:0 11px;
  border:1px solid var(--pass-line);
  border-radius:12px;
  background:#fff;
  color:var(--pass-text);
  font:inherit;
  font-size:13px;
  font-weight:800;
}
.front-pass-component-purchase__group{
  display:grid;
  gap:7px;
  padding-top:9px;
  border-top:1px solid var(--pass-line);
}
.front-pass-component-purchase__group h4{
  margin:0;
  color:var(--pass-text);
  font-size:12px;
  font-weight:900;
}
.front-pass-component-purchase__group--control{
  gap:9px;
}
.front-pass-component-purchase__control-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  min-width:0;
}
.front-pass-component-purchase__group--inherited{
  gap:9px;
}
.front-pass-component-purchase__inherited-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:4px 8px;
  align-items:center;
  min-width:0;
}
.front-pass-component-purchase__inherited-row>span:first-child{
  overflow-wrap:anywhere;
  color:var(--pass-text);
  font-size:12px;
  font-weight:850;
}
.front-pass-component-purchase__inherited-row output{
  min-width:28px;
  color:var(--pass-accent);
  font-size:14px;
  font-weight:900;
  text-align:right;
}
.front-pass-component-purchase__inherited-row small{
  grid-column:1 / -1;
  color:var(--pass-muted);
  font-size:10.5px;
}
.front-pass-component-purchase__control-copy{
  display:grid;
  gap:3px;
  min-width:0;
}
.front-pass-component-purchase__control-copy span,
.front-pass-component-purchase__choice b{
  min-width:0;
  overflow-wrap:anywhere;
  color:var(--pass-text);
  font-size:12px;
  font-weight:850;
  line-height:1.35;
  white-space:normal;
}
.front-pass-component-purchase__control-copy strong,
.front-pass-component-purchase__choice strong{
  color:var(--pass-accent);
  font-size:12px;
  font-weight:900;
  line-height:1.25;
}
.front-pass-component-purchase__control-copy small,
.front-pass-component-purchase__choice small{
  color:var(--pass-muted);
  font-size:11px;
  line-height:1.45;
}
.front-pass-component-purchase__stepper{
  display:flex;
  align-items:center;
  gap:2px;
  height:34px;
  padding:2px;
  border:1px solid var(--pass-line);
  border-radius:11px;
  background:#fff;
}
.front-pass-component-purchase__stepper button{
  display:grid;
  width:28px;
  height:28px;
  padding:0;
  border:0;
  border-radius:9px;
  background:transparent;
  color:var(--pass-text);
  font-size:16px;
  font-weight:900;
  cursor:pointer;
  place-items:center;
}
.front-pass-component-purchase__stepper button:disabled{
  color:#c8c8cf;
  cursor:default;
}
.front-pass-component-purchase__stepper output{
  min-width:24px;
  color:var(--pass-text);
  font-size:13px;
  font-weight:900;
  text-align:center;
}
.front-pass-component-purchase__group ul{
  display:grid;
  gap:6px;
  margin:0;
  padding:0;
  list-style:none;
}
.front-pass-component-purchase__group li{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:3px;
  align-items:start;
  min-width:0;
  color:var(--pass-text);
  font-size:12px;
}
.front-pass-component-purchase__group li>span{
  min-width:0;
  overflow-wrap:anywhere;
  font-weight:800;
  white-space:normal;
}
.front-pass-component-purchase__group li>strong{
  justify-self:start;
  color:var(--pass-accent);
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.front-pass-component-purchase__group li>small{
  grid-column:1 / -1;
  color:var(--pass-muted);
  font-size:11px;
  line-height:1.5;
}
.front-pass-component-purchase__option{
  display:grid;
  gap:7px;
}
.front-pass-component-purchase__option-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  color:var(--pass-muted);
  font-size:11px;
}
.front-pass-component-purchase__option-title span{
  min-width:0;
  overflow-wrap:anywhere;
  color:var(--pass-text);
  font-weight:850;
  white-space:normal;
}
.front-pass-component-purchase__option-title em{
  flex:0 0 auto;
  font-style:normal;
}
.front-pass-component-purchase__choice-list,
.front-pass-component-purchase__quantity-list{
  display:grid;
  gap:7px;
}
.front-pass-component-purchase__choice{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:9px;
  align-items:start;
  padding:9px;
  border:1px solid var(--pass-line);
  border-radius:12px;
  background:#fff;
  cursor:pointer;
}
.front-pass-component-purchase__choice input{
  width:16px;
  height:16px;
  margin:1px 0 0;
  accent-color:var(--pass-accent);
}
.front-pass-component-purchase__choice span{
  display:grid;
  gap:3px;
  min-width:0;
}
.front-pass-component-purchase__subtotal{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 0 0;
  border-top:1px solid var(--pass-line);
  color:var(--pass-muted);
  font-size:12px;
  font-weight:850;
}
.front-pass-component-purchase__subtotal strong{
  color:var(--pass-accent);
  font-size:18px;
  font-weight:950;
  white-space:nowrap;
}
.front-pass-component-purchase__conditions{
  border-top:1px solid var(--pass-line);
  padding-top:8px;
}
.front-pass-component-purchase__conditions summary{
  color:var(--pass-muted);
  font-size:11px;
  font-weight:850;
  cursor:pointer;
}
.front-pass-component-purchase__conditions ul{
  display:grid;
  gap:6px;
  margin:8px 0 0;
  padding:0;
  list-style:none;
}
.front-pass-component-purchase__conditions li{
  display:grid;
  gap:2px;
  color:var(--pass-text);
  font-size:11px;
  line-height:1.45;
}
.front-pass-component-purchase__conditions strong{
  color:var(--pass-accent);
}
.front-pass-component-purchase__authority{
  margin:0;
  color:var(--pass-muted);
  font-size:11px;
  line-height:1.6;
}
.front-pass-component-purchase__error{
  margin:0;
  padding:10px 12px;
  border:1px solid rgb(179 38 30 / 28%);
  border-radius:12px;
  background:#fff5f4;
  color:#9f211a;
  font-size:12px;
  font-weight:750;
  line-height:1.5;
}
.front-pass-component-purchase__error:focus-visible{
  outline:3px solid rgb(230 0 126 / 24%);
  outline-offset:2px;
}
.front-pass-purchase__link--disabled{
  cursor:not-allowed;
  opacity:.58;
}
.front-pass-component-purchase .front-pass-component-purchase__renderer,
.front-pass-component-purchase .front-pass-component-purchase__shared-date{
  --si-calendar-accent:var(--pass-accent);
  --si-calendar-accent-on:var(--pass-accent-on);
  --si-calendar-text:var(--pass-text);
  --si-calendar-muted:var(--pass-muted);
  --si-calendar-line:var(--pass-line);
}
.front-pass-component-purchase__shared-date{
  width:100%;
  min-width:0;
  max-width:100%;
}
.front-pass-component-purchase__shared-date-card{
  min-width:0;
  margin:0;
  padding:12px;
  border-color:var(--pass-line);
  border-radius:14px;
  box-shadow:none;
}
.front-pass-component-purchase__renderer{
  display:grid;
  min-width:0;
  max-width:100%;
  gap:10px;
}
.front-pass-component-purchase__renderer .si-preview-card,
.front-pass-component-purchase__renderer .si-opt-card{
  box-sizing:border-box;
  min-width:0;
  max-width:100%;
  margin:0;
  overflow:hidden;
  border-color:var(--pass-line);
  box-shadow:none;
}
.front-pass-component-purchase__renderer .si-preview-card{
  padding:12px;
  border-radius:14px;
  background:#fff;
}
.front-pass-component-purchase__renderer .front-pass-component-purchase__option-container{
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.front-pass-component-purchase__renderer .si-opt-card{
  padding:10px;
  border-radius:13px;
}
.front-pass-component-purchase__renderer .si-opt-header{
  align-items:flex-start;
  gap:7px;
  margin-bottom:10px;
  flex-wrap:wrap;
}
.front-pass-component-purchase__renderer .si-opt-name{
  flex:1 1 130px;
  color:var(--pass-text);
  font-size:13px;
  line-height:1.35;
  white-space:normal;
}
.front-pass-component-purchase__renderer .si-opt-badge{
  flex:0 0 auto;
  padding:3px 7px;
  font-size:10px;
}
.front-pass-component-purchase__renderer .si-opt-select{
  min-height:40px;
  font-size:12px;
}
.front-pass-component-purchase__renderer .front-pass-component-purchase__subtotal{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:6px 10px;
}
.front-pass-component-purchase__renderer .si-price-logs{
  grid-column:1 / -1;
  max-width:100%;
  padding-left:18px;
  overflow-wrap:anywhere;
  font-size:11px;
}
.front-pass-component-purchase__renderer .si-price-logs:empty{
  display:none;
}
.front-pass-route-story__quantity{
  display:grid;
  gap:14px;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.front-pass-route-story__quantity-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:var(--pass-muted);
  font-size:12px;
  font-weight:850;
}
.front-pass-route-story__quantity .front-pass-stepper{
  height:40px;
  border-color:var(--pass-line);
  border-radius:9px;
}
.front-pass-route-story__quantity .front-pass-stepper button{
  width:32px;
  height:32px;
  flex-basis:32px;
  color:var(--pass-text);
  font-size:18px;
  font-weight:800;
}
.front-pass-route-story__quantity .front-pass-stepper output{
  min-width:28px;
  font-size:15px;
}
.front-pass-route-story__quantity .front-pass-quantity__total{
  margin:0;
  padding-top:13px;
  border-top:1px solid var(--pass-line);
}
.front-pass-route-story__quantity .front-pass-quantity__total strong{
  color:var(--pass-accent);
  font-size:24px;
}
.front-pass-detail--route-story .front-pass-purchase{
  display:block;
  width:100%;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.front-pass-detail--route-story .front-pass-purchase a{
  display:flex;
  min-height:48px;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 16px;
  border-radius:12px;
  background:var(--pass-accent);
  color:var(--pass-accent-on);
  box-shadow:none;
  font-size:13px;
  font-weight:900;
  line-height:1.5;
  text-align:center;
  text-decoration:none;
  white-space:nowrap;
}
.front-pass-route-story__policies{
  display:grid;
  gap:18px;
  margin-top:32px;
  padding:24px;
  border:1px solid var(--pass-line);
  border-radius:20px;
  background:#fff;
}
.front-pass-route-story__policies h2{
  margin:0;
  color:var(--pass-text);
  font-size:20px;
  font-weight:800;
}
.front-pass-route-story__policies h3{
  margin:0 0 6px;
  color:var(--pass-text);
  font-size:14px;
  font-weight:800;
}
.front-pass-route-story__policies p{
  margin:0;
  color:var(--pass-muted);
  font-size:13px;
  line-height:1.7;
  white-space:pre-line;
  overflow-wrap:anywhere;
}
.front-pass-route-story__purchase-guide{
  display:grid;
  gap:4px;
  margin:0;
  color:var(--pass-muted);
  font-size:12px;
  line-height:1.5;
}
.front-pass-route-story__purchase-guide strong{
  color:var(--pass-text);
  font-weight:850;
}
.front-pass-route-story__fine{
  display:grid;
  gap:4px;
  margin:0;
  color:var(--pass-muted);
  font-size:10px;
  line-height:1.6;
}
@media (min-width:768px){
  .front-pass-route-story__hero{
    grid-template-columns:minmax(0,.92fr) minmax(0,1fr);
  }
}
@media (min-width:1100px){
  .front-pass-route-story__body-grid{
    grid-template-columns:minmax(0,1fr) 290px;
    gap:44px;
  }
  .front-pass-route-story__body-grid--with-components{
    grid-template-columns:minmax(0,1fr) minmax(360px,420px);
  }
  .front-pass-route-story__hero{
    min-height:435px;
  }
  .front-pass-route-story__hero-copy{
    padding-left:42px;
  }
  .front-pass-route-story__hero-visual{
    min-height:435px;
  }
  .front-pass-route-story__booking{
    position:sticky;
    top:92px;
  }
  .front-pass-route-story__booking--with-components{
    position:static;
  }
}
@media (max-width:900px){
  .front-pass-route-story__body-grid{
    grid-template-columns:minmax(0,1fr) 240px;
    gap:22px;
  }
  .front-pass-route-story__body-grid--with-components{
    grid-template-columns:1fr;
  }
  .front-pass-route-story__booking{
    padding:18px;
  }
}
@media (max-width:720px){
  .front-pass-detail--route-story{
    padding-bottom:88px;
  }
  .front-pass-route-story__page{
    padding:0 20px 28px;
  }
  .front-pass-route-story__hero{
    grid-template-columns:1fr;
  }
  .front-pass-route-story__hero-copy{
    padding:26px 23px;
  }
  .front-pass-route-story__hero h1{
    font-size:32px;
    letter-spacing:-1.7px;
  }
  .front-pass-route-story__hero-visual{
    min-height:225px;
  }
  .front-pass-course-infographic{
    margin-bottom:22px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  .front-pass-route-story__body-grid{
    grid-template-columns:1fr;
    gap:28px;
    padding-top:28px;
  }
  .front-pass-route-story__body-grid--with-components{
    grid-template-columns:1fr;
  }
  .front-pass-route-story__section-title{
    gap:9px;
    margin:0 0 20px;
  }
  .front-pass-route-story__section-title h2{
    font-size:23px;
  }
  .front-pass-journey-chapter{
    padding-left:29px;
  }
  .front-pass-journey-chapter__number{
    font-size:11px;
  }
  .front-pass-journey-chapter:not(:last-child)::before{
    left:8px;
  }
  .front-pass-journey-chapter__card{
    grid-template-columns:1fr;
  }
  .front-pass-journey-chapter__media,
  .front-pass-route-story__art{
    height:150px;
    min-height:0;
  }
  .front-pass-journey-chapter__media img{
    height:150px;
    min-height:0;
  }
  .front-pass-journey-chapter__copy{
    padding:17px;
  }
  .front-pass-journey-chapter__copy h3{
    font-size:18px;
  }
  .front-pass-route-story__booking{
    position:static;
  }
}
@media (max-width:370px){
  .front-pass-route-story__page{
    padding-right:16px;
    padding-left:16px;
  }
  .front-pass-route-story__hero h1{
    font-size:28px;
  }
  .front-pass-route-story__hero-copy{
    padding:23px 19px;
  }
}
