/* モデルコースページ専用の追加スタイル。
   基本の変数・レイアウト・.btn / .info-table / .faq__* は styles.css を使う。 */

/* 記事のリード文は既定(.lede)より広く。34ch だと1行が短すぎて読みにくい */
.plan .lede{max-width:32em}

/* --- 条件チップ --- */
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:1.6rem 0 0}
.chips li{
  font-size:.82rem;letter-spacing:.02em;padding:.42em 1em;border-radius:99px;
  border:1px solid rgba(224,160,90,.38);color:var(--ember);background:rgba(224,160,90,.07)
}

/* --- チェックリスト --- */
.ticks{list-style:none;padding:0;margin:0}
.ticks li{position:relative;padding-left:1.6em;margin-bottom:.7em}
.ticks li::before{
  content:"";position:absolute;left:.1em;top:.62em;
  width:.5em;height:.5em;border-radius:50%;background:var(--ember)
}

/* --- 目次 --- */
.toc{
  margin:2.2rem 0 0;padding:1.3rem 1.5rem 1.4rem;border-radius:12px;
  border:1px solid rgba(158,160,160,.2);background:rgba(255,255,255,.02)
}
.toc__ttl{
  font-family:var(--ff-lat);font-style:italic;color:var(--ember);
  letter-spacing:.06em;font-size:.86rem;margin:0 0 .8rem
}
.toc ol{margin:0;padding-left:1.3em;color:var(--muted)}
.toc li{margin:0 0 .4em;font-size:.92rem}
.toc a{color:var(--muted);text-decoration:none;transition:color .2s}
.toc a:hover{color:var(--ember)}

/* --- エリア解説 --- */
.areas{list-style:none;padding:0;margin:1.4rem 0 .6rem}
.area{
  display:grid;grid-template-columns:3.2rem 1fr;gap:0 .6rem;
  padding:1.2rem 0;border-top:1px solid rgba(158,160,160,.16)
}
.area:last-child{border-bottom:1px solid rgba(158,160,160,.16)}
.area__no{
  font-family:var(--ff-lat);font-size:1.5rem;line-height:1;color:var(--ember);
  opacity:.55;padding-top:.15rem
}
.area__body h3{
  font-family:var(--ff-min);font-size:1.06rem;font-weight:600;margin:0 0 .5rem;
  letter-spacing:.02em;display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem .8rem
}
.area__role{
  font-family:var(--ff-got,inherit);font-size:.76rem;font-weight:400;letter-spacing:.04em;
  color:var(--ember);border:1px solid rgba(224,160,90,.34);border-radius:99px;padding:.24em .8em
}
.area__body p{margin:0;color:var(--muted);font-size:.94rem;line-height:1.9}

/* --- モデルコース3本（開閉） --- */
.courses{margin:1.5rem 0 .6rem;display:grid;gap:.9rem}
.course{
  border:1px solid rgba(158,160,160,.22);border-radius:14px;overflow:hidden;
  background:rgba(255,255,255,.02);transition:border-color .25s
}
.course[open]{border-color:rgba(224,160,90,.4)}
.course > summary{
  cursor:pointer;list-style:none;padding:1.15rem 3rem 1.15rem 1.4rem;position:relative;
  display:grid;grid-template-columns:auto 1fr;gap:.25rem .9rem;align-items:baseline
}
.course > summary::-webkit-details-marker{display:none}
.course > summary:hover{background:rgba(224,160,90,.05)}
.course__no{
  font-family:var(--ff-lat);font-style:italic;font-size:.82rem;letter-spacing:.08em;
  color:var(--ember);white-space:nowrap
}
/* summary 内の見出しなので、.prose h3 が付ける余白と区切り線を打ち消す */
.course__name{
  font-family:var(--ff-min);font-size:1.08rem;font-weight:600;letter-spacing:.02em;
  margin:0 !important;padding:0 !important;border:0 !important;display:inline
}
.course__sub{grid-column:2;color:var(--muted);font-size:.88rem;line-height:1.7}
.course__ic{
  position:absolute;right:1.4rem;top:1.5rem;width:.62rem;height:.62rem;
  border-right:1.5px solid var(--ember);border-bottom:1.5px solid var(--ember);
  transform:rotate(45deg);transition:transform .25s
}
.course[open] .course__ic{transform:rotate(-135deg)}
.course__body{padding:.2rem 1.4rem 1.5rem;border-top:1px solid rgba(158,160,160,.14)}
.course__for{
  margin:1.1rem 0 .4rem;padding:.85em 1.1em;border-radius:10px;
  background:rgba(224,160,90,.07);color:var(--paper);font-size:.9rem;line-height:1.8
}
.course__body .daylabel{margin:1.8rem 0 .9rem;font-size:1rem}

