    /* --- Base Reset --- */
    *, *::before, *::after { box-sizing: border-box; }
    html, body { margin: 0; padding: 0; }
    body { font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif; line-height: 1.6; color: #222; }

img {
  max-width: 100%;
  height: auto;
}

  :root{
    --container: 980px;
    --title: #ea6a3a;            /* 見出しのオレンジ */
    --ink: #111;
    --muted: #6f6f6f;
    --line: #e6e6e6;             /* カード枠線 */
    --note-bg: #f7f8f8;          /* 注釈ボックス背景 */
    --note-br: #e7e9eb;          /* 注釈ボックス枠線 */
    --check: #20b15a;            /* 緑のチェック色 */
    --card-radius: 16px;
    --shadow: 0 10px 26px rgba(0,0,0,.06);
    --panel-bg: #f2f3f3;     /* パネルの淡いグレー */
    --page-bg: #fbf7ef;      /* 全体のクリーム寄り背景 */
    --tab-bg:  #ffdc8d;      /* 見出しタブの黄色 */
    --tab-tx:  #3a3223;      /* タブ文字 */
    --ink:     #222;
    --muted:   #6f6f6f;
    --accent:  #ce6b53;      /* アイコンの赤茶 */
    --radius-xl: 22px;
    --title: #2e2b26;
    --muted: #6f6f6f;
    --radius: 22px;
    --img-radius: 16px;
    --muted:#6f6f6f;
    --accent:#c6654d;        /* 画像のサーモン系アイコン色 */
    --terracotta:#c85c45;            /* ベース色（右側の赤茶） */
    --terracotta-d:#b9543f;
    --cream:#fff5ea;                 /* 背景に馴染む外側色（任意） */
    --badge:#ffe09a;                 /* 小バッジ */
    --badgeTx:#5b4c2a;
    --shadow:0 12px 28px rgba(0,0,0,.18);

    --footerbg:#6f0d0d;        /* 濃い赤（フッター地色） */
    --footerink:#fff;          /* 文字色（白） */
    --footermuted:#f3f0ee;     /* 薄い白 */
    --footercta:#ffd05a;       /* 右端CTA黄色 */
    --footercta-border:#111;   /* CTA黒枠 */
    --footermax:1300px;

    /* タグ色 */
    --chip-bbq:#ff9f6f;
    --chip-oyster:#90b6ff;
    --chip-camp:#7bd38d;
    --chip-beer:#ffd271;
    --loc-bg:#eef6ff;
    --loc-br:#b9d7ff;

    /* ステップ見出しの色 */
    --s1:#f6cf72;   /* イエロー */
    --s2:#f1a6a3;   /* サーモン */
    --s3:#a6c7ff;   /* ブルー */
    --s4:#a7df75;   /* グリーン */

  }

    /* --- Reusable container (max-width 1300px) --- */
    .container {
      width: 100%;
      max-width: 1300px;
      margin-inline: auto;
      padding-inline: 16px; /* 小さな左右余白 */
    }

    /* --- Header --- */
    header {
      background: #740907;     /* 指定色 */
      width: 100%;             /* 指定 */
      height: 75px;            /* 指定の縦幅 */
      color: #fff;
    }
    .header-inner {
      height: 75px;            /* ヘッダー内の高さも合わせる */
      display: flex;
      align-items: center;
      gap: 16px;
    }
    .logo {
      font-weight: 700;
      font-size: 20px;
      letter-spacing: .02em;
      margin-bottom: -60px;
    }

    /* --- Hamburger Button (右寄せ) --- */
    .nav-spacer { flex: 1 1 auto; } /* 右側へ押し出し用 */
    .nav-toggle {
      position: absolute;
      left: -9999px;
      top: -9999px;
      opacity: 0;
    }
    .hamburger {
      margin-left: auto;             /* 右寄せ */
      display: inline-flex;
      flex-direction: column;
      justify-content: center;
      gap: 6px;
      width: 44px;
      height: 44px;
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
    }
    .hamburger span {
      display: block;
      height: 2px;
      width: 26px;
      background: #fff;
      border-radius: 2px;
      transition: transform .3s ease, opacity .3s ease;
      margin-inline: auto;
    }

    /* --- Mobile Nav (スライドドロワー) --- */
    nav.nav {
      position: fixed;
      top: 75px;                 /* ヘッダー下から表示 */
      right: 0;
      width: min(85vw, 360px);
      height: calc(100dvh - 75px);
      background: #fff;
      border-left: 1px solid #eee;
      transform: translateX(100%);
      transition: transform .3s ease;
      box-shadow: -10px 0 20px rgba(0,0,0,.08);
      z-index: 50;
    }
    nav.nav ul {
      list-style: none;
      margin: 0;
      padding: 16px;
      display: grid;
      gap: 8px;
    }
    nav.nav a {
      display: block;
      padding: 12px 14px;
      border-radius: 10px;
      text-decoration: none;
      color: #222;
      background: #f6f6f6;
    }
    nav.nav a:hover { background: #efefef; }

    /* Toggle ON でドロワー展開 & ハンバーガーを×に */
    .nav-toggle:checked ~ nav.nav { transform: translateX(0); }
    .nav-toggle:checked + label.hamburger span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
    .nav-toggle:checked + label.hamburger span:nth-child(2) { opacity: 0; }
    .nav-toggle:checked + label.hamburger span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

    /* --- Overlay (nav 表示時のみ) --- */
    .overlay {
      position: fixed;
      inset: 75px 0 0 0;        /* ヘッダーの下から */
      background: rgba(0,0,0,.25);
      opacity: 0;
      pointer-events: none;
      transition: opacity .3s ease;
      z-index: 40;
    }
    .nav-toggle:checked ~ .overlay {
      opacity: 1;
      pointer-events: auto;
    }

    /* --- Content Section --- */
    .section-wrap {
      width: 100%;              /* 指定 */
      background: #cb614b;      /* 指定色 */
      padding: 32px 0;          /* 周囲に余白（背景色を見せる） */
    }
    .content {
      background: #ffffff;      /* 指定 */
      border-radius: 20px;      /* 指定 */
      width: 100%;
      max-width: 1300px;        /* 指定 */
      margin-inline: auto;
      padding: clamp(20px, 3vw, 40px);
      box-shadow: 0 2px 12px rgba(0,0,0,.06);
    }

    /* --- Optional: デスクトップ時の見た目微調整 --- */
    @media (min-width: 768px) {
      .logo { font-size: 22px; }
      nav.nav ul { gap: 10px; }
    }

/* --- 2カラム --- */
.two-column {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)); /* PCで50:50 */
  gap: 20px;
  margin-top: 20px;
}
.two-column .column {
  background: #f9f9f9;
  padding: 20px;
  border-radius: 12px;
}

