/* =========================================================
   基本設定（色・影・角丸）
========================================================= */
:root{
  --brand-green:#4CAF50;
  --brand-green-dark:#388E3C;
  --brand-amber:#FFC107;
  --brand-orange:#FF5722;
  --brand-orange-dark:#E64A19;

  --text:#333;
  --muted:#666;
  --bg:#f8f8f8;
  --panel:#fff;

  --card-shadow:0 2px 8px rgba(0,0,0,.08);
  --soft-shadow:0 1px 3px rgba(0,0,0,.08);
  --border:#e8e8e8;
  --radius:12px;
}

/* リセット */
*{margin:0;padding:0;box-sizing:border-box}

/* ベース */
html{scroll-behavior:smooth}
body{
  font-family:'Hiragino Kaku Gothic ProN','メイリオ',Meiryo,sans-serif;
  line-height:1.75;
  color:var(--text);
  background:var(--bg);
  max-width:800px;          /* 本文は800pxに中央寄せ */
  margin:0 auto;
  box-shadow:var(--card-shadow);
  background-clip:content-box;
}
img{max-width:100%;height:auto;display:block}

/* =========================================================
   ★ ヒーロー（このブロック“だけ”が正）
   - 旧 .hero / .hero-image-bg 規則は全部削除済み想定
========================================================= */

/* 画面いっぱいに見せたい場合（フルブリード） */
.hero{
  position: relative;
  width: 100vw;                         /* 画面幅いっぱい */
  margin-left: calc(50% - 50vw);        /* 左右の余白を破って全幅へ */
  margin-right: calc(50% - 50vw);
  min-height: 70vh;                     /* 高さは好みで 70–100vh */
  overflow: hidden;
}

/* 中央に1枚だけ表示（重ねない） */
.hero-picture,
.hero-img{
  display: block;
  width: 100%;
  height: 100%;
}

/* 余白なしでトリミング表示。暗くしない（filterなし） */
.hero-img{
  object-fit: cover;
  object-position: center;              /* 必要に応じて 'center 42%' などに */
}

/* スマホは少しだけ高めに見せたい時 */
@media (max-width: 768px){
  .hero{ min-height: 75vh; }
}


/* =========================================================
   セクション共通
========================================================= */
main{padding:20px;background:var(--panel)}
section{
  margin-bottom:40px;padding:22px;background:var(--panel);
  border-radius:var(--radius);box-shadow:var(--soft-shadow)
}
section h2{
  font-size:1.5em;color:var(--brand-green);margin-bottom:18px;
  text-align:center;position:relative;padding-bottom:10px
}
section h2::after{
  content:'';position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:64px;height:3px;background:var(--brand-green)
}
section p{font-size:.95em;margin-bottom:14px}

/* 汎用画像 */
.content-image{
  margin:20px auto;border-radius:10px;box-shadow:var(--soft-shadow)
}

