:root{
  --ink:#1a2530;
  --ink-soft:#42505d;
  --navy:#152b3d;
  --navy-2:#243f55;
  --wine:#7b3d50;
  --wine-dark:#592d3b;
  --gold:#c6a35f;
  --gold-light:#ead9ad;
  --paper:#fbf8f1;
  --paper-deep:#f1eadf;
  --white:#fff;
  --line:#cfc5b6;
  --line-dark:#8e8376;
  --danger:#a52727;
  --shadow:0 14px 36px rgba(18,35,49,.12);
  --header-height:72px;
  --container:1120px;
  --container-wide:1280px;
  --radius:14px;
}

body{
  color:var(--ink);
  background:var(--paper);
  font-family:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
  font-size:16px;
  line-height:1.85;
  letter-spacing:.02em;
}

body.menu-open{overflow:hidden}

a{text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{text-decoration:none}

.container{
  width:min(calc(100% - 40px),var(--container));
  margin-inline:auto;
}
.container--wide{width:min(calc(100% - 40px),var(--container-wide))}

.section{
  position:relative;
  padding:96px 0;
}
.section--tint{background:var(--paper-deep)}
.section--dark{background:var(--navy);color:var(--white)}

.section-heading{
  margin-bottom:42px;
  text-align:center;
}
.section-heading h2{
  margin-top:6px;
  font-family:"Yu Mincho","Hiragino Mincho ProN","HGS明朝E",serif;
  font-size:clamp(2rem,4vw,2.5rem);
  line-height:1.35;
  letter-spacing:.08em;
}
.section-heading>p:not(.section-kicker){margin-top:12px;color:var(--ink-soft)}
.section-heading--light>p:not(.section-kicker){color:rgba(255,255,255,.76)}
.section-kicker{
  color:var(--wine);
  font-family:Georgia,"Times New Roman",serif;
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.26em;
}
.section-heading--light .section-kicker{color:var(--gold-light)}

.subsection{margin-top:64px}
.subsection-title{
  position:relative;
  margin-bottom:24px;
  padding:0 0 14px 18px;
  border-bottom:1px solid var(--line);
  font-size:1.45rem;
  line-height:1.5;
}
.subsection-title::before{
  position:absolute;
  top:.12em;
  bottom:14px;
  left:0;
  width:4px;
  background:var(--wine);
  content:"";
}

.note,.note-inline{color:#5b6570;font-size:.9rem}
.note-inline{display:inline-block;margin-top:4px}
.center{text-align:center}
.sp-only{display:none}

.button{
  display:inline-flex;
  min-height:54px;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 30px;
  border:1px solid transparent;
  font-weight:700;
  line-height:1.4;
  text-decoration:none;
  transition:background-color .2s,color .2s,border-color .2s,transform .2s;
}
.button:hover{transform:translateY(-2px)}
.button--primary{background:var(--wine);color:var(--white);box-shadow:0 10px 24px rgba(89,45,59,.22)}
.button--primary:hover{background:var(--wine-dark)}
.button--outline{border-color:var(--navy);color:var(--navy)}
.button--outline:hover{background:var(--navy);color:var(--white)}
.application-placeholder{opacity:.68;cursor:not-allowed}
.pending-note{margin-top:8px;color:var(--danger);font-size:.8rem;text-align:center}
.pending-value{color:var(--danger);font-weight:800}

/* hero */
.hero{
  display:grid;
  height:calc(100vh - var(--header-height));
  height:calc(100svh - var(--header-height));
  min-height:580px;
  max-height:720px;
  grid-template-columns:minmax(0,56%) minmax(460px,44%);
  background:var(--navy);
  color:var(--white);
}
.hero__visual{
  position:relative;
  height:100%;
  min-height:0;
  overflow:hidden;
  background:#20364a;
}
.hero__picture{display:block;width:100%;height:100%}
.hero__visual img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
}
.hero__copyright{
  position:absolute;
  right:14px;
  bottom:10px;
  padding:2px 7px;
  background:rgba(0,0,0,.45);
  font-size:.7rem;
}
.hero__content{
  display:flex;
  min-width:0;
  min-height:0;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  overflow-y:auto;
  padding:28px clamp(32px,4vw,64px) 26px;
  background:
    radial-gradient(circle at 85% 15%,rgba(198,163,95,.18),transparent 30%),
    linear-gradient(150deg,var(--navy-2),var(--navy) 65%);
}
.hero__eyebrow{
  margin-bottom:10px;
  color:var(--gold-light);
  font-size:110%;
  font-weight:700;
  letter-spacing:.18em;
}
.hero__title{
  font-family:"Yu Mincho","Hiragino Mincho ProN","HGS明朝E",serif;
  font-size:clamp(1.8rem,2.8vw,3rem);
  font-weight:600;
  line-height:1.24;
  letter-spacing:.06em;
}
.hero__title span{display:block;margin-bottom:4px;font-size:.48em;color:var(--gold-light);letter-spacing:.2em}
.hero__title em{color:#f4dfe6;font-style:normal}
.hero__lead{max-width:620px;margin-top:10px;color:rgba(255,255,255,.78)}
.hero-summary{
  display:grid;
  width:100%;
  margin:16px 0;
  border-top:1px solid rgba(255,255,255,.22);
}
.hero-summary div{
  display:grid;
  grid-template-columns:100px 1fr;
  gap:14px;
  padding:7px 0;
  border-bottom:1px solid rgba(255,255,255,.22);
}
.hero-summary dt{color:var(--gold-light);font-size:.86rem;font-weight:700}
.hero-summary dd{font-weight:700;line-height:1.5}
.hero .button{min-height:48px;padding:11px 26px}

/* event */
.section--event{
  background:#fff;
}

.event-card{
  display:grid;
  align-items:center;
  overflow:hidden;
  border:1px solid var(--line);
  background:#fff;
  grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);
  box-shadow:var(--shadow);
}

.event-card__visual{
  width:100%;
  aspect-ratio:16 / 9;
  overflow:hidden;
  background:var(--paper-deep);
}

.event-card__visual img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

.event-card__body{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  padding:46px;
}

.event-card__eyebrow{
  color:var(--wine);
  font-size:.84rem;
  font-weight:700;
  letter-spacing:.1em;
}

.event-card__body h3{
  margin:8px 0 20px;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:2.1rem;
  line-height:1.4;
  letter-spacing:.12em;
}

.event-card__body h3 small{
  display:inline-block;
  margin-bottom:4px;
  font-size:.58em;
  font-weight:600;
  letter-spacing:.16em;
}

.event-card__body .button{
  margin-top:26px;
}

@media (max-width:980px){
  .event-card{
    grid-template-columns:1fr;
  }

  .event-card__visual{
    aspect-ratio:16 / 9;
  }

  .event-card__body{
    align-items:center;
    padding:34px 28px 38px;
    text-align:center;
  }
}

@media (max-width:767px){
  .table-scroll-note{
    display:block;
  }

  .event-card__body{
    padding:28px 22px 32px;
  }

  .event-card__body h3{
    font-size:1.7rem;
  }
}
/* point */
.point-list{display:grid;gap:18px;list-style:none}
.point-list li{
  display:grid;
  min-height:116px;
  align-items:center;
  gap:24px;
  padding:26px 32px;
  border:1px solid var(--line);
  background:#fff;
  grid-template-columns:72px 1fr;
  box-shadow:0 8px 20px rgba(18,35,49,.06);
}
.point-list__number{
  color:var(--wine);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.9rem;
  font-weight:700;
  line-height:1;
  text-align:center;
}
.point-list h3{font-size:1.2rem;line-height:1.6}
.point-list p{margin-top:6px;color:var(--ink-soft)}

/* outline */
.notice{padding:34px;border:1px solid var(--line);background:#fff}
.notice--important{border-top:5px solid var(--wine)}

.notice__date{margin:12px 0 20px;color:var(--wine);font-size:clamp(1.35rem,3vw,2rem);font-weight:800;line-height:1.5;text-align:center}
.notice ul,.text-list{padding-left:1.4em}
.notice li+li,.text-list li+li{margin-top:8px}

.outline-grid{display:grid;gap:20px;margin-top:28px;grid-template-columns:repeat(2,minmax(0,1fr))}
.outline-card{padding:30px;border:1px solid var(--line);background:#fff}

.outline-card dl{display:grid;gap:10px}
.outline-card dl div{display:grid;gap:10px;grid-template-columns:100px 1fr}
.outline-card dt{color:var(--wine);font-weight:700}
.outline-card dd{color:var(--navy);font-weight:700}
.outline-card strong{color:var(--wine);font-size:1.35rem}

.details-box,.accordion-list details{border:1px solid var(--line);background:#fff;margin-top: 12px;}
.details-box summary,.accordion-list summary{padding:17px 20px;font-weight:700;list-style:none}
.details-box summary::-webkit-details-marker,.accordion-list summary::-webkit-details-marker{display:none}
.details-box summary::after,.accordion-list summary::after{float:right;color:var(--wine);content:"＋"}
.details-box[open] summary::after,.accordion-list details[open] summary::after{content:"－"}
.details-box p,.accordion-list details>p,.accordion-list details>ul{padding:0 20px 20px}
.accordion-list{display:grid;gap:10px}
.accordion-list ul{padding-left:2.4em!important}
.accordion-list li+li{margin-top:7px}

/* price / tables */
.price-block+ .price-block{margin-top:44px}
.price-block h3{margin-bottom:15px;font-size:1.25rem}
.price-block>.note{margin-top:10px}
.table-scroll{width:100%;overflow-x:auto;border:1px solid var(--line-dark);background:#fff;-webkit-overflow-scrolling:touch}
.table-scroll--fit{overflow:visible}
.table-scroll:focus-visible{outline:3px solid rgba(123,61,80,.35);outline-offset:3px}
.table-scroll-note{
  display:none;
  margin:0 0 6px;
  color:#6b6258;
  font-size:.72rem;
  line-height:1.5;
  text-align:right;
}
.table-scroll-note span{
  display:inline-block;
  margin-left:3px;
}

.data-table{width:100%;border-collapse:collapse;background:#fff;color:var(--ink)}
.data-table th,.data-table td{padding:16px;border:1px solid var(--line-dark);vertical-align:middle}
.data-table thead th{background:var(--navy);color:#fff;text-align:center}
.data-table tr:first-child>*{border-top:0}
.data-table tr:last-child>*{border-bottom:0}
.data-table tr>*:first-child{border-left:0}
.data-table tr>*:last-child{border-right:0}

/* ==================================================
   旅行代金テーブル
================================================== */

.price-block + .price-block{
  margin-top:44px;
}

.price-block h3{
  margin-bottom:15px;
  font-size:1.25rem;
}

.price-block > .note{
  margin-top:10px;
}

/* 旅行代金表は横スクロールさせない */
.table-scroll--fit{
  width:100%;
  overflow:visible;
}

.price-table{
  width:100%;
  min-width:0;
  table-layout:fixed;
  border-collapse:collapse;
  font-size:1rem;
}

.price-table th,
.price-table td{
  padding:16px 12px;
  vertical-align:middle;
  text-align:center;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}

.price-table tbody th{
  background:var(--paper-deep);
  font-weight:700;
  text-align:center;
}

.price-table .day{
  white-space:normal;
  line-height:1.7;
  text-align:center;
}

.price-table .price{
  font-size:1.28rem;
  font-weight:800;
  line-height:1.5;
  white-space:normal;
}

/* 金額文字列だけは改行しない */
.price-table .pending-value{
  display:inline-block;
  white-space:nowrap;
}

.price-table .price small{
  font-size:.72em;
  font-weight:500;
  white-space:normal;
}

/* -----------------------------------
   PC時の列幅
   上下の表でコース・日程列を統一
----------------------------------- */

/* 共通 */
.price-table col.price-col-course{
  width:18%;
}

.price-table col.price-col-date{
  width:28%;
}

/* A・Bコース：旅行代金 */
.price-table col.price-col-wide{
  width:54%;
}

/* C・Dコース：2名1室／1名1室 */
.price-table col.price-col-standard{
  width:27%;
}

/* ==================================================
   レスポンシブ
================================================== */

@media (max-width:767px){

  /* A・Bコース */
  .price-table:not(.price-table--stay) col.price-col-course{
    width:18%;
  }

  .price-table:not(.price-table--stay) col.price-col-date{
    width:28%;
  }

  .price-table:not(.price-table--stay) col.price-col-wide{
    width:54%;
  }

  /* C・Dコース */
  .price-table--stay col.price-col-course{
    width:12%;
  }

  .price-table--stay col.price-col-date{
    width:18%;
  }

  .price-table--stay col.price-col-standard{
    width:40%;
  }

  .price-table--stay th,
  .price-table--stay td{
    padding:10px 4px;
  }

  .price-table--stay .price{
    font-size:.88rem;
  }

  /* 金額文字列のみ改行禁止 */
  .price-table--stay .pending-value{
    display:inline-block;
    max-width:100%;
    white-space:nowrap;
  }
}


/* schedule */
.schedule-block{padding:34px;background:var(--paper);color:var(--ink)}
.schedule-block+ .schedule-block{margin-top:34px}
.schedule-block__heading{margin-bottom:18px;text-align:center}
.schedule-block__label{color:var(--wine);font-family:Georgia,"Times New Roman",serif;font-size:.78rem;font-weight:700;letter-spacing:.18em}
.schedule-block__heading h3{margin:4px 0 6px;font-size:1.35rem}
.schedule-block__heading p:last-child{color:var(--ink-soft)}
.table-scroll--schedule{border-color:#756b60}
.schedule-table{min-width:980px;table-layout:fixed;font-size:.94rem;line-height:1.65}
.schedule-table th:nth-child(1){width:8%}
.schedule-table th:nth-child(2){width:17%}
.schedule-table th:nth-child(3){width:10%}
.schedule-table th:nth-child(4){width:10%}
.schedule-table th:nth-child(5){width:47%}
.schedule-table th:nth-child(6){width:8%}
.schedule-table tbody tr:nth-child(even){background:#faf7f1}
.schedule-table tbody td{border-top:0;border-bottom:0}

/* 日付の切り替わり行 */
.schedule-table tbody tr.schedule-day-start{
  background:#fff;
}
.schedule-table tbody tr.schedule-day-start td{
  border-top:2px solid var(--line-dark);
}

.schedule-table .meal{white-space:nowrap}
.schedule-highlight{color:var(--wine);font-weight:800}
.schedule-dinner{color:#3E31AF;font-weight:800}
.schedule-notes{margin-top:24px;padding-left:1.4em;color:rgba(255,255,255,.82);font-size:.9rem}
.schedule-notes li+li{margin-top:5px}

.schedule-notes-2{margin-top:12px;padding: 14px;color:darkred;background:var(--paper);}
.schedule-notes-2 li{
	list-style: none;
}
.schedule-notes-2 a{
	color: darkblue;
}


/* conditions */
.conditions-list{border-top:1px solid var(--line)}
.conditions-list>div{display:grid;border-bottom:1px solid var(--line);grid-template-columns:280px 1fr}
.conditions-list dt{padding:22px;background:var(--paper-deep);font-weight:800}
.conditions-list dd{padding:22px;background:#fff}
.conditions-list ol{padding-left:1.5em}
.conditions-list li+li{margin-top:4px}

.cancel-grid{display:grid;gap:28px;grid-template-columns:repeat(2,minmax(0,1fr))}
.cancel-grid h4{margin-bottom:10px;color:var(--wine);font-size:1.08rem}
.cancel-table{min-width:0;table-layout:fixed;font-size:.9rem}
.cancel-table th{width:68%;background:#f6f1e8;text-align:left}
.cancel-table td{text-align:center;font-weight:700}

/* application */
.steps{display:grid;justify-items:center}
.step-card{width:min(100%,880px);padding:36px;border:1px solid var(--line);background:#fff;box-shadow:0 8px 24px rgba(18,35,49,.07)}
.step-card__number{display:inline-block;margin-bottom:10px;color:var(--wine);font-family:Georgia,"Times New Roman",serif;font-size:.86rem;font-weight:700;letter-spacing:.14em}
.step-card h3{margin-bottom:12px;font-size:1.4rem}
.step-card__date{margin-bottom:18px;color:var(--wine);font-size:1.25rem;font-weight:800}
.step-card ul{padding-left:1.4em}
.step-card li+li{margin-top:7px}
.step-card .button{display:flex;width:min(100%,420px);margin:30px auto 0}
.step-arrow{padding:12px;color:var(--wine);font-size:1.8rem;font-weight:700}
.bank-box{margin-top:22px;padding:20px;border-left:5px solid var(--gold);background:var(--paper-deep)}
.bank-box p+ p{margin-top:2px}

/* contact */
.contact-box{padding:40px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}
.contact-box h3{text-align:center;font-size:1.35rem}
.contact-box__tour{margin:12px 0 22px;color:var(--wine);font-weight:700;text-align:center}
.contact-box address{text-align:center}
.contact-list{max-width:760px;margin:28px auto;border-top:1px solid var(--line)}
.contact-list>div{display:grid;border-bottom:1px solid var(--line);grid-template-columns:150px 1fr}
.contact-list dt{padding:14px 18px;background:var(--paper-deep);font-weight:700}
.contact-list dd{padding:14px 18px}
.contact-list small{display:block;color:var(--ink-soft)}
.manager-box{margin-top:24px;padding:18px;background:var(--paper-deep);font-size:.9rem}
.manager-box p+ p{margin-top:6px}

.organizer-box{display:grid;gap:20px;margin-top:28px;grid-template-columns:2fr 1fr}
.organizer-box>div{padding:30px;border:1px solid var(--line);background:#fff}
.organizer-box h3{margin-bottom:12px;color:var(--wine);font-size:1.1rem}
.organizer-box h4{margin-bottom:10px;font-size:1rem}
.knt-logo{width:250px;margin-top:18px}
.pmark-logo{width:70px;margin-top:18px}
.management-data{display:flex;justify-content:flex-end;gap:28px;margin-top:24px;font-size:.9rem}

/* footer */
.site-footer{padding:34px 0;background:#101f2d;color:rgba(255,255,255,.76)}
.site-footer__inner{text-align:center}
.site-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px;margin-bottom:16px;font-size:.86rem}
.site-footer a:hover{color:#fff}
.page-top{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:20;
  display:flex;
  width:48px;
  height:48px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.5);
  background:rgba(21,43,61,.92);
  color:#fff;
  font-size:1.2rem;
  text-decoration:none;
  opacity:0;
  pointer-events:none;
  transform:translateY(10px);
  transition:.2s;
}
.page-top.is-visible{opacity:1;pointer-events:auto;transform:none}

@media (max-width:980px){
  .hero{
    height:calc(100vh - var(--header-height));
    height:calc(100svh - var(--header-height));
    min-height:560px;
    max-height:700px;
    grid-template-columns:minmax(0,52%) minmax(440px,48%);
  }
  .hero__visual{height:100%;min-height:0}
  .hero__content{padding:24px 28px 22px}
  .hero__title{font-size:clamp(1.7rem,3.2vw,2.55rem)}
  .event-card{grid-template-columns:1fr}
  .event-card__visual{aspect-ratio:16/9}
  .cancel-grid{grid-template-columns:1fr}
}

@media (max-width:767px){
  :root{--header-height:64px}
  body{font-size:14px;line-height:1.8}
  .container,.container--wide{width:min(calc(100% - 28px),var(--container))}
  .section{padding:68px 0}
  .section-heading{margin-bottom:30px}
  .section-heading h2{font-size:2rem}
  .sp-only{display:block}
  .hero{
    display:flex;
    height:auto;
    min-height:0;
    max-height:none;
    flex-direction:column;
    padding-top:0;
  }
  .hero__visual{height:auto;min-height:0;aspect-ratio:1/1}
  .hero__content{overflow:visible;padding:30px 24px 36px}
  .hero__title{font-size:2.15rem}
  .hero-summary div{grid-template-columns:82px 1fr}
  .event-card__body{padding:28px 22px 32px}
  .event-card__body h3{font-size:1.7rem}
  .point-list li{min-height:0;gap:14px;padding:22px 18px;grid-template-columns:48px 1fr}
  .point-list__number{font-size:1.35rem}
  .point-list h3{font-size:1.05rem}
  .notice{padding:24px 18px}
  .outline-grid{grid-template-columns:1fr}
  .outline-card{padding:24px 20px}
  .outline-card dl div{grid-template-columns:88px 1fr}
  .subsection{margin-top:48px}
  .price-block+ .price-block{margin-top:34px}
.table-scroll--fit .data-table th,.table-scroll--fit .data-table td{padding:10px 4px}
  .price-table{font-size:.86rem}
  .price-table .price{font-size:1rem}
  .price-table .price small{display:block;margin-top:2px}
  .price-table--stay th:nth-child(1){width:15%}
  .price-table--stay th:nth-child(2){width:31%}
  .price-table--stay th:nth-child(3),.price-table--stay th:nth-child(4){width:27%}
  .cancel-table{font-size:.82rem;line-height:1.55}
  .cancel-table th{width:66%}
  /* スケジュール表：横スクロール幅を抑えつつ、無理のない列幅に調整 */
  .schedule-table{
    min-width:680px;
    font-size:.86rem;
    line-height:1.55;
  }

  .schedule-table th,
  .schedule-table td{
    padding:10px 8px;
  }

  /* 日次列を広げ、摘要列を少し狭める */
  .schedule-table th:nth-child(1){width:12%}
  .schedule-table th:nth-child(2){width:16%}
  .schedule-table th:nth-child(3){width:10%}
  .schedule-table th:nth-child(4){width:10%}
  .schedule-table th:nth-child(5){width:44%}
  .schedule-table th:nth-child(6){width:8%}

  /* 「9/25（金）」などをセル途中で不自然に分割しない */
  .schedule-table tbody tr > td:first-child.center{
    white-space:nowrap;
  }

  /* Dコース2日目など、日付切り替え行に縞背景を付けない */
  .schedule-table tbody tr.schedule-day-start{
    background:#fff;
  }

  .schedule-block{padding:22px 14px}
  .schedule-block+ .schedule-block{margin-top:22px}
  .schedule-block__heading h3{font-size:1.14rem}
  .conditions-list>div{grid-template-columns:1fr}
  .conditions-list dt{padding:15px 18px}
  .conditions-list dd{padding:18px}
  .step-card{padding:28px 20px}
  .contact-box{padding:28px 18px}
  .contact-list>div{grid-template-columns:100px 1fr}
  .contact-list dt,.contact-list dd{padding:12px}
  .organizer-box{grid-template-columns:1fr}
  .management-data{display:block;text-align:right}
  .management-data p+ p{margin-top:4px}
  .site-footer nav{display:grid;gap:8px}

}

@media (max-width:420px){
  .hero__title{font-size:1.85rem}
  .hero__content{padding-inline:18px}
  .button{width:100%;padding-inline:18px}
  .outline-card dl div{display:block}
  .outline-card dd{margin-top:2px}
  .contact-list>div{display:block}
  .contact-list dt{border-bottom:1px solid var(--line)}
  .page-top{right:14px;bottom:14px}
}

@media print{
  .site-header,.page-top,.button{display:none!important}
  body{background:#fff;font-size:11pt}
  .hero{display:block;min-height:0;background:#fff;color:#000}
  .hero__visual{display:none}
  .hero__content{padding:20px;background:none}
  .section{padding:28px 0;break-inside:avoid}
  .table-scroll{overflow:visible}
  .data-table{min-width:0!important}
}

/* 横スクロール表を含むGrid子要素の最小幅を解除 */
.cancel-grid > div,
.outline-grid > *,
.organizer-box > *,
.event-card > *{
  min-width:0;
}

/* pre.html */
.container--narrow{width:min(calc(100% - 40px),900px)}
.hero--subpage{
  height:auto;
  min-height:560px;
  max-height:680px;
}
.hero--subpage .hero__visual{height:100%;min-height:0}
.confirmation-card{padding:44px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}
.confirmation-list{padding-left:1.5em}
.confirmation-list li+li{margin-top:16px}
.confirmation-list a{color:var(--wine);font-weight:700}
.confirmation-check{margin-top:34px;padding:22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-weight:800;text-align:center}
.confirmation-actions{display:grid;max-width:720px;gap:18px;margin:32px auto 0;grid-template-columns:repeat(2,minmax(0,1fr))}
.confirmation-actions .button{min-height:86px;text-align:center}
.confirmation-actions .button span{display:block;font-size:1.35rem;line-height:1.3}
.confirmation-actions .button small{display:block;margin-top:5px;font-size:.72rem;font-weight:500}
.confirmation-card>.pending-note{text-align:center}

@media (max-width:767px){
  .container--narrow{width:min(calc(100% - 28px),900px)}
  .hero--subpage,.hero--subpage .hero__visual{min-height:0}
  .confirmation-card{padding:28px 20px}
  .confirmation-actions{grid-template-columns:1fr}
}

/* ==================================================
   Main hero: full-width visual + centered information area
   PC artwork assumes a wide 12:5 canvas so it can remain full-height
   with a small amount of space on both sides.
================================================== */
.hero--main{
  display:grid;
  width:100%;
  height:auto;
  min-height:0;
  max-height:none;
  grid-template-columns:1fr;
  grid-template-rows:auto auto;
  overflow:hidden;
  background:#101f2d;
}

.hero--main .hero__visual{
  position:relative;
  width:100%;
  height:clamp(430px,calc((100vw - 96px) / 2.65),580px);
  min-height:0;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 32%,rgba(123,61,80,.42),transparent 42%),
    linear-gradient(135deg,#172d40 0%,#0f1e2c 58%,#251a27 100%);
  isolation:isolate;
}

/* Main artwork remains fully visible. A softened copy fills any remaining space. */
.hero--main .hero__visual::before{
  position:absolute;
  inset:-9%;
  z-index:-2;
  background:
    linear-gradient(rgba(14,28,41,.54),rgba(14,28,41,.72)),
    url("../img/top-pc.webp") center 42% / cover no-repeat;
  content:"";
  filter:blur(30px) saturate(.72);
  opacity:.46;
  transform:scale(1.08);
}

.hero--main .hero__visual::after{
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(90deg,rgba(9,20,30,.30),transparent 18%,transparent 82%,rgba(9,20,30,.30)),
    linear-gradient(0deg,rgba(9,20,30,.42),transparent 22%);
  content:"";
  pointer-events:none;
}

.hero--main .hero__picture{
  position:relative;
  z-index:1;
  display:flex;
  width:100%;
  height:100%;
  align-items:flex-end;
  justify-content:center;
}

.hero--main .hero__visual img{
  display:block;
  width:calc(100% - clamp(40px,5vw,96px));
  max-width:none;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
}

.hero--main .hero__copyright{
  z-index:2;
}

.hero--main .hero__content{
  display:flex;
  min-width:0;
  min-height:300px;
  box-sizing:border-box;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:20px;
  overflow:visible;
  padding:38px clamp(28px,5vw,80px) 42px;
  border-top:1px solid rgba(255,255,255,.18);
  background:
    radial-gradient(circle at 50% 0%,rgba(198,163,95,.14),transparent 34%),
    linear-gradient(110deg,#243f55 0%,#152b3d 62%,#101f2d 100%);
  box-shadow:0 -12px 30px rgba(5,14,22,.24);
  text-align:center;
}

.hero--main .hero__heading{
  width:min(100%,1180px);
  min-width:0;
  margin-inline:auto;
}

.hero--main .hero__eyebrow{
  margin-bottom:9px;
  font-size:1.1rem;
  letter-spacing:.15em;
}

.hero--main .hero__title{
  font-size:clamp(1.9rem,2.7vw,3rem);
  line-height:1.28;
  letter-spacing:.05em;
}

.hero--main .hero__title span{
  margin-bottom:4px;
  font-size:.46em;
}

.hero--main .hero__lead{
  max-width:920px;
  margin:12px auto 0;
  font-size:.94rem;
  line-height:1.7;
}

.hero--main .hero-summary{
  width:min(100%,760px);
  margin:0 auto;
  text-align:left;
}

.hero--main .hero-summary div{
  grid-template-columns:110px minmax(0,1fr);
  gap:18px;
  padding:8px 0;
}

.hero--main .hero-summary dt{
  font-size:.82rem;
  text-align:right;
}

.hero--main .hero-summary dd{
  font-size:.94rem;
  line-height:1.55;
}

.hero--main .button{
  width:auto;
  min-width:230px;
  min-height:54px;
  padding:13px 28px;
  justify-content:center;
  text-align:center;
}

@media (max-width:1180px){
  .hero--main .hero__visual{
    height:clamp(380px,calc((100vw - 48px) / 2.65),460px);
  }

  .hero--main .hero__content{
    min-height:290px;
    padding:34px 30px 38px;
  }
}

@media (max-width:980px){
  .hero--main{
    display:grid;
    height:auto;
    padding-top:0;
    grid-template-rows:auto auto;
  }

  .hero--main .hero__visual{
    height:clamp(400px,52vw,520px);
  }

  .hero--main .hero__visual img{
    max-width:calc(100% - 32px);
  }

  .hero--main .hero__content{
    min-height:300px;
    padding:34px 26px 38px;
  }

  .hero--main .hero__title{
    font-size:clamp(1.8rem,4vw,2.5rem);
  }
}

@media (max-width:767px){
  .hero--main .hero__visual{
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:16/10;
  }

  .hero--main .hero__visual::before{
    display:none;
  }

  .hero--main .hero__picture{
    display:flex;
    width:100%;
    height:100%;
    align-items:flex-end;
    justify-content:center;
    overflow:hidden;
  }

  .hero--main .hero__visual img{
    width:calc(100% - 24px);
    max-width:none;
    height:100%;
    max-height:100%;
    object-fit:contain;
    object-position:center bottom;
    transform:none;
  }

  .hero--main .hero__content{
    min-height:0;
    gap:18px;
    padding:32px 20px 38px;
  }

  .hero--main .hero__eyebrow{
    font-size:1.2rem;
    line-height:1.7;
  }

  .hero--main .hero__title{
    font-size:1.8rem;
	line-height: 1.6;
  }

  .hero--main .hero__lead{
    font-size:.9rem;
  }

  .hero--main .hero-summary{
    width:100%;
  }

  .hero--main .hero-summary div{
    grid-template-columns:82px minmax(0,1fr);
    gap:12px;
  }

  .hero--main .hero-summary dt{
    text-align:left;
  }

  .hero--main .button{
    width:min(100%,360px);
  }
}

.hero--main.hero--subpage,
.hero--main.hero--subpage .hero__visual{
  min-height:0;
}

.hero--main.hero--subpage .hero__content{
  min-height:260px;
}

/* iPad / iPad mini：画像全体を収めつつ、上部の空きを抑える */
@media (min-width:768px) and (max-width:1180px){
  .hero--main .hero__visual{
    height:clamp(330px,calc((100vw - 32px) / 2.65),430px);
  }

  .hero--main .hero__picture{
    display:flex;
    align-items:flex-end;
    justify-content:center;
    overflow:hidden;
  }

  .hero--main .hero__visual img{
    width:auto;
    max-width:calc(100% - 32px);
    height:auto;
    max-height:100%;
    object-fit:contain;
    object-position:center bottom;
    transform:none;
  }
}


/* ==================================================
   コース比較表
================================================== */
.course-comparison{
  margin-bottom:54px;
margin-top: 60px;
}

.course-comparison__lead{
  margin:-8px 0 18px;
  color:var(--ink-soft);
  font-size:.94rem;
  text-align:center;
}

.table-scroll--comparison{
  border-color:var(--line-dark);
}

.course-comparison-table{
  width:100%;
  min-width:1110px;
  table-layout:fixed;
  font-size:.88rem;
  line-height:1.55;
}

.course-comparison-table col.course-comparison-col-label{
  width:134px;
}

.course-comparison-table col.course-comparison-col-course{
  width:122px;
}

.course-comparison-table th,
.course-comparison-table td{
  padding:13px 9px;
  text-align:center;
}

.course-comparison-table thead th{
  font-size:1rem;
}

.course-comparison-table thead th:first-child{
  background:var(--navy);
}

.course-comparison-table thead th.course-order-talk{
  background:var(--wine);
}

.course-comparison-table thead th.course-order-dinner{
  background:var(--navy-2);
}

.course-comparison-table tbody th{
  position:sticky;
  left:0;
  z-index:1;
  background:var(--gold-light);
  box-shadow:1px 0 0 var(--line-dark);
  font-weight:800;
  white-space:nowrap;
}

.course-comparison-table tbody tr:nth-child(even) td{
  background:#faf7f1;
}

.course-comparison-table small{
  font-size:.76em;
}

.course-flow{
  display:block;
  font-weight:700;
}

.course-flow b{
  color:var(--wine);
  line-height:1;
}

.course-flow__sub{
  display:block;
  margin-top:8px;
  padding-top:8px;
  border-top:1px dashed var(--line);
  color:var(--wine-dark);
  font-size:.84em;
}

.course-flow__sub--first{
  margin-top:0;
  padding-top:0;
  border-top:0;
}

.course-comparison__note{
  margin-top:10px;
  text-align:right;
}

/* ==================================================
   日程表タブ
================================================== */
.schedule-date-group + .schedule-date-group{
  margin-top:40px;
}

.schedule-date-group__heading{
  margin-bottom:18px;
  text-align:center;
}

.schedule-date-group__heading h3{
  margin:4px 0 5px;
  font-size:1.55rem;
  line-height:1.45;
}

.schedule-date-group__heading p:last-child{
  color:var(--ink-soft);
  font-size:.94rem;
}

.course-tabs{
  display:grid;
  width:min(100%,760px);
  margin:0 auto 22px;
  gap:8px;
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.course-tab{
  min-height:52px;
  padding:10px 14px;
  border:1px solid var(--line-dark);
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-weight:800;
  line-height:1.35;
  cursor:pointer;
  transition:background-color .2s,color .2s,border-color .2s,transform .2s;
}

.course-tab:hover{
  transform:translateY(-1px);
}

.course-tab:focus-visible{
  outline:3px solid rgba(198,163,95,.55);
  outline-offset:2px;
}

.course-tab--talk.is-active{
  border-color:var(--wine);
  background:var(--wine);
  color:#fff;
}

.course-tab--dinner.is-active{
  border-color:var(--navy-2);
  background:var(--navy-2);
  color:#fff;
}

.course-tab-panel[hidden]{
  display:none;
}

.course-tab-panel{
  animation:course-tab-fade .22s ease;
}

.schedule-panel__heading{
  margin:0 0 16px;
  padding:14px 16px;
  border-left:5px solid var(--wine);
  background:#fff;
  text-align:left;
}

.schedule-panel__heading .schedule-block__label{
  margin-bottom:2px;
}

.schedule-panel__heading h3{
  margin:0;
}

@keyframes course-tab-fade{
  from{opacity:.35;transform:translateY(4px)}
  to{opacity:1;transform:none}
}

@media (max-width:767px){
  .course-comparison{
    margin-bottom:42px;
  }

  .course-comparison__lead{
    text-align:left;
  }

  .course-comparison-table{
    min-width:600px;
    font-size:.7rem;
  }

  .course-comparison-table col.course-comparison-col-label{
    width:126px;
  }

  .course-comparison-table col.course-comparison-col-course{
    width:124px;
  }

  .course-comparison-table th,
  .course-comparison-table td{
    padding:10px 7px;
  }

  .course-comparison__note{
    text-align:left;
  }

  .schedule-date-group__heading h3{
    font-size:1.28rem;
  }

  .course-tabs{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .course-tab{
    min-height:48px;
    padding:9px 10px;
  }

  .schedule-panel__heading{
    padding:12px 13px;
  }
}

@media print{
  .course-tabs{
    display:none!important;
  }

  .course-tab-panel[hidden]{
    display:block!important;
  }

  .course-tab-panel + .course-tab-panel{
    margin-top:28px;
  }

  .course-comparison-table{
    min-width:0!important;
    font-size:7pt;
  }

  .course-comparison-table tbody th{
    position:static;
  }
}

/* ==================================================
   Responsive scroll guidance / compact comparison table
   2026-08-04
================================================== */

/* スクロール案内はテーブルの外側（直前）に表示 */
@media (max-width:980px){
  .table-scroll-note{
    display:block;
    margin:0 0 7px;
    padding:0;
    color:#6b6258;
    font-size:.76rem;
    line-height:1.5;
    text-align:right;
  }

  /* 比較表：タブレットでは必要最小限の横スクロールに抑える */
  .course-comparison-table{
    width:100%;
    min-width:760px;
    table-layout:fixed;
    font-size:.76rem;
    line-height:1.42;
  }

  .course-comparison-table col.course-comparison-col-label{
    width:88px;
  }

  .course-comparison-table col.course-comparison-col-course{
    width:84px;
  }

  .course-comparison-table th,
  .course-comparison-table td{
    padding:7px 4px;
    overflow-wrap:anywhere;
    word-break:normal;
  }

  .course-comparison-table tbody th{
    white-space:normal;
    line-height:1.35;
  }

  .course-flow__sub{
    margin-top:5px;
    padding-top:5px;
  }
}

@media (max-width:767px){
  /* スマートフォンではさらに列間の余白を詰める */
  .course-comparison-table{
    min-width:680px;
    font-size:.68rem;
    line-height:1.38;
  }

  .course-comparison-table col.course-comparison-col-label{
    width:80px;
  }

  .course-comparison-table col.course-comparison-col-course{
    width:75px;
  }

  .course-comparison-table th,
  .course-comparison-table td{
    padding:6px 3px;
  }

  .course-comparison-table thead th{
    font-size:.82rem;
  }

  .course-comparison-table small{
    font-size:.72em;
  }

  .course-flow__sub{
    font-size:.8em;
  }
}