/* --- 立ち寄り先 --- */
.spots{list-style:none;padding:0;margin:1.4rem 0 .6rem;counter-reset:none}
.spot{padding:1.4rem 0;border-top:1px solid rgba(158,160,160,.16)}
.spot:last-child{border-bottom:1px solid rgba(158,160,160,.16)}
.spot h3{
  font-family:var(--ff-min);font-size:1.08rem;font-weight:600;margin:0 0 .6rem;
  letter-spacing:.02em;display:flex;align-items:baseline;gap:.7rem
}
.spot__no{font-family:var(--ff-lat);font-size:.95rem;color:var(--ember);opacity:.7}
.spot p{margin:0;color:var(--muted);font-size:.94rem;line-height:1.9}
.spot__tip{
  margin-top:.7rem !important;padding-left:.9em;border-left:2px solid rgba(224,160,90,.4);
  font-size:.88rem !important
}

/* --- 行程タイムライン --- */
.daylabel{
  font-family:var(--ff-lat);font-style:italic;font-weight:500;
  color:var(--ember);letter-spacing:.06em;margin:2.2rem 0 .9rem
}
.tl{list-style:none;padding:0;margin:0 0 .5rem;position:relative}
.tl::before{content:"";position:absolute;left:.42rem;top:.7rem;bottom:.7rem;width:1px;background:rgba(158,160,160,.28)}
.tl__item{position:relative;display:grid;grid-template-columns:6.2rem 1fr;gap:0 1.1rem;padding:0 0 1.5rem 1.9rem}
.tl__item::before{
  content:"";position:absolute;left:0;top:.5rem;width:.85rem;height:.85rem;border-radius:50%;
  background:var(--bg);border:2px solid var(--ember)
}
.tl__time{font-family:var(--ff-lat);font-size:.9rem;color:var(--ember);padding-top:.15rem;white-space:nowrap}
.tl__body h4{font-family:var(--ff-min);font-size:1.02rem;font-weight:600;margin:0 0 .35rem;letter-spacing:.02em}
.tl__body p{margin:0;color:var(--muted);font-size:.94rem;line-height:1.85}

/* --- 宿カード --- */
.stays{display:grid;gap:1.1rem;margin:1.4rem 0 .6rem}
.stay{
  display:grid;grid-template-columns:11rem 1fr;gap:0 1.4rem;align-items:stretch;
  border:1px solid rgba(158,160,160,.2);border-radius:14px;overflow:hidden;background:rgba(255,255,255,.02)
}
.stay__img{overflow:hidden;background:rgba(0,0,0,.2)}
.stay__img img{width:100%;height:100%;object-fit:cover;display:block}
.stay__body{padding:1.15rem 1.3rem 1.25rem 0}
.stay__body h3{font-family:var(--ff-min);font-size:1.08rem;font-weight:600;margin:0 0 .5rem;letter-spacing:.02em}
.stay__body p{margin:0 0 1rem;color:var(--muted);font-size:.92rem;line-height:1.8}
.stay__meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem .9rem;margin-bottom:.6rem}
.stay__price{color:var(--ember);font-family:var(--ff-lat);font-size:.95rem}
.stay__rev{color:var(--muted);font-size:.85rem}
.stay__rev small{opacity:.75}
.stay .btn{font-size:.85rem;padding:.6em 1.3em}