/* =========================================================
   スケジュール
========================================================= */
.schedule-container{
  display:flex;flex-wrap:wrap;gap:20px;margin-top:8px
}
.schedule-column{
  flex:1;min-width:280px;padding:20px;border-radius:12px;
  background:linear-gradient(180deg,#eef7f0,#e8f5e9);
  border:1px solid #dfece2;box-shadow:var(--soft-shadow)
}
.schedule-column h3{
  font-size:1.15em;color:var(--brand-green-dark);
  margin-bottom:12px;padding-bottom:6px;border-bottom:2px solid var(--brand-green-dark)
}
.schedule-column ul{list-style:none}
.schedule-column li{margin:10px 0;position:relative;padding-left:18px}
.schedule-column li::before{
  content:'▪';color:var(--brand-green);position:absolute;left:0;top:0
}
.schedule-column .time{font-weight:700;color:#D32F2F}
.schedule-section .notes{
  text-align:center;font-size:.86em;color:var(--muted);margin-top:18px
}

/* =========================================================
   旅のポイント（黄色カード）
========================================================= */
.highlights-section{
  display:grid;gap:18px;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;
}
.highlights-section>h2{grid-column:1/-1;margin-bottom:6px}
.highlight-item{
  grid-column:auto;
  text-align:left;
  padding:20px 18px 18px 18px;
  border-radius:14px;border:1px solid #f3e6a6;
  background:linear-gradient(180deg,#fffbe2,#fff5c7);
  box-shadow:var(--soft-shadow);position:relative;overflow:hidden;height:100%;
}
.highlight-item::before{
  content:""; position:absolute; inset:0 auto 0 0; width:6px;
  background:linear-gradient(180deg,#ffd54f,#ffca28);
  border-top-left-radius:14px;border-bottom-left-radius:14px;opacity:.9;
}
.highlight-item::after{
  content:""; position:absolute; right:-18px; top:-18px;
  width:80px; height:80px; border-radius:50%;
  background:radial-gradient(closest-side, rgba(255,255,255,.7), transparent 60%);
}
.highlight-item h3{
  display:flex;align-items:center;gap:10px;
  font-size:1.15em;color:#b38600;margin-bottom:8px;letter-spacing:.02em;
}
.highlight-item h3 i{
  display:inline-grid; place-items:center;
  width:38px;height:38px;border-radius:50%;
  background:#fff7cc;border:1px solid #f1de8a;
  box-shadow:0 2px 6px rgba(255,193,7,.25);
  font-size:18px;color:#d49400;flex:0 0 auto;
}
.highlight-item p{color:#4a4a4a;margin:6px 0 0;line-height:1.8}
@media (max-width:1024px){
  .highlights-section{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:768px){
  .highlights-section{grid-template-columns:1fr}
  .highlight-item{grid-column:1/-1}
}

/* =========================================================
   参加ボタン
========================================================= */
.button-wrapper{text-align:center;margin:0 0 28px}
.reservation-button{
  display:inline-block;padding:14px 28px;border-radius:999px;
  background:var(--brand-orange);color:#fff;text-decoration:none;
  font-size:1.12em;font-weight:700;letter-spacing:.02em;
  box-shadow:0 4px 10px rgba(0,0,0,.2);
  transition:background .25s ease, transform .1s ease;
}
.reservation-button:hover{background:var(--brand-orange-dark)}
.reservation-button:active{transform:translateY(1px)}
.reservation-notes{font-size:.86em;color:var(--muted);margin-top:12px}

/* =========================================================
   キャプション & 動画
========================================================= */
.image-caption,.video-caption{
  font-size:.9em;color:var(--muted);text-align:center;
  margin-top:6px;margin-bottom:24px;padding:0 10px
}
.video-container{
  position:relative;width:100%;padding-bottom:56.25%;
  height:0;overflow:hidden;background:#000;
  margin:28px auto;border-radius:10px;box-shadow:var(--soft-shadow)
}
.video-container iframe{position:absolute;inset:0;width:100%;height:100%}

/* =========================================================
   フッター
========================================================= */
footer{
  text-align:center;padding:20px;background:#333;color:#fff;font-size:.82em
}
.footer-content{max-width:600px;margin:0 auto;padding:10px 0}
.footer-content p{margin-bottom:14px;line-height:1.6}

.social-links{margin-bottom:16px}
.social-links a{
  color:#fff;font-size:1.8em;margin:0 10px;text-decoration:none;
  transition:color .25s ease
}
.social-links a:hover{color:#e4405f}

.related-links{margin-top:18px;padding-top:14px;border-top:1px solid #555}
.related-links h3{font-size:1.05em;margin-bottom:12px;color:#eee}
.related-links ul{list-style:none}
.related-links li{margin-bottom:8px}
.related-links a{
  color:#a0d8f0;text-decoration:none;transition:color .25s ease
}
.related-links a:hover{color:#fff;text-decoration:underline}

/* =========================================================
   固定ナビ（横スクロール）
========================================================= */
.top-nav{
  position:sticky;top:0;z-index:20;
  display:flex;gap:14px;align-items:center;
  padding:10px 14px;background:#fff;border-bottom:1px solid var(--border);
  overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.top-nav::-webkit-scrollbar{display:none}
.top-nav a{
  flex:0 0 auto;color:var(--text);text-decoration:none;font-weight:700;
  padding:8px 12px;border-radius:999px;background:#f7f8fb;border:1px solid #e8ebf6;
}
.top-nav a:hover{background:#eef3ff;color:#1f56c1;border-color:#dfe7ff}
.top-nav a.active{background:#1f56c1;color:#fff;border-color:#1f56c1}
.top-nav + .after-nav-gap{height:14px}
@media (max-width:768px){.top-nav + .after-nav-gap{height:10px}}

/* ↑トップへ */
.to-top{
  position:fixed;right:16px;bottom:16px;z-index:20;
  width:44px;height:44px;display:grid;place-items:center;
  border-radius:50%;background:#2a5db0;color:#fff;text-decoration:none;
  box-shadow:0 6px 16px rgba(0,0,0,.15);
  opacity:0;pointer-events:none;transition:opacity .25s ease;
}
.to-top.show{opacity:1;pointer-events:auto}
@media (max-width:768px){.to-top{width:52px;height:52px;font-size:18px}}

/* =========================================================
   シングルカラムのスケジュール微調整
========================================================= */
.schedule-container.single-column ul{margin-left:1.25em;padding-left:0;list-style:none}
.schedule-container.single-column li{position:relative;padding-left:1.1em}
.schedule-container.single-column li::before{
  content:"•";position:absolute;left:0;top:0;color:var(--brand-green);line-height:1.2
}
.schedule-container.single-column .time{font-weight:700;color:#D32F2F}




/* ====== Info Card 復旧（上書き対策込み）====== */
section.info-card{
  background: linear-gradient(180deg,#ffffff,#fbfcff);
  border: 1px solid #e8ebf6;
  border-radius: 14px;
  box-shadow: 0 6px 18px rgba(31,86,193,.06);
  padding: 18px 20px;
  margin: 0 0 18px;
}

/* 見出し行 */
section.info-card .card-title{
  display:flex; align-items:center; gap:10px;
  font-weight:800; color:#1f56c1; letter-spacing:.02em;
  margin-bottom: 10px;
}

/* 青いドット */
section.info-card .card-title .dot{
  width:10px; height:10px; border-radius:50%;
  background:#1f56c1; box-shadow:0 0 0 4px rgba(31,86,193,.12);
  flex:0 0 auto;
}

/* リスト体裁 */
section.info-card .info-list{ list-style:none; padding:0; margin:0; }
section.info-card .info-list li{
  display:flex; gap:.6em; align-items:flex-start;
  padding:8px 0; border-top:1px dashed #e6eaf5;
}
section.info-card .info-list li:first-child{ border-top:none; }

/* ラベル／値 */
section.info-card .label{ color:#6b758b; min-width:5em; }
section.info-card .val{ color:#2a2f3a; }

/* スマホ微調整 */
@media (max-width:768px){
  section.info-card{ padding:16px; }
  section.info-card .label{ min-width:4.5em; }
}


/* ===== LINE 登録ボタン 復旧・上書き対策 ===== */
a.line-button, .line-button{
  display:inline-block;
  background:#06C755;              /* LINE公式グリーン */
  color:#fff !important;           /* リンク色の上書きを防ぐ */
  padding:14px 28px;
  border-radius:30px;
  text-decoration:none !important; /* 下線を確実に消す */
  font-size:1.1rem;
  font-weight:700;
  border:0;
  box-shadow:0 4px 8px rgba(0,0,0,.2);
  transition:transform .15s ease, box-shadow .2s ease, filter .2s ease;
  vertical-align:middle;
  cursor:pointer;
}

a.line-button:hover{
  filter:brightness(.95);
  transform:translateY(-2px);
  box-shadow:0 8px 16px rgba(0,0,0,.18);
}

a.line-button:active{
  transform:translateY(0);
  box-shadow:0 3px 8px rgba(0,0,0,.2);
}

/* 中央寄せ用（任意） */
.line-cta{ text-align:center; margin:12px 0 22px; }