/* TOP の見せ方を「何を・誰に」が伝わる形に（2026-10-03） */

/* ---------- 画像プレースホルダー（images/ph/ に置けば自動で差し替わる） ---------- */
.ph{position:relative;margin:0;aspect-ratio:var(--ph-ratio,4/3);overflow:hidden;background:linear-gradient(135deg,#cfdde8,#e6eef4)}
.ph img{display:block;width:100%;height:100%;object-fit:cover}
.ph-note{display:none}
.is-local .ph.is-empty .ph-note{display:flex;position:absolute;inset:0;align-items:center;justify-content:center;padding:8px;text-align:center;font-size:11px;color:#3d566c;border:2px dashed #8fa7bb;word-break:break-all}

/* ---------- ② 期間限定キャンペーン（目玉） ---------- */
.campaign-feature{padding:28px 4% 8px}
.campaign-feature[hidden]{display:none}
.cf-link{display:grid;grid-template-columns:1.3fr 1fr;max-width:1180px;margin:0 auto;background:#071d37;color:#fff;text-decoration:none;border-radius:10px;overflow:hidden;box-shadow:0 14px 34px #071d3733}
.cf-photo{height:100%;min-height:260px}
.cf-body{padding:30px 34px;display:flex;flex-direction:column;justify-content:center;gap:6px}
.cf-badge{align-self:flex-start;margin:0;padding:4px 12px;border-radius:999px;background:#ff5a3c;color:#fff;font-size:13px;font-weight:700;letter-spacing:.08em}
.campaign-feature h2{margin:6px 0 0;font-size:clamp(22px,2.4vw,30px);letter-spacing:.04em;color:#fff}
.cf-rate{margin:0;display:flex;align-items:baseline;gap:4px;color:#c6f52d;font-weight:700;line-height:1}
.cf-rate span{font-size:22px}
.cf-rate b{font-size:clamp(64px,7vw,96px);letter-spacing:-.02em}
.cf-status{margin:4px 0 0;font-size:15px;color:#d8e4ee}
.cf-cta{align-self:flex-start;margin-top:14px;padding:14px 22px;border-radius:6px;background:#c6f52d;color:#071d37;font-weight:700;font-size:16px}
.cf-link:hover .cf-cta,.cf-link:focus-visible .cf-cta{background:#d9ff5e}
.cf-link:focus-visible{outline:3px solid #1668e8;outline-offset:3px}

/* ---------- ① 地方から選ぶ（写真タイル） ---------- */
.region-pick{padding-top:30px;padding-bottom:10px}
.region-pick h2{margin:0 0 16px;font-size:clamp(20px,2.2vw,26px)}
.region-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.region-tiles .ph{--ph-ratio:16/10 !important}
.region-tiles a{display:block;background:#fff;border:1px solid #cad5df;border-radius:8px;overflow:hidden;text-decoration:none;color:#071d37;transition:transform .15s,box-shadow .15s}
.region-tiles a:hover{transform:translateY(-2px);box-shadow:0 8px 20px #071d371f}
.region-tiles strong{display:block;padding:10px 12px 0;font-size:17px}
.region-tiles small{display:block;padding:2px 12px 12px;font-size:13px;color:#4b6176}
.region-tiles a.is-myplan{border-color:#1668e8;box-shadow:0 0 0 2px #1668e8 inset}

/* ---------- ③ 01 の使い方（3ステップ図） ---------- */
.destinations{display:block}
.dest-intro{margin-bottom:22px}
.dest-intro h2{margin-bottom:16px}
.how-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;counter-reset:none}
.how-steps li{position:relative;background:#fff;border:1px solid #cad5df;border-radius:8px;overflow:hidden}
.how-steps strong{display:block;padding:10px 12px 12px 48px;font-size:15px;min-height:1.6em}
.how-num{position:absolute;left:12px;bottom:10px;width:26px;height:26px;border-radius:50%;background:#071d37;color:#c6f52d;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center}
.how-steps li:not(:last-child):after{content:'→';position:absolute;right:-14px;top:38%;z-index:1;width:22px;height:22px;border-radius:50%;background:#c6f52d;color:#071d37;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.destinations .geo-selector{margin-bottom:24px}

/* ---------- ④ 人気の行き先 ---------- */
.popular{margin-top:34px}
.popular h3{margin:0 0 14px;font-size:20px}
.popular-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.popular-cards a{display:block;background:#fff;border:1px solid #cad5df;border-radius:8px;overflow:hidden;text-decoration:none;color:#071d37}
.popular-cards img{display:block;width:100%;height:200px;object-fit:cover}
.pop-body{display:block;padding:12px 14px 14px}
.pop-body strong{display:block;font-size:20px}
.pop-body small{display:block;margin-top:2px;font-size:14px;color:#4b6176}
.pop-cta{display:inline-block;margin-top:8px;font-size:14px;font-weight:700;color:#1668e8}

/* ---------- ⑤ 季節から選ぶ ---------- */
.seasons{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:stretch}
.seasons .section-intro{grid-column:1/-1;display:flex;align-items:baseline;gap:24px;flex-wrap:wrap}
.seasons .section-intro .eyebrow{width:100%}
.season-card{position:relative;display:block;min-height:280px;border-radius:8px;overflow:hidden;color:#fff;text-decoration:none}
.season-card figure{position:absolute;inset:0;margin:0;height:auto}
.season-card figure:after{content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#041a35d9)}
.season-card img{width:100%;height:100%;object-fit:cover}
.season-text{position:absolute;left:20px;right:20px;bottom:18px;z-index:1}
.season-text small{display:inline-block;padding:3px 10px;border-radius:999px;background:#ffffffe0;color:#071d37;font-size:12px;font-weight:700}
.season-text strong{display:block;margin-top:8px;font-size:24px}
.season-cta{display:block;margin-top:6px;font-size:14px;font-weight:700;color:#d5ff61}

@media (max-width:1100px){
  .region-tiles{gap:10px}
  .seasons{grid-template-columns:1fr 1fr}
  .seasons .section-intro{grid-column:1/-1}
}
@media (max-width:720px){
  .campaign-feature{padding:18px 16px 4px}
  .cf-link{grid-template-columns:1fr}
  .cf-photo{min-height:0}
  .cf-body{padding:20px 20px 22px}
  .cf-cta{align-self:stretch;text-align:center}
  .region-pick{padding-top:22px}
  .region-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .region-tiles strong{font-size:15px;padding:8px 10px 0}
  .region-tiles small{font-size:12px;padding:2px 10px 10px}
  .how-steps{grid-template-columns:1fr;gap:10px}
  .how-steps li{display:grid;grid-template-columns:120px 1fr;align-items:center}
  .how-steps strong{padding:10px 12px 10px 46px}
  .how-num{left:132px;bottom:auto;top:50%;transform:translateY(-50%)}
  .how-steps li:not(:last-child):after{content:'↓';right:auto;left:48px;top:auto;bottom:-15px}
  .popular-cards{grid-template-columns:1fr}
  .popular-cards li a{display:grid;grid-template-columns:130px 1fr}
  .popular-cards img{height:100%;min-height:110px}
  .seasons{grid-template-columns:1fr}
  .season-card{min-height:200px}
}
.how-steps li{overflow:visible}
.how-steps .ph{border-radius:8px 8px 0 0}
.how-steps li:not(:last-child):after{box-shadow:0 2px 6px #071d3733}
@media (max-width:720px){.how-steps .ph{border-radius:8px 0 0 8px}}
.how-link{display:block;color:inherit;text-decoration:none;height:100%}
.how-steps li{transition:transform .15s,box-shadow .15s}
.how-steps li:hover{transform:translateY(-2px);box-shadow:0 8px 20px #071d371f}
.how-go{position:absolute;right:12px;bottom:12px;color:#1668e8;font-weight:700}
@media (max-width:720px){.how-steps li{display:block}.how-link{display:grid;grid-template-columns:120px 1fr;align-items:center}.how-go{bottom:auto;top:50%;transform:translateY(-50%)}}
.how-steps strong{padding-right:34px}
.region-tiles .myplan-mark{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;background:#1668e8;color:#fff;font-size:11px;font-weight:700;vertical-align:2px}
/* 探し方を選ぶ（スマホではヘッダーのメニューが見えないので、TOPにカードで出す）2026-10-03 */
.ways{padding-top:26px;padding-bottom:6px}
.ways h2{margin:0 0 14px;font-size:clamp(20px,2.2vw,26px)}
.ways-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.way{display:block;background:#fff;border:1px solid #cad5df;border-top:4px solid #071d37;border-radius:8px;overflow:hidden;text-decoration:none;color:#071d37;transition:transform .15s,box-shadow .15s}
.way:hover{transform:translateY(-2px);box-shadow:0 8px 20px #071d371f}
.way strong{display:block;padding:10px 12px 0;font-size:16px}
.way small{display:block;padding:2px 12px 12px;font-size:13px;color:#4b6176}
.way--gourmet{border-top-color:#ffa95c}.way--my{border-top-color:#ff8fae}.way--route{border-top-color:#1668e8}.way--search{border-top-color:#c6f52d}.way--onsen{border-top-color:#5cc8b0}.way--spots{border-top-color:#7aa7f0}
@media (max-width:720px){.ways-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.way strong{font-size:15px;padding:8px 10px 0}.way small{font-size:12px;padding:2px 10px 10px}}