/* --- CTA --- */
.plan-cta{
  margin:3.4rem 0 2rem;padding:2.4rem 2rem;border-radius:16px;text-align:center;
  background:linear-gradient(180deg,rgba(224,160,90,.10),rgba(224,160,90,.03));
  border:1px solid rgba(224,160,90,.24)
}
.plan-cta__eyebrow{
  font-family:var(--ff-lat);font-style:italic;color:var(--ember);
  letter-spacing:.1em;font-size:.86rem;margin:0 0 .5rem
}
.plan-cta h2{margin:0 0 .8rem !important;border:0 !important;padding:0 !important}
.plan-cta p{color:var(--muted);max-width:44ch;margin:0 auto 1.6rem}

/* --- 注記 --- */
.note{color:var(--muted-2,var(--muted));font-size:.85rem;line-height:1.8}
.disclaimer{
  margin-top:2.6rem;padding-top:1.4rem;border-top:1px solid rgba(158,160,160,.2);opacity:.85
}

/* --- 関連リンク --- */
.related{list-style:none;padding:0;margin:0}
.related li{border-bottom:1px solid rgba(158,160,160,.16)}
.related a{display:block;padding:.95em 0;color:var(--paper);text-decoration:none;font-size:.95rem;transition:color .2s}
.related a:hover{color:var(--ember)}

/* --- 一覧ページのカードグリッド --- */
/* 一覧ページのリード文は .prose の外にあるため、既定より広く取る */
.section > .u-container > .lede{max-width:32em}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:1.5rem;margin:2.6rem 0}
.pcard{
  display:block;text-decoration:none;color:inherit;border-radius:14px;overflow:hidden;
  border:1px solid rgba(158,160,160,.2);background:rgba(255,255,255,.02);transition:transform .3s,border-color .3s
}
.pcard:hover{transform:translateY(-4px);border-color:rgba(224,160,90,.45)}
.pcard__img{aspect-ratio:16/10;background-size:cover;background-position:center;position:relative}
.pcard__aud{
  position:absolute;left:.7rem;top:.7rem;font-size:.74rem;letter-spacing:.04em;
  padding:.3em .85em;border-radius:99px;color:var(--paper);
  background:rgba(20,22,28,.72);border:1px solid rgba(224,160,90,.4);backdrop-filter:blur(6px)
}
.pcard__body{padding:1.15rem 1.25rem 1.35rem}
.pcard__area{color:var(--ember);font-size:.8rem;letter-spacing:.06em;margin:0 0 .45rem}
.pcard__body h3{font-family:var(--ff-min);font-size:1.05rem;font-weight:600;line-height:1.55;margin:0 0 .7rem}
.pcard__meta{color:var(--muted);font-size:.82rem;margin:0}

/* --- 写真クレジット（一覧ページ） --- */
.credits{margin:3rem 0 0;border-top:1px solid rgba(158,160,160,.2);padding-top:1.2rem}
.credits summary{cursor:pointer;color:var(--muted);font-size:.85rem;letter-spacing:.04em}
.credits ul{list-style:none;padding:0;margin:1rem 0 0}
.credits li{color:var(--muted-2,var(--muted));font-size:.78rem;line-height:1.9}
.credits a{color:inherit}

@media (max-width:640px){
  .tl__item{grid-template-columns:1fr;gap:.3rem;padding-left:1.7rem}
  .tl__time{padding-top:0}
  .stay{grid-template-columns:1fr}
  .stay__img{aspect-ratio:16/9}
  .stay__body{padding:1.1rem 1.2rem 1.25rem}
  .plan-cta{padding:2rem 1.3rem}
  .toc{padding:1.1rem 1.2rem 1.2rem}
  .area{grid-template-columns:2.4rem 1fr}
  .area__no{font-size:1.2rem}
  .course > summary{padding:1rem 2.6rem 1rem 1.1rem}
  .course__ic{right:1.1rem;top:1.35rem}
  .course__body{padding:.2rem 1.1rem 1.3rem}
}