/* スマホでは1カラム */
@media (max-width: 767px) {
  .two-column {
    grid-template-columns: 1fr;
  }
}

/* 画像等がはみ出さないように */
.two-column img,
.two-column video,
.two-column iframe {
  max-width: 100%;
  height: auto;
  display: block;
}

/* --- ボタンメニュー --- */
.button-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 2列 */
  gap: 16px; /* ボタン間の余白 */
  margin-top: 20px;
}

.menu-btn {
  display: flex;
  justify-content: space-between; /* テキスト左、矢印右 */
  align-items: center;
  background: #323025;           /* 背景色 */
  color: #fff;                   /* 文字色 */
  text-decoration: none;
  padding: 14px 16px;
  border-radius: 10px;           /* 角丸 */
  font-size: 15px;
  font-weight: 500;
  transition: background .3s ease;
}

.menu-btn:hover {
  background: #4a4837; /* hover時に少し明るく */
}

.menu-btn .arrow {
  font-size: 16px;
  margin-left: 8px;
}

/* --- メインコンテンツ --- */
.main-content {
  margin-top: 40px;
  text-align: center; /* 中央配置 */
}

.highlight-text {
  font-size: 24px !important;     /* 文字サイズ */
  font-weight: 600;

}

.highlight-text span {
  background: #ffdc8d; /* マーカー装飾 */
  padding: 4px 8px;
  border-radius: 4px;  /* 少し角丸に */
}


.font16 {
  font-size: 16px !important;     /* 文字サイズ */
}

.font18 {
  font-size: 18px !important;     /* 文字サイズ */
}

.font36 {
  font-size: 36px !important;     /* 文字サイズ */
}

/* --- 角丸セクション --- */
.rounded-section {
  padding: 20px 0px 20px 0px;                /* 内側余白 */
  border: 2px solid #59585a;    /* 枠線 */
  border-radius: 20px;          /* 角丸 */
  background: #fff9f0;          /* 背景色 */
}

.rounded-section .title01 {
    margin-top: 0;
    font-size: 12px;
    border-bottom: solid 2px #59585a;
    padding-bottom: 20px;
    text-align: left;
    padding-left: 58px;
}

.rounded-section p {
  font-size: 16px;
  line-height: 1.6;
}

/* 背景画像のバナー */
.bg-banner{
  width: 582px;                       /* 指定幅 */
  height: 84px;                       /* 画像の高さに合わせる（582×84想定） */
  margin: 0 auto;                     /* 中央寄せ */
  background-image: url("images/slash-bg.png"); /* 画像パス（同階層に配置する場合） */
  background-repeat: no-repeat;
  background-size: 100% 100%;         /* 枠にピッタリはめる */
  background-position: center;

  display: flex;                      /* テキストを中央寄せ */
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 24px;                    /* 端のグレー帯にかからないよう内側余白 */
  box-sizing: border-box;
}

.bg-banner p{
  margin: 0;
  font-size: 22px;                    /* 指定の文字サイズ */
  line-height: 1.4;                   /* 2行で収まるよう適度に */
  font-weight: 700;
  color: #333;                        /* 白地に読みやすい濃色 */
  letter-spacing: .02em;
  word-break: keep-all;               /* 変な改行を防ぐ */
}

  /* セクション外枠（丸角の大きなカード） */
  .merit{
    width: min(100%, 980px);
    margin: 32px auto;
    background: #fff;
    border-radius: 24px;
    padding: 0px 28px 36px;
    position: relative;
  }

  /* 内側の余白用コンテナ（任意） */
  .merit-inner{
    background: transparent;        /* デザイン上は内側に別背景は無し */
    border-radius: 18px;
    max-width: 880px;
    margin: 0 auto;
  }

  /* 上部の小さなカプセル（MERIT） */
  .merit-badge{
    line-height: 26px;
    text-align: center;
    margin: -14px auto 16px;
    color: #e19864;
    border: 1px solid var
var(--pill-border)
(--pill-border);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    width: 92px;
    height: 46px;
    border-radius: 0 0 100px 100px;
    background: #fff9f0;
  }

  /* 見出しとサブ */
  .merit h2{
    margin: 6px 0 8px;
    text-align: center;
    font-size: clamp(22px, 3.2vw, 32px);  /* 画像の太め大見出し */
    font-weight: 700;
  }
  .merit .subtitle{
    margin: 0 auto 28px;
    text-align: center;
    color: var(--muted);
    font-size: clamp(13px, 2.2vw, 16px);
  }

  /* 3カラム領域 */
  .merit-grid{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
  }

  .merit-item{
    text-align: left;
  }

  /* 上にイラスト（プレースホルダ）。画像がある場合は <img> を差し替え */
  .illus{
    width: 100%;
    aspect-ratio: 16 / 10;
    border-radius: 14px;
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
    display: grid;
    place-items: center;
    color:#9aa6b2;
    font-size: 12px;
  }
  .merit-item img.illus-img{
    width: 100%;
    height: auto;
    display: block;
    border-radius: 14px;
  }

  .merit-item h3{
    margin: 14px 0 8px;
    font-size: clamp(16px, 2.4vw, 18px);
    font-weight: 800;
  }
  .merit-item p{
    margin: 0;
    color: var(--muted);
    font-size: clamp(13px, 2.2vw, 15px);
    line-height: 1.9;
  }

  /* レスポンシブ */
  @media (max-width: 900px){
    .merit{
      padding: 0px 18px 30px;
      border-radius: 20px;
    }
    .merit-grid{ gap: 22px; }
  }
  @media (max-width: 760px){
    .merit-grid{
      grid-template-columns: 1fr;
      gap: 18px;
    }
    .merit-item{ text-align: left; }
  }

  /* 外枠カード */
  .point-sec{
    width:min(100%, 980px);
    margin:50px auto;
    background:#fff;
    border-radius:24px;
    padding:0px 28px 36px;

  }

  /* 上部バッジ */
  .point-badge{
    line-height: 26px;
    text-align: center;
    margin: -14px auto 16px;
    color: #e19864;
    border: 1px solid var var(--pill-border)(--pill-border);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    width: 92px;
    height: 46px;
    border-radius: 0 0 100px 100px;
    background: #fff9f0;
  }

  /* 見出し */
  .point-sec h2{
    margin:8px 0 26px;
    text-align:center;
    font-size:clamp(22px,3.2vw,30px);
    font-weight:700;
  }

  /* 3カードのグリッド */
  .point-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:26px;
  }
  .p-card{
    text-align:center;
  }
  .p-card .thumb{
    width:100%;
    aspect-ratio: 3 / 2;         /* 画像比率を近似 */
    border-radius:14px;
    overflow:hidden;
    background:linear-gradient(180deg,#eaeef5,#dfe7f2); /* 画像プレースホルダ */
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);
  }
  .p-card .thumb img{
    width:100%; height:100%; object-fit:cover; display:block;
  }
  .p-card h3{
    margin:14px 0 10px;
    font-size:clamp(16px,2.6vw,18px);
    font-weight:800;
  }
  .p-card p{
    margin:0;
    color:var(--muted);
    font-size:clamp(13px,2.2vw,15px);
    line-height:1.9;
  }

  /* 下段のミニポイント（5つ） */
  .mini-wrap{
    margin-top:28px;
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:16px;
  }
  .mini{
    background:#f4f4f4;
    border-radius:14px;
    padding:18px 14px;
    text-align:center;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.035);
  }
  .mini .ico{
    width:38px; height:38px;
    margin:0 auto 10px;
    color:#222;                  /* アイコン黒 */
  }
  .mini p{
    margin:0;
    font-size:14px;
    font-weight:600;
    color:#333;
    line-height:1.6;
  }

  /* レスポンシブ */
  @media (max-width: 900px){
    .point-sec{ padding:24px 18px 30px; }
    .point-grid{ grid-template-columns:1fr; gap:22px; }
    .mini-wrap{ grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width: 520px){
    .mini-wrap{ grid-template-columns:1fr; }
  }

/* ボタン本体 */
.cta-btn{
  position: relative;
  display: grid;
  place-items: center;                  /* 中央寄せ */
  max-width: 420px;                         /* 指定サイズ */
  height: 100px;                        /* 指定サイズ */
  margin: 32px auto;                    /* 中央配置（任意） */
  background: linear-gradient(#c55a43, #b9543f);  /* テラコッタ系の塗り */
  color: #fff;
  text-decoration: none;
  border-radius: 9999px;                /* 大きな角丸 */
  font-weight: 700;
  box-shadow:
    0 12px 24px rgba(0,0,0,.14),        /* 外側の柔らかい影 */
    inset 0 0 0 4px #ffffff;            /* 内側の白い縁取り */
}

/* メイン文字 */
.cta-label{
  font-size: 24px;
  letter-spacing: .02em;
}

/* 上の小さな吹き出しバッジ */
.cta-badge{
  position: absolute;
  top: -14px;                           /* ボタン上に少し重ねる */
  left: 50%;
  transform: translateX(-50%);
  background: #ffdc8d;                  /* 淡いイエロー */
  color: #000;
  border-radius: 10px;
  padding: 6px 12px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 2px 6px rgba(0,0,0,.08), 0 0 0 1px rgba(0,0,0,.04);
}

/* 吹き出しの三角（下向き） */
.cta-badge::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: -12px;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-top-color: #ffe09a;            /* バッジと同色 */
}

/* ホバー／フォーカス */
.cta-btn:hover{ background: linear-gradient(#c95f47, #be5841); }
.cta-btn:focus-visible{
  outline: 3px solid #ffd7a8;           /* アクセシブルなフォーカスリング */
  outline-offset: 4px;
}

  .space-wrap{
    margin:32px auto 48px;
    padding:0 20px;
  }

  /* 上部ヘッダー部分 */
  .space-label{
    text-align: left;
    font-size:12px;
    color:var(--muted);
    letter-spacing:.08em;
    margin-bottom:8px;
  }

  .space-head{
    display:grid;
    grid-template-columns: 1fr 1.2fr; /* 左に大見出し、右に説明 */
    align-items:end;
    gap:16px;
  }
  .space-title{
    text-align: left;
    margin:0;
    font-weight:800;
    color:var(--ink);
    letter-spacing:.06em;
    font-size: clamp(56px, 12vw, 128px); /* 画像の「SPACE」大文字感 */
    line-height: .9;
  }
  .space-copy{
    text-align:right;
    margin:0 0 8px;
    font-weight:700;
    color:#333;
    font-size: clamp(16px, 2.4vw, 18px);
  }
  .space-desc{
    text-align:right;
    margin:0;
    color:var(--muted);
    font-size: clamp(13px, 2.2vw, 15px);
    line-height:1.9;
  }

  /* カードの並び */
  .space-grid{
    margin-top:28px;
    display:grid;
    grid-template-columns: repeat(4, 1fr);
  }

  .space-card{
    background: var(--card-bg);
    border: 1px solid #707070;
    border-radius: 10px;
    box-shadow: var(--shadow);
    padding: 5px;
    margin: 10px;
  }
  .space-photo{
    position:relative;
    border-radius: 10px;
    overflow:hidden;
    aspect-ratio: 4 / 3;                 /* 画像比率を近似 */
    background: linear-gradient(180deg,#e9eef6,#e2eaf4); /* 画像が無いときのプレース */
  }
  .space-photo img{
    width:100%; height:100%;
    object-fit:cover; display:block;
  }

  .space-caption{
    margin:10px 6px 2px;
    text-align:center;
    font-size: clamp(13px, 2.2vw, 15px);
    font-weight:700;
    color:#333;
    letter-spacing:.02em;
  }

  /* レスポンシブ */
  @media (max-width: 1024px){
    .space-grid{ grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 560px){
    .space-head{ grid-template-columns: 1fr; }
    .space-copy, .space-desc{ text-align:left; }
    .space-grid{ grid-template-columns: 1fr; }
  }

  /* 見出し */
  .section-title{
    margin:0 0 18px;
    text-align:center;
    color:var(--title);
    font-weight:800;
    font-size: clamp(22px, 3.2vw, 32px);
    letter-spacing:.02em;
    color: #cb614b;
  }

  /* 「こんなお悩みを解決」バッジ */
  .solve-pill{
  transform: translateX(-19%);
    width:max-content;
    margin:0 auto 22px;
    background:#ffd98b;
    color:#5b4c2a;
    font-weight:700;
    font-size:20px;
    padding:10px 16px;
    border-radius:10px;
    box-shadow: 0 6px 16px rgba(0,0,0,.08);
    min-width: 250px;
  }

  .solve-pill::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: -12px;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-top-color: #ffe09a;            /* バッジと同色 */
}


  /* カード群 */
  .card{
    display:grid;
    grid-template-columns: 1.1fr 1.6fr; /* 画像：テキスト */
    gap:20px;
    align-items:center;
    background:#fff;
    border-radius: var(--card-radius);
    padding:14px;
    box-shadow: var(--shadow);
  }
  .card + .card{ margin-top:22px; }

  /* 画像 */
  .thumb{
    border-radius: 12px;
    overflow:hidden;
    aspect-ratio: 4/3;
    background: linear-gradient(180deg,#e9eef6,#e2eaf4); /* 画像が無い場合のプレース */
  }
  .thumb img{
    width:100%; height:100%;
    object-fit:cover; display:block;
  }

  /* テキスト側 */
  .lead{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:2px 0 10px;
  }

  /* 緑のチェック丸（SVG） */
  .check{
    flex:0 0 auto;
    width:26px; height:26px;
    margin-top:2px;
  }

  .card h3{
    margin:0;
    font-size: clamp(16px, 2.6vw, 18px);
    font-weight:800;
    line-height:1.6;
  }

  .card p{
    margin:0;
    color:#333;
    font-size: clamp(13px, 2.2vw, 15px);
    line-height:1.9;
    text-align: left;
  }

  .note{
    margin-top:10px;
    background:var(--note-bg);
    border:1px solid var(--note-br);
    border-radius:12px;
    padding:12px 14px;
    color:var(--muted);
    font-size: 14px;
    line-height:1.9;
    text-align: left;
  }

  /* レスポンシブ */
  @media (max-width: 900px){
    .card{
      grid-template-columns: 1fr;
      padding:12px;
    }
    .thumb{ aspect-ratio: 16/9; }
  }

  .owners{
    margin: 65px auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 26px;
  }

  /* パネル本体 */
  .panel{
    position: relative;
    background: var(--panel-bg);
    border-radius: var(--radius-xl);
    padding: 24px 22px 26px;
    box-shadow: var(--shadow);
    text-align: left;
  }

  /* 上部の帯（タブ） */
  .panel-tab{
    position: absolute;
    left: 28px;
    right: 28px;
    top: -35px;
    margin: 0 auto;
    width: fit-content;
    max-width: calc(100% - 56px);
    background: var(--tab-bg);
    color: var(--tab-tx);
    border-radius: 10px;
    padding: 10px 18px 12px;
    text-align: center;
    box-shadow: 0 6px 18px rgba(0,0,0,.08);
    font-weight: 800;
    line-height: 1.25;
    font-size: 24px;
  }
  .panel-tab small{
    display:block;
    font-size: 11px;
    opacity:.8;
    font-weight:700;
    margin-bottom: 2px;
    letter-spacing:.02em;
  }
  .panel-tab::after{
    content:"";
    position:absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -19px;
    border: 10px solid transparent;
    border-top-color: var(--tab-bg);  /* 吹き出しの三角 */
  }

  /* コンテンツ行 */
  .feat{
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 12px;
    align-items: start;
    padding: 16px 12px;
    margin-top: 30px;
  }
  .feat + .feat{
    border-top: 1px solid rgba(0,0,0,.05);
  }

  /* アイコン */
  .icon{
    width: 44px; height: 44px;
    margin-top: 4px;
    color: var(--accent);
    flex: 0 0 auto;
  }

  /* テキスト */
  .feat h3{
    margin: 2px 0 6px;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.6;
  }
  .feat p{
    margin:0;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.9;
  }

  /* レスポンシブ */
  @media (max-width: 900px){
    .owners{ grid-template-columns: 1fr; }
    .panel{ padding: 22px 16px 24px; margin-top: 45px; }
    .panel-tab{ left:16px; right:16px; }
  }


/* タイトル */
  .heading{
    text-align:center;
    margin:0 0 18px;
    font-weight:800;
    color:var(--title);
    letter-spacing:.04em;
    font-size:clamp(18px,2.3vw,22px);
  }

  /* 2×2 カードレイアウト */
  .grid{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap:22px;
  }

  .card-02{
    background: #fff9f1;
    border-radius:var(--radius);
    padding:18px 18px 16px;
    display:grid;
    grid-template-rows: auto auto;
    row-gap:12px;
    text-align: left;
  }

  .card-02 h3{
    margin:0 0 6px;
    font-size:clamp(16px,2.6vw,18px);
    font-weight:800;
    line-height:1.6;
  }
  /* 黄色見出しタグ */
  .card-02 .tag{
    display:inline-block;
    background:#ffdc8d;
    color:var(--tag-tx);
    font-weight:800;
    padding:6px 10px;
    border-radius:8px;
    margin-bottom:8px;
    font-size:clamp(14px,2.2vw,15px);
  }

  .card-02 p{
    margin:0 0 8px;
    color:#333;
    font-size:clamp(13px,2.2vw,15px);
    line-height:1.9;
  }


  /* 箇条書き（・）スタイル */
  .bullets{
    margin:6px 0 8px;
    padding-left:1.2em;
    list-style:none;
  }
  .bullets li{
    text-indent:-1.2em;
    padding-left:1.2em;
    margin:.2em 0;
  }
  .bullets li::before{
    content:"・";
    margin-right:.2em;
  }

  /* 画像 */
  .thumb{
    border-radius:var(--img-radius);
    overflow:hidden;
    aspect-ratio: 4 / 3;
    background:linear-gradient(180deg,#eceff4,#e3eaf4); /* 画像未設定時のプレース */
    margin: 0px;
  }
  .thumb img{
    width:100%; height:100%;
    object-fit:cover; display:block;
  }

  /* レスポンシブ */
  @media (max-width: 880px){
    .grid{ grid-template-columns: 1fr; }
  }


  .module{
    margin:24px auto 48px;
    background: var(--paper);
    border:2px solid var(--line);
    border-radius: 22px;
    box-shadow: var(--shadow);
    padding: 22px 18px 28px;
  }

.module .head-top{ display:flex; justify-content:space-between; gap:12px; color:#8e8b84; font-size:12px; margin-bottom:8px; padding:0 4px; }
.module .title{ text-align:center; margin:4px 0 14px; font-size: clamp(20px, 3.2vw, 28px); font-weight:800; letter-spacing:.02em; }
.module .lead{ margin:0 auto 16px; max-width: 880px; color:#444; text-align:center; line-height:1.9; font-size:15px; }

.module .visually-hidden{ position:absolute !important; width:1px;height:1px;margin:-1px;padding:0;border:0; clip:rect(0 0 0 0); clip-path:inset(50%); overflow:hidden; }

.module .tabsbar{
    background:#ffefc7; border:1px solid #f3d79a; border-radius:14px;
    padding:10px; display:flex; gap:10px; flex-wrap:wrap; align-items:center; position:sticky; top:0; z-index:2;
  }

.module .tab{
    display:flex; align-items:center; gap:10px;
    background:#fff7e3; border:1px solid #f3d79a; border-radius:12px; padding:10px 14px;
    line-height:1; cursor:pointer; user-select:none; font-weight:800; color:#463a2a;
    transition:transform .15s ease, background .2s ease, box-shadow .2s ease;
  }
.module .tab .num{ display:grid; place-items:center; width:22px; height:22px; border-radius:6px; background:#ffd98b; color:#4e3f21; font-size:12px; font-weight:900; }
.module .tab .name{ font-size:16px; letter-spacing:.02em; }
.module .season{ display:inline-flex; gap:6px; margin-left:6px; font-weight:800; font-size:12px; color:#6a5a33; background:#fff1bf; border:1px solid #f2d797; padding:4px 8px; border-radius:999px; }
.module .season .chip{ background:#fff; border:1px solid #f2d797; padding:2px 6px; border-radius:999px; }
.module .season.winter{ background:#ffe3d0; }
.module .season.winter .chip{ border-color:#f0c1a8; }

.module .panel{
    display:none; margin-top:14px; background:var(--card); border:1px solid var(--line);
    border-radius:var(--radius); box-shadow:var(--shadow); padding:16px;
  }

.module .wide-photos{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:10px 0 12px; }
.module .ph{ position:relative; border-radius:14px; overflow:hidden; aspect-ratio:16/9; background:linear-gradient(180deg,#e9eef6,#e1eaf5); }
.module .ph img{ width:100%; height:100%; object-fit:cover; display:block; }
.module .ph .tag{ position:absolute; right:10px; top:10px; background:#fff6d6; border:1px solid #f1dba0; color:#5b4c2a; font-weight:800; padding:6px 10px; border-radius:8px; font-size:12px; }

.module .subbar{ display:flex; align-items:center; gap:10px; margin:2px 0 8px; }
.module .subnum{ display:grid; place-items:center; width:26px; height:26px; border-radius:6px; background:#ffd98b; color:#4e3f21; font-size:13px; font-weight:900; }
.module .subname{ font-size:18px; font-weight:800; }
.module .subnote{ margin-left:auto; font-size:12px; color:#6a5a33; background:#fff6d6; border:1px solid #f1dba0; padding:6px 10px; border-radius:8px; }

.module .desc{ margin:0 0 12px; color:#333; line-height:1.9; font-size:15px; }

.module .mini-grid{ display:grid; gap:12px; grid-template-columns: repeat( auto-fill, minmax(210px,1fr) ); margin-top:6px; }
.module .mini{ background:#ffffff; border:1px solid #ececec; border-radius:14px; overflow:hidden; display:grid; grid-template-rows:auto auto; box-shadow:0 2px 8px rgba(0,0,0,.05); }
.module .mini .thumb{ aspect-ratio: 4/3; background:linear-gradient(180deg,#f0f4fa,#e7eef8); }
.module .mini .thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.module .mini .cap{ padding:10px 12px; font-weight:700; font-size:14px; color:#222; }
.module .mini .idx{ font-size:12px; color:#9a9a9a; margin-right:6px; }

.module .cta{ width:320px; height:56px; display:grid; place-items:center; margin:18px auto 6px; color:#fff; text-decoration:none; background:var(--cta); border-radius:999px; font-weight:800; font-size:18px; box-shadow:0 10px 24px rgba(200,92,69,.35), inset 0 0 0 4px #fff; }
.module .cta-note{ width:max-content; margin:0 auto 10px; font-size:12px; font-weight:700; color:var(--pillTxt); background:var(--pill); padding:6px 10px; border-radius:8px; border:1px solid #f3d79a; }

  /* トグル（inputは.module直下） */
  #tab-bbq:checked  ~ .tabsbar label[for="tab-bbq"],
  #tab-oyster:checked ~ .tabsbar label[for="tab-oyster"]{ background:#fff; transform:translateY(-1px); box-shadow:var(--shadow); }

  #tab-bbq:checked  ~ .content-top .panel.bbq,
  #tab-bbq:checked  ~ .content-bottom .panel.bbq{ display:block; }

  #tab-oyster:checked ~ .content-top .panel.oyster,
  #tab-oyster:checked ~ .content-bottom .panel.oyster{ display:block; }

  @media (max-width:860px){ .wide-photos{ grid-template-columns:1fr; } }

 .works{
    margin:32px auto 48px;
    padding:0 18px;
  }

  /* ヘッダー */
  .w-topline{
    color:#8d8d8d; font-size:12px; margin:0 0 6px; text-align: left;
  }
  .w-head{
    display:grid;
    grid-template-columns: 1fr 1.4fr;
    gap:16px;
    align-items:end;
  }
  .w-title{
    margin:0;
    font-weight:800;
    font-size: clamp(56px, 12vw, 120px); /* 大きな WORKS */
    letter-spacing:.06em;
    line-height:.9;
  }
  .w-desc{
    text-align:right;
    margin:0 0 10px;
    color:#333;
    line-height:1.9;
    font-size:clamp(13px,2.2vw,15px);
  }

  /* グリッド */
  .w-grid{
    margin-top:14px;
    display:grid;
    grid-template-columns: repeat(4, 1fr);
    gap:18px;
  }

  /* カード */
  .w-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    overflow:hidden;
  }
  .w-photo{
    position: relative;
    width: 100%;
    height: 200px;
    margin: 0;
  }
  .w-photo img{ width:100%; height:100%; object-fit:cover; display:block; }

  /* 位置ラベル（左上） */
  .loc{
    position:absolute; left:10px; top:10px;
    background:var(--loc-bg);
    border:1px solid var(--loc-br);
    color:#356; font-weight:700; font-size:12px;
    padding:6px 10px; border-radius:10px; box-shadow:0 2px 8px rgba(0,0,0,.06);
  }

  /* カテゴリチップ（写真の下辺） */
  .chips{
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }
  .chip{
    display:inline-block;
    padding:4px 8px;
    font-weight:800; font-size:12px; line-height:1;
    border-radius:999px; color:#3a3326;
    background:#eee; border:1px solid rgba(0,0,0,.05);
    box-shadow:0 1px 3px rgba(0,0,0,.08);
  }
  .chip.bbq{ background:var(--chip-bbq); color:#fff; }
  .chip.oyster{ background:var(--chip-oyster); color:#fff; }
  .chip.camp{ background:var(--chip-camp); color:#0f4021; }
  .chip.beer{ background:var(--chip-beer); color:#5b4c2a; }

  .w-body{ padding:12px 14px 16px; }
  .w-body h3{
    text-align: left;
    margin:2px 0 6px;
    font-size:16.5px; font-weight:800;
  }
  .w-body p{
    text-align: left;
    margin:0;
    color:#4b4b4b;
    font-size:14px; line-height:1.9;
  }

  /* レスポンシブ */
  @media (max-width: 1024px){
    .w-grid{ grid-template-columns: repeat(2, 1fr); }
    .w-head{ grid-template-columns: 1fr; }
    .w-desc{ text-align:left; }
  }
  @media (max-width: 560px){
    .w-grid{ grid-template-columns: 1fr; }
  }



  .effects{
    margin:30px auto 46px;
    padding:22px;
    background:var(--panel-bg);
    border-radius: 22px;
    box-shadow: var(--shadow);
  }

.effects .title{
    text-align:center;
    margin:0 0 18px;
    font-weight:800;
    font-size: clamp(18px,2.4vw,22px);
    letter-spacing:.06em;
  }

  /* 2×2 グリッド */
.effects .grid{
    display:grid;
    grid-template-columns: repeat(2, 1fr);
    gap:18px;
  }

.effects .card-03{
    text-align: center;
    background:var(--card-bg);
    border:1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding:20px 22px;
  }

.effects .icon{
    width:min(160px, 40%);
    height:auto;
    display:block;
    margin:6px auto 10px;
    color:var(--accent);
  }

.effects .card-03 h3{
    margin:6px 0 10px;
    font-size: clamp(16px,2.6vw,18px);
    font-weight:800;
    text-align:center;
    line-height:1.7;
  }

.effects .card-03 p{
    margin:0;
    color:#3a3a3a;
    font-size:clamp(13px,2.1vw,15px);
    line-height:1.95;
    text-align:center;
  }

  /* テキスト多い2枚は左寄せ */
.effects .card-03.rich h3, .card-03.rich p{ text-align:left; }

  @media (max-width: 820px){
  .effects .grid{ grid-template-columns: 1fr; }
  .effects .icon{ width:140px; }
  }

  /* 外枠パネル */
  .flow-wrap{
    margin:32px auto 48px;
    padding:22px 18px 28px;
    background: #fff9f0;
    border:2px solid var(--line);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    position:relative;
  }

  /* 上の細いライン＆左右ラベル */
.flow-wrap .flow-top{
    display:flex; justify-content:space-between; align-items:center;
    padding:10px 6px 12px;
    border-bottom:1px solid var(--head-border);
    color:#8f8c86; font-size:12px;
  }

  /* タイトルとリード */
.flow-wrap .flow-title{
    margin:18px 0 6px;
    text-align:center;
    font-size:clamp(22px,3.2vw,30px);
    font-weight:800;
    letter-spacing:.02em;
  }
.flow-wrap .flow-lead{
    margin:0 auto 18px;
    max-width: 880px;
    text-align:center;
    color:#444;
    line-height:1.95;
    font-size:15px;
  }

  /* 4ステップのグリッド */
.flow-wrap .steps{
    display:grid;
    grid-template-columns: repeat(4, 1fr);
    gap:16px;
    margin-top:6px;
  }

.flow-wrap .step{
    background:#fff;
    border:1px solid #ececec;
    border-radius:16px;
    overflow:hidden;
    box-shadow:var(--shadow);
  }

  /* カラーヘッダー */
.flow-wrap .step-head{
    padding:12px 14px;
    color:#3a3326;
    display:flex; align-items:center; gap:10px;
  }
.flow-wrap .step-head .kicker{
    display:grid;
    place-items:center;
    width:56px; height:28px;
    font-weight:900; font-size:12px;
    background:rgba(255,255,255,.65);
    border:1px solid rgba(0,0,0,.08);
    border-radius:6px;
  }
.flow-wrap .step-head .num{
    font-weight:900; font-size:20px; letter-spacing:.02em;
  }
.flow-wrap .step-head .ttl{
    margin-left:auto;      /* 数字の右に寄せたいときは削除 */
    font-weight:800; font-size:16px;
  }

  /* 見出しの色割り当て */
.flow-wrap .step.s1 .step-head{ background:var(--s1); }
.flow-wrap .step.s2 .step-head{ background:var(--s2); }
.flow-wrap .step.s3 .step-head{ background:var(--s3); }
.flow-wrap .step.s4 .step-head{ background:var(--s4); }

  /* イラスト置き場（任意の画像に差替え可） */
.flow-wrap .illu{
    aspect-ratio: 16/10;
    display:grid; place-items:center;
    color:#9aa6b2; font-size:12px;
  }
.flow-wrap .illu img{ width:100%; height:100%; object-fit:cover; display:block; }

  /* 説明文 */
.flow-wrap .step-body{
    padding:12px 14px 16px;
  }
.flow-wrap .step-body p{
    margin:0;
    color:#333;
    line-height:1.9;
    font-size:14px;
  }

  /* レスポンシブ */
  @media (max-width: 980px){
.flow-wrap .steps{ grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 560px){
.flow-wrap .steps{ grid-template-columns: 1fr; }
  }

/* バナー全体 */
  .land-banner{
    margin:26px auto 40px;
    border-radius: var(--radius);
    overflow:hidden;
    box-shadow: var(--shadow);
    position:relative;
    /* ←お手持ちの写真に差し替えてください */
    background-image:
      linear-gradient(90deg, rgba(200,92,69,0) 36%, rgba(200,92,69,.95) 62%, rgba(200,92,69,.98) 100%),
      url("images/bnr-btn-01.png");
    background-size: cover;
    background-position: 20% center;
    min-height: 360px;
  }

     .land-banner{ background-image:url("images/bnr-btn-01.png"); background-size:cover; }


  /* 右側のテキストブロック */
  .land-inner{
    position:absolute; inset:0;
    display:grid; place-items:center end; /* 右側に寄せる */
    padding: 24px 36px;
    color:#fff;
    text-align:right;
  }
  .land-copy{
    width: min(520px, 90%);
  }

  .land-title{
    margin:0 0 10px;
    font-weight:800;
    letter-spacing:.04em;
    font-size:clamp(18px,2.4vw,22px);
  }
  .land-lead{
    margin:0 0 18px;
    line-height:1.95;
    font-size:clamp(14px,2.2vw,16px);
  }

  /* CTA */
  .cta-wrap-btn{
    display:inline-grid;
    justify-items:center;
    gap:8px;
  }
  .cta-badge-btn{
    background:var(--badge);
    color:var(--badgeTx);
    font-weight:700;
    font-size:12px;
    padding:8px 12px;
    border-radius:10px;
    border:1px solid rgba(0,0,0,.08);
    box-shadow:0 3px 10px rgba(0,0,0,.12);
    margin-bottom: -26px;
    z-index: 100;
  }
  .cta-btn-btn{
    display:inline-grid; place-items:center;
    min-width: 320px;
    height: 64px;
    padding:0 28px;
    border-radius:999px;
    color:#fff; text-decoration:none;
    font-weight:800; font-size:20px; letter-spacing:.02em;
    background: linear-gradient(var(--terracotta), var(--terracotta-d));
    border:3.5px solid #fff;
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.2), 0 10px 24px rgba(0,0,0,.25);
  }
  .cta-btn-btn:hover{ filter:brightness(1.03); }
  .cta-btn-btn:active{ transform:translateY(1px); }

  /* 角丸感を強めたい場合の外縁（オプション） */
  .land-banner::after{
    content:"";
    position:absolute; inset:0;
    border-radius: var(--radius);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
    pointer-events:none;
  }

  /* レスポンシブ */
  @media (max-width: 780px){
    .land-banner{ min-height: 320px; background-position: 30% center; }
    .land-inner{ padding:18px 20px; }
    .cta-btn-btn{ min-width: 260px; height: 58px; font-size:18px; }
  }
  @media (max-width: 520px){
    .land-banner{
      /* モバイルは覆いを強めて文字を読みやすく */
      background-image:
        linear-gradient(90deg, rgba(200,92,69,.25) 0%, rgba(200,92,69,.96) 48%, rgba(200,92,69,.98) 100%),
        url("images/bnr-btn-01.png");
      background-position: center;
      min-height: 300px;
    }
    .land-copy{ width:100%; }
    .land-lead{ font-size:14px; }
  }



/* ===== Footer ===== */
  .site-footer{
    background: var(--footerbg);
    color: #fff;
  }
  .footer-inner{
    width:min(100%,var(--footermax));
    margin:0 auto;
    padding:28px 18px 34px;
    display:grid;
    grid-template-columns: 220px 1fr 1fr 1fr 1fr 280px; /* 左ロゴ／4カラム／右CTA */
    gap:24px;
    align-items:start;
  }

  /* ロゴ */
  .footer-logo{
    display:flex;align-items:flex-start;
  }
  .footer-logo img{
    width:180px;height:auto;display:block;
    border-radius:6px;
    box-shadow:0 2px 8px rgba(0,0,0,.25);
  }
  /* 画像がないときのプレースホルダ */
  .footer-logo .logo-ph{
    width:180px;height:66px;border-radius:6px;
    background:linear-gradient(180deg,#a76b53,#8f553e);
    display:grid;place-items:center;
    font-weight:800;color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.25);
  }

  /* 各カラム */
  .f-col h4{
    margin:0 0 10px;
    font-weight:900;font-size:16px;color:#fff;
  }
  .f-list{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
  .f-list li{line-height:1.6;}
  .f-list a{
    color:#fff;text-decoration:none;font-weight:800;display:inline-block;
  }
  .f-list a::before{
    content:"→";margin-right:.6em;color:#fff;font-weight:900;
  }

  /* 「各種サービス」のサブ項目 */
  .f-sub{list-style:none;margin:8px 0 0 1.3em;padding:0;display:grid;gap:8px;}
  .f-sub li{color:#fff;}
  .f-sub a{font-weight:700;color:#fff;text-decoration:none;}
  .f-sub a::before{content:"—";margin-right:.6em;color:#fff;font-weight:900;}

  /* 右端の予約ボタン */
.site-footer .cta-box{
    justify-self:end;
    margin-top:10px;
  }
.site-footer .cta-btn{
    position:relative;
    display:block;
    width:100%;           /* 280px カラムいっぱい */
    min-height:64px;
    padding:14px 54px 14px 18px;
    background:var(--footercta);
    color:#2b2100;
    font-weight:900;
    text-align:center;
    text-decoration:none;
    border-radius:12px;
    border:3px solid var(--footercta-border);
    box-shadow:0 6px 18px rgba(0,0,0,.3);
  }
.site-footer .cta-btn .arrow{
    position:absolute;right:-15px;top:50%;transform:translateY(-50%);
    width:34px;height:34px;border-radius:999px;
    background:#000;color:#fff;
    display:grid;place-items:center;font-weight:900;
  }

  /* コピーライト帯（白・角丸） */
  .copyright{
    background:#fff;color:#000;
    width:min(100%,var(--footermax));
    margin:0 auto 14px;
    border-top-left-radius:12px;border-top-right-radius:12px;
    text-align:center;padding:12px 10px;font-weight:700;
  }

  /* レスポンシブ */
  @media (max-width:1100px){
    .footer-inner{
      grid-template-columns: 1fr 1fr; /* ロゴ＋CTAは別行へ */
      grid-template-areas:
        "logo c1"
        "c2  c3"
        "c4  c5"
        "cta cta";
    }
    .footer-logo{grid-area:logo;margin-bottom:6px}
.site-footer .cta-box{grid-area:cta;justify-self:center;width:280px}
  }