@charset "utf-8";

/* =========================================================
   REBOOT BUS TOUR 2026
   Clean CSS v6
   - 過去テンプレ由来の上書き追記を整理
   - セクション単位で調整しやすいように再構成
========================================================= */

:root{
  --orange:#f19c0e;
  --orange-dark:#c47500;
  --orange-soft:#fff4dc;
  --sky:#98d7e9;
  --sky-dark:#1687a7;
  --sky-soft:#eaf8fc;
  --cream:#fffaf0;
  --danger:#d84435;
  --ink:#302923;
  --text:#463d35;
  --muted:#6d6258;
  --paper:#fff;
  --line:#d7edf4;
  --shadow:0 14px 34px rgba(40,70,82,.12);
  --shadow-soft:0 8px 22px rgba(40,70,82,.08);
  --radius-lg:28px;
  --radius-md:20px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{
  margin:0;
  overflow-x:hidden;
  color:var(--text);
  background:
    radial-gradient(circle at 14% 8%, rgba(241,156,14,.15) 0 120px, transparent 123px),
    radial-gradient(circle at 92% 14%, rgba(152,215,233,.34) 0 180px, transparent 183px),
    linear-gradient(135deg, rgba(152,215,233,.34), #fff 36%, rgba(255,250,240,.96));
  font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic","Yu Gothic UI",Meiryo,sans-serif;
  font-size:16px;
  line-height:1.72;
  letter-spacing:.01em;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(135deg, transparent 0 48%, rgba(152,215,233,.12) 49% 51%, transparent 52%) 0 0/72px 72px,
    radial-gradient(circle, rgba(241,156,14,.10) 0 2px, transparent 3px) 8px 8px/34px 34px;
  opacity:.62;
}
a{color:#05769a; text-underline-offset:.18em;}
a:hover{color:var(--orange-dark);}
img{max-width:100%; height:auto; vertical-align:middle;}
main{background:transparent;}
strong{font-weight:700;}
.wrap{max-width:1120px; margin:0 auto; padding:0 24px;}
.pc-only{display:inline;}
.sp-only,br.sp{display:none;}
.sr-only{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap;}
.note{color:var(--muted); font-size:.9rem; line-height:1.62; font-weight:400;}

/* =========================================================
   Header / Navigation
========================================================= */
header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1000;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid rgba(152,215,233,.55);
  box-shadow:0 4px 20px rgba(47,42,36,.08);
  backdrop-filter:blur(12px);
}
.nav-inner{
  width:100%;
  max-width:1180px;
  min-height:66px;
  margin:0 auto;
  padding:0 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.logo{
  display:flex;
  align-items:center;
  gap:9px;
  color:var(--ink);
  text-decoration:none;
  flex-shrink:0;
}
.logo::before{
  content:"✦";
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:12px;
  background:var(--orange);
  color:#fff;
  font-weight:700;
  box-shadow:0 4px 0 rgba(0,0,0,.08);
}
.logo::after{
  content:"REBOOT BUS TOUR";
  color:var(--ink);
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:.86rem;
  font-weight:700;
  letter-spacing:.06em;
  white-space:nowrap;
}
.menu{
  display:flex;
  align-items:center;
  gap:6px;
  margin:0;
  padding:0;
  list-style:none;
}
.menu li{list-style:none;}
.menu li a{
  display:block;
  padding:8px 9px;
  border-radius:999px;
  color:var(--ink);
  font-size:.84rem;
  font-weight:700;
  line-height:1.35;
  text-decoration:none;
  white-space:nowrap;
}
.menu li a:hover,.menu li a:focus{
  background:var(--sky-soft);
  color:var(--orange-dark);
  outline:none;
}
.hamburger{
  display:none;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  padding:0;
  border:0;
  border-radius:999px;
  background:var(--orange);
  color:#fff;
  cursor:pointer;
}
.hamburger-icon{line-height:1;}

/* =========================================================
   Hero
========================================================= */
.hero-reboot{
  position:relative;
  overflow:hidden;
  padding:98px 0 62px;
}
.hero-reboot::before,
.hero-reboot::after{
  content:"";
  position:absolute;
  z-index:-1;
  border-radius:50%;
}
.hero-reboot::before{width:520px; height:520px; top:28px; right:-180px; background:rgba(241,156,14,.16);}
.hero-reboot::after{width:420px; height:420px; bottom:-170px; left:-170px; background:rgba(152,215,233,.35);}
.hero-layout{
  max-width:1180px;
  margin:0 auto;
  padding:0 24px;
  display:grid;
  grid-template-columns:minmax(320px,50%) minmax(0,1fr);
  gap:36px;
  align-items:center;
}
.hero-visual{
  margin:0;
  overflow:hidden;
  background:#fff;
  border:8px solid #fff;
  border-radius:34px;
  box-shadow:var(--shadow);
  transform:rotate(-.8deg);
}
.hero-visual img{display:block; width:100%;}
.hero-copy{min-width:0;}
.status-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin-bottom:15px;
}
.status-pill{
  display:inline-flex;
  align-items:center;
  padding:8px 17px;
  border-radius:999px;
  background:var(--orange);
  color:#fff;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:.95rem;
  font-weight:700;
  letter-spacing:.04em;
  box-shadow:0 8px 0 rgba(191,114,0,.18),0 12px 24px rgba(241,156,14,.18);
}
.status-note{color:var(--muted); font-size:.9rem; font-weight:500;}
.hero-title{
  margin:0 0 16px;
  color:var(--ink);
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:clamp(2.05rem,4.2vw,4.1rem);
  font-weight:700;
  line-height:1.13;
  letter-spacing:.005em;
  text-shadow:0 2px 0 rgba(255,255,255,.8);
}
.hero-title small{
  display:block;
  margin-top:10px;
  color:var(--orange-dark);
  font-size:clamp(1rem,1.8vw,1.34rem);
  font-weight:500;
  letter-spacing:.05em;
}
.hero-lead{
  max-width:660px;
  margin:0 0 18px;
  color:#4d443c;
  font-size:1.2rem;
  font-weight:600;
text-align: center;
}
.hero-summary{
  display:grid;
  grid-template-columns:1fr;
  gap:11px;
  max-width:620px;
  margin:18px 0;
}
.summary-card{
  position:relative;
  overflow:hidden;
  min-width:0;
  display:grid;
  grid-template-columns:minmax(7.4em,auto) minmax(0,1fr);
  grid-template-areas:"label value" "label sub";
  column-gap:16px;
  row-gap:2px;
  align-items:center;
  padding:14px 18px 14px 22px;
  border-radius:20px;
  background:rgba(255,255,255,.97);
  box-shadow:0 10px 24px rgba(40,70,82,.10), inset 0 0 0 1px rgba(152,215,233,.55);
}
.summary-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:6px;
  background:linear-gradient(180deg,var(--orange),var(--sky));
}
.summary-card.price{
  background:linear-gradient(135deg,#fffaf0 0%,#fff 64%);
  box-shadow:0 10px 24px rgba(241,156,14,.14), inset 0 0 0 1px rgba(241,156,14,.38);
}
.summary-label{
  grid-area:label;
  margin:0;
  color:#9b6b20;
  font-size:.72rem;
  line-height:1.35;
  font-weight:700;
  letter-spacing:.14em;
}
.summary-value{
  grid-area:value;
  overflow-wrap:anywhere;
  color:var(--ink);
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:1.12rem;
  line-height:1.38;
  font-weight:700;
}
.summary-card.price .summary-value{color:#d97900; font-size:1.48rem;}
.summary-sub{
  grid-area:sub;
  margin:1px 0 0;
  color:#756b62;
  font-size:.79rem;
  line-height:1.45;
  font-weight:400;
}
.cta-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:22px 0 12px;
  align-items:center;
}
.cta-btn{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  max-width:100%;
  min-width:220px;
  min-height:52px;
  padding:14px 24px;
  border:2px solid rgba(255,255,255,.9);
  border-radius:999px;
  background:linear-gradient(135deg,var(--orange),#ffb541);
  color:#fff!important;
  text-align:center;
  text-decoration:none!important;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:1rem;
  line-height:1.35;
  font-weight:700;
  box-shadow:0 10px 20px rgba(241,156,14,.20);
  transition:transform .18s ease, filter .18s ease;
}
.cta-btn:hover{transform:translateY(-2px); filter:brightness(1.03);}
.cta-btn.secondary{
  background:#fff;
  color:var(--ink)!important;
  border-color:var(--sky);
  box-shadow:var(--shadow-soft);
}
.anchor-btn{min-width:210px;}
.hero-memo{max-width:650px; margin:8px 0 0; color:var(--muted); font-size:.86rem; font-weight:400;}

/* =========================================================
   Common section styles
========================================================= */
.lp-section{padding:60px 0;}
.lp-section.compact{padding-top:34px;}
.section-heading{margin-bottom:32px; text-align:center;}
.section-kicker{
  display:inline-block;
  margin-bottom:8px;
  color:var(--orange-dark);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.2em;
}
.section-heading h2{
  margin:0;
  color:var(--ink);
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:clamp(1.7rem,3vw,2.42rem);
  line-height:1.35;
  font-weight:700;
}
.section-heading h2::after{
  content:"";
  display:block;
  width:78px;
  height:6px;
  margin:16px auto 0;
  border-radius:999px;
  background:linear-gradient(90deg,var(--orange),var(--sky));
}
.section-heading p{max-width:760px; margin:12px auto 0; color:var(--muted); font-size:.96rem; font-weight:400;}
.white-panel{
  background:rgba(255,255,255,.96);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
  padding:26px;
}
.white-panel ul,.white-panel ol{margin:0 0 0 1.25em; padding:0;}
.white-panel li{margin-bottom:.45em;}

/* =========================================================
   Tour points
========================================================= */
.point-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin:0;
  padding:0;
  list-style:none;
}

.point-card{
  position:relative;
  overflow:hidden;
  min-width:0;
  min-height:232px;
  margin:0;
  padding:18px 18px 19px;

  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  column-gap:14px;
  row-gap:12px;
  align-items:start;

  border:1px solid rgba(152,215,233,.76);
  border-radius:24px;
  background:linear-gradient(180deg,#fff 0%,#fff 72%,#eff9fc 100%);
  box-shadow:0 10px 24px rgba(40,70,82,.09);
}

.point-card.point-main{
  border-color:#ffd08a;
  background:linear-gradient(180deg,#fff 0%,#fff8e9 100%);
}

/* POINTラベル */
.point-card::before{
  content:"POINT " attr(data-num);
  grid-column:1 / -1;
  position:relative;
  z-index:2;
  justify-self:start;

  display:inline-flex;
  margin:0;
  padding:4px 10px;
  border-radius:999px;
  background:var(--orange);
  color:#fff;
  font-size:.68rem;
  line-height:1.35;
  font-weight:700;
  letter-spacing:.11em;
}

/* 背景装飾 */
.point-card::after{
  content:"";
  position:absolute;
  z-index:0;
  right:-30px;
  top:-30px;
  width:84px;
  height:84px;
  border-radius:50%;
  background:rgba(152,215,233,.24);
  pointer-events:none;
}

/* メインポイント用ラベル */
.point-badge-main{
  grid-column:1 / -1;
  position:relative;
  z-index:2;
  justify-self:start;

  display:inline-flex;
  margin:0;
  padding:3px 9px;
  border:1px solid rgba(241,156,14,.45);
  border-radius:999px;
  background:#fff;
  color:#b56b00;
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.12em;
}

/* アイコン */
.point-icon{
  grid-column:1;
  position:relative;
  z-index:2;

  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  margin:0;
  border:2px solid rgba(152,215,233,.95);
  border-radius:16px 16px 16px 6px;
  background:#fff;
  font-size:1.32rem;
  box-shadow:0 8px 18px rgba(40,70,82,.09);
}

/* 見出し */
.point-card h3{
  grid-column:2;
  position:relative;
  z-index:2;
  align-self:center;

  margin:0;
  padding:0;
  border:0;
  color:#087e9f;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:1.6rem;
  line-height:1.6;
  font-weight:700;
}

/* メインポイント */
.point-card.point-main h3{
  color:#e17e00;
  font-size:2.4rem;
}

/* ポイントごとのタイトル色 */
.point-card:nth-child(2) h3{color:#2D6EDF;}
.point-card:nth-child(3) h3{color:#158a65;}
.point-card:nth-child(4) h3{color:#b85d8f;}

/* 見出し下線 */
.point-card h3::after{
  content:"";
  display:block;
  width:46px;
  height:4px;
  margin-top:8px;
  border-radius:999px;
  background:linear-gradient(90deg,currentColor,rgba(152,215,233,.85));
}

/* 本文 */
.point-card p{
  grid-column:1 / -1;
  position:relative;
  z-index:2;

  margin:2px 0 0;
  color:#50483f;
  font-size:1rem;
  line-height:1.65;
  font-weight:400;
}

/* レスポンシブ */
@media (max-width:760px){
  .point-grid{
    grid-template-columns:1fr;
  }

  .point-card{
    min-height:0;
    grid-template-columns:50px minmax(0,1fr);
    column-gap:12px;
    row-gap:10px;
    padding:18px;
    border-radius:22px;
  }

  .point-icon{
    width:44px;
    height:44px;
    font-size:1.2rem;
  }

  .point-card h3{
    font-size:1.28rem;
    line-height:1.42;
  }

  .point-card.point-main h3{
    font-size:1.38rem;
  }

  .point-card p{
    font-size:.95rem;
  }
}

/* =========================================================
   Cast
========================================================= */
.cast-panel{
  padding:32px;
  border:1px solid #fff;
  border-radius:30px;
  background:linear-gradient(180deg,#fff 0%,var(--sky-soft, var(--sky-pale)) 100%);
  box-shadow:var(--shadow);
}

.cast-group + .cast-group{
  margin-top:34px;
}

/* グループ見出し */
.cast-group-title{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  justify-content:center;
  margin:0 0 20px;
  color:var(--ink);
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:1.22rem;
  line-height:1.45;
  font-weight:700;
  text-align:center;
}

.cast-group-title span{
  display:inline-block;
  padding:4px 12px;
  border-radius:999px;
  background:var(--orange);
  color:#fff;
  font-size:.74rem;
  line-height:1.4;
  font-weight:700;
  letter-spacing:.08em;
}

/* REBOOT所属側の見出し色 */
.cast-group:nth-of-type(2) .cast-group-title span{
  background:var(--sky-dark);
}

/* 一覧 */
.cast-grid{
  display:grid;
  justify-content:center;
  gap:18px;
  margin:0;
  padding:0;
  list-style:none;
}

.cast-grid.guest,
.cast-grid.reboot{
  grid-template-columns:repeat(auto-fit,minmax(180px,180px));
}

/* カード共通 */
.cast-card{
  --cast-accent:var(--orange);
  --cast-accent-soft:rgba(241,156,14,.22);

  position:relative;
  display:block;
  width:180px;
  min-width:0;
  margin:0;
  padding:15px 15px 17px;
  border:1px solid rgba(152,215,233,.65);
  border-radius:24px;
  background:#fff;
  text-align:center;
  box-shadow:var(--shadow-soft);
  overflow:hidden;
}

/* 上部アクセント線 */
.cast-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:5px;
  background:var(--cast-accent);
}

/* ゲスト：オレンジ */
.cast-card.guest{
  --cast-accent:var(--orange);
  --cast-accent-soft:rgba(241,156,14,.26);
}

/* REBOOT所属：水色 */
.cast-card.reboot{
  --cast-accent:var(--sky-dark);
  --cast-accent-soft:rgba(152,215,233,.36);
}

/* 写真：形・サイズ共通 */
.cast-photo{
  width:150px;
  height:150px;
  margin:0 auto;
  overflow:hidden;
  border:4px solid #fff;
  border-radius:22px;
  background:#f4fbfd;
  box-shadow:0 0 0 4px var(--cast-accent-soft);
}

.cast-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* 名前 */
.cast-name{
  display:block;
  margin-top:13px;
  color:var(--ink);
  font-size:1.02rem;
  line-height:1.35;
  font-weight:700;
}

/* 区分ラベル */
.cast-label{
  display:inline-block;
  margin-top:7px;
  padding:3px 10px;
  border-radius:999px;
  background:var(--cast-accent);
  color:#fff;
  font-size:.72rem;
  line-height:1.35;
  font-weight:700;
  letter-spacing:.04em;
}

/* レスポンシブ */
@media (max-width:760px){
  .cast-panel{
    padding:22px 18px;
    border-radius:24px;
  }

  .cast-group-title{
    font-size:1.08rem;
    margin-bottom:16px;
  }

  .cast-grid{
    gap:14px;
  }

  .cast-grid.guest,
  .cast-grid.reboot{
    grid-template-columns:repeat(2,minmax(136px,156px));
  }

  .cast-card{
    width:100%;
    padding:13px 12px 15px;
    border-radius:22px;
  }

  .cast-photo{
    width:112px;
    height:112px;
    border-radius:18px;
  }

  .cast-name{
    font-size:.96rem;
  }

  .cast-label{
    font-size:.68rem;
  }
}

@media (max-width:360px){
  .cast-grid.guest,
  .cast-grid.reboot{
    grid-template-columns:1fr;
  }

  .cast-card{
    max-width:180px;
    margin:0 auto;
  }

  .cast-photo{
    width:120px;
    height:120px;
  }
}

/* =========================================================
   Entry information
========================================================= */
#entry-info{padding-top:48px;}
.entry-info-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.entry-card{
  position:relative;
  overflow:hidden;
  min-width:0;
  padding:20px 22px;
  border:1px solid rgba(152,215,233,.68);
  border-radius:24px;
  background:rgba(255,255,255,.97);
  box-shadow:0 10px 26px rgba(40,70,82,.09);
}
.entry-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:6px;
  background:linear-gradient(90deg,var(--orange),var(--sky));
}
.entry-card-head{display:flex; align-items:center; gap:10px; margin-bottom:12px;}
.entry-icon{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:12px;
  background:var(--orange);
  color:#fff;
  font-size:1rem;
  font-weight:700;
  line-height:1;
}
.caution-card .entry-icon{background:var(--danger);}
.small-card .entry-icon{background:var(--sky-dark);}
.entry-card h3{
  margin:0;
  padding:0;
  border:0;
  color:var(--ink);
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:1.16rem;
  line-height:1.35;
  font-weight:700;
}
.entry-main{margin:0 0 10px; color:var(--ink); font-size:1.2rem; line-height:1.55; font-weight:700;}
.entry-sub{margin:0; color:var(--muted); font-size:.95rem;}
.entry-card ul{margin:0 0 0 1.25em; padding:0;}
.entry-card li{margin-bottom:6px; color:#514a43;  line-height:1.62;list-style: disc;font-size: .9rem;}
.small-card{display:flex; flex-direction:column; justify-content:center;}

/* =========================================================
   Price
========================================================= */
.price-panel{
  max-width:1000px;
  margin:0 auto;
  padding:26px;
  border:1px solid rgba(152,215,233,.62);
  border-radius:30px;
  background:#fff;
  box-shadow:var(--shadow);
}
.price-main{
  max-width:620px;
  margin:0 auto 22px;
  padding:28px 24px;
  border-radius:28px;
  background:linear-gradient(135deg,var(--orange),#ffb541);
  color:#fff;
  text-align:center;
  box-shadow:0 14px 26px rgba(241,156,14,.22);
}
.price-main span{display:block; font-size:.94rem; font-weight:500;}
.price-main strong{
  display:block;
  margin:9px 0;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:clamp(2.6rem,7vw,4.4rem);
  line-height:1.1;
  font-weight:700;
  letter-spacing:.02em;
}
.price-caution{margin:12px 0 0; color:rgba(255,255,255,.92); font-size:.86rem; line-height:1.55; font-weight:400;}
.price-inout{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.price-subcard{
  min-width:0;
  padding:20px 20px 18px;
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(180deg,#fff,#fbfdfe);
}
.price-subcard.exclude{background:linear-gradient(180deg,#fff,#fffaf1); border-color:#ffe0a8;}
.price-subcard h4{
  display:flex;
  align-items:center;
  gap:9px;
  margin:0 0 12px;
  color:var(--ink);
  font-size:1.08rem;
  font-weight:700;
}
.price-subcard h4::before{content:""; flex:0 0 auto; width:10px; height:10px; border-radius:50%; background:var(--sky-dark);}
.price-subcard.exclude h4::before{background:var(--orange);}
.price-subcard ul,.price-subcard ol{margin:0 0 0 1.25em; padding:0;}
.price-subcard li{margin-bottom:6px; color:#514840; font-size:.9rem; line-height:1.56; font-weight:400;list-style: decimal;}
.price-note{margin:14px 4px 0; text-align:left;}

/* =========================================================
   Tables / Schedule
========================================================= */
.table-wrap{
  width:100%;
  max-width:100%;
  margin:14px 0 18px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border-radius:18px;
  background:#fff;
  box-shadow:var(--shadow);
}
table{width:100%; margin:0; border-collapse:collapse; background:#fff;}
th,td{border:1px solid var(--line); padding:12px 10px; vertical-align:middle; overflow-wrap:anywhere;}
th{background:var(--sky); color:var(--ink); text-align:center; font-weight:700;}
td{font-weight:400;}
.schedule-table{min-width:900px;}
.schedule-table th,.schedule-table td{font-size:.92rem; line-height:1.65;}
.schedule-table .date-cell,.schedule-table .meal-cell{text-align:center; font-weight:700;}
.schedule-table .event-cell{background:var(--cream); color:#4c3d28; font-weight:500;}
.mobile-timeline{display:none;}
.timeline-date{
  margin-bottom:14px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}
.timeline-date h3{margin:0 0 10px; color:var(--ink); font-size:1.1rem; font-weight:700;}
.meals{display:flex; flex-wrap:wrap; gap:8px;}
.meals span{padding:3px 10px; border:1px solid var(--line); border-radius:999px; background:var(--sky-soft); color:var(--ink); font-size:.86rem; font-weight:700;}
.timeline{position:relative; margin-left:12px; padding-left:22px; border-left:4px solid var(--sky);}
.timeline-item{
  position:relative;
  margin:0 0 14px;
  padding:14px 14px 14px 18px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}
.timeline-item::before{
  content:"";
  position:absolute;
  left:-31px;
  top:20px;
  width:14px;
  height:14px;
  border:4px solid #fff;
  border-radius:50%;
  background:var(--orange);
  box-shadow:0 0 0 2px var(--orange);
}
.timeline-item.highlight{background:var(--cream); border-color:#ffd995;}
.timeline-time{margin-bottom:4px; color:var(--orange-dark); font-size:1.04rem; font-weight:700;}
.timeline-place{color:var(--ink); font-weight:700;}
.timeline-desc{color:var(--muted); font-weight:400;}
.timeline-transport{display:inline-block; margin-top:7px; padding:2px 9px; border-radius:999px; background:var(--sky-soft); color:#147b96; font-size:.82rem; font-weight:700;}
.schedule-notes{margin-top:14px; padding-left:1.25em;}
.schedule-notes li{margin-bottom:4px; color:#5e554c; font-size:.9rem; line-height:1.6;}

/* =========================================================
   Schedule fixed timeline
========================================================= */
.desktop-schedule{
  display:none !important;
}

.mobile-timeline,
.schedule-timeline{
  display:block !important;
}

.schedule-timeline{
  max-width:820px;
  margin:0 auto;
}

.timeline-date{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px 18px;
}

.timeline-date h3{
  margin:0;
}

.timeline-item small{
  display:block;
  margin-top:4px;
  color:#6d6258;
  font-size:.86em;
  line-height:1.5;
}

.timeline-item.highlight{
  border-color:#ffd08a;
  background:#fff9ed;
}

.timeline-item.main-event{
  border-color:var(--orange);
  background:linear-gradient(180deg,#fff 0%,#fff4dc 100%);
}

.timeline-item.main-event .timeline-desc{
  color:#2f2923;
  font-weight:600;
}

@media (max-width:760px){
  .schedule-timeline{
    max-width:none;
  }

  .timeline-date{
    display:block;
  }

  .meals{
    margin-top:10px;
  }
}

/* =========================================================
   Requirements / Notes
========================================================= */
.requirement-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:0;}
.req-card{
  min-width:0;
  padding:16px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}
.req-card dt{margin:0 0 5px; color:var(--orange-dark); font-size:.94rem; font-weight:700;}
.req-card dd{margin:0; color:var(--text); font-size:.94rem; line-height:1.58; font-weight:400;}
.notice-grid{display:grid; grid-template-columns:1.05fr .95fr .95fr; gap:14px; align-items:start;}
.notice-box{
  min-width:0;
  padding:19px 20px 18px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}
.notice-box.important{border-color:#ffd089; background:linear-gradient(180deg,#fff,#fffaf0);}
.notice-box h3{margin:0 0 11px; padding:0; border:0; color:var(--ink); font-size:1.08rem; line-height:1.45; font-weight:700;}
.notice-box ul{margin:0; padding-left:1.3em; list-style:disc;}
.notice-box li{
  display:list-item;
  margin:0 0 7px;
  padding-left:.08em;
  color:#534a42;
  font-size:.94rem;
  line-height:1.62;
  font-weight:400;
}
.notice-box li::marker{color:var(--orange); font-size:.95em;}
.notice-box.important li::marker{color:var(--danger);}

/* Cancellation */
#cancel .white-panel{max-width:900px; margin:0 auto;}
#cancel .cancel-wrap{overflow:visible; box-shadow:var(--shadow-soft);}
.cancel-table{width:100%; min-width:0; table-layout:fixed;}
.cancel-table td{text-align:center; vertical-align:middle; font-size:.9rem; line-height:1.54; font-weight:400; padding:12px 10px;}
.cancel-table td:first-child{width:70%;}
.cancel-table td:last-child{width:30%; color:var(--danger); font-weight:700; white-space:normal;}

/* =========================================================
   Application
========================================================= */
.application-readbox{
  max-width:980px;
  margin:0 auto 26px;
  padding:24px 28px;
  border:1px solid rgba(152,215,233,.72);
  border-radius:24px;
  background:linear-gradient(135deg,#fff 0%,var(--sky-pale) 100%);
  box-shadow:var(--shadow-soft);
}

.application-readbox h3{
  margin:0 0 14px;
  padding:0;
  border:0;
  color:var(--ink);
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:1.22rem;
  line-height:1.45;
  font-weight:700;
}

.application-readbox ul{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 24px;
  margin:0;
  padding:0;
  list-style:none;
}

.application-readbox li{
  position:relative;
  padding-left:26px;
  color:#50483f;
  font-size:.95rem;
  line-height:1.55;
  font-weight:400;
}

.application-readbox li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:.25em;
  display:grid;
  place-items:center;
  width:18px;
  height:18px;
  border-radius:50%;
  background:var(--orange);
  color:#fff;
  font-size:.72rem;
  font-weight:700;
  line-height:1;
}

.flow-note{
  margin:14px 0 0;
  color:#6d6258;
  font-size:.92rem;
  line-height:1.6;
  font-weight:400;
}

/* STEPカード */
.application-flow{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
  max-width:980px;
  margin:0 auto;
}

.step-card{
  position:relative;
  overflow:hidden;
  min-width:0;
  padding:22px 26px;
  border:1px solid rgba(152,215,233,.72);
  border-radius:22px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}

.step-card::after{
  content:"";
  position:absolute;
  right:-28px;
  bottom:-28px;
  width:96px;
  height:96px;
  border-radius:50%;
  background:rgba(152,215,233,.20);
  pointer-events:none;
}

.step-card h3{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  gap:14px;
  margin:0 0 14px;
  padding:0;
  border:0;
  color:var(--ink);
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:1.24rem;
  line-height:1.45;
  font-weight:700;
}

.step-card h3 span{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:76px;
  padding:6px 12px;
  border-radius:999px;
  background:var(--orange);
  color:#fff;
  font-size:.84rem;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.05em;
  box-shadow:0 4px 0 rgba(191,114,0,.20);
}

.step-card p,
.step-card li{
  position:relative;
  z-index:2;
  color:#50483f;
  font-size:1rem;
  line-height:1.68;
  font-weight:400;
}

.step-card p{
  margin:0 0 12px;
}

.step-card ul{
  position:relative;
  z-index:2;
  margin:0 0 0 1.45em;
  padding:0;
}

.step-card li{
  margin-bottom:5px;
list-style: disc;
}

.step-card strong{
  color:#2f2923;
  font-weight:700;
}

.bank{
  position:relative;
  z-index:2;
  margin:16px 0;
  padding:15px 18px;
  border:1px solid rgba(152,215,233,.75);
  border-radius:16px;
  background:var(--sky-pale);
  color:#302923;
  font-size:.95rem;
  line-height:1.65;
  font-weight:500;
}

/* 申込ボタン */
.step-card .cta-row{
  position:relative;
  z-index:2;
  margin:20px 0 0;
}

.flow-btn{
  display:flex;
  width:100%;
  max-width:none;
  min-width:0;
  min-height:64px;
  padding:16px 24px;
  border:0;
  border-radius:18px;
  background:linear-gradient(135deg,#d72828 0%,#e94838 55%,#ff725f 100%);
  color:#fff!important;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:1.18rem;
  line-height:1.35;
  font-weight:700;
  text-decoration:none!important;
  box-shadow:0 12px 24px rgba(216,40,40,.28);
}

.flow-btn::after{
  content:" →";
  margin-left:.4em;
}

.flow-btn:hover{
  transform:translateY(-2px);
  filter:brightness(1.04);
}

/* STEP1だけ少し強調 */
.step-card-entry{
  border-color:rgba(241,156,14,.55);
  background:linear-gradient(180deg,#fff 0%,#fff9ed 100%);
}

.step-card-entry::after{
  background:rgba(241,156,14,.18);
}

@media (max-width:760px){
  .application-readbox{
    max-width:none;
    padding:20px 18px;
    border-radius:22px;
  }

  .application-readbox h3{
    font-size:1.12rem;
  }

  .application-readbox ul{
    grid-template-columns:1fr;
    gap:7px;
  }

  .application-readbox li{
    font-size:.92rem;
  }

  .application-flow{
    max-width:none;
    gap:14px;
  }

  .step-card{
    padding:20px 18px;
    border-radius:20px;
  }

  .step-card h3{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
    font-size:1.12rem;
  }

  .step-card h3 span{
    min-width:72px;
    padding:5px 11px;
    font-size:.8rem;
  }

  .step-card p,
  .step-card li{
    font-size:.94rem;
    line-height:1.62;
  }

  .bank{
    font-size:.9rem;
  }

  .flow-btn{
    min-height:60px;
    font-size:1.08rem;
  }
}

/* =========================================================
   Inquiry / Footer / Pre page
========================================================= */
.inquiry-card{
  padding:24px;
  border:1px solid var(--line);
  border-radius:24px;
  background:#fff;
  box-shadow:var(--shadow);
}
.inquiry-card h3{margin:0 0 10px; color:var(--ink); font-size:1.1rem; line-height:1.45; font-weight:700;}
.info-columns{display:grid; grid-template-columns:1fr ; gap:18px; margin-top:18px;}
.management_number{max-width:1120px; margin:0 auto; padding:0 24px 40px; color:var(--muted); font-size:.9rem;}
.site-footer{background:radial-gradient(circle at 18% 10%,rgba(241,156,14,.28) 0 120px, transparent 122px),linear-gradient(135deg,#2e2a25,#171513); color:#fff;}
.site-footer .footer-inner{max-width:1120px; margin:0 auto; padding:32px 24px; display:grid; grid-template-columns:1fr 1.1fr; gap:24px; align-items:start;}
.footer-badge{display:inline-flex; margin-bottom:10px; padding:5px 11px; border-radius:999px; background:var(--orange); color:#fff; font-size:.72rem; font-weight:700; letter-spacing:.16em;}
.footer-tour strong{display:block; color:#fff; font-size:1.08rem; line-height:1.5;}
.footer-tour span:not(.footer-badge){display:block; color:#bfe8f3; font-size:.86rem; margin-top:3px;}
.footer-official p{margin:0 0 10px; color:#f7efe3; font-size:.88rem; text-align:right;}
.footer-links{display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 14px;}
.footer-links a{color:#fff7e8!important; font-size:.82rem; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.35);}
.footer-links a:hover{color:#fff!important; border-color:#fff;}
.pre-main{padding:112px 0 60px;}
.pre-main li{
	list-style: decimal;
}
.yes-no{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:16px;
  margin-top:24px;
margin-bottom: 24px;
}

.pre-choice{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  width:min(100%,280px);
  min-height:76px;
  padding:14px 22px;
  border-radius:20px;
  color:#fff!important;
  text-align:center;
  text-decoration:none!important;
  font-weight:700;
  line-height:1.35;
font-size: 120%;
  box-shadow:var(--shadow);
}

.pre-choice.yes{
  background:linear-gradient(135deg,#d72828 0%,#e94838 55%,#ff725f 100%);
  box-shadow:0 12px 24px rgba(216,40,40,.28);
}

.pre-choice.yes:hover,
.pre-choice.yes:focus{
  background:linear-gradient(135deg,#b91f1f 0%,#dc3328 55%,#f05c4d 100%);
  transform:translateY(-2px);
  box-shadow:0 16px 28px rgba(216,40,40,.34);
  filter:brightness(1.03);
  outline:none;
}

.pre-choice.no:hover,
.pre-choice.no:focus{
  background:#514b44;
  transform:translateY(-2px);
  box-shadow:0 14px 26px rgba(47,42,36,.22);
  outline:none;
}

.pre-choice{
  transition:
    transform .18s ease,
    box-shadow .18s ease,
    background .18s ease,
    filter .18s ease;
}

.pre-choice.no{
  background:#686158;
}

.pre-choice.is-disabled{
  opacity:.55;
  cursor:not-allowed;
  filter:grayscale(.45);
}

.pre-choice .fs-70{
  display:block;
  margin-top:4px;
  font-size:70%;
  font-weight:500;
}



/* =========================================================
   Responsive
========================================================= */
@media (max-width:1080px){
  .menu li a{font-size:.8rem; padding:8px 7px;}
  .point-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .notice-grid{grid-template-columns:1fr;}
}
@media (max-width:1024px){
  .hero-layout{grid-template-columns:1fr; max-width:860px;}
  .hero-visual{max-width:680px; margin:0 auto; transform:none;}
  .hero-copy{text-align:center;}
  .status-row,.cta-row{justify-content:center;}
  .hero-lead,.hero-summary,.hero-memo{margin-left:auto; margin-right:auto;}
  .entry-info-grid{grid-template-columns:1fr;}
  .requirement-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .info-columns{grid-template-columns:1fr;}
}
@media (max-width:900px){
  .hamburger{display:flex;}
  .menu{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    width:100%;
    max-height:0;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:#fff;
    border-top:1px solid var(--line);
    box-shadow:0 14px 28px rgba(47,42,36,.12);
    transition:max-height .3s ease;
  }
  .menu.active{max-height:80vh; overflow-y:auto;}
  .menu li{width:100%;}
  .menu li a{width:100%; padding:14px 22px; border-radius:0; font-size:1rem; text-align:left;}
  .desktop-schedule{display:none;}
  .mobile-timeline{display:block;}
}
@media (max-width:760px){
  body{font-size:14px; line-height:1.68;}
  .wrap{padding:0 16px;}
  .pc-only{display:none;}
  .sp-only{display:inline;}
  br.sp{display:block;}
  .nav-inner{min-height:62px; padding:0 14px;}
  .hero-reboot{padding:82px 0 44px;}
  .hero-layout{padding:0 16px; gap:22px;}
  .hero-visual{border-width:5px; border-radius:24px;}
  .hero-copy{text-align:left;}
  .status-row,.cta-row{justify-content:flex-start;}
  .hero-title{font-size:clamp(1.86rem,9vw,2.42rem);}
  .hero-lead{font-size:1rem;}
  .hero-summary{max-width:none;}
  .summary-card{grid-template-columns:1fr; grid-template-areas:"label" "value" "sub"; gap:4px; padding:15px 15px 13px 18px;}
  .summary-value{font-size:1.16rem;}
  .summary-card.price .summary-value{font-size:1.58rem;}
  .cta-btn{width:100%; min-width:0; padding-left:18px; padding-right:18px;}
  .hero-copy .cta-row{display:grid; grid-template-columns:1fr; width:100%;}
  .lp-section{padding:44px 0;}
  .section-heading{margin-bottom:24px; text-align:left;}
  .section-heading h2{font-size:1.4rem;}
  .section-heading h2::after{margin-left:0; margin-right:0;}
  .white-panel,.cast-panel,.inquiry-card,.application-readbox{padding:20px; border-radius:22px;}
  .point-grid,.price-inout,.application-readbox ul{grid-template-columns:1fr;}
  .point-card{min-height:0; padding:18px; border-radius:22px;}
  .point-icon{width:48px; height:48px; font-size:1.3rem; margin-bottom:13px;}
  .point-card h3{font-size:1.3rem;}
.point-card.point-main h3{font-size:1.6rem;}
  .cast-grid.guest,.cast-grid.reboot{grid-template-columns:repeat(2,minmax(132px,166px)); gap:14px;}
  .cast-card{width:100%; padding:12px;}
  .cast-photo{width:112px; height:112px;}
  .price-panel{padding:18px; border-radius:24px;}
  .price-main{margin-bottom:16px; padding:24px 18px;}
  .price-subcard{padding:17px; border-radius:18px;}
  .requirement-grid{grid-template-columns:1fr;}
  .notice-box li{font-size:.92rem; line-height:1.62;}
  .cancel-table td{font-size:.78rem; line-height:1.48; padding:9px 6px;}
  .cancel-table td:first-child{width:68%;}
  .cancel-table td:last-child{width:32%;}
  .application-readbox,.application-flow{max-width:none;}
  .application-readbox li,.step-card p,.step-card li{font-size:.94rem;}
  .step-card{padding:18px 19px;}
  .step-card h3{align-items:flex-start; font-size:1.08rem;}
  .flow-btn{width:100%;}
  .site-footer .footer-inner{grid-template-columns:1fr; gap:18px; padding:26px 18px;}
  .footer-official p{text-align:left;}
  .footer-links{justify-content:flex-start;}
  .pre-main{padding-top:86px;}
  .pre-choice{width:100%; min-width:0;}
}
@media (max-width:430px){
  .logo::after{content:"REBOOT"; font-size:.86rem;}
  .cast-grid.guest,.cast-grid.reboot{grid-template-columns:repeat(2,minmax(0,1fr));}
  .cast-photo{width:104px; height:104px;}
  .cast-name{font-size:.94rem;}
  .cast-label{font-size:.68rem;}
  .price-main strong{font-size:2.35rem;}
  .summary-card.price .summary-value{font-size:1.46rem;}
  th,td{padding:10px 8px;}
  .cancel-table td{font-size:.72rem; line-height:1.42;}
}
@media (max-width:360px){
  .cast-grid.guest,.cast-grid.reboot{grid-template-columns:1fr;}
  .cast-card{max-width:166px; margin:0 auto;}
}

/* =========================================================
   Important notes
========================================================= */
.notice-stack{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
  max-width:920px;
  margin:0 auto;
}

.notice-box{
  min-width:0;
  padding:22px 24px;
  border:1px solid rgba(152,215,233,.72);
  border-radius:22px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}

.notice-box h3{
  margin:0 0 14px;
  padding:0 0 10px;
  border:0;
  border-bottom:3px solid var(--sky);
  color:var(--ink);
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:1.22rem;
  line-height:1.45;
  font-weight:700;
}

.notice-subblock{
  margin-top:18px;
  padding-top:16px;
  border-top:1px dashed rgba(152,215,233,.9);
}

.notice-subblock:first-of-type{
  margin-top:0;
  padding-top:0;
  border-top:0;
}

.notice-subblock h4{
  margin:0 0 8px;
  color:#087e9f;
  font-size:1.02rem;
  line-height:1.45;
  font-weight:700;
}

.notice-box ul{
  margin:0;
  padding-left:1.35em;
  list-style:disc;
}

.notice-box li{
  display:list-item;
  margin:0 0 7px;
  padding-left:.1em;
  color:#50483f;
  font-size:.94rem;
  line-height:1.68;
  font-weight:400;
}

.notice-box li::marker{
  color:var(--orange);
  font-size:.9em;
}

@media (max-width:760px){
  .notice-stack{
    gap:14px;
  }

  .notice-box{
    padding:18px 17px;
    border-radius:20px;
  }

  .notice-box h3{
    font-size:1.08rem;
  }

  .notice-subblock h4{
    font-size:.98rem;
  }

  .notice-box li{
    font-size:.9rem;
    line-height:1.62;
  }
}