/* ===========================================================
   yutayoi テーマ — PostCSS エントリーポイント
   このファイルは @import のみ。スタイルは各パーシャルに記述する。
   出力: htdocs/css/style.css（npm run build / watch）
   =========================================================== */

/* --- テーマトークン（カスタムプロパティ・ブレイクポイント）--- */

/* ===========================================================
   カラートークン — ゆたよい J案（生成り×漆黒×朱×金）
   ハードコードした HEX 値は使わず、必ずこのトークンを参照する。
   =========================================================== */

:root {
    /* ブランド（朱・shu） */
    --color-primary: #8b1a1a;       /* 朱：ボタン・見出しアクセント・リンク */
    --color-primary-dark: #6d1313;  /* 朱（濃） */
    --color-accent: #8b1a1a;
    --color-gold: #d8b48a;          /* 金：夜セクションのアクセント */
    --color-forest: #2c5f3e;        /* 杜の緑 */
    --color-forest-dark: #1e4a2e;
    --color-line-green: #06c755;    /* LINE ブランドカラー */
    --color-line-green-text: #067a3a; /* LINE 緑の文字用（淡色地でのコントラスト確保） */

    /* 背景（昼＝生成り系 / 夜＝漆黒系） */
    --color-bg-base: #f7f4ee;       /* 生成り（昼・基本背景） */
    --color-bg2: #efe9dc;           /* 生成り（濃） */
    --color-cream: #ede9df;         /* クリーム */
    --color-bg-footer: #1f1b16;     /* フッター背景（漆黒） */
    --color-dark: #1f1b16;          /* 漆黒（夜） */
    --color-dark2: #2c2820;         /* 焦げ茶 */
    --color-card: #ffffff;          /* カード白 */
    --color-card-dark: #262019;     /* カード（夜） */
    --color-lightest: #ffffff;
    --color-darkest: #14110d;

    /* テキスト（ink） */
    --color-text: #1e1a14;          /* 本文（ink） */
    --color-ink2: #5c5347;          /* 補助テキスト */
    --color-ink3: #8a7e6e;          /* 弱・キャプション・日付 */
    --color-link: #8b1a1a;
    --color-warning: #dd0000;
    --color-mute: #b3a994;          /* 淡色：年表の廃止・前身項目 / フォームプレースホルダ */
    --color-placeholder: var(--color-mute); /* フォーム入力欄プレースホルダ */
    --color-ink-on-gold: #3a0d0a;   /* 金（gold）地の上の文字：料金おすすめバッジ */

    /* 罫線・区切り */
    --color-line: #d4ccbc;                  /* 昼の罫線 */
    --color-line-dark: #3d3630;             /* 夜の罫線 */
    --color-line2: rgba(247, 244, 238, .16);/* 夜セクション上の淡い罫線 */
    --color-band: #e8e1d3;                  /* 蔵巡りバス帯など */

    /* エフェクト */
    --color-alpha-head: rgba(247, 244, 238, .94); /* ヘッダー背景（半透明） */
    --color-alpha-head-scrolled: rgba(247, 244, 238, .98); /* ヘッダー背景（スクロール時・やや濃く） */
    --gradient-hero: linear-gradient(90deg, rgba(20, 17, 13, .88) 0%, rgba(20, 17, 13, .55) 46%, rgba(20, 17, 13, .15) 100%);
    --gradient-hero-sp: linear-gradient(180deg, rgba(20, 17, 13, .62) 0%, rgba(20, 17, 13, .42) 30%, rgba(20, 17, 13, .86) 100%);
    --shadow01: 0px 6px 20px rgba(40, 30, 16, .05);
    --shadow-card: 0 6px 20px rgba(40, 30, 16, .05);
    --shadow-price: 0 10px 30px rgba(40, 30, 16, .05);          /* 料金カード（通常） */
    --shadow-price-feature: 0 18px 40px rgba(124, 24, 15, .22); /* 料金カード（おすすめ・朱） */

    /* カテゴリタグ（背景 / 文字） */
    --tag-sake-bg: #fae8e8;   --tag-sake-fg: #6d1313;
    --tag-shochu-bg: #fff0e0; --tag-shochu-fg: #7a4a00;
    --tag-craft-bg: #e8f0fa;  --tag-craft-fg: #1a3a6a;
    --tag-sparkling-bg: #fdf6e0; --tag-sparkling-fg: #8a6d00; /* 金・シャンパン系 */
    --tag-wine-bg: #f5e8f0;      --tag-wine-fg: #6d1a4a;      /* ワインレッド/紫系 */
    --tag-whisky-bg: #f7ecd9;    --tag-whisky-fg: #6b4200;    /* 琥珀・アンバー系 */
    --tag-liqueur-bg: #e0f2ef;   --tag-liqueur-fg: #0d5c52;   /* ティール系 */
    --tag-doburoku-bg: #f6f1e4;  --tag-doburoku-fg: #6b5a2e;  /* 乳白・生成り系（どぶろく） */
    --tag-event-bg: #f0f7e8;  --tag-event-fg: #2a5010;
    --tag-report-bg: #f7f0e8; --tag-report-fg: #5c3a10;
    --tag-book-bg: #f3ece2;   --tag-book-fg: #5c3a10;

    /* カテゴリタグ（活動紹介の追加カテゴリ） */
    --tag-forest-bg: #e8f2ec; --tag-forest-fg: #1e4a2e; /* 継承 */
    --tag-bar-bg: #fbeede;    --tag-bar-fg: #7a4a00;    /* 地酒バー */
    --tag-info-bg: #efeaf7;   --tag-info-fg: #4a2a7a;   /* 情報発信 */
    --tag-plan-bg: #efeae2;   --tag-plan-fg: #7a6f5c;   /* 検討中 */

    /* カテゴリタグ（お知らせ） */
    --tag-news-bg: #fae8e8;   --tag-news-fg: #6d1313;   /* NEWS（赤） */
    --tag-media-bg: #e8f0fa;  --tag-media-fg: #1a3a6a;  /* MEDIA（青） */
}

/* ===========================================================
   フォントトークン — ゆたよい J案
   Google Fonts（Zen Kaku Gothic New / Shippori Mincho /
   Noto Serif JP / Noto Sans JP / JetBrains Mono）を読み込む。
   読み込みは 100_top.html / header の <link>（将来は functions.php）で行う。
   =========================================================== */

:root {
    /* 本文・UI（ゴシック） */
    --font-family-primary: "Zen Kaku Gothic New", "Noto Sans JP",
        "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;

    /* 見出し（明朝） — デザイン上の .ser */
    --font-family-serif: "Shippori Mincho", "Noto Serif JP",
        "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "游明朝", "YuMincho", serif;

    /* 英字ラベル・日付（等幅） — デザイン上の .mono */
    --font-family-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
}

/* ===========================================================
   レイアウトトークン・ブレイクポイント — ゆたよい J案
   PC は最大幅 1280px・左右 48px、SP は左右 16〜22px。
   =========================================================== */

/* --- ブレイクポイント（@custom-media）--- */

/* PC・タブレット以上 */

/* スマートフォン */

/* タブレット */

/* タブレット（狭め）: ヘッダーナビをさらに詰める */

:root {
    /* 流体計算の基準ピクセル数（PC）。SP は --mq-sp で上書き */
    --width-base: 1280;

    /* コンテンツ最大幅・左右パディング */
    --width-content: 1280px;
    --pad-side: 48px;      /* PC セクション左右パディング */
    --pad-side-sp: 16px;   /* SP セクション左右パディング */

    /* パディング込みの外枠幅。
       単一要素に padding-inline: var(--pad-side) と併用すると、
       box-sizing: border-box 環境でもコンテンツ列が正確に --width-content（1280px）に揃う。
       （外側パディング＋内側 max-width で組むセクションと同じ列幅になる） */
    --width-frame: calc(var(--width-content) + var(--pad-side) * 2);

    /* レイアウトヘルパー */
    --margin-main: 0 auto;
    --margin-not-parent: 0 calc(50% - 50vw); /* 親を突き抜けて全幅へ */

    /* トランジション */
    --trans-hover: all 300ms;
    --ease: cubic-bezier(.2, .7, .3, 1);
    --dur-ui: 200ms;     /* hover・focus・タブ切替など細かいUI */
    --dur-switch: 400ms; /* ヘッダーバーの差し替えなどモード切替アニメーション */
    --dur-media: 800ms;  /* 写真ズームなどメディア系トランジション */
    --trans-header: transform var(--dur-switch) var(--ease);
}

@media (max-width: 750px) {
    :root {
        --width-base: 390;       /* SP 基準幅（デザイン実機幅） */
        --pad-side: var(--pad-side-sp);
    }
}

/* --- ベース --- */

/* ===========================================================
   normalize / リセット
   ブラウザ間の既定スタイル差を吸収する最小リセット。
   =========================================================== */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    text-size-adjust: 100%;
}

body {
    margin: 0;
    line-height: 1.5;
    /* 全幅（100vw）背景の疑似要素がスクロールバー幅分はみ出すことによる
       横スクロールを抑止。overflow-x: clip はスクロールコンテナを作らないため
       position: sticky（ヘッダーバー）を壊さない。 */
    overflow-x: clip;
}

h1, h2, h3, h4, h5, h6,
p, figure, blockquote, dl, dd {
    margin: 0;
}

ul, ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

a {
    color: inherit;
    text-decoration: none;
}

img,
picture,
video,
svg {
    display: block;
    max-width: 100%;
    height: auto;
}

button,
input,
select,
textarea {
    font: inherit;
    color: inherit;
}

button {
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* ===========================================================
   汎用スタイル・ユーティリティ — ゆたよい J案
   1rem = 10px（font-size: 62.5%）で管理する。
   =========================================================== */

html {
    font-size: 62.5%; /* 1rem = 10px */
}

body {
    font-family: var(--font-family-primary);
    font-size: 1.5rem;
    line-height: 1.8;
    letter-spacing: .02em;
    color: var(--color-ink2);
    background: var(--color-bg-base);
    -webkit-font-smoothing: antialiased;
    font-feature-settings: "palt" 1;
    font-variant-numeric: tabular-nums;
}

/* フォーカスリング（キーボード操作時のみ表示） */

:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

/* PC では電話リンクを無効化 */

@media (min-width: 751px) {
    a[href^="tel:"] {
        pointer-events: none;
    }
}

/* --- フォントヘルパー（デザインの .ser / .mono に対応）--- */

.ser {
    font-family: var(--font-family-serif);
}

.mono {
    font-family: var(--font-family-mono);
    font-weight: 500;
}

/* --- レイアウトコンテナ --- */

.l-container {
    max-width: var(--width-content);
    margin: var(--margin-main);
    padding-inline: var(--pad-side);
}

/* セクション共通：左右パディング・下境界線 */

.l-section {
    padding-inline: var(--pad-side);
    border-bottom: 1px solid var(--color-line);
}

/* --- 矢印リンク（テキスト＋fa-arrow-right）--- */

.c-arrow-link {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    color: var(--color-primary);
    font-size: 1.4rem;
}

.c-arrow-link i {
        font-size: 1.1rem;
    }

/* --- 長い矢印（リスト行の右端）：軸＋矢羽根。hover で軸が伸びて shu に --- */

.c-row-arrow {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    width: 4.6rem;
    height: 1.4rem;
    color: var(--color-ink3);
}

.c-row-arrow::before {
        content: "";
        display: block;
        width: 3.4rem;
        height: 1px;
        background: currentColor;
        transition: width var(--dur-ui) var(--ease), background-color var(--dur-ui) var(--ease);
    }

.c-row-arrow::after {
        content: "";
        flex-shrink: 0;
        width: .7rem;
        height: .7rem;
        margin-left: -.45rem;
        border-top: 1px solid currentColor;
        border-right: 1px solid currentColor;
        transform: rotate(45deg);
        transition: border-color var(--dur-ui) var(--ease);
    }

@media (min-width: 751px) {
        a:hover .c-row-arrow,
        button:hover .c-row-arrow {
            color: var(--color-primary);
        }

            a:hover .c-row-arrow::before, button:hover .c-row-arrow::before { width: 4.2rem; }
    }

/* --- 外部サイトリンク：末尾に14x14pxの飾り矢印 --- */

.c-ext-link::after {
        content: "\2197"; /* ↗ */
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 1.4rem;
        height: 1.4rem;
        margin-left: .6rem;
        border: 1px solid currentColor;
        border-radius: 2px;
        font-size: 1rem;
        line-height: 1;
        vertical-align: middle;
    }

/* --- 装飾テクスチャ：紙目（cream/bg セクション用・multiply）--- */

.t-washi {
    position: relative;
}

.t-washi::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        pointer-events: none;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E");
        background-size: 120px 120px;
        mix-blend-mode: multiply;
        opacity: .5;
    }

.t-washi > * { position: relative; z-index: 1; }

/* --- 矢印（→）アイコン：リンク/ボタン hover でわずかに右へスライド --- */

/* --arrow-dy は字面の上寄りを補正する縦オフセット（各コンポーネントが指定）。
   hover の translateX と合成して、hover 時に縦位置がズレないようにする。 */

.fa-arrow-right {
    transition: transform 300ms;
    transform: translate(0, var(--arrow-dy, 0));
}

@media (min-width: 751px) {
    a:hover .fa-arrow-right,
    button:hover .fa-arrow-right,
    .c-btn:hover .fa-arrow-right {
        transform: translate(.4rem, var(--arrow-dy, 0));
    }
}

/* --- 表示出し分け（隠す側のみ !important・表示側は要素本来の display を維持）--- */

@media (min-width: 751px) {
    .sp-only {
        display: none !important;
    }
}

@media (max-width: 750px) {
    .pc-only {
        display: none !important;
    }
}

/* --- スクロールロック（ドロワー展開時に body へ付与）--- */

body.is-drawer-open {
    overflow: hidden;
}

/* ===========================================================
   スクロールイン演出（.js-reveal セクションを .is-inview でふわっと表示）
   セクション単位でフェードイン（要素別の stagger は行わない）。
   .is-anim（JS が <html> に付与）配下でのみ隠す＝no-JS では常に表示。
   =========================================================== */

.is-anim .js-reveal {
    opacity: 0;
    transform: translateY(3rem);
    transition: opacity 700ms ease, transform 700ms ease;
    will-change: opacity, transform;
}

.is-anim .js-reveal.is-inview {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    .is-anim .js-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* --- 共通アトム --- */

/* ===========================================================
   .c-btn — ボタン（朱primary / ゴースト / アウトライン / 矢印付き）
   =========================================================== */

.c-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 1.5rem 3rem;
    font-size: 1.45rem;
    letter-spacing: .04em;
    border-radius: 2px;
    border: 1px solid transparent;
    cursor: pointer; /* CF7 の submit（input/button 要素）でも指マークにする */
    transition: var(--trans-hover);
}

.c-btn i {
        font-size: 1.1rem;
        /* Font Awesome の矢印グリフは字面が上寄りのため、わずかに下げて視覚的に中央へ。
           hover の translateX と合成させるため transform ではなく --arrow-dy で指定。 */
        line-height: 1;
        --arrow-dy: .08em;
    }

.c-btn--primary {
        background: var(--color-primary);
        color: #fff;
        border-color: var(--color-primary);
    }

@media (min-width: 751px) {
            .c-btn--primary:hover {
                background: var(--color-primary-dark);
            }
        }

.c-btn--ghost {
        background: rgba(255, 255, 255, .06);
        color: #fff;
        border-color: rgba(255, 255, 255, .5);
    }

@media (min-width: 751px) {
            .c-btn--ghost:hover {
                background: rgba(255, 255, 255, .14);
            }
        }

.c-btn--outline {
        background: transparent;
        color: var(--color-text);
        border-color: var(--color-text);
    }

@media (min-width: 751px) {
            .c-btn--outline:hover {
                background: var(--color-text);
                color: #fff;
            }
        }

.c-btn--block {
        display: flex;
        width: 100%;
    }

/* ===========================================================
   .c-tag — カテゴリタグ（種別で配色）
   =========================================================== */

.c-tag {
    display: inline-block;
    font-family: var(--font-family-mono);
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: .08em;
    padding: .4rem 1.1rem;
    border-radius: 2px;
    background: var(--tag-report-bg);
    color: var(--tag-report-fg);
    border: 1px solid color-mix(in srgb, var(--tag-report-fg) 33%, transparent);
}

.c-tag--sake   { background: var(--tag-sake-bg);   color: var(--tag-sake-fg);   border-color: color-mix(in srgb, var(--tag-sake-fg) 33%, transparent); }

.c-tag--shochu { background: var(--tag-shochu-bg); color: var(--tag-shochu-fg); border-color: color-mix(in srgb, var(--tag-shochu-fg) 33%, transparent); }

.c-tag--craft  { background: var(--tag-craft-bg);  color: var(--tag-craft-fg);  border-color: color-mix(in srgb, var(--tag-craft-fg) 33%, transparent); }

.c-tag--sparkling { background: var(--tag-sparkling-bg); color: var(--tag-sparkling-fg); border-color: color-mix(in srgb, var(--tag-sparkling-fg) 33%, transparent); }

.c-tag--wine      { background: var(--tag-wine-bg);      color: var(--tag-wine-fg);      border-color: color-mix(in srgb, var(--tag-wine-fg) 33%, transparent); }

.c-tag--whisky    { background: var(--tag-whisky-bg);    color: var(--tag-whisky-fg);    border-color: color-mix(in srgb, var(--tag-whisky-fg) 33%, transparent); }

.c-tag--liqueur   { background: var(--tag-liqueur-bg);   color: var(--tag-liqueur-fg);   border-color: color-mix(in srgb, var(--tag-liqueur-fg) 33%, transparent); }

.c-tag--doburoku  { background: var(--tag-doburoku-bg);  color: var(--tag-doburoku-fg);  border-color: color-mix(in srgb, var(--tag-doburoku-fg) 33%, transparent); }

.c-tag--event  { background: var(--tag-event-bg);  color: var(--tag-event-fg);  border-color: color-mix(in srgb, var(--tag-event-fg) 33%, transparent); }

.c-tag--report { background: var(--tag-report-bg); color: var(--tag-report-fg); border-color: color-mix(in srgb, var(--tag-report-fg) 33%, transparent); }

.c-tag--book   { background: var(--tag-book-bg);   color: var(--tag-book-fg);   border-color: color-mix(in srgb, var(--tag-book-fg) 33%, transparent); }

.c-tag--forest { background: var(--tag-forest-bg); color: var(--tag-forest-fg); border-color: color-mix(in srgb, var(--tag-forest-fg) 33%, transparent); }

.c-tag--bar    { background: var(--tag-bar-bg);    color: var(--tag-bar-fg);    border-color: color-mix(in srgb, var(--tag-bar-fg) 33%, transparent); }

.c-tag--info   { background: var(--tag-info-bg);   color: var(--tag-info-fg);   border-color: color-mix(in srgb, var(--tag-info-fg) 33%, transparent); }

.c-tag--plan   { background: var(--tag-plan-bg);   color: var(--tag-plan-fg);   border-color: color-mix(in srgb, var(--tag-plan-fg) 33%, transparent); }

.c-tag--news   { background: var(--tag-news-bg);   color: var(--tag-news-fg);   border-color: color-mix(in srgb, var(--tag-news-fg) 33%, transparent); }

.c-tag--media  { background: var(--tag-media-bg);  color: var(--tag-media-fg);  border-color: color-mix(in srgb, var(--tag-media-fg) 33%, transparent); }

@media (max-width: 750px) {

.c-tag {
        font-size: .95rem;
        padding: .3rem .9rem
}
    }

/* カード面のカテゴリ表示：塗りバッジではなく角括弧テキスト（PICK UP 用） */

.c-tag--bracket {
        background: none;
        border: none;
        padding: 0;
        font-size: 1.1rem;
        color: var(--color-primary); /* ］ */
    }

.c-tag--bracket::before { content: "\FF3B"; }

/* ［ */

.c-tag--bracket::after  { content: "\FF3D"; }

/* 白地・枠線のみのアウトラインバッジ（PRESS HUB の情報源表示） */

.c-tag--outline {
        background: #fff;
        color: var(--color-primary);
        border: 1px solid color-mix(in srgb, var(--color-primary) 55%, transparent);
        font-size: 1.15rem;
    }

/* ===========================================================
   .c-sec-head — セクション見出し（朱の縦バー＋英ラベル＋明朝）
   .c-sec-label — 簡易見出し（英ラベル小＋明朝）
   =========================================================== */

.c-sec-head {
    display: flex;
    gap: 2.2rem;
}

.c-sec-head__bar {
        flex-shrink: 0;
        width: 3px;
        margin: .4rem 0;
        background: var(--color-primary);
    }

.c-sec-head__en {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .26em;
        color: var(--color-primary);
        margin-bottom: 1rem;
    }

.c-sec-head__ttl {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 3.2rem;
        line-height: 1.3;
        font-weight: 600;
        letter-spacing: .06em;
        color: var(--color-text);
    }

.c-sec-head__sub {
        margin: 1.2rem 0 0;
        font-size: 1.4rem;
        color: var(--color-ink2);
    }

/* 夜セクション用 */

.c-sec-head--dark .c-sec-head__ttl { color: #fff; }

.c-sec-head--dark .c-sec-head__sub { color: rgba(247, 244, 238, .7); }

.c-sec-head--dark .c-sec-head__en  { color: var(--color-gold); }

/* 中央寄せ */

.c-sec-head--center {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 0;
    }

.c-sec-head--center .c-sec-head__bar { display: none; }

.c-sec-head--center .c-sec-head__en {
            display: block;
            font-size: 1.2rem;
            letter-spacing: .24em;
            margin-bottom: 1.2rem;
        }

.c-sec-head--center .c-sec-head__ttl { font-size: 3rem; }

@media (max-width: 750px) {

.c-sec-head {
        gap: 1.3rem
}

        .c-sec-head__en { font-size: 1rem; letter-spacing: .22em; margin-bottom: .8rem; }
        .c-sec-head__ttl { font-size: 2.5rem; }
        .c-sec-head__sub { font-size: 1.25rem; }

        .c-sec-head--center .c-sec-head__ttl { font-size: 1.9rem; letter-spacing: .02em; }
    }

/* 英ラベル小＋明朝見出し（MISSION など） */

.c-sec-label__en {
        display: block;
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .26em;
        color: var(--color-primary);
    }

.c-sec-label__ttl {
        margin: 1.2rem 0 0;
        font-family: var(--font-family-serif);
        font-size: 3.4rem;
        line-height: 1.4;
        font-weight: 500;
        letter-spacing: .04em;
        color: var(--color-text);
    }

@media (max-width: 750px) {
        .c-sec-label__en { font-size: 1rem; letter-spacing: .22em; }
        .c-sec-label__ttl { font-size: 2.8rem; line-height: 1.5; }
    }

/* ===========================================================
   .c-breadcrumb — パンくず（ヒーロー上部の暗色帯）
   =========================================================== */

.c-breadcrumb {
    position: relative;
    z-index: 2;
    padding: 1.4rem var(--pad-side);
    background: rgba(20, 17, 13, .82);
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    font-family: var(--font-family-mono);
    font-size: 1.1rem;
    letter-spacing: .08em;
}

.c-breadcrumb__list {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        max-width: var(--width-content);
        margin: 0 auto;
        padding: 0;
        list-style: none;
    }

.c-breadcrumb__item {
        color: rgba(247, 244, 238, .72);
    }

.c-breadcrumb__item:not(:last-child)::after {
            content: ">";
            margin: 0 1rem;
            color: rgba(247, 244, 238, .4);
        }

.c-breadcrumb__item[aria-current="page"] {
            color: #fff;
        }

.c-breadcrumb__link {
        color: inherit;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-breadcrumb__link:hover { color: #fff; }
        }

/* メインビジュアル（ヒーロー）を持たないページ用：
       重なる写真がないため半透明では明るく見える。不透明の濃色バーで単独配置する。 */

.c-breadcrumb--solid {
        position: static;
        background: var(--color-dark);
    }

@media (max-width: 750px) {

.c-breadcrumb {
        padding: 1.1rem var(--pad-side);
        font-size: 1rem
}
    }

/* --- レイアウトコンポーネント --- */

/* ===========================================================
   .c-header — ユーティリティ帯＋グローバルナビ／SP ハンバーガー＋ドロワー
   =========================================================== */

.c-header {
    /* ボックスを消し、utility と bar を body 直下のフローに展開する。
       これにより sticky な __bar の粘着範囲がページ全体になる
       （utility は通常フローで流れ、隠す/出すの対象外）。 */
    display: contents;
}

/* ── 上部ユーティリティ帯（漆黒・PC のみ）── */

.c-header__utility {
        display: flex;
        align-items: center;
        gap: 1.4rem;
        /* 要素自体を100%幅にして背景を直接敷き、中身だけ padding で --width-content に中央寄せする。
           50%+translateX(-50%)+100vw 系のトリックは vw がスクロールバー幅を含む一方、
           body の overflow-x: clip はスクロールバー手前（body の実際の幅）で切ってしまい、
           縦スクロールが発生するページで右端に隙間ができるため使わない。 */
        padding-block: .2rem;
        padding-inline: max(var(--pad-side), calc((100% - var(--width-content)) / 2));
        color: rgba(247, 244, 238, .7);
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .06em;
        background: var(--color-dark);
        max-height: 4rem;
        overflow: hidden;
        opacity: 1;
        transition: max-height var(--dur-ui) var(--ease), padding-block var(--dur-ui) var(--ease), opacity var(--dur-ui) var(--ease);
    }

/* スクロールで折り畳む */

body.is-scrolled .c-header__utility {
            max-height: 0;
            padding-block: 0;
            opacity: 0;
        }

.c-header__org {
        margin-right: auto;
    }

.c-header__sns {
        display: flex;
        align-items: center;
        gap: 1.4rem;
        font-size: 1.4rem;
    }

.c-header__sns-link {
        color: rgba(247, 244, 238, .7);
        transition: var(--trans-hover);
    }

.c-header__sns-link--line { color: var(--color-line-green); }

@media (min-width: 751px) {
            .c-header__sns-link:hover { color: #fff; }
        }

/* ── メインナビ帯 ── */

.c-header__bar {
        /* 粘着位置をバー高さ分だけ画面外（上）に置く。
           → 下スクロールではそのまま流れて消える（粘着しない）。
           → 上スクロール時のみ is-show で画面内へ降ろす。
           --header-bar-h は JS が実測値をセット（フォールバック 12rem）。 */
        position: sticky;
        top: calc(-1 * var(--header-bar-h, 12rem));
        z-index: 40;
        display: flex;
        align-items: center;
        gap: 2rem;
        /* __utility と同様、vw 系トリックはスクロールバー分の隙間が出るため
           要素自体を100%幅にして padding で中央寄せする。 */
        padding-block: 1.6rem;
        padding-inline: max(var(--pad-side), calc((100% - var(--width-content)) / 2));
        background: var(--color-alpha-head);
        backdrop-filter: blur(8px);
        border-bottom: 1px solid var(--color-line);
        transition: var(--trans-header), background var(--dur-ui) var(--ease);
        will-change: transform;
    }

body.is-scrolled .c-header__bar {
            background: var(--color-alpha-head-scrolled);
        }

/* 上スクロール時：画面外から降りてくる */

.c-header__bar.is-show {
            transform: translateY(var(--header-bar-h, 12rem));
        }

.c-header__brand {
        margin-right: auto;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: .6rem;
    }

.c-header__logo {
        height: 4.4rem;
        width: auto;
        transform-origin: left center;
        transition: transform var(--dur-ui) var(--ease);
    }

body.is-scrolled .c-header__logo { transform: scale(.88); }

.c-header__brand-en {
        font-family: var(--font-family-mono);
        font-size: .85rem;
        letter-spacing: .2em;
        color: var(--color-ink3);
    }

.c-header__nav {
        display: flex;
        gap: .4rem;
    }

.c-header__nav-item {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: .6rem;
        padding: .4rem 1.1rem;
        color: var(--color-ink2);
        font-size: 1.05rem;
        letter-spacing: .02em;
        white-space: nowrap;
        transition: var(--trans-hover);
    }

.c-header__nav-item svg { width: 2.2rem; height: 2.2rem; }

.c-header__nav-item.is-current { color: var(--color-primary); }

@media (min-width: 751px) {
            .c-header__nav-item:hover { color: var(--color-primary); }
        }

.c-header__demae {
        flex-shrink: 0;
        background: var(--color-primary);
        color: #fff;
        padding: 1.3rem 2.2rem;
        font-size: 1.35rem;
        letter-spacing: .06em;
        border-radius: 2px;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-header__demae:hover { background: var(--color-primary-dark); }
        }

/* ── ハンバーガー（SP のみ）── */

.c-header__toggle {
        display: none;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: .4rem;
        width: 4rem;
        height: 4rem;
        flex-shrink: 0;
        border: 1px solid var(--color-line);
        background: var(--color-card);
        border-radius: 2px;
    }

.c-header__toggle span {
            width: 1.8rem;
            height: 1.6px;
            background: var(--color-text);
            transition: var(--trans-hover);
        }

/* ── タブレット幅：ナビ8項目＋依頼ボタンを1行に収めるため余白を詰める（横スクロール防止）── */

@media (min-width: 751px) and (max-width: 1024px) {
        .c-header__bar {
            gap: 1.2rem;
            padding-inline: 2.4rem;
        }

        .c-header__brand { flex-shrink: 0; }
        .c-header__brand-en { display: none; }
        .c-header__logo { height: 3.6rem; }
        .c-header__nav { gap: 0; }
        .c-header__nav-item { padding-inline: .6rem; }

        .c-header__demae {
            padding: 1.1rem 1.4rem;
            font-size: 1.2rem;
        }
    }

@media (min-width: 751px) and (max-width: 880px) {
        .c-header__bar { gap: .8rem; padding-inline: 1.6rem; }
        .c-header__nav-item {
            padding-inline: .4rem;
            font-size: .95rem;
            letter-spacing: 0;
        }
        .c-header__demae { padding-inline: 1rem; }
    }

/* ── SP レイアウト ── */

@media (max-width: 750px) {
        .c-header__bar {
            gap: 1.2rem;
            padding: 1.1rem var(--pad-side);
        }

        .c-header__logo { height: 3.2rem; }
        .c-header__brand-en { display: none; }
        .c-header__nav { display: none; }

        .c-header__demae {
            padding: .9rem 1.3rem;
            font-size: 1.15rem;
        }

        .c-header__toggle { display: flex; }
    }

/* ── ドロワーメニュー（SP）── */

.c-drawer {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: flex;
    flex-direction: column;
    background: var(--color-bg-base);
    color: var(--color-text);
    overflow-y: auto;
    visibility: hidden;
    opacity: 0;
    transition: opacity 250ms, visibility 250ms;
}

.c-drawer.is-open {
        visibility: visible;
        opacity: 1;
    }

.c-drawer__head {
        display: flex;
        align-items: center;
        padding: 1.1rem var(--pad-side-sp);
        border-bottom: 1px solid var(--color-line);
    }

.c-drawer__logo {
        height: 3.2rem;
        width: auto;
        margin-right: auto;
    }

.c-drawer__close {
        width: 4rem;
        height: 4rem;
        border: 1px solid var(--color-line);
        background: var(--color-card);
        color: var(--color-text);
        border-radius: 2px;
        font-size: 1.8rem;
    }

.c-drawer__nav {
        flex: 1;
        padding: .8rem 0;
    }

.c-drawer__item {
        display: flex;
        align-items: center;
        gap: 1.6rem;
        padding: 1.6rem 2.2rem;
        border-bottom: 1px solid var(--color-line);
        color: var(--color-text);
    }

.c-drawer__item .c-drawer__icon {
            display: flex;
            color: var(--color-primary);
        }

.c-drawer__item .c-drawer__icon svg { width: 2.2rem; height: 2.2rem; }

.c-drawer__item .c-drawer__label {
            font-size: 1.6rem;
            letter-spacing: .04em;
        }

.c-drawer__item .c-drawer__en {
            margin-left: auto;
            font-family: var(--font-family-mono);
            font-size: .95rem;
            letter-spacing: .18em;
            color: var(--color-ink3);
        }

.c-drawer__foot {
        padding: 2rem 2.2rem 2.8rem;
    }

.c-drawer__sns {
        display: flex;
        gap: 1rem;
        justify-content: center;
        margin-top: 2.2rem;
    }

.c-drawer__sns-link {
        width: 3.8rem;
        height: 3.8rem;
        border-radius: 50%;
        border: 1px solid var(--color-line);
        color: var(--color-ink2);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.4rem;
    }

.c-drawer__sns-link--line {
            color: var(--color-line-green);
            border-color: rgba(6, 199, 85, .5);
        }

/* PC では存在しない */

@media (min-width: 751px) {

.c-drawer {
        display: none
}
    }

/* ===========================================================
   .c-footer — フッター（漆黒）
   =========================================================== */

.c-footer {
    background: var(--color-bg-footer);
    color: rgba(247, 244, 238, .62);
    padding: 5.6rem var(--pad-side) 2.6rem;
    font-family: var(--font-family-mono);
}

.c-footer__inner {
        max-width: var(--width-content);
        margin: var(--margin-main);
    }

.c-footer__top {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 3.2rem;
    }

.c-footer__brand {
        display: flex;
        flex-direction: column;
        align-items: flex-start; /* ロゴをタグライン幅に引き伸ばさず等倍・左寄せに保つ */
        gap: 1.4rem;
    }

.c-footer__logo {
        height: 4.2rem;
        width: auto;
        object-fit: contain;
        filter: brightness(0) invert(1); /* 白ロゴ化 */
    }

.c-footer__tagline {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 1.5rem;
        letter-spacing: .04em;
        color: #fff;
    }

.c-footer__nav {
        display: flex;
        align-items: center;
    }

.c-footer__nav-item {
        font-size: 1.25rem;
        color: #fff;
        white-space: nowrap;
        padding: 0 1.6rem;
        transition: var(--trans-hover);
    }

.c-footer__nav-item + .c-footer__nav-item { border-left: 1px solid rgba(247, 244, 238, .16); }

/* 最終項目（会員）の右余白を消してコンテンツラインに揃える */

.c-footer__nav-item:last-child { padding-right: 0; }

@media (min-width: 751px) {
            .c-footer__nav-item:hover { color: var(--color-gold); }
        }

.c-footer__nav-toggle { display: none; }

/* SP 用のシェブロン */

.c-footer__mid {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 3.2rem;
        margin-top: 3.4rem;
    }

.c-footer__address {
        font-style: normal; /* <address> 既定のイタリックを解除 */
        font-size: 1.05rem;
        line-height: 1.85;
        color: rgba(247, 244, 238, .5);
    }

.c-footer__sns {
        display: flex;
        gap: .8rem;
    }

.c-footer__sns-link {
        width: 2.8rem;
        height: 2.8rem;
        border-radius: 50%;
        border: 1px solid rgba(247, 244, 238, .28);
        color: rgba(247, 244, 238, .7);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.1rem;
        transition: var(--trans-hover);
    }

.c-footer__sns-link--line {
            color: var(--color-line-green);
            border-color: rgba(6, 199, 85, .5);
        }

@media (min-width: 751px) {
            .c-footer__sns-link:hover {
                color: var(--color-gold);
                border-color: var(--color-gold);
            }

            .c-footer__sns-link--line:hover {
                color: var(--color-line-green);
                border-color: var(--color-line-green);
            }
        }

.c-footer__bottom {
        margin-top: 1.4rem;
        padding-top: 1.6rem;
        border-top: 1px solid rgba(247, 244, 238, .16);
        display: flex;
        justify-content: space-between;
        font-size: 1rem;
        color: rgba(247, 244, 238, .4);
    }

.c-footer__bottom-links {
        display: flex;
        gap: 2.2rem;
    }

.c-footer__bottom-links a {
            display: inline-flex;
            align-items: center;
            gap: .5rem;
            transition: var(--trans-hover);
        }

@media (min-width: 751px) {
                .c-footer__bottom-links a:hover { color: var(--color-gold); }
            }

.c-footer__bottom-logo {
        display: inline-block;
        height: 1.87rem;
        aspect-ratio: 93.24 / 27.73;
        background-color: currentColor;
        transition: var(--trans-hover);
        mask: url("../img/common/logo_ashigaru.svg") no-repeat center / contain;
    }

@media (max-width: 750px) {

.c-footer {
        padding: 3.6rem var(--pad-side) 2.6rem

        /* __top・__mid を透過させ、子要素を __inner 直下に並べて order で並べ替える。
           目標順：ロゴ／タグライン → 住所 → ページナビ → SNS → コピーライト */
}
        .c-footer__inner { display: flex; flex-direction: column; }
        .c-footer__top, .c-footer__mid { display: contents; }

        .c-footer__brand { order: 1; margin-bottom: 2.4rem; }
        .c-footer__address { order: 2; }
        .c-footer__nav { order: 3; margin-top: 3rem; }
        .c-footer__sns { order: 4; margin-top: 2.4rem; }
        .c-footer__bottom { order: 5; }

        .c-footer__logo { height: 3.8rem; }

        .c-footer__nav {
            flex-direction: column;
            align-items: stretch; /* 各項目を全幅にしてシェブロンを右端へ */
        }

        .c-footer__nav-item {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 1.4rem 0;
            font-size: 1.3rem;
            border-top: 1px solid var(--color-line2);
        }

            .c-footer__nav-item + .c-footer__nav-item { border-left: none; }

            /* 最終項目（会員）の下にも区切り線を入れる */
            .c-footer__nav-item:last-child { border-bottom: 1px solid var(--color-line2); }

        .c-footer__nav-toggle {
            display: inline;
            color: rgba(247, 244, 238, .4);
            font-size: 1.1rem;
        }

        .c-footer__address { font-size: 1.05rem; }

        .c-footer__sns { gap: .9rem; }

        .c-footer__sns-link { width: 3.6rem; height: 3.6rem; font-size: 1.3rem; }

        .c-footer__bottom {
            flex-direction: column-reverse;
            align-items: center;
            gap: 1.2rem;
            margin-top: 2.4rem;
            text-align: center;
        }

        .c-footer__bottom-links {
            justify-content: center;
            flex-wrap: wrap;
        }
    }

/* ===========================================================
   .c-page-hero — 下層ページ共通ヒーロー（実写背景＋暗色グラデ）
   =========================================================== */

.c-page-hero {
    position: relative;
    overflow: hidden;
    background: var(--color-dark);
    color: #fff;
}

.c-page-hero__bg {
        position: absolute;
        inset: 0;
        background-size: cover;
        background-position: center;
    }

/* ページ別の背景画像（img/hero/ に集約・pic_<ページ名>.webp） */

.c-page-hero--about .c-page-hero__bg {
        background-image: url("../img/hero/pic_about.webp");
    }

.c-page-hero--activity .c-page-hero__bg {
        background-image: url("../img/hero/pic_activity.webp");
    }

.c-page-hero--demae .c-page-hero__bg {
        background-image: url("../img/hero/pic_demae.webp");
    }

.c-page-hero--book .c-page-hero__bg {
        background-image: url("../img/hero/pic_book.webp");
    }

.c-page-hero--history .c-page-hero__bg {
        background-image: url("../img/hero/pic_history.webp");
    }

.c-page-hero--oita-event .c-page-hero__bg {
        background-image: url("../img/hero/pic_oita-event.webp");
    }

.c-page-hero--join .c-page-hero__bg {
        background-image: url("../img/hero/pic_join.webp");
    }

.c-page-hero__overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg, rgba(20, 17, 13, .9) 0%, rgba(20, 17, 13, .62) 48%, rgba(20, 17, 13, .28) 100%);
    }

/* 装飾透かし（写真を使わない夜ヒーロー用：右下に白反転の素材を薄く敷く） */

.c-page-hero__watermark {
        position: absolute;
        right: -3rem;
        bottom: -4rem;
        z-index: 1;
        width: 42rem;
        height: 34rem;
        background-size: contain;
        background-position: right bottom;
        background-repeat: no-repeat;
        opacity: .1;
        filter: brightness(0) invert(1);
        pointer-events: none;
    }

.c-page-hero--history .c-page-hero__watermark {
        background-image: url("../img/history/bg_ochousi.png");
    }

.c-page-hero__inner {
        position: relative;
        z-index: 2;
        max-width: var(--width-frame);
        margin: 0 auto;
        padding: 6rem var(--pad-side) 6.4rem;
    }

.c-page-hero__body {
        max-width: 72rem;
    }

.c-page-hero__eyebrow {
        display: flex;
        align-items: center;
        gap: 1.4rem;
        margin: 0 0 2rem;
    }

.c-page-hero__eyebrow::before {
            content: "";
            width: 3.4rem;
            height: 1px;
            background: var(--color-primary);
        }

.c-page-hero__eyebrow span {
            font-family: var(--font-family-mono);
            font-size: 1.1rem;
            letter-spacing: .28em;
            color: var(--color-gold);
        }

.c-page-hero__title {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 4.6rem;
        line-height: 1.3;
        font-weight: 500;
        letter-spacing: .08em;
        color: #fff;
    }

.c-page-hero__lead {
        margin: 2.2rem 0 0;
        font-size: 1.45rem;
        line-height: 2.1;
        color: rgba(247, 244, 238, .86);
    }

/* Hero 内 CTA（出前展示館などで使用） */

.c-page-hero__cta {
        margin-top: 3.4rem;
    }

/* demae：H1 が 2 行・やや小さめ */

.c-page-hero--demae .c-page-hero__title {
        font-size: 4.4rem;
        line-height: 1.4;
        letter-spacing: .05em;
    }

/* history：H1 やや小さめ */

.c-page-hero--history .c-page-hero__title {
        font-size: 4.4rem;
        line-height: 1.4;
        letter-spacing: .06em;
    }

/* book：H1 は PC 2 行（SP は <br class="pc-only"> で強制改行を消し、自然に折り返す） */

.c-page-hero--book .c-page-hero__title {
        line-height: 1.4;
        letter-spacing: .05em;
    }

/* 検索バー（ヒーロー内・book など） */

.c-page-hero__search {
        position: relative;
        max-width: 44rem;
        margin-top: 3.4rem;
    }

.c-page-hero__search-input {
        width: 100%;
        height: 5.2rem;
        padding: 0 5.6rem 0 1.8rem;
        border: none;
        border-radius: 2px;
        background: var(--color-card);
        font-family: inherit;
        font-size: 1.4rem;
        color: var(--color-text);
        outline: none;
    }

.c-page-hero__search-input::placeholder { color: var(--color-ink3); }

.c-page-hero__search-btn {
        position: absolute;
        top: 0;
        right: 0;
        width: 5.2rem;
        height: 5.2rem;
        display: flex;
        align-items: center;
        justify-content: center;
        background: var(--color-primary);
        color: #fff;
        border: none;
        border-radius: 0 2px 2px 0;
        cursor: pointer;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-page-hero__search-btn:hover { background: var(--color-primary-dark); }
        }

@media (max-width: 750px) {
        .c-page-hero__inner { padding: 3.6rem var(--pad-side) 4rem; }
        .c-page-hero__title { font-size: 3.6rem; }
        .c-page-hero__lead { font-size: 1.3rem; line-height: 2; }
        .c-page-hero__lead br { display: none; }
        .c-page-hero--demae .c-page-hero__title { font-size: 3rem; }
        .c-page-hero--history .c-page-hero__title { font-size: 3rem; }
        .c-page-hero__cta { margin-top: 2.8rem; }
        .c-page-hero__cta .c-btn { width: 100%; }
        .c-page-hero__watermark { width: 26rem; height: 21rem; }
        .c-page-hero__search { max-width: none; margin-top: 2.8rem; }
    }

/* --- トップページ（c-page-home 各セクション）--- */

/* ===========================================================
   c-splash — トップページ スプラッシュ画面（初回訪問時のみ）
   生成り背景の中央にロゴマーク（朱）＋和文名称＋英字表記。
   フェードイン 1.1s → 2.5s 保持 → フェードアウト 0.8s → DOM 除去。
   表示判定・タイマーは template-parts/parts/splash.php ＋ script.js。
   =========================================================== */

.c-splash {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-bg-base);
    transition: opacity 800ms ease;
}

.c-splash.is-hide {
        opacity: 0;
        pointer-events: none;
    }

.c-splash__inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 2.2rem;
        opacity: 0;
        animation: splash-in 1100ms ease 150ms forwards;
    }

.c-splash__mark {
        width: 13rem;
        height: auto;
        color: var(--color-primary); /* ロゴマークは朱（テキスト部は墨のまま） */
    }

.c-splash__name {
        font-family: var(--font-family-serif);
        font-size: 2.1rem;
        font-weight: 600;
        letter-spacing: .3em;
        text-indent: .3em; /* 中央ズレ補正 */
        color: var(--color-text);
    }

.c-splash__en {
        font-family: var(--font-family-mono);
        font-size: 1rem;
        letter-spacing: .34em;
        text-indent: .34em;
        color: var(--color-ink3);
    }

/* JS 無効時は表示しない（is-anim は header.php の head 直後で付与） */

html:not(.is-anim) .c-splash {
    display: none;
}

@keyframes splash-in {
    from {
        opacity: 0;
        transform: translateY(1rem);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .c-splash {
        transition: none;
    }

        .c-splash .c-splash__inner {
            animation: none;
            opacity: 1;
        }
}

/* ===========================================================
   .c-hero — ヒーロー（漆黒・フルブリード＋次回開催帯）
   =========================================================== */

.c-hero {
    position: relative;
    background: var(--color-dark);
    /* __nextband::before の全幅背景（width:100vw）がビューポート幅の計算誤差で
       わずかにはみ出しても横スクロールにならないよう、セクション境界でクリップする。
       body 側の overflow-x: clip だけでは端末によって抑止しきれないための保険。
       .c-hero 自体は --width-frame の制約を受けないフルブリード要素のため、
       ここで切っても PC の全幅演出（画面端まで届く黒帯）は変わらない。 */
    overflow-x: hidden;
}

.c-hero__media {
        position: absolute;
        inset: 0;
        overflow: hidden; /* ズームアップ時に画像がフレーム外へはみ出さないようクリップ */
    }

/* Splide 内部要素をヒーロー全域に充填（PC/SP とも object-fit: cover で対応） */

.c-hero__media .splide__track,
        .c-hero__media .splide__list,
        .c-hero__media .splide__slide { height: 100%; }

/* <picture> でSP画像を出し分ける際、img の height:100% が効くよう block 化して充填 */

.c-hero__media picture {
            display: block;
            height: 100%;
        }

.c-hero__media img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: bottom;
            transform: scale(1);
            transform-origin: center bottom;
            will-change: transform;
        }

.c-hero__overlay {
        position: absolute;
        inset: 0;
        z-index: 1; /* スライド画像の上・テキスト（z-index:2）の下に固定 */
        background: linear-gradient(180deg, rgba(20, 17, 13, .5) 0%, transparent 11rem), var(--gradient-hero);
    }

/* 左端の縦罫＋縦組みラベル（PC のみ・装飾） */

.c-hero__vlabel {
        position: absolute;
        z-index: 2;
        left: 4.4rem;
        top: 8.8rem;
        display: none;
    }

@media (min-width: 751px) {

.c-hero__vlabel {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 1.6rem
    }
        }

.c-hero__vlabel-rule {
        width: 1px;
        height: 15rem;
        background: rgba(247, 244, 238, .3);
    }

.c-hero__vlabel-text {
        writing-mode: vertical-rl;
        font-family: var(--font-family-mono);
        font-size: 1rem;
        letter-spacing: .32em;
        color: rgba(247, 244, 238, .6);
    }

/* 右下のスクロールインジケータ（PC のみ・装飾） */

.c-hero__scroll {
        position: absolute;
        z-index: 2;
        right: 4.8rem;
        bottom: 6.6rem;
        display: none;
    }

@media (min-width: 751px) {

.c-hero__scroll {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 1.4rem
    }
        }

.c-hero__scroll-label {
        writing-mode: vertical-rl;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .1em;
        text-transform: uppercase;
        color: rgba(247, 244, 238, .6);
    }

.c-hero__scroll-line {
        position: relative;
        width: 1px;
        height: 6rem;
        overflow: hidden;
        background: rgba(247, 244, 238, .25);
    }

.c-hero__scroll-drop {
        position: absolute;
        left: 0;
        top: -40%;
        width: 1px;
        height: 40%;
        background: var(--color-gold);
        animation: c-hero-scroll-drop 2.4s linear infinite;
    }

.c-hero__inner {
        position: relative;
        z-index: 2;
        padding: 9.2rem var(--pad-side) 4.6rem;
        max-width: var(--width-frame);
        min-height: 54rem;
        margin: 0 auto;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

.c-hero__body {
        max-width: 62rem;
    }

.c-hero__eyebrow {
        display: flex;
        align-items: center;
        gap: 1.4rem;
        margin-bottom: 4.5rem;
    }

.c-hero__eyebrow::before {
            content: "";
            width: 3.6rem;
            height: 1px;
            background: var(--color-primary);
        }

.c-hero__eyebrow span {
            font-family: var(--font-family-mono);
            font-size: 1.1rem;
            letter-spacing: .24em;
            color: var(--color-gold);
        }

.c-hero__en {
        font-family: var(--font-family-mono);
        font-size: 1.2rem;
        letter-spacing: .32em;
        color: rgba(247, 244, 238, .7);
        margin-bottom: 0.3rem;
    }

.c-hero__title {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 5.8rem;
        line-height: 1.42;
        font-weight: 500;
        letter-spacing: .05em;
        color: #fff;
    }

.c-hero__lead {
        max-width: 44rem;
        margin-top: 2.6rem;
        font-size: 1.4rem;
        line-height: 2;
        color: rgba(247, 244, 238, .82);
    }

.c-hero__cta {
        display: flex;
        gap: 1.4rem;
        margin-top: 3.6rem;
    }

/* 次回開催 情報帯 */

.c-hero__nextband {
        position: relative;
        z-index: 2;
        display: flex;
        align-items: center;
        color: rgba(247, 244, 238, .9);
        max-width: var(--width-frame);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

/* 背景の黒だけ画面幅いっぱいに伸ばす（コンテンツは --width-content 内に維持） */

.c-hero__nextband::before {
            content: "";
            position: absolute;
            inset: 0;
            left: 50%;
            width: 100vw;
            transform: translateX(-50%);
            z-index: -1;
            background: rgba(20, 17, 13, .72);
            border-top: 1px solid var(--color-line2);
            backdrop-filter: blur(4px);
            transition: var(--trans-hover);
        }

@media (min-width: 751px) {
            .c-hero__nextband:hover::before { background: rgba(20, 17, 13, .85); }
        }

.c-hero__nextband-label {
        display: flex;
        align-items: center;
        gap: 1rem;
        padding: 1.6rem 2.6rem;
        background: var(--color-gold);
        color: #000;
        font-size: 1.6rem;
        font-weight: 700;
        flex-shrink: 0;
    }

.c-hero__nextband-info {
        display: flex;
        align-items: center;
        gap: 2.8rem;
        padding: 0 3rem;
    }

.c-hero__nextband-date {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .1em;
        color: var(--color-gold);
    }

/* mono フォントは行送りの都合でタイトルより光学的に上寄りに見えるための補正 */

@media (min-width: 751px) {

.c-hero__nextband-date {
            margin-top: .3rem
    }
        }

.c-hero__nextband-title {
        font-size: 1.5rem;
    }

.c-hero__nextband-more {
        margin-left: auto;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .08em;
        color: rgba(247, 244, 238, .7);
        white-space: nowrap;
    }

/* ── SP ── */

@media (max-width: 750px) {

.c-hero {
        /* ファーストビューを最大化：ヒーロー全体を
           「100dvh − ヘッダーバー高」に収め、__inner を伸縮させる。
           __nextband の高さは flex により自動で差し引かれる。
           --header-bar-h は JS が実測値を :root にセット（フォールバック 6.2rem）。 */
        display: flex;
        flex-direction: column;
        min-height: calc(100vh - var(--header-bar-h, 6.2rem));
        min-height: calc(100dvh - var(--header-bar-h, 6.2rem))

        /* __body を __inner いっぱいに広げ、__cta を下辺へ固定。
           __inner は flex-grow で高さが可変のため height:100% は効きにくい。
           flex:1（grow）でメイン軸（縦）いっぱいに伸張させる。 */

        /* 帯：ラベル＋情報＋矢印を 1 行に */
}

        .c-hero__media img { object-position: 75% bottom; transform-origin: 75% bottom; }

        .c-hero__overlay { background: var(--gradient-hero-sp); }

        .c-hero__inner {
            flex: 1 0 auto;
            padding: 2.4rem var(--pad-side) 2.0rem;
            min-height: 0;
            height: 100%;
            justify-content: flex-start;
        }
        .c-hero__body {
            flex: 1 0 auto;
            display: flex;
            flex-direction: column;
        }

        .c-hero__eyebrow {
            gap: 1.1rem;
            margin-bottom: 2.5rem;
        }

            .c-hero__eyebrow::before { width: 2.8rem; }

            .c-hero__eyebrow span { font-size: 1rem; letter-spacing: .18em; }

        .c-hero__en { font-size: 1rem; letter-spacing: .22em; margin-bottom: 0.4rem; }
        .c-hero__title { font-size: 3.6rem; }
        .c-hero__lead { max-width: none; margin-top: 1.8rem; font-size: 1.3rem; }

        .c-hero__cta {
            flex-direction: column;
            gap: 1.1rem;
            margin-top: auto; /* __body 下辺へ押し下げて固定 */
        }

            .c-hero__cta .c-btn { width: 100%; }
        .c-hero__nextband {
            padding: 1.3rem var(--pad-side-sp);
            gap: 1.2rem;
        }

        .c-hero__nextband-label {
            padding: .6rem 1.1rem;
            font-size: 1.25rem;
            border-radius: 2px;
        }

        .c-hero__nextband-info {
            flex-direction: column;
            align-items: flex-start;
            gap: 0;
            padding: 0;
            min-width: 0;
        }

        .c-hero__nextband-date {
            margin-bottom: 0;
            max-width: 100%;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        .c-hero__nextband-title {
            font-size: 1.35rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            max-width: 100%;
        }

        .c-hero__nextband-more {
            margin-right: 0;
            font-size: 0;
        }

            .c-hero__nextband-more::after {
                content: "\f061"; /* fa-arrow-right */
                font-family: "Font Awesome 6 Free";
                font-weight: 900;
                font-size: 1.2rem;
                color: var(--color-gold);
            }
    }

/* 表示中のスライドにだけ script.js（.js-hero-slider の Splide move イベント）が
   都度 style.animation で張る、ゆっくりズームアップ用キーフレーム。 */

@keyframes c-hero-kenburns {
    from { transform: scale(1); }
    to   { transform: scale(1.12); }
}

/* .c-hero__scroll-drop（右下スクロールインジケータ）が軸を流れ落ちるループ */

@keyframes c-hero-scroll-drop {
    0%   { top: -40%; }
    100% { top: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .c-hero__media img {
        animation: none;
    }

    .c-hero__scroll-drop {
        animation: none;
        top: 0;
        height: 100%;
    }
}

/* ===========================================================
   c-page-home — トップページ各セクション
   quick / mission / next / pickup / perspectives / book
   PC ファースト記述・@media (--mq-sp) で SP へ
   =========================================================== */

/* カード写真の右上コーナーマーク（PICK UP・3 PERSPECTIVES 共通）。
   写真が各カードの先頭に余白なく置かれているため、カード自体を基準に配置する。 */

.c-persp__item,
.c-pickup__feature,
.c-pickup__sub-item {
    position: relative;
}

.c-persp__item::before, .c-pickup__feature::before, .c-pickup__sub-item::before {
        content: "";
        position: absolute;
        z-index: 2;
        top: 1.2rem;
        right: 1.2rem;
        width: 1.6rem;
        height: 1.6rem;
        pointer-events: none;
        background:
            linear-gradient(currentColor, currentColor) center / 100% 1px no-repeat,
            linear-gradient(currentColor, currentColor) center / 1px 100% no-repeat;
        color: rgba(255, 255, 255, .7);
        transition: color var(--dur-ui) var(--ease), transform var(--dur-ui) var(--ease);
    }

@media (min-width: 751px) {
        .c-persp__item:hover::before, .c-pickup__feature:hover::before, .c-pickup__sub-item:hover::before { color: #fff; transform: rotate(45deg); }
    }

/* セクション帯（背景バリエーション） */

.c-section {
    padding: 8rem var(--pad-side);
    border-bottom: 1px solid var(--color-line);
}

.c-section--cream { background: var(--color-cream); }

.c-section--bg    { background: var(--color-bg-base); }

.c-section--dark  { background: var(--color-dark); color: #fff; }

.c-section__inner {
        max-width: var(--width-content);
        margin: var(--margin-main);
    }

@media (max-width: 750px) {

.c-section {
        padding: 4rem var(--pad-side)
}
    }

/* ============ ④ クイック導線（3カード）============ */

.c-quick {
    background: var(--color-cream);
    padding: 6rem var(--pad-side);
    border-bottom: 1px solid var(--color-line);
}

.c-quick__list {
        max-width: var(--width-content);
        margin: var(--margin-main);
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2.2rem;
    }

.c-quick__item {
        position: relative;
        overflow: hidden;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        box-shadow: var(--shadow-card);
        padding: 3.4rem 3.8rem;
        min-height: 21rem;
        color: var(--color-text);
        transition: var(--trans-hover);

        display: grid;
        grid-template-columns: auto 1fr auto;
        grid-template-areas:
            "icon  title title"
            "text  text  arrow";
        column-gap: 1.6rem;
        align-content: space-between;
        align-items: center;
    }

@media (min-width: 751px) {
            .c-quick__item:hover { transform: translateY(-4px); }
        }

.c-quick__item--primary {
            background: var(--color-primary);
            border: none;
            box-shadow: none;
            color: #fff;
        }

.c-quick__bg {
        position: absolute;
        right: 0;
        bottom: 0;
        width: 23rem;
        height: 23rem;
        object-fit: cover;
        object-position: right bottom;
        opacity: .85;
        pointer-events: none;
    }

.c-quick__icon {
        position: relative;
        z-index: 2;
        grid-area: icon;
        width: 5.4rem;
        height: 5.4rem;
        border-radius: 50%;
        background: var(--color-cream);
        color: var(--color-primary);
        display: flex;
        align-items: center;
        justify-content: center;
    }

.c-quick__icon svg { width: 2.4rem; height: 2.4rem; }

.c-quick__item--primary .c-quick__icon {
            background: rgba(255, 255, 255, .16);
            color: #fff;
        }

.c-quick__title {
        position: relative;
        z-index: 2;
        grid-area: title;
        margin: 0;
        font-family: var(--font-family-serif);
        font-weight: 600;
        letter-spacing: .03em;
        font-size: 2.2rem;
    }

.c-quick__text {
        position: relative;
        z-index: 2;
        grid-area: text;
        align-self: end;
        margin: 0;
        font-size: 1.3rem;
        line-height: 1.85;
        color: var(--color-ink2);
    }

.c-quick__item--primary .c-quick__text { color: rgba(255, 255, 255, .88); }

.c-quick__arrow {
        position: relative;
        z-index: 2;
        grid-area: arrow;
        align-self: end;
        justify-self: end;
        width: 4.8rem;
        height: 4.8rem;
        border-radius: 50%;
        border: 1px solid var(--color-primary);
        color: var(--color-primary);
        display: flex;
        align-items: center;
        justify-content: center;
    }

.c-quick__arrow svg { width: 1.7rem; height: 1.7rem; }

.c-quick__item--primary .c-quick__arrow {
            background: #fff;
            border: none;
        }

@media (max-width: 750px) {

.c-quick {
        padding: 3rem var(--pad-side)
}

        .c-quick__list { grid-template-columns: 1fr; gap: 1.4rem; }

        .c-quick__item {
            grid-template-columns: auto 1fr auto;
            grid-template-areas:
                "icon title arrow"
                "icon text  arrow";
            column-gap: 1.6rem;
            row-gap: .4rem;
            align-content: center;
            padding: 2rem;
            min-height: 8.8rem;
        }

        .c-quick__bg { width: 13rem; height: 13rem; opacity: .8; }

        .c-quick__icon { width: 4.6rem; height: 4.6rem; align-self: center; }

        .c-quick__title { font-size: 1.7rem; }

        .c-quick__text { font-size: 1.15rem; line-height: 1.65; align-self: start; }

        .c-quick__arrow {
            align-self: center;
            width: auto;
            height: auto;
            border: none;
        }

            .c-quick__arrow svg { width: 1.6rem; height: 1.6rem; }
    }

/* ============ ⑤ MISSION ============ */

.c-mission {
    position: relative;
    overflow: hidden;
    background: var(--color-bg-base);
    padding: 9.2rem var(--pad-side);
    border-bottom: 1px solid var(--color-line);
}

.c-mission__deco {
        position: absolute;
        right: 0;
        bottom: 0;
        width: 44rem;
        height: 32rem;
        background-image: url("../img/top/deco_mission.png");
        background-size: contain;
        background-position: right bottom;
        background-repeat: no-repeat;
        opacity: .2;
        transform: scaleX(-1);
        pointer-events: none;
    }

.c-mission__inner {
        position: relative;
        z-index: 2;
        max-width: var(--width-content);
        margin: var(--margin-main);
        display: grid;
        grid-template-columns: 1fr 1.2fr;
        gap: 7.2rem;
        align-items: center;
    }

.c-mission__body {
        padding-top: .6rem;
    }

.c-mission__text {
        margin: 0;
        font-size: 1.45rem;
        line-height: 2.25;
        color: var(--color-ink2);
    }

.c-mission__more {
        display: flex;
        align-items: center;
        gap: 1.2rem;
        margin-top: 2.8rem;
    }

.c-mission__more::before {
            content: "";
            width: 2.4rem;
            height: 1px;
            background: var(--color-primary);
        }

@media (max-width: 750px) {

.c-mission {
        padding: 4.4rem var(--pad-side)
}

        .c-mission__deco { width: 23rem; height: 20rem; right: -2rem; opacity: .16; }

        .c-mission__inner { grid-template-columns: 1fr; gap: 2rem; }

        .c-mission__text { font-size: 1.35rem; line-height: 2.1; }
        .c-mission__more { margin-top: 2.2rem; }
    }

/* ============ ⑥ NEXT 次回開催 ============ */

.c-next {
    background: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}

.c-next__inner {
        max-width: var(--width-frame);
        margin: var(--margin-main);
        padding: 8.4rem var(--pad-side) 5.6rem;
    }

.c-next__head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 2rem;
        margin-bottom: 4.4rem;
    }

.c-next__card {
        display: grid;
        grid-template-columns: 1.1fr 1fr;
    }

.c-next__photo {
        position: relative;
        background-image: url("../img/top/pic_next-event.jpg");
        background-size: cover;
        background-position: center;
        min-height: 38rem;
    }

/* WP: アイキャッチを <img> で差し込む（インライン背景は使わない） */

.c-next__photo > img {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

.c-next__badge {
        position: absolute;
        top: 2.2rem;
        left: 2.2rem;
        width: 8.4rem;
        height: 8.4rem;
        border-radius: 50%;
        background: var(--color-primary);
        color: #fff;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        line-height: 1.3;
        font-family: var(--font-family-serif);
        font-size: 1.4rem;
    }

.c-next__detail {
        position: relative;
        z-index: 2;
        display: flex;
        flex-direction: column;
        justify-content: center;
        margin-left: -4.8rem;
        padding: 4rem 4.4rem;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        border-bottom: 3px solid var(--color-primary);
    }

.c-next__tag {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .12em;
        color: var(--color-primary);
        margin-bottom: 1.4rem;
    }

.c-next__title {
        margin: 0 0 2.2rem;
        font-family: var(--font-family-serif);
        font-size: 3.1rem;
        font-weight: 600;
        line-height: 1.35;
        letter-spacing: .03em;
        color: var(--color-text);
    }

.c-next__status {
        display: flex;
        align-items: center;
        gap: 1rem;
        margin-bottom: 1.8rem;
    }

.c-next__status-pill {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        font-weight: 700;
        letter-spacing: .06em;
        color: #fff;
        background: var(--color-primary);
        padding: .5rem 1.2rem;
        border-radius: 2px;
    }

.c-next__status-text {
        font-size: 1.25rem;
        font-weight: 700;
        color: var(--color-primary);
    }

.c-next__info {
        margin: 0;
        border-top: 1px solid var(--color-line);
    }

.c-next__info-row {
        display: grid;
        grid-template-columns: 2.6rem 8.6rem 1fr;
        align-items: center;
        gap: 1.2rem;
        padding: 1.3rem .2rem;
        border-bottom: 1px solid var(--color-line);
    }

.c-next__info-row .c-next__info-icon {
            color: var(--color-primary);
            display: flex;
        }

.c-next__info-row .c-next__info-icon svg { width: 1.8rem; height: 1.8rem; }

.c-next__info-row dt {
            font-family: var(--font-family-mono);
            font-size: 1.15rem;
            color: var(--color-ink3);
            letter-spacing: .06em;
        }

.c-next__info-row dd {
            margin: 0;
            font-size: 1.4rem;
            color: var(--color-text);
            line-height: 1.5;
        }

.c-next__cta {
        display: flex;
        gap: 1.4rem;
        margin-top: 2.6rem;
    }

/* 次回未定時のプレースホルダーカード */

.c-next__empty {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 1.6rem;
        margin-top: 3.2rem;
        padding: 5.6rem 4rem;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        text-align: center;
    }

.c-next__empty-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 6rem;
        height: 6rem;
        border-radius: 50%;
        background: var(--color-cream);
        color: var(--color-ink3);
        font-size: 2.2rem;
    }

.c-next__empty-title {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 2rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-next__empty-text {
        margin: 0;
        max-width: 44rem;
        font-size: 1.4rem;
        line-height: 1.9;
        color: var(--color-ink2);
    }

.c-next__empty-cta { margin-top: .6rem; }

/* 蔵巡りバス帯 */

.c-next__bus {
        position: relative;
        z-index: 0;
        display: flex;
        align-items: center;
        gap: 2rem;
        max-width: var(--width-frame);
        margin: 0 auto;
        padding: 2.6rem var(--pad-side);
    }

/* 背景だけ画面幅いっぱいに伸ばす（コンテンツは --width-content 内に維持） */

.c-next__bus::before {
            content: "";
            position: absolute;
            inset: 0;
            left: 50%;
            width: 100vw;
            transform: translateX(-50%);
            z-index: -1;
            background: var(--color-band);
        }

.c-next__bus .c-next__bus-icon {
            color: var(--color-primary);
            display: flex;
        }

.c-next__bus .c-next__bus-icon svg { width: 3.4rem; height: 3.4rem; }

.c-next__bus-title {
        font-family: var(--font-family-serif);
        font-size: 1.6rem;
        font-weight: 600;
        color: var(--color-text);
        margin-bottom: .3rem;
    }

.c-next__bus-text {
        font-size: 1.25rem;
        color: var(--color-ink2);
    }

@media (max-width: 750px) {
        .c-next__inner { padding: 4rem var(--pad-side) 3rem; }

        .c-next__head {
            flex-direction: column;
            gap: 1.6rem;
            margin-bottom: 2.6rem;
        }

        .c-next__card { grid-template-columns: 1fr; margin-top: 0; }

        .c-next__detail { margin-left: 0; border-bottom-width: 1px; }

        .c-next__photo { min-height: 0; aspect-ratio: 16 / 10; }

        .c-next__badge { top: 1.4rem; left: 1.4rem; width: 6.8rem; height: 6.8rem; font-size: 1.2rem; }

        .c-next__detail { padding: 2.4rem 2rem 2.6rem; }

        .c-next__title { font-size: 2.3rem; margin-bottom: 1.6rem; }

        .c-next__info-row { grid-template-columns: 2.2rem 6.2rem 1fr; gap: 1rem; }

        .c-next__cta { flex-direction: column; gap: 1.1rem; }

        .c-next__empty { padding: 4rem 2rem; margin-top: 2.2rem; }
        .c-next__empty-icon { width: 5.2rem; height: 5.2rem; font-size: 1.9rem; }
        .c-next__empty-title { font-size: 1.8rem; }
        .c-next__empty-text { font-size: 1.3rem; line-height: 1.75; }

        .c-next__bus { padding: 1.8rem var(--pad-side); gap: 1.5rem; }
    }

/* ============ ⑦ PICK UP 注目の記事 ============ */

.c-pickup {
    background: var(--color-bg-base);
    padding: 8rem var(--pad-side);
    border-bottom: 1px solid var(--color-line);
}

.c-pickup__inner {
        max-width: var(--width-content);
        margin: var(--margin-main);
    }

.c-pickup__label { margin-bottom: 3.6rem; }

.c-pickup__panel {
        position: relative;
        z-index: 2;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        padding: 4rem;
        display: grid;
        grid-template-columns: 1.4fr 1fr;
        gap: 3.2rem;
    }

/* 写真（比率指定） */

.c-pickup__photo {
        width: 100%;
        object-fit: cover;
        object-position: center;
    }

.c-pickup__feature {
        display: block;
        overflow: hidden;
        color: var(--color-text);
    }

.c-pickup__feature .c-pickup__photo {
            aspect-ratio: 16 / 9;
            transition: transform var(--dur-media) var(--ease);
        }

@media (min-width: 751px) {
            .c-pickup__feature:hover .c-pickup__photo { transform: scale(1.04); }
            .c-pickup__feature:hover .c-pickup__feature-title { color: var(--color-primary); }
        }

.c-pickup__feature-body { display: block; }

.c-pickup__feature-meta {
        display: flex;
        gap: 1rem;
        align-items: center;
        margin: 2rem 0 1.2rem;
    }

.c-pickup__feature-meta .c-pickup__view {
            font-family: var(--font-family-mono);
            font-size: 1.1rem;
            letter-spacing: .06em;
            color: var(--color-ink3);
        }

.c-pickup__feature-title {
        display: block;
        margin: 0 0 1.2rem;
        font-family: var(--font-family-serif);
        font-size: 2.7rem;
        line-height: 1.5;
        font-weight: 600;
        color: var(--color-text);
        transition: var(--trans-hover);
    }

.c-pickup__feature-text {
        display: block;
        margin: 0;
        font-size: 1.4rem;
        line-height: 1.95;
        color: var(--color-ink2);
    }

.c-pickup__date {
        display: block;
        margin-top: 1.4rem;
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink3);
    }

/* サブ記事レール（Splide） */

.c-pickup__rail-wrap {
        display: flex;
        flex-direction: column;
        gap: 1.8rem;
        min-width: 0; /* grid item がコンテンツ幅に押し広げられないように */
    }

.c-pickup__rail .splide__track {
        overflow: hidden;
    }

.c-pickup__rail-nav {
        display: flex;
        align-items: center;
        gap: 1.4rem;
    }

.c-pickup__rail-arrow {
        flex-shrink: 0;
        width: 3.8rem;
        height: 3.8rem;
        border-radius: 50%;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        color: var(--color-text);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.2rem;
        cursor: pointer;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-pickup__rail-arrow:hover { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }
        }

.c-pickup__rail-progress {
        position: relative;
        flex: 1;
        height: 1px;
        background: var(--color-line);
    }

.c-pickup__rail-progress-bar {
        position: absolute;
        top: -1px;
        left: 0;
        height: 3px;
        background: var(--color-primary);
        transition: width var(--dur-ui) var(--ease), left var(--dur-ui) var(--ease);
    }

.c-pickup__sub-item {
        display: block;
        overflow: hidden;
        color: var(--color-text);
    }

.c-pickup__sub-item .c-pickup__photo {
            aspect-ratio: 16 / 10;
            margin-bottom: 1.6rem;
            transition: transform var(--dur-media) var(--ease);
        }

@media (min-width: 751px) {
            .c-pickup__sub-item:hover .c-pickup__sub-title { color: var(--color-primary); }
            .c-pickup__sub-item:hover .c-pickup__photo { transform: scale(1.04); }
        }

.c-pickup__sub-title {
        display: block;
        margin: .8rem 0 .8rem;
        font-family: var(--font-family-serif);
        font-size: 1.65rem;
        line-height: 1.5;
        font-weight: 600;
        color: var(--color-text);
        transition: var(--trans-hover);
    }

.c-pickup__sub-text {
        display: block;
        margin: 0;
        font-size: 1.2rem;
        line-height: 1.75;
        color: var(--color-ink2);
    }

/* 暗帯：パネル下端の裏に少し潜り込ませ、パネルが帯の上に乗っているように見せる */

.c-pickup__band {
        position: relative;
        z-index: 1;
        max-width: var(--width-content);
        margin: -4.8rem auto 0;
        padding: 7.2rem var(--pad-side) 3.2rem;
        display: flex;
        align-items: center;
        gap: 2.2rem;
        color: rgba(247, 244, 238, .92);
    }

.c-pickup__band::before {
            content: "";
            position: absolute;
            inset: 0;
            left: 50%;
            width: 100vw;
            transform: translateX(-50%);
            z-index: -1;
            background: var(--color-dark);
        }

/* イベント一覧へ 帯 */

.c-pickup__band-icon {
        flex-shrink: 0;
        width: 5.2rem;
        height: 5.2rem;
        border-radius: 50%;
        background: rgba(255, 255, 255, .08);
        border: 1px solid rgba(255, 255, 255, .24);
        color: var(--color-gold);
        display: flex;
        align-items: center;
        justify-content: center;
    }

.c-pickup__band-icon svg { width: 2.2rem; height: 2.2rem; }

.c-pickup__band-body { margin-right: auto; }

.c-pickup__band-title { font-size: 1.45rem; color: #fff; font-weight: 500; margin-bottom: .3rem; }

.c-pickup__band-text { font-size: 1.25rem; color: rgba(247, 244, 238, .7); }

@media (max-width: 750px) {

.c-pickup {
        padding: 4rem var(--pad-side)

        /* SP はパネルの padding が 0 のため、サブ記事のテキストとナビが
           パネル罫線に接してしまう。写真はフィーチャー同様に全幅のまま、
           テキスト・ナビだけフィーチャー本文と同じ 1.8rem の余白を揃える。 */

        /* アイコン＋本文を1行目、ボタンは折り返して全幅に配置。
           パネルへの食い込みは PC 限定（SP は素直に積む）。 */
}

        .c-pickup__label { margin-bottom: 2.2rem; }

        .c-pickup__panel {
            grid-template-columns: 1fr;
            gap: 0;
            padding: 0;
        }

        .c-pickup__feature {
            border-bottom: 1px solid var(--color-line);
        }

            .c-pickup__feature .c-pickup__feature-body { padding: 1.8rem; }

        .c-pickup__feature-meta { margin: 0 0 1.1rem; }
        .c-pickup__feature-title { font-size: 2rem; }
        .c-pickup__feature-text { font-size: 1.3rem; }

        .c-pickup__rail-wrap { gap: 1.4rem; }
        .c-pickup__sub-item > span {
            display: block;
            padding: 0 1.8rem;
        }

        .c-pickup__rail-nav { padding: 0 1.8rem 1.8rem; }

        .c-pickup__rail-arrow { width: 3.6rem; height: 3.6rem; }

        .c-pickup__sub-title { font-size: 1.4rem; margin: .2rem 0 .4rem; }
        .c-pickup__band {
            margin-top: 3.6rem;
            padding: 3.2rem var(--pad-side-sp);
            gap: 1.2rem 1.4rem;
            flex-wrap: wrap;
        }

            .c-pickup__band .c-btn {
                width: 100%;
                justify-content: center;
            }

        .c-pickup__band-icon { width: 4.4rem; height: 4.4rem; }
    }

/* ============ ⑧ 3 PERSPECTIVES ============ */

.c-persp {
    position: relative;
    overflow: hidden;
    background: var(--color-cream);
    padding: 8rem var(--pad-side);
    border-bottom: 1px solid var(--color-line);
}

.c-persp__inner {
        max-width: var(--width-content);
        margin: var(--margin-main);
    }

.c-persp__head { margin-bottom: 4.4rem; }

.c-persp__list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2.8rem;
    }

.c-persp__item {
        background: var(--color-card);
        border: 1px solid var(--color-line);
        overflow: hidden;
        display: flex;
        flex-direction: column;
        color: var(--color-text);
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-persp__item:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); }
        }

.c-persp__photo {
        aspect-ratio: 16 / 10;
        width: 100%;
        object-fit: cover;
        object-position: center;
    }

.c-persp__body {
        padding: 2.4rem 2.6rem 2.8rem;
        flex: 1;
        display: flex;
        flex-direction: column;
    }

.c-persp__en {
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .2em;
        color: var(--color-primary);
        margin-bottom: 1rem;
    }

.c-persp__title {
        margin: 0 0 1.2rem;
        font-family: var(--font-family-serif);
        font-size: 2.2rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-persp__text {
        margin: 0;
        font-size: 1.3rem;
        line-height: 1.9;
        color: var(--color-ink2);
        flex: 1;
    }

.c-persp__link {
        margin-top: 1.8rem;
        font-size: 1.35rem;
        color: var(--color-primary);
    }

@media (max-width: 750px) {

.c-persp {
        padding: 4rem var(--pad-side)

        /* テキストを隠した分、写真の高さを本文（見出し＋リンク）に合わせて低く抑える */
}

        .c-persp__head { margin-bottom: 2.6rem; }

        .c-persp__list { grid-template-columns: 1fr; gap: 1.6rem; }

        .c-persp__item { display: grid; grid-template-columns: 12rem 1fr; align-items: stretch; }
        .c-persp__photo { aspect-ratio: auto; height: 100%; }

        .c-persp__body { padding: 1.4rem 1.6rem; justify-content: center; }

        .c-persp__en { margin-bottom: .4rem; }
        .c-persp__title { font-size: 1.7rem; margin-bottom: 0; }
        .c-persp__text { display: none; }
        .c-persp__link { margin-top: .8rem; font-size: 1.25rem; }
    }

/* ============ ⑪ BOOK & MAP ============ */

.c-book {
    background: var(--color-dark);
    color: #fff;
    padding: 8rem var(--pad-side);
}

.c-book__inner {
        max-width: var(--width-content);
        margin: var(--margin-main);
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 4.8rem;
        align-items: center;
    }

.c-book__body {
        position: relative;
        z-index: 2;
        margin-right: -8rem;
        padding-top: 2.4rem;
    }

/* 全幅のborder-topだと写真側まで突き抜けるため、短い固定幅の罫線にする */

.c-book__body::before {
            content: "";
            display: block;
            width: 6rem;
            height: 1px;
            margin-bottom: 2.4rem;
            background: var(--color-primary);
        }

.c-book__en {
        display: block;
        font-family: var(--font-family-mono);
        font-size: 1.2rem;
        letter-spacing: .24em;
        color: var(--color-gold);
        margin-bottom: 1.6rem;
    }

.c-book__title {
        margin: 0 0 1.8rem;
        font-family: var(--font-family-serif);
        font-size: 3.2rem;
        line-height: 1.5;
        font-weight: 600;
        color: #fff;
    }

.c-book__text {
        margin: 0 0 2.4rem;
        font-size: 1.4rem;
        line-height: 2;
        color: rgba(255, 255, 255, .82);
    }

.c-book__chips {
        display: flex;
        gap: 1rem;
        flex-wrap: wrap;
        margin-bottom: 2.6rem;
    }

.c-book__chip {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .06em;
        padding: .6rem 1.4rem;
        border-radius: 999px;
        border: 1px solid rgba(255, 255, 255, .3);
        color: rgba(255, 255, 255, .85);
    }

.c-book__map {
        position: relative;
        aspect-ratio: 4 / 3;
        overflow: hidden;
        background-image: url("../img/top/pic_sake.jpg");
        background-size: cover;
        background-position: center;
    }

@media (max-width: 750px) {

.c-book {
        padding: 4rem var(--pad-side)

        /* 2行目「― 蔵・取扱店・飲食店をマップで。」を1行に収める */
}

        .c-book__inner { grid-template-columns: 1fr; gap: 0; }

        .c-book__body { margin-right: 0; padding-top: 1.6rem; }
        .c-book__title { font-size: 1.9rem; }

        .c-book__map {
            aspect-ratio: 16 / 10;
            margin-top: 2.4rem;
        }

        .c-book__text { font-size: 1.3rem; }
    }

/* ===========================================================
   .c-news — お知らせ・レポート／蔵元プレスリリース（共通リスト）
   =========================================================== */

.c-news {
    padding: 7.2rem var(--pad-side);
    border-bottom: 1px solid var(--color-line);
    background: var(--color-bg-base);
}

.c-news--press { background: var(--color-cream); }

.c-news__inner {
        max-width: var(--width-content);
        margin: var(--margin-main);
    }

.c-news__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 2rem;
        margin-bottom: 2.8rem;
    }

.c-news__head-title {
        display: flex;
        align-items: baseline;
        gap: 1.6rem;
    }

.c-news__en {
        font-family: var(--font-family-mono);
        font-size: 1.2rem;
        letter-spacing: .24em;
        color: var(--color-primary);
    }

.c-news__title {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 2.6rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-news__more {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-family: var(--font-family-serif);
        font-size: 1.35rem;
        line-height: 1;
        color: var(--color-text);
        border: 1px solid var(--color-line);
        padding: .9rem 2rem;
    }

.c-news__more i {
            margin-left: .6rem;
            font-size: 1.1rem;
            /* Font Awesome の矢印グリフは字面が上寄りのため、わずかに下げて視覚的に中央へ。
               hover の translateX と合成させるため transform ではなく --arrow-dy で指定。 */
            line-height: 1;
            --arrow-dy: .08em;
        }

.c-news__list {
        border-top: 1px solid var(--color-line);
    }

.c-news--press .c-news__list { border-top: 2px solid var(--color-text); }

.c-news__row {
        display: grid;
        grid-template-columns: 12rem 11rem 1fr 5rem;
        grid-template-areas: "date tag title arrow";
        gap: 2.2rem;
        align-items: center;
        padding: 1.8rem .4rem;
        border-bottom: 1px solid var(--color-line);
        color: var(--color-text);
    }

@media (min-width: 751px) {
            .c-news__row:hover .c-news__row-title { color: var(--color-primary); }
        }

.c-news__date {
        grid-area: date;
        font-family: var(--font-family-mono);
        font-size: 1.2rem;
        color: var(--color-ink3);
    }

.c-news .c-tag { grid-area: tag; justify-self: start; }

.c-news__row-title {
        grid-area: title;
        font-family: var(--font-family-serif);
        font-size: 1.55rem;
        color: var(--color-text);
        transition: color var(--dur-ui) var(--ease);
    }

.c-news__arrow {
        grid-area: arrow;
        justify-self: end;
    }

@media (max-width: 750px) {

.c-news {
        padding: 3.6rem var(--pad-side)

        /* SP は日付＋タグを上段、タイトルを下段に */
}

        .c-news__head { margin-bottom: 1.8rem; }
        .c-news__title { font-size: 1.9rem; }
        .c-news__en { font-size: 1.1rem; letter-spacing: .2em; }

        .c-news__more {
            border: none;
            padding: 0 0 .2rem;
            border-bottom: 1px solid var(--color-primary);
            font-size: 1.2rem;
        }

            .c-news__more i { display: none; }
        .c-news__row {
            grid-template-columns: auto 1fr;
            grid-template-areas:
                "date  tag"
                "title title";
            gap: .8rem 1.1rem;
            align-items: center;
            padding: 1.4rem .2rem;
        }

        .c-news__row-title { font-size: 1.4rem; line-height: 1.5; }

        .c-news__arrow { display: none; }
    }

/* ===========================================================
   .c-cta — トリプル CTA（DEMAE 朱 / JOIN 漆黒 / LINE 緑）
   背景写真＋オーバーレイ
   =========================================================== */

.c-cta {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.c-cta__item {
        position: relative;
        overflow: hidden;
        min-height: 25rem;
        background-size: cover;
    }

.c-cta__item--demae {
        background-image: url("../img/top/bg_cta-demae.jpg");
        background-position: 30% center;
    }

.c-cta__item--join {
        background-image: url("../img/top/bg_cta-join.jpg");
        background-position: center;
    }

.c-cta__item--line {
        background-image: url("../img/top/bg_cta-line.jpg");
        background-position: right center;
    }

.c-cta__overlay {
        position: absolute;
        inset: 0;
    }

.c-cta__item--demae .c-cta__overlay {
        background: linear-gradient(105deg, rgba(124, 24, 15, .95) 0%, rgba(124, 24, 15, .74) 46%, rgba(45, 12, 8, .5) 100%);
    }

.c-cta__item--join .c-cta__overlay {
        background: linear-gradient(105deg, rgba(20, 17, 13, .96) 0%, rgba(20, 17, 13, .82) 46%, rgba(20, 17, 13, .5) 100%);
    }

.c-cta__item--line .c-cta__overlay {
        background: linear-gradient(105deg, rgba(5, 88, 40, .95) 0%, rgba(6, 120, 54, .72) 46%, rgba(6, 120, 54, .46) 100%);
    }

.c-cta__line-badge {
        position: absolute;
        top: 2.2rem;
        right: 2.4rem;
        z-index: 3;
        width: 3.4rem;
        height: 3.4rem;
        border-radius: 8px;
        background: #fff;
        color: var(--color-line-green);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 2rem;
    }

.c-cta__body {
        position: relative;
        z-index: 2;
        padding: 2.8rem 3.6rem 2.6rem;
        display: flex;
        flex-direction: column;
        height: 100%;
        min-height: 25rem;
        color: #fff;
    }

/* カード全面を覆うリンク（項目全体をクリック可能にする）。
       ボタンは z-index で前面に出すため、ボタンの hover はボタン上のみで発火する。 */

.c-cta__link {
        position: absolute;
        inset: 0;
        z-index: 1;
    }

.c-cta__en {
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .24em;
        color: rgba(255, 255, 255, .9);
        margin-bottom: .6rem;
    }

.c-cta__rule {
        align-self: flex-start;
        width: 2.6rem;
        height: 1px;
        background: rgba(255, 255, 255, .55);
    }

.c-cta__title {
        margin: 1.6rem 0 1rem;
        font-family: var(--font-family-serif);
        font-size: 2.3rem;
        font-weight: 600;
        line-height: 1.4;
        letter-spacing: .02em;
        white-space: nowrap;
    }

.c-cta__text {
        margin: 0;
        font-size: 1.25rem;
        line-height: 1.85;
        color: rgba(255, 255, 255, .86);
    }

.c-cta__btn {
        position: relative;
        z-index: 2;
        margin-top: auto;
        align-self: flex-start;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 1.6rem;
        border: 1px solid rgba(255, 255, 255, .16);
        background: rgba(255, 255, 255, .06);
        color: #fff;
        padding: 1.1rem 2.2rem;
        font-size: 1.35rem;
        line-height: 1;
        letter-spacing: .04em;
        transition: var(--trans-hover);
    }

.c-cta__item--line .c-cta__btn { border-color: rgba(255, 255, 255, .22); }

/* Font Awesome の矢印グリフは字面が上寄りのため、わずかに下げて視覚的に中央へ。
           hover の translateX と合成させるため transform ではなく --arrow-dy で指定。 */

.c-cta__btn .fa-solid {
            line-height: 1;
            --arrow-dy: .08em;
        }

/* ボタンの hover 反応はカード全面リンク（.c-cta__link）の hover で発火させる。
           ボタンは link より前面（z-index:2）にあるため、ボタン直上にカーソルがある時は
           link は hover されず、ボタン自身の hover 効果は無効になる。 */

@media (min-width: 751px) {

.c-cta__btn {
            /* 背景：link hover 時に点灯。ボタン直 hover でも薄く戻さない。 */

            /* 矢印：link hover と同じタイミングで右へスライド。
               ボタン自身の hover には専用ルールを設けない（戻す処理もしない）。 */
    }
            .c-cta__link:hover ~ .c-cta__btn,
            .c-cta__btn:hover { background: rgba(255, 255, 255, .16); }
            .c-cta__link:hover ~ .c-cta__btn .fa-arrow-right {
                transform: translate(.4rem, var(--arrow-dy, 0));
            }
        }

/* LINE 友だち追加 QR（PC のみ）。スマホは同じ端末で読み取れないため非表示 */

.c-cta__qr {
        position: absolute;
        right: 2.4rem;
        bottom: 2.6rem;
        z-index: 2;
        width: 9.6rem;
        height: auto;
        padding: .4rem;
        border-radius: 4px;
        background: #fff;
    }

@media (max-width: 750px) {

.c-cta {
        grid-template-columns: 1fr
}

        .c-cta__qr { display: none; }

        .c-cta__item { min-height: 18.8rem; }

        .c-cta__line-badge { top: 1.8rem; right: 1.8rem; width: 3.2rem; height: 3.2rem; font-size: 1.8rem; }

        .c-cta__body { padding: 2.6rem 2.2rem 2.4rem; min-height: 18.8rem; }

        .c-cta__title { font-size: 2rem; white-space: normal; }

        .c-cta__text { font-size: 1.2rem; }
    }

/* --- 会社について（110_about 各セクション）--- */

/* ===========================================================
   .c-purpose — OUR PURPOSE（趣意・2カラム導入）
   =========================================================== */

.c-purpose {
    padding: 8.8rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-purpose__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
        display: grid;
        grid-template-columns: 1fr 1.32fr;
        gap: 7.2rem;
        align-items: start;
    }

.c-purpose__en {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .26em;
        color: var(--color-primary);
        margin-bottom: 1.8rem;
    }

.c-purpose__title {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 4rem;
        line-height: 1.45;
        font-weight: 500;
        letter-spacing: .04em;
        color: var(--color-text);
    }

.c-purpose__title em {
            font-style: normal;
            color: var(--color-primary);
        }

/* 幅は最も長いボタンに合わせて揃える */

.c-purpose__pdfs {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        width: fit-content;
        max-width: 100%;
        gap: 1.2rem;
        margin-top: 3.6rem;
    }

.c-purpose__pdf {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 1rem;
        padding: 1.3rem 2.4rem;
        font-size: 1.35rem;
        color: var(--color-text);
        border: 1px solid var(--color-line);
        border-radius: 2px;
        transition: var(--trans-hover);
    }

.c-purpose__pdf .c-purpose__pdf-icon {
            color: var(--color-primary);
            font-size: 1.4rem;
        }

@media (min-width: 751px) {
            .c-purpose__pdf:hover {
                border-color: var(--color-primary);
                color: var(--color-primary);
            }
        }

.c-purpose__body {
        padding-top: .4rem;
    }

.c-purpose__text {
        margin: 0;
        font-size: 1.45rem;
        line-height: 2.2;
        color: var(--color-ink2);
    }

.c-purpose__text + .c-purpose__text { margin-top: 2rem; }

.c-purpose__stats {
        display: flex;
        gap: 5.6rem;
        margin-top: 4rem;
        padding-top: 3rem;
        border-top: 1px solid var(--color-line);
    }

.c-purpose__stat-num {
        font-family: var(--font-family-serif);
        font-size: 3.4rem;
        font-weight: 600;
        letter-spacing: .02em;
        color: var(--color-primary);
    }

.c-purpose__stat-label {
        margin-top: .6rem;
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        letter-spacing: .06em;
        color: var(--color-ink3);
    }

@media (max-width: 750px) {

.c-purpose {
        padding: 4.4rem 0
}

        .c-purpose__inner {
            grid-template-columns: 1fr;
            gap: 3.2rem;
        }

        .c-purpose__title { font-size: 2.8rem; line-height: 1.5; }
        .c-purpose__stats { gap: 0; justify-content: space-between; margin-top: 3.2rem; }
        .c-purpose__stat-num { font-size: 2.8rem; }
    }

/* ===========================================================
   .c-mvv — MISSION / VISION / VALUES（写真＋ナンバーバッジ）
   =========================================================== */

.c-mvv {
    padding: 8.4rem 0;
    background: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}

.c-mvv__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-mvv__head {
        margin-bottom: 5.6rem;
    }

.c-mvv__list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 4.8rem 3.2rem;
    }

.c-mvv__card {
        display: flex;
        flex-direction: column;
    }

.c-mvv__photo-wrap {
        position: relative;
        margin-top: 2.4rem;
    }

.c-mvv__badge {
        position: absolute;
        top: -2.4rem;
        left: 10px;
        display: inline-flex;
        align-items: center;
        gap: .9rem;
        padding: 1.1rem 1.8rem;
        background: var(--color-primary);
        color: #fff;
        font-family: var(--font-family-mono);
        font-size: 1.3rem;
        font-weight: 600;
        letter-spacing: .02em;
        white-space: nowrap;
    }

.c-mvv__num {
        letter-spacing: .04em;
    }

.c-mvv__photo {
        display: block;
        width: 100%;
        aspect-ratio: 3 / 2;
        object-fit: cover;
    }

.c-mvv__text {
        margin: 2.2rem 0 0;
        font-size: 1.35rem;
        line-height: 2;
        color: var(--color-ink2);
    }

/* 中央寄せ見出し上部の縦罫 */

.c-mvv__head .c-sec-head--center::before {
        content: '';
        width: 1px;
        height: 4.6rem;
        margin-bottom: 3rem;
        background: var(--color-line);
    }

@media (max-width: 750px) {

.c-mvv {
        padding: 4.4rem 0
}

        .c-mvv__head { margin-bottom: 3.6rem; }
        .c-mvv__list { grid-template-columns: 1fr; gap: 4.4rem; }
        .c-mvv__badge { top: -1.8rem; padding: .9rem 1.5rem; font-size: 1.2rem; }
    }

/* ===========================================================
   .c-history — OUR HISTORY（設立経緯・タイムライン）
   =========================================================== */

.c-history {
    padding: 8.4rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-history__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-history__head {
        margin-bottom: 4.4rem;
    }

.c-history__row {
        display: grid;
        grid-template-columns: 15rem 3.6rem 1fr;
        align-items: stretch;
    }

.c-history__year {
        /* 年の視覚的な中心を丸（__node: margin-top 3.6rem + 半径 .6rem = 4.2rem）に合わせる。
           line-height を 1 にして継承の行送りで下がらないようにし、フォントの上下メトリクス分を差し引く */
        padding: 2.6rem 0 2.4rem;
        font-family: var(--font-family-serif);
        font-size: 2.8rem;
        line-height: 1;
        font-weight: 600;
        letter-spacing: .04em;
        color: var(--color-primary);
    }

.c-history__line {
        position: relative;
        display: flex;
        justify-content: center;
    }

.c-history__line::before {
            content: "";
            position: absolute;
            top: 0;
            bottom: 0;
            width: 1px;
            background: var(--color-line);
        }

.c-history__node {
        position: relative;
        margin-top: 3.6rem;
        width: 1.2rem;
        height: 1.2rem;
        border-radius: 50%;
        background: var(--color-bg-base);
        border: 2px solid var(--color-primary);
    }

.c-history__body {
        padding: 2.4rem 0 2.4rem 2.8rem;
        border-top: 1px solid var(--color-line);
    }

.c-history__row:first-child .c-history__body {
        border-top: none;
    }

.c-history__title {
        margin: 0 0 .8rem;
        font-family: var(--font-family-serif);
        font-size: 1.9rem;
        font-weight: 600;
        letter-spacing: .02em;
        color: var(--color-text);
    }

.c-history__text {
        margin: 0;
        max-width: 64rem;
        font-size: 1.35rem;
        line-height: 1.9;
        color: var(--color-ink2);
    }

@media (max-width: 750px) {

.c-history {
        padding: 4.4rem 0 /* 丸の中心 2.6rem + .6rem = 3.2rem に対し 2rem + 1.1rem */
}

        .c-history__head { margin-bottom: 3.2rem; }
        .c-history__row { grid-template-columns: 8rem 2.4rem 1fr; }
        .c-history__year { font-size: 2.2rem; padding: 2rem 0; }
        .c-history__node { margin-top: 2.6rem; }
        .c-history__body { padding: 2rem 0 2rem 1.6rem; }
        .c-history__title { font-size: 1.6rem; }
    }

/* ===========================================================
   .c-members — OUR MEMBERS（役員紹介・4カラム）
   =========================================================== */

.c-members {
    padding: 8.4rem 0;
    background: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}

.c-members__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-members__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 2rem;
        margin-bottom: 4rem;
    }

.c-members__more {
        flex-shrink: 0;
        display: inline-flex;
        align-items: center;
        gap: .6rem;
        padding-bottom: .4rem;
        font-size: 1.35rem;
        color: var(--color-text);
        border-bottom: 1px solid var(--color-primary);
    }

.c-members__more i { font-size: 1.1rem; color: var(--color-primary); }

.c-members__list {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 2.4rem;
    }

.c-members__card {
        background: var(--color-card);
        border: 1px solid var(--color-line);
        overflow: hidden;
    }

.c-members__photo {
        display: block;
        width: 100%;
        aspect-ratio: 1 / 1;
        object-fit: cover;
        object-position: center top;
    }

.c-members__caption {
        padding: 1.8rem 2.2rem 2.2rem;
        border-top: 1px solid var(--color-line);
    }

.c-members__role {
        display: block;
        margin-bottom: .5rem;
        font-size: 1.15rem;
        letter-spacing: .04em;
        color: var(--color-ink3);
    }

.c-members__name {
        font-family: var(--font-family-serif);
        font-size: 1.9rem;
        font-weight: 600;
        letter-spacing: .04em;
        color: var(--color-text);
    }

@media (max-width: 750px) {

.c-members {
        padding: 4.4rem 0
}

        .c-members__head { margin-bottom: 3.2rem; }
        .c-members__list { grid-template-columns: repeat(2, 1fr); gap: 1.6rem; }
        .c-members__name { font-size: 1.7rem; }
    }

/* ===========================================================
   .c-company — ORGANIZATION（組織情報・定義リスト）
   =========================================================== */

.c-company {
    padding: 8.4rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-company__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-company__head {
        margin-bottom: 4rem;
    }

.c-company__list {
        margin: 0;
        border-top: 2px solid var(--color-text);
    }

.c-company__row {
        display: grid;
        grid-template-columns: 20rem 1fr;
        border-bottom: 1px solid var(--color-line);
    }

.c-company__dt {
        padding: 2.2rem 2.4rem 2.2rem .4rem;
        font-family: var(--font-family-mono);
        font-size: 1.25rem;
        letter-spacing: .08em;
        color: var(--color-ink3);
    }

.c-company__dd {
        margin: 0;
        padding: 2.2rem .4rem 2.2rem 3.2rem;
        font-size: 1.5rem;
        line-height: 1.7;
        color: var(--color-text);
        border-left: 1px solid var(--color-line);
    }

@media (max-width: 750px) {

.c-company {
        padding: 4.4rem 0
}

        .c-company__head { margin-bottom: 3.2rem; }
        .c-company__row { grid-template-columns: 1fr; }
        .c-company__dt { padding: 1.8rem .2rem .4rem; }
        .c-company__dd { padding: 0 .2rem 1.8rem; border-left: none; font-size: 1.4rem; }
    }

/* ===========================================================
   .c-docs — DOCUMENTS（定款・情報開示・PDFリンクカード）
   =========================================================== */

.c-docs {
    padding: 8.4rem 0;
    background: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}

.c-docs__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-docs__head {
        margin-bottom: 4rem;
    }

.c-docs__list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 2.2rem;
    }

.c-docs__item {
        display: flex;
        align-items: center;
        gap: 2.2rem;
        padding: 2.6rem 3rem;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-docs__item:hover { border-color: var(--color-primary); }
        }

.c-docs__icon {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 5rem;
        height: 6.2rem;
        background: var(--color-bg-base);
        border: 1px solid var(--color-line);
        color: var(--color-primary);
        font-size: 2.2rem;
    }

.c-docs__body {
        flex: 1;
    }

.c-docs__title {
        margin: 0 0 .6rem;
        font-family: var(--font-family-serif);
        font-size: 1.9rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-docs__pdf-label {
        margin-left: .8rem;
        font-family: var(--font-family-primary);
        font-size: 1.2rem;
        font-weight: 400;
        color: var(--color-ink3);
    }

.c-docs__note {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .06em;
        color: var(--color-ink3);
    }

.c-docs__arrow {
        flex-shrink: 0;
        color: var(--color-primary);
        font-size: 1.5rem;
    }

@media (max-width: 750px) {

.c-docs {
        padding: 4.4rem 0
}

        .c-docs__head { margin-bottom: 3.2rem; }
        .c-docs__list { grid-template-columns: 1fr; gap: 1.4rem; }
        .c-docs__item { padding: 2rem; gap: 1.6rem; }
    }

/* ===========================================================
   .c-cta-pair — ページ下部の 2 カラム CTA（JOIN / CONTACT）
   背景写真＋暗色オーバーレイ
   =========================================================== */

.c-cta-pair {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.c-cta-pair__item {
        position: relative;
        overflow: hidden;
        min-height: 23rem;
        background-size: cover;
        color: #fff;
    }

.c-cta-pair__item--join {
        background-image: url("../img/about/bg_join.png");
        background-position: center;
    }

.c-cta-pair__item--contact {
        background-image: url("../img/about/bg_contact.png");
        background-position: right center;
    }

.c-cta-pair__item--event {
        background-image: url("../img/activity/bg_event.jpg");
        background-position: center;
    }

.c-cta-pair__overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(100deg, rgba(20, 17, 13, .94) 0%, rgba(20, 17, 13, .74) 45%, rgba(20, 17, 13, .34) 100%);
    }

.c-cta-pair__body {
        position: relative;
        z-index: 2;
        display: flex;
        flex-direction: column;
        min-height: 23rem;
        padding: 4.6rem var(--pad-side);
    }

/* カード全面を覆うリンク（項目全体をクリック可能にする）。
       ボタンは z-index で前面に出すため、ボタンの hover はボタン上のみで発火する。 */

.c-cta-pair__link {
        position: absolute;
        inset: 0;
        z-index: 1;
    }

.c-cta-pair__en {
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .24em;
        color: rgba(255, 255, 255, .9);
    }

.c-cta-pair__rule {
        width: 2.6rem;
        height: 1px;
        margin-top: .6rem;
        background: rgba(255, 255, 255, .55);
    }

.c-cta-pair__title {
        margin: 1.8rem 0 1rem;
        font-family: var(--font-family-serif);
        font-size: 2.7rem;
        font-weight: 600;
        line-height: 1.4;
        letter-spacing: .02em;
    }

.c-cta-pair__text {
        margin: 0;
        font-size: 1.3rem;
        line-height: 1.85;
        color: rgba(247, 244, 238, .88);
    }

.c-cta-pair__btn {
        position: relative;
        z-index: 2;
        align-self: flex-start;
        display: inline-flex;
        align-items: center;
        gap: 1.6rem;
        margin-top: 2.8rem;
        padding: 1.3rem 2.8rem;
        font-size: 1.4rem;
        letter-spacing: .04em;
        color: #fff;
        background: rgba(255, 255, 255, .08);
        border: 1px solid rgba(255, 255, 255, .5);
        transition: var(--trans-hover);
    }

.c-cta-pair__btn i { font-size: 1.1rem; }

.c-cta-pair__btn .fa-solid {
            line-height: 1;
            --arrow-dy: .08em;
        }

/* ボタンの hover 反応はカード全面リンク（.c-cta-pair__link）の hover で発火させる。
           ボタンは link より前面（z-index:2）にあるため、ボタン直 hover 時は link が hover されず、
           ボタン自身の hover（背景点灯）のみ効く。挙動は .c-cta と同一。 */

@media (min-width: 751px) {
            .c-cta-pair__link:hover ~ .c-cta-pair__btn,
            .c-cta-pair__btn:hover { background: rgba(255, 255, 255, .16); }

            .c-cta-pair__link:hover ~ .c-cta-pair__btn .fa-arrow-right {
                transform: translate(.4rem, var(--arrow-dy, 0));
            }
        }

@media (max-width: 750px) {

.c-cta-pair {
        grid-template-columns: 1fr
}

        .c-cta-pair__body { min-height: 20rem; padding: 3.6rem var(--pad-side); }
        .c-cta-pair__title { font-size: 2.2rem; }
    }

/* --- 活動紹介（120_activity 各セクション）--- */

/* ===========================================================
   .c-approach — 3つの活動（育てる・つなぐ・届ける）
   =========================================================== */

.c-approach {
    padding: 8.4rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-approach__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-approach__list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2.6rem;
    }

.c-approach__card {
        padding: 3.8rem 3.6rem 3.6rem;
        background: var(--color-card);
        border: 1px solid var(--color-line);
    }

.c-approach__head {
        display: flex;
        align-items: center;
        gap: 1.6rem;
    }

.c-approach__icon {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 5.6rem;
        height: 5.6rem;
        border-radius: 50%;
        background: var(--color-cream);
        color: var(--color-primary);
    }

.c-approach__en {
        margin-bottom: .4rem;
        font-family: var(--font-family-mono);
        font-size: 1rem;
        letter-spacing: .22em;
        color: var(--color-ink3);
    }

.c-approach__title {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 2.6rem;
        font-weight: 600;
        letter-spacing: .06em;
        color: var(--color-text);
    }

.c-approach__bar {
        width: 4rem;
        height: 2px;
        margin: 2.4rem 0 2rem;
        background: var(--color-primary);
    }

.c-approach__text {
        margin: 0;
        font-size: 1.35rem;
        line-height: 2;
        color: var(--color-ink2);
    }

@media (max-width: 750px) {

.c-approach {
        padding: 4.4rem 0
}

        .c-approach__list { grid-template-columns: 1fr; gap: 1.6rem; }
        .c-approach__card { padding: 3rem 2.4rem; }
        .c-approach__bar { margin: 2rem 0 1.6rem; }
    }

/* ===========================================================
   .c-featured — FEATURED 注目の活動（10周年フィーチャーカード）
   =========================================================== */

.c-featured {
    padding: 8.4rem 0;
    background: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}

.c-featured__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-featured__head {
        margin-bottom: 4.4rem;
    }

.c-featured__card {
        display: grid;
        grid-template-columns: 1.2fr 1fr;
        align-items: stretch;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        overflow: hidden;
    }

.c-featured__media {
        position: relative;
    }

.c-featured__photo {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.c-featured__badge {
        position: absolute;
        top: 2rem;
        left: 2rem;
        padding: .7rem 1.4rem;
        background: var(--color-primary);
        color: #fff;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .08em;
        border-radius: 2px;
    }

.c-featured__body {
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 4.8rem;
    }

.c-featured__en {
        margin-bottom: 1.4rem;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .18em;
        color: var(--color-primary);
    }

.c-featured__title {
        margin: 0 0 1.8rem;
        font-family: var(--font-family-serif);
        font-size: 3rem;
        line-height: 1.5;
        font-weight: 600;
        letter-spacing: .03em;
        color: var(--color-text);
    }

.c-featured__text {
        margin: 0;
        font-size: 1.4rem;
        line-height: 2;
        color: var(--color-ink2);
    }

.c-featured__more {
        display: inline-flex;
        align-items: center;
        gap: .8rem;
        margin-top: 2.6rem;
        font-size: 1.4rem;
        color: var(--color-primary);
    }

.c-featured__more i { font-size: 1.1rem; }

@media (max-width: 750px) {

.c-featured {
        padding: 4.4rem 0

        /* iOS Safari は aspect-ratio で高さを決めた箱の中の絶対配置子要素
           （__photo の inset:0 / height:100%）を解決できず高さ0に潰すため、
           padding-top でアスペクト比を確保する（16:10 = 62.5%）。全 iOS で確実。 */
}

        .c-featured__head { margin-bottom: 3.2rem; }
        .c-featured__card { grid-template-columns: 1fr; }
        .c-featured__media {
            height: 0;
            padding-top: 62.5%;
        }

        .c-featured__body { padding: 3rem 2.4rem; }
        .c-featured__title { font-size: 2.4rem; }
    }

/* ===========================================================
   .c-demae — 出前展示館（主軸事業・写真＋本文）
   =========================================================== */

.c-demae {
    padding: 8.4rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-demae__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-demae__head {
        margin-bottom: 4.4rem;
    }

.c-demae__grid {
        display: grid;
        grid-template-columns: 1fr 1.4fr;
        gap: 4rem;
        align-items: center;
    }

.c-demae__photo {
        display: block;
        width: 100%;
        aspect-ratio: 4 / 3;
        object-fit: cover;
    }

.c-demae__en {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .14em;
        color: var(--color-primary);
    }

.c-demae__title {
        margin: 1.2rem 0 1.8rem;
        font-family: var(--font-family-serif);
        font-size: 2.6rem;
        line-height: 1.5;
        font-weight: 600;
        color: var(--color-text);
    }

.c-demae__text {
        margin: 0;
        font-size: 1.4rem;
        line-height: 2.1;
        color: var(--color-ink2);
    }

.c-demae__meta {
        display: flex;
        flex-wrap: wrap;
        gap: 1.2rem;
        margin-top: 2.2rem;
    }

.c-demae__pill {
        padding: .8rem 1.4rem;
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink2);
        border: 1px solid var(--color-line);
        border-radius: 2px;
    }

.c-demae__btn {
        margin-top: 2.6rem;
    }

@media (max-width: 750px) {

.c-demae {
        padding: 4.4rem 0
}

        .c-demae__head { margin-bottom: 3.2rem; }
        .c-demae__grid { grid-template-columns: 1fr; gap: 2.8rem; }
        .c-demae__title { font-size: 2.2rem; }
        .c-demae__btn { width: 100%; }
    }

/* ===========================================================
   .c-activities — ACTIVITIES 活動一覧（3カラムカード）
   =========================================================== */

.c-activities {
    padding: 8.4rem 0;
    background: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}

.c-activities__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-activities__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 2rem;
        margin-bottom: 4.4rem;
    }

.c-activities__more {
        flex-shrink: 0;
        display: inline-flex;
        align-items: center;
        gap: .6rem;
        padding-bottom: .4rem;
        font-size: 1.35rem;
        color: var(--color-text);
        border-bottom: 1px solid var(--color-primary);
    }

.c-activities__more i { font-size: 1.1rem; color: var(--color-primary); }

.c-activities__list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2.4rem;
    }

.c-activities__card {
        display: flex;
        flex-direction: column;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        overflow: hidden;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-activities__card:hover { border-color: var(--color-primary); }
        }

.c-activities__photo {
        display: block;
        width: 100%;
        aspect-ratio: 16 / 10;
        object-fit: cover;
    }

.c-activities__body {
        flex: 1;
        display: flex;
        flex-direction: column;
        padding: 2rem 2.2rem 2.2rem;
    }

.c-activities__tag {
        margin-bottom: 1.2rem;
    }

.c-activities__title {
        flex: 1;
        margin: 0 0 1.4rem;
        font-family: var(--font-family-serif);
        font-size: 1.8rem;
        line-height: 1.5;
        font-weight: 600;
        color: var(--color-text);
    }

.c-activities__meta {
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .08em;
        color: var(--color-ink3);
    }

@media (max-width: 750px) {

.c-activities {
        padding: 4.4rem 0
}

        .c-activities__head { margin-bottom: 3.2rem; }
        .c-activities__list { grid-template-columns: 1fr; gap: 1.6rem; }
    }

/* ===========================================================
   .c-trajectory — TRAJECTORY 活動軌跡（アーカイブ・夜セクション）
   =========================================================== */

.c-trajectory {
    padding: 8.4rem 0;
    background: var(--color-dark);
    color: #fff;
}

.c-trajectory__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-trajectory__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 2rem;
        margin-bottom: 4.4rem;
    }

.c-trajectory__more {
        flex-shrink: 0;
        display: inline-flex;
        align-items: center;
        gap: .6rem;
        padding-bottom: .4rem;
        font-size: 1.35rem;
        color: #fff;
        border-bottom: 1px solid var(--color-gold);
    }

.c-trajectory__more i { font-size: 1.1rem; color: var(--color-gold); }

.c-trajectory__list {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 1.8rem;
    }

.c-trajectory__card {
        display: block;
        background: rgba(255, 255, 255, .04);
        border: 1px solid rgba(255, 255, 255, .12);
        overflow: hidden;
    }

.c-trajectory__photo {
        display: block;
        width: 100%;
        aspect-ratio: 4 / 3;
        object-fit: cover;
    }

.c-trajectory__body {
        padding: 1.6rem 1.8rem 1.8rem;
    }

.c-trajectory__year {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .1em;
        color: var(--color-gold);
    }

.c-trajectory__title {
        margin: .8rem 0 0;
        font-family: var(--font-family-serif);
        font-size: 1.5rem;
        line-height: 1.5;
        font-weight: 500;
        color: #fff;
    }

@media (max-width: 750px) {

.c-trajectory {
        padding: 4.4rem 0
}

        .c-trajectory__head { margin-bottom: 3.2rem; }
        .c-trajectory__list { grid-template-columns: repeat(2, 1fr); gap: 1.4rem; }
    }

/* --- 出張出前展示館（140_demae 各セクション）--- */

/* ===========================================================
   .c-demae-intro — WHAT WE DO 事業説明（2カラム＋ピルチップ）
   =========================================================== */

.c-demae-intro {
    padding: 8.4rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-demae-intro__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
        display: grid;
        grid-template-columns: 1fr 2fr;
        gap: 5.6rem;
        align-items: start;
    }

.c-demae-intro__en {
        margin-bottom: 1.4rem;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .22em;
        color: var(--color-primary);
    }

.c-demae-intro__title {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 3rem;
        line-height: 1.5;
        font-weight: 600;
        letter-spacing: .04em;
        color: var(--color-text);
    }

.c-demae-intro__text {
        margin: 0;
        font-size: 1.45rem;
        line-height: 2.2;
        color: var(--color-ink2);
    }

.c-demae-intro__chips {
        display: flex;
        flex-wrap: wrap;
        gap: 1.2rem;
        margin-top: 2.4rem;
    }

.c-demae-intro__chip {
        padding: .9rem 1.6rem;
        font-family: var(--font-family-mono);
        font-size: 1.2rem;
        color: var(--color-ink2);
        background: var(--color-card);
        border: 1px solid var(--color-line);
        border-radius: 999px;
    }

@media (max-width: 750px) {

.c-demae-intro {
        padding: 4.4rem 0
}

        .c-demae-intro__inner { grid-template-columns: 1fr; gap: 2.4rem; }
        .c-demae-intro__title { font-size: 2.4rem; }
    }

/* ===========================================================
   .c-demae-types — TWO TYPES 2つの事業タイプ（2カラムカード）
   =========================================================== */

.c-demae-types {
    padding: 8.4rem 0;
    background: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}

.c-demae-types__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-demae-types__head {
        margin-bottom: 4.4rem;
    }

.c-demae-types__list {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 2.6rem;
    }

.c-demae-types__card {
        display: flex;
        flex-direction: column;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        overflow: hidden;
    }

.c-demae-types__media {
        position: relative;
    }

.c-demae-types__photo {
        display: block;
        width: 100%;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

.c-demae-types__no {
        position: absolute;
        top: 0;
        left: 0;
        padding: .8rem 1.6rem;
        background: var(--color-primary);
        color: #fff;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .1em;
    }

.c-demae-types__body {
        flex: 1;
        display: flex;
        flex-direction: column;
        padding: 3rem 3.4rem 3.2rem;
    }

.c-demae-types__cap {
        margin-bottom: 1rem;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .08em;
        color: var(--color-primary);
    }

.c-demae-types__title {
        margin: 0 0 1.4rem;
        font-family: var(--font-family-serif);
        font-size: 2.5rem;
        font-weight: 600;
        letter-spacing: .03em;
        color: var(--color-text);
    }

.c-demae-types__text {
        flex: 1;
        margin: 0;
        font-size: 1.35rem;
        line-height: 2;
        color: var(--color-ink2);
    }

.c-demae-types__target {
        margin-top: 1.8rem;
        padding-top: 1.6rem;
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink3);
        border-top: 1px solid var(--color-line);
    }

@media (max-width: 750px) {

.c-demae-types {
        padding: 4.4rem 0
}

        .c-demae-types__head { margin-bottom: 3.2rem; }
        .c-demae-types__list { grid-template-columns: 1fr; gap: 1.6rem; }
        .c-demae-types__body { padding: 2.6rem 2.4rem; }
        .c-demae-types__title { font-size: 2.2rem; }
    }

/* ===========================================================
   .c-price — PRICING 料金システム
   基本料金（朱パネル・縦長）と追加/延長料金（右カラムに縦並び）を2カラム、＋
   オプション3カラム（feature は朱）。カード内にボトル透かし（装飾）、
   カード下部はコース内容の説明帯（ベタ塗り）。
   =========================================================== */

.c-price {
    padding: 8.4rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
    /* カード右端から覗くボトル透かし（__bottle）は __card の overflow: hidden で切っているが、
       iOS Safari では角丸＋mix-blend-mode の子が切り切れず、画面右へはみ出して横スクロールになる。
       セクション境界でも切っておく（.c-hero と同じ保険。背景はフルブリードなので見た目は変わらない） */
    overflow-x: clip;
}

.c-price__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-price__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 2rem;
        margin-bottom: 4.4rem;
    }

.c-price__head-note {
        flex-shrink: 0;
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        letter-spacing: .06em;
        color: var(--color-ink3);
    }

/* 左：基本料金（縦長）／右：追加・延長料金（縦並び） */

.c-price__grid {
        display: grid;
        grid-template-columns: 5fr 7fr;
        align-items: stretch;
        gap: 2.6rem;
    }

/* 基本料金（朱パネル・縦長） */

.c-price__base {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 2.4rem;
        padding: 4rem 3.8rem;
        background: var(--color-primary);
        border-radius: 1.4rem;
        box-shadow: var(--shadow-price-feature);
    }

.c-price__base-label {
        margin-bottom: 1.4rem;
        font-family: var(--font-family-mono);
        font-size: 1.2rem;
        letter-spacing: .18em;
        color: var(--color-gold);
    }

.c-price__base-body {
        color: var(--color-lightest);
    }

.c-price__base-specs {
        display: flex;
        flex-direction: column;
        gap: 1.4rem;
        margin: 0;
        padding: 2.4rem 0 0;
        list-style: none;
        border-top: 1px solid rgba(255, 255, 255, .2);
    }

.c-price__base-spec {
        display: flex;
        align-items: center;
        gap: 1.2rem;
        font-family: var(--font-family-serif);
        font-size: 1.8rem;
        letter-spacing: .04em;
        color: rgba(255, 255, 255, .92);
    }

.c-price__base-spec::before {
            content: "";
            flex-shrink: 0;
            width: .7rem;
            height: .7rem;
            background: var(--color-gold);
            transform: rotate(45deg);
        }

/* 追加料金・延長料金（縦並び） */

.c-price__addons {
        display: flex;
        flex-direction: column;
        gap: 2.6rem;
    }

.c-price__addon {
        display: flex;
        flex: 1;
        align-items: center;
        justify-content: space-between;
        gap: 2.4rem;
        padding: 2.6rem 3.2rem;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        border-radius: 1.4rem;
        box-shadow: var(--shadow-price);
    }

.c-price__addon-head {
        display: flex;
        align-items: center;
        gap: 1.6rem;
    }

.c-price__addon-label {
        flex-shrink: 0;
        padding: .7rem 1.6rem;
        font-size: 1.3rem;
        letter-spacing: .06em;
        color: var(--color-primary);
        background: var(--color-bg2);
        border-radius: 999px;
    }

.c-price__addon-cond {
        font-size: 1.5rem;
        color: var(--color-ink2);
    }

.c-price__addon-fee {
        flex-shrink: 0;
        font-family: var(--font-family-serif);
        font-size: 2.2rem;
        font-weight: 600;
        letter-spacing: .02em;
        text-align: right;
        color: var(--color-text);
    }

/* 小見出し（オプション） */

.c-price__sub {
        display: flex;
        align-items: center;
        gap: 1.6rem;
        margin: 5.6rem 0 2.6rem;
        font-family: var(--font-family-serif);
        font-size: 2rem;
        font-weight: 600;
        letter-spacing: .08em;
        color: var(--color-text);
    }

.c-price__sub::after {
            content: "";
            flex: 1;
            height: 1px;
            background: var(--color-line);
        }

.c-price__sub-en {
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        letter-spacing: .16em;
        color: var(--color-primary);
    }

.c-price__list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2.6rem;
    }

.c-price__card {
        position: relative;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        isolation: isolate; /* 透かしの mix-blend-mode をカード内で完結させ、Safari でも角丸ごと確実にクリップする */
        background: var(--color-card);
        color: var(--color-text);
        border: 1px solid var(--color-line);
        border-radius: 1.4rem;
        box-shadow: var(--shadow-price);
        text-align: center;
    }

.c-price__card--feature {
        background: var(--color-primary);
        color: #fff;
        border: none;
        box-shadow: var(--shadow-price-feature);
    }

/* ボトル透かし（装飾・右端から覗く・本文より背面） */

.c-price__bottle {
        position: absolute;
        top: 50%;
        right: -6.2rem;
        z-index: 1;
        width: 22rem;
        height: 30.8rem;
        transform: translateY(-50%);
        background: url("../img/demae/bg_price-bottle.png") no-repeat right center / contain;
        opacity: .55;
        mix-blend-mode: multiply;
        pointer-events: none;
    }

.c-price__card--feature .c-price__bottle {
            right: -3.8rem;
            height: 29rem;
            background-image: url("../img/demae/bg_price-bottle-red.png");
            opacity: .32;
            mix-blend-mode: normal;
        }

.c-price__badge {
        position: absolute;
        top: 1.8rem;
        right: 1.8rem;
        z-index: 2;
        padding: .5rem 1.4rem;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .08em;
        color: var(--color-ink-on-gold);
        background: var(--color-gold);
        border-radius: 999px;
    }

.c-price__body {
        position: relative;
        z-index: 2;
        flex: 1;
        padding: 4rem 3.6rem 3rem;
    }

.c-price__name {
        font-family: var(--font-family-serif);
        font-size: 2.1rem;
        font-weight: 600;
        letter-spacing: .06em;
        color: var(--color-primary);
    }

.c-price__card--feature .c-price__name { color: #fff; }

.c-price__divider {
        display: block;
        width: 3.4rem;
        height: 1px;
        margin: 2.2rem auto 2.6rem;
        background: var(--color-line);
    }

.c-price__card--feature .c-price__divider { background: rgba(255, 255, 255, .45); }

.c-price__amount {
        display: flex;
        align-items: baseline;
        justify-content: center;
        gap: .3rem;
        font-family: var(--font-family-serif);
    }

.c-price__base .c-price__amount { justify-content: flex-start; }

.c-price__unit {
        font-size: 3rem;
        font-weight: 500;
    }

.c-price__num {
        font-size: 6.2rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: .01em;
    }

.c-price__tax {
        margin-top: 1.2rem;
        font-family: var(--font-family-serif);
        font-size: 1.4rem;
        color: var(--color-ink3);
    }

.c-price__card--feature .c-price__tax { color: rgba(255, 255, 255, .78); }

.c-price__base .c-price__tax { color: rgba(255, 255, 255, .7); }

/* 下部のコース内容帯（ベタ塗り・透過なし） */

.c-price__desc {
        position: relative;
        z-index: 2;
        padding: 1.5rem 2.2rem;
        font-size: 1.35rem;
        line-height: 1.75;
        text-align: center;
        background: var(--color-cream);
        color: var(--color-ink2);
        border-top: 1px solid var(--color-line);
    }

.c-price__card--feature .c-price__desc {
            background: var(--color-primary-dark);
            color: rgba(255, 255, 255, .92);
            border-top-color: rgba(255, 255, 255, .16);
        }

.c-price__notes {
        margin: 2.6rem 0 0;
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        line-height: 1.9;
        color: var(--color-ink3);
    }

@media (max-width: 750px) {

.c-price {
        padding: 4.4rem 0
}

        .c-price__head { margin-bottom: 3.2rem; }
        .c-price__list { grid-template-columns: 1fr; gap: 1.6rem; }

        .c-price__grid { grid-template-columns: 1fr; gap: 1.6rem; }

        .c-price__base {
            gap: 2.4rem;
            padding: 3.2rem 2.4rem;
        }

        .c-price__base-specs { padding-top: 2.4rem; }
        .c-price__base-spec { font-size: 1.6rem; }

        .c-price__addons { gap: 1.6rem; }

        .c-price__addon {
            flex-direction: column;
            align-items: flex-start;
            gap: 1.2rem;
            padding: 2.2rem 2.4rem;
        }

        .c-price__addon-fee { text-align: left; }

        .c-price__sub { margin: 4rem 0 2rem; font-size: 1.8rem; }

        .c-price__body { padding: 3.4rem 3rem 2.6rem; }
        .c-price__num { font-size: 5rem; }
        .c-price__unit { font-size: 2.6rem; }

        .c-price__bottle {
            right: -5rem;
            height: 26rem;
        }

            .c-price__card--feature .c-price__bottle { right: -3rem; height: 24rem; }
    }

/* ===========================================================
   .c-records — PAST EVENTS 出店実績（4カラムカード＋出展履歴ボックス）
   =========================================================== */

.c-records {
    padding: 8.4rem 0;
    background: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}

.c-records__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-records__head {
        margin-bottom: 4.4rem;
    }

.c-records__list {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 2.4rem;
    }

.c-records__card {
        display: block;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        overflow: hidden;
    }

.c-records__photo {
        display: block;
        width: 100%;
        aspect-ratio: 4 / 3;
        object-fit: cover;
    }

.c-records__body {
        padding: 1.8rem 2rem 2rem;
    }

.c-records__title {
        margin: 0 0 .8rem;
        font-family: var(--font-family-serif);
        font-size: 1.55rem;
        line-height: 1.5;
        font-weight: 600;
        color: var(--color-text);
    }

.c-records__date {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .08em;
        color: var(--color-ink3);
    }

/* レセプション等への出展履歴（朱の角丸枠＋ピル見出し＋箇条書き） */

.c-records__history {
        margin-top: 3.2rem;
        padding: 3.2rem 4rem 3.6rem;
        background: var(--color-bg-base);
        border: 3px solid var(--color-primary);
        border-radius: 2.4rem;
    }

.c-records__history-ttl {
        display: table;
        min-width: 50%;
        margin: 0 auto 2.4rem;
        padding: .7rem 4rem;
        background: var(--color-primary);
        border-radius: 999px;
        font-family: var(--font-family-primary);
        font-size: 2rem;
        line-height: 1.4;
        font-weight: 700;
        letter-spacing: .04em;
        text-align: center;
        color: var(--color-lightest);
    }

.c-records__history-list {
        margin: 0;
        padding: 0;
        list-style: none;
        columns: 2;
        column-gap: 4rem;
        font-size: 1.6rem;
        line-height: 1.7;
        font-weight: 500;
        color: var(--color-text);
    }

.c-records__history-list li {
            margin-bottom: .6rem;
            padding-left: 1em;
            text-indent: -1em;
            page-break-inside: avoid;
            break-inside: avoid;
        }

.c-records__history-list li::before { content: "・"; }

.c-records__history-etc {
        margin-left: 2em;
    }

@media (max-width: 750px) {

.c-records {
        padding: 4.4rem 0
}

        .c-records__head { margin-bottom: 3.2rem; }
        .c-records__list { grid-template-columns: repeat(2, 1fr); gap: 1.6rem; }

        .c-records__history {
            margin-top: 2.4rem;
            padding: 2.4rem 1.8rem 2.6rem;
            border-width: 2px;
            border-radius: 1.6rem;
        }

        .c-records__history-ttl {
            display: block;
            min-width: 0;
            margin-bottom: 1.8rem;
            padding: .6rem 1.6rem;
            font-size: 1.6rem;
        }

        .c-records__history-list {
            columns: 1;
            font-size: 1.4rem;
        }

            .c-records__history-list li { margin-bottom: .5rem; }

        .c-records__history-etc {
            display: block;
            margin: .4rem 0 0;
            text-indent: 0;
        }
    }

/* ===========================================================
   .c-form — REQUEST FORM 依頼フォーム（最重要KPI）
   ラジオはチップUI（:checked + label）で JS 不要
   =========================================================== */

.c-form {
    padding: 8.4rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

/* クリーム地バリアント（会員ページ申込フォーム等） */

.c-form--cream { background: var(--color-cream); }

.c-form__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-form__head {
        margin-bottom: 1.4rem;
    }

.c-form__body {
        max-width: 86rem;
        margin: 4rem auto 0;
        border-top: 2px solid var(--color-text);
    }

.c-form__row {
        display: grid;
        grid-template-columns: 22rem 1fr;
        gap: 2.8rem;
        align-items: center;
        padding: 2.2rem 0;
        border-bottom: 1px solid var(--color-line);
    }

.c-form__row--full {
        align-items: start;
    }

/* 会員限定ツアー選択時のみ表示する「会員No.」欄（htdocs/js/cf7.js が is-hidden を切替） */

.c-form__row--member-no.is-hidden {
        display: none;
    }

.c-form__label {
        font-size: 1.4rem;
        font-weight: 500;
        color: var(--color-text);
    }

.c-form__row--full .c-form__label { padding-top: 1.2rem; }

.c-form__req {
        margin-left: 1rem;
        padding: .2rem .7rem;
        font-family: var(--font-family-mono);
        font-size: .95rem;
        letter-spacing: .06em;
        color: #fff;
        background: var(--color-primary);
        border-radius: 2px;
        vertical-align: middle;
    }

.c-form__input,
    .c-form__textarea {
        width: 100%;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        border-radius: 2px;
        font-family: inherit;
        font-size: 1.4rem;
        color: var(--color-text);
        outline: none;
        transition: var(--trans-hover);
    }

.c-form__input::placeholder, .c-form__textarea::placeholder { color: var(--color-placeholder); }

.c-form__input:focus, .c-form__textarea:focus { border-color: var(--color-primary); }

.c-form__input {
        height: 4.8rem;
        padding: 0 1.6rem;
    }

/* iOS Safari の日付入力は内部の表示要素の幅を最小幅に持ち、width: 100% でも
       親からはみ出して横スクロールの原因になる（出前展示館の依頼フォーム「開催期日」）。
       ネイティブの外観を外して min-width を解除し、値は左寄せに揃える */

.c-form__input[type="date"] {
        display: block;
        min-width: 0;
        appearance: none;
        text-align: left;
    }

.c-form__input[type="date"]::-webkit-date-and-time-value { text-align: left; }

.c-form__textarea {
        height: 13rem;
        padding: 1.4rem 1.6rem;
        line-height: 1.7;
        resize: vertical;
    }

/* 入力欄の補足（例：会場の出展許可について） */

.c-form__hint {
        margin: .8rem 0 0;
        font-size: 1.2rem;
        line-height: 1.7;
        color: var(--color-ink3);
    }

.c-form__hint.is-hidden { display: none; }

/* 単位付きの入力（例：参加予定人員 ◯名） */

.c-form__control--inline {
        display: flex;
        align-items: center;
        gap: 1rem;
    }

.c-form__unit {
        flex-shrink: 0;
        font-size: 1.4rem;
        color: var(--color-ink2);
    }

.c-form__input--num {
        max-width: 14rem;
    }

/* チップ型ラジオ */

.c-form__chips {
        display: flex;
        flex-wrap: wrap;
        gap: 1rem;
    }

.c-form__radio {
        position: absolute;
        width: 1px;
        height: 1px;
        opacity: 0;
        pointer-events: none;
    }

/* 会員区分：イベントに応じて htdocs/js/cf7.js が hidden を切替（会員限定は「一般」→「当日入会予定」） */

.c-form__chip[hidden] { display: none; }

.c-form__chip {
        display: inline-block;
        padding: 1.1rem 2rem;
        font-size: 1.35rem;
        color: var(--color-ink2);
        background: var(--color-card);
        border: 1px solid var(--color-line);
        border-radius: 2px;
        cursor: pointer;
        transition: var(--trans-hover);
    }

.c-form__radio:checked + .c-form__chip {
        font-weight: 600;
        color: #fff;
        background: var(--color-primary);
        border-color: var(--color-primary);
    }

@media (min-width: 751px) {
        .c-form__radio:not(:checked) + .c-form__chip:hover { border-color: var(--color-primary); }
    }

.c-form__radio:focus-visible + .c-form__chip {
        outline: 2px solid var(--color-primary);
        outline-offset: 2px;
    }

/* --- Contact Form 7 出力用（docs/cf7-forms.md 参照） ---
       CF7 のラジオは label > input + span 構造のため、
       モックの input + label チップと同じ見た目にマッピングする */

.c-form .wpcf7-form-control-wrap { display: block; }

.c-form .wpcf7-radio {
        display: flex;
        flex-wrap: wrap;
        gap: 1rem;
    }

.c-form .wpcf7-radio .wpcf7-list-item {
            margin: 0;
        }

.c-form .wpcf7-radio .wpcf7-list-item[hidden] { display: none; }

.c-form .wpcf7-radio input {
            position: absolute;
            width: 1px;
            height: 1px;
            opacity: 0;
            pointer-events: none;
        }

.c-form .wpcf7-radio .wpcf7-list-item-label {
            display: inline-block;
            padding: 1.1rem 2rem;
            font-size: 1.35rem;
            color: var(--color-ink2);
            background: var(--color-card);
            border: 1px solid var(--color-line);
            border-radius: 2px;
            cursor: pointer;
            transition: var(--trans-hover);
        }

.c-form .wpcf7-radio input:checked + .wpcf7-list-item-label {
            font-weight: 600;
            color: #fff;
            background: var(--color-primary);
            border-color: var(--color-primary);
        }

.c-form .wpcf7-radio input:focus-visible + .wpcf7-list-item-label {
            outline: 2px solid var(--color-primary);
            outline-offset: 2px;
        }

@media (min-width: 751px) {
        .c-form .wpcf7-radio input:not(:checked) + .wpcf7-list-item-label:hover { border-color: var(--color-primary); }
    }

/* 同意チェック（acceptance） */

.c-form .wpcf7-acceptance .wpcf7-list-item { margin: 0; }

.c-form .wpcf7-acceptance label {
            display: flex;
            align-items: center;
            gap: 1rem;
            cursor: pointer;
        }

.c-form .wpcf7-acceptance input {
            width: 1.8rem;
            height: 1.8rem;
            accent-color: var(--color-primary);
            cursor: pointer;
        }

/* バリデーション・レスポンス */

.c-form .wpcf7-not-valid-tip {
        display: block;
        margin-top: .6rem;
        font-size: 1.2rem;
        color: var(--color-primary);
    }

.c-form .wpcf7-response-output {
        margin: 2.4rem 0 0;
        padding: 1.4rem 2rem;
        font-size: 1.35rem;
        color: var(--color-text);
        border: 1px solid var(--color-primary);
    }

.c-form .wpcf7-spinner { margin: 0 1rem; }

/* 同意チェック（プライバシーポリシー・お問い合わせ等） */

.c-form__agree {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 1rem;
        padding: 2.6rem 0;
        font-size: 1.35rem;
        color: var(--color-ink2);
    }

.c-form__agree input {
            width: 1.8rem;
            height: 1.8rem;
            accent-color: var(--color-primary);
            cursor: pointer;
        }

.c-form__agree a {
            color: var(--color-primary);
            border-bottom: 1px solid var(--color-primary);
        }

/* セレクト（イベント選択・参加人数） */

.c-form__select {
        width: 100%;
        height: 4.8rem;
        padding: 0 4rem 0 1.6rem;
        background: var(--color-card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%235c5347' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 1.6rem center;
        border: 1px solid var(--color-line);
        border-radius: 2px;
        font-family: inherit;
        font-size: 1.4rem;
        color: var(--color-text);
        appearance: none;
        cursor: pointer;
        outline: none;
        transition: var(--trans-hover);
    }

.c-form__select:focus { border-color: var(--color-primary); }

@media (min-width: 751px) {
        .c-form__select:hover { border-color: var(--color-primary); }
    }

/* 申込対象イベントカード（イベント参加申込ページ） */

.c-form__target {
        max-width: 86rem;
        margin: 3.4rem auto 0;
        padding: 2.6rem 3rem;
        background: var(--color-card);
        border: 1px solid var(--color-primary);
    }

.c-form__target-label {
        display: inline-block;
        margin-bottom: 1rem;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .06em;
        color: var(--color-primary);
    }

.c-form__target-name {
        margin: 0 0 1.8rem;
        font-family: var(--font-family-serif);
        font-size: 2.2rem;
        font-weight: 600;
        line-height: 1.5;
        color: var(--color-text);
    }

.c-form__target-spec {
        margin: 0;
        border-top: 1px solid var(--color-line);
    }

.c-form__target-row {
        display: grid;
        grid-template-columns: 8rem 1fr;
        gap: 1.6rem;
        padding: 1rem .2rem;
        border-bottom: 1px solid var(--color-line);
    }

.c-form__target-dt {
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink3);
    }

.c-form__target-dd {
        margin: 0;
        font-size: 1.35rem;
        line-height: 1.7;
        color: var(--color-text);
    }

.c-form__target-link {
        display: inline-flex;
        align-items: center;
        gap: .8rem;
        margin-top: 1.8rem;
        font-size: 1.3rem;
        color: var(--color-primary);
    }

@media (min-width: 751px) {
            .c-form__target-link:hover { text-decoration: underline; }
        }

/* 受付中イベントなし */

.c-form__empty {
        max-width: 86rem;
        margin: 3.4rem auto 0;
        padding: 4rem 3rem;
        text-align: center;
        background: var(--color-card);
        border: 1px solid var(--color-line);
    }

.c-form__empty-text {
        margin: 0;
        font-size: 1.4rem;
        line-height: 2;
        color: var(--color-ink2);
    }

/* 注意事項（参加申込） */

.c-form__cautions {
        max-width: 86rem;
        margin: 3rem auto 0;
        padding: 2.2rem 2.6rem;
        list-style: none;
        background: var(--color-bg-base);
        border: 1px solid var(--color-line);
    }

.c-form__cautions li {
            position: relative;
            padding-left: 1.8rem;
            font-size: 1.25rem;
            line-height: 1.9;
            color: var(--color-ink2);
        }

.c-form__cautions li:not(:last-child) { margin-bottom: .6rem; }

.c-form__cautions li::before {
                content: "\203b";
                position: absolute;
                left: 0;
                color: var(--color-primary);
            }

.c-form__actions {
        display: flex;
        justify-content: center;
        gap: 1.6rem;
        margin-top: 3.4rem;
    }

/* 装飾透かし（お問い合わせ：徳利＋盃。--deco 指定時のみ） */

.c-form--deco {
        position: relative;
        overflow: hidden;
    }

.c-form--deco .c-form__inner { position: relative; z-index: 2; }

.c-form__deco {
        position: absolute;
        top: 50%;
        right: 8rem;
        z-index: 1;
        width: 24rem;
        height: auto;
        transform: translateY(-48%);
        pointer-events: none;
    }

.c-form__note {
        margin-top: 1.8rem;
        text-align: center;
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink3);
    }

.c-form__note i { margin-right: .7rem; color: var(--color-line-green); }

.c-form__note-link {
        margin-left: 1rem;
        color: var(--color-line-green-text);
        text-decoration: underline;
        text-underline-offset: .3em;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-form__note-link:hover { opacity: .7; }
        }

@media (max-width: 750px) {

.c-form__note-link {
            display: inline-block;
            margin: .4rem 0 0
    }
        }

@media (max-width: 750px) {

.c-form {
        padding: 4.4rem 0

        /* 装飾透かしは PC 限定 */
}

        .c-form__row {
            grid-template-columns: 1fr;
            gap: 1rem;
            align-items: start;
        }
            .c-form__row--full .c-form__label { padding-top: 0; }

        .c-form__actions { flex-direction: column; }
        .c-form__actions .c-btn { width: 100%; }

        .c-form__target { padding: 2rem 1.8rem; }
        .c-form__target-name { font-size: 1.9rem; }
        .c-form__target-row { grid-template-columns: 6rem 1fr; gap: 1rem; }
        .c-form__empty { padding: 3rem 1.8rem; }
        .c-form__cautions { padding: 1.8rem 1.6rem; }
        .c-form__deco { display: none; }
    }

/* --- 活動軌跡 年表（130_history 各セクション）--- */

/* ===========================================================
   .c-timeline — 活動軌跡 縦型タイムライン（写真カード付き）
   muted（廃止・前身）項目は淡色＋グレースケールで差別化
   =========================================================== */

.c-timeline {
    padding: 6.4rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-timeline__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-timeline__item {
        display: grid;
        grid-template-columns: 13.2rem 4.4rem 1fr;
        align-items: stretch;
    }

.c-timeline__year {
        padding: 2.6rem .4rem 2.6rem 0;
        text-align: right;
    }

.c-timeline__year-num {
        font-family: var(--font-family-serif);
        font-size: 3rem;
        line-height: 1;
        font-weight: 600;
        letter-spacing: .03em;
        color: var(--color-primary);
    }

.c-timeline__tag {
        margin-top: .8rem;
        font-family: var(--font-family-mono);
        font-size: 1rem;
        letter-spacing: .08em;
        color: var(--color-primary);
    }

.c-timeline__rail {
        position: relative;
        display: flex;
        justify-content: center;
    }

.c-timeline__rail::before {
            content: "";
            position: absolute;
            top: 0;
            bottom: 0;
            width: 2px;
            background: var(--color-line);
        }

.c-timeline__node {
        position: relative;
        z-index: 2;
        margin-top: 3.6rem;
        width: 1.5rem;
        height: 1.5rem;
        border-radius: 50%;
        background: var(--color-bg-base);
        border: 3px solid var(--color-primary);
    }

.c-timeline__body {
        padding: 2.4rem 0 2.4rem 2.8rem;
        border-top: 1px solid var(--color-line);
    }

.c-timeline__item:first-child .c-timeline__body {
        border-top: none;
    }

.c-timeline__card {
        display: grid;
        grid-template-columns: 22rem 1fr;
        align-items: stretch;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        overflow: hidden;
    }

.c-timeline__media {
        position: relative;
        min-height: 16rem;
    }

.c-timeline__photo {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.c-timeline__text {
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 2.6rem 3rem;
    }

.c-timeline__title {
        margin: 0 0 1rem;
        font-family: var(--font-family-serif);
        font-size: 2rem;
        line-height: 1.45;
        font-weight: 600;
        letter-spacing: .02em;
        color: var(--color-text);
    }

.c-timeline__desc {
        margin: 0;
        font-size: 1.35rem;
        line-height: 1.95;
        color: var(--color-ink2);
    }

/* muted：廃止・前身の出来事 */

.c-timeline__item--muted .c-timeline__year-num { color: var(--color-mute); }

.c-timeline__item--muted .c-timeline__tag { color: var(--color-ink3); }

.c-timeline__item--muted .c-timeline__node { border-color: var(--color-mute); }

.c-timeline__item--muted .c-timeline__card { opacity: .82; }

.c-timeline__item--muted .c-timeline__title { color: var(--color-ink2); }

.c-timeline__item--muted .c-timeline__photo { filter: grayscale(.6) brightness(.96); }

@media (max-width: 750px) {

.c-timeline {
        padding: 4.4rem 0

        /* iOS Safari は aspect-ratio で高さを決めた箱の中の絶対配置子（__photo の
           inset:0 / height:100%）を解決できず高さ0に潰すため、padding-top で
           アスペクト比を確保する（16:10 = 62.5%）。c-featured と同じ対処。 */
}

        .c-timeline__item { grid-template-columns: 7rem 3rem 1fr; }
        .c-timeline__year { padding: 2rem .2rem 2rem 0; }
        .c-timeline__year-num { font-size: 2.2rem; }
        .c-timeline__node { margin-top: 2.6rem; }
        .c-timeline__body { padding: 2rem 0 2rem 1.4rem; }
        .c-timeline__card { grid-template-columns: 1fr; }
        .c-timeline__media { min-height: 0; height: 0; padding-top: 62.5%; }

        .c-timeline__text { padding: 2rem 2.2rem; }
        .c-timeline__title { font-size: 1.7rem; }
    }

/* ===========================================================
   .c-backlink — 戻り導線カード（中央・「活動紹介へ戻る」）
   =========================================================== */

.c-backlink {
    display: flex;
    justify-content: center;
    padding: 6.4rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-backlink__inner {
        display: flex;
        justify-content: center;
        width: 100%;
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-backlink__card {
        display: flex;
        align-items: center;
        gap: 1.8rem;
        width: 100%;
        max-width: 42rem;
        padding: 2.8rem 3.4rem;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-backlink__card:hover { border-color: var(--color-primary); }
        }

.c-backlink__icon {
        flex-shrink: 0;
        color: var(--color-primary);
        font-size: 1.5rem;
        transition: transform 300ms;
    }

@media (min-width: 751px) {
            .c-backlink__card:hover .c-backlink__icon { transform: translateX(-.4rem); }
        }

.c-backlink__body {
        display: flex;
        flex-direction: column;
    }

.c-backlink__label {
        margin-bottom: .5rem;
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .1em;
        color: var(--color-ink3);
    }

.c-backlink__title {
        font-family: var(--font-family-serif);
        font-size: 1.8rem;
        font-weight: 600;
        color: var(--color-text);
    }

@media (max-width: 750px) {

.c-backlink {
        padding: 4.4rem 0
}

        .c-backlink__card { padding: 2.4rem 2.6rem; }
    }

/* --- 地酒ファンBOOK（150_book 各セクション）--- */

/* ===========================================================
   .c-categories — 4 CATEGORIES（地酒ファンBOOKの4カテゴリーカード）
   =========================================================== */

.c-categories {
    padding: 8rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-categories__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-categories__head {
        margin-bottom: 4.4rem;
    }

.c-categories__list {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 2.4rem;
    }

/* 写真フルブリードのダークカード */

.c-categories__card {
        position: relative;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        min-height: 24.8rem;
        overflow: hidden;
        color: #fff;
    }

@media (min-width: 751px) {
            .c-categories__card:hover .c-categories__bg { transform: scale(1.05); }
        }

.c-categories__bg {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transform: scale(1.02);
        transition: var(--trans-hover);
    }

.c-categories__overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(180deg, rgba(20, 17, 13, .32) 0%, rgba(20, 17, 13, .5) 52%, rgba(20, 17, 13, .9) 100%);
        box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1);
    }

.c-categories__content {
        position: relative;
        z-index: 2;
        padding: 0 2.6rem 2.6rem;
    }

.c-categories__no {
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .16em;
        color: var(--color-gold);
    }

.c-categories__icon {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 5rem;
        height: 5rem;
        margin: 1.4rem 0 1.6rem;
        border-radius: 50%;
        border: 1px solid rgba(255, 255, 255, .4);
        background: rgba(255, 255, 255, .08);
        color: #fff;
    }

.c-categories__title {
        margin: 0 0 .6rem;
        font-family: var(--font-family-serif);
        font-size: 2.1rem;
        font-weight: 600;
        letter-spacing: .04em;
        color: #fff;
    }

.c-categories__text {
        margin: 0;
        font-size: 1.2rem;
        line-height: 1.6;
        color: rgba(247, 244, 238, .82);
    }

.c-categories__arrow {
        display: inline-block;
        margin-top: 1.4rem;
        color: #fff;
        font-size: 1.3rem;
    }

@media (max-width: 750px) {

.c-categories {
        padding: 4.4rem 0
}

        .c-categories__head { margin-bottom: 3.2rem; }
        .c-categories__list { grid-template-columns: repeat(2, 1fr); gap: 1.6rem; }
        .c-categories__card { min-height: 19rem; }
        .c-categories__content { padding: 0 2rem 2rem; }
        .c-categories__icon { width: 4.4rem; height: 4.4rem; margin: 1.2rem 0 1.2rem; }
        .c-categories__title { font-size: 1.8rem; }
    }

/* ===========================================================
   .c-sake — 01 / SAKE 地酒・焼酎一覧（フィルター＋銘柄カード）
   =========================================================== */

.c-sake {
    padding: 8rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-sake__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-sake__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 2rem;
    }

.c-sake__more {
        flex-shrink: 0;
        display: inline-flex;
        align-items: center;
        gap: .6rem;
        padding-bottom: .4rem;
        font-size: 1.35rem;
        color: var(--color-text);
        border-bottom: 1px solid var(--color-primary);
    }

.c-sake__more i { font-size: 1.1rem; color: var(--color-primary); }

/* フィルターチップ（酒種別タクソノミへのリンク） */

.c-sake__filters {
        display: flex;
        flex-wrap: wrap;
        gap: 1rem;
        margin: 2.8rem 0 3.2rem;
    }

.c-sake__filters .c-sake__chip {
        display: inline-block;
        padding: .9rem 2rem;
        font-size: 1.3rem;
        color: var(--color-ink2);
        background: var(--color-card);
        border: 1px solid var(--color-line);
        border-radius: 999px;
        cursor: pointer;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
        .c-sake__filters .c-sake__chip:hover { border-color: var(--color-primary); }
    }

.c-sake__filters .c-sake__chip:focus-visible {
        outline: 2px solid var(--color-primary);
        outline-offset: 2px;
    }

.c-sake__list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2.4rem;
    }

.c-sake__card {
        display: flex;
        flex-direction: column;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        overflow: hidden;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-sake__card:hover { border-color: var(--color-primary); }
        }

/* カード本体（写真・タイトル等）への遷移リンク。チップは兄弟要素として外に出す（a の入れ子回避） */

.c-sake__card-link {
        display: flex;
        flex-direction: column;
        flex: 1;
        color: inherit;
    }

/* 実写ボトル写真（4:3） */

.c-sake__photo {
        display: block;
        width: 100%;
        aspect-ratio: 4 / 3;
        object-fit: cover;
    }

.c-sake__body {
        display: flex;
        flex-direction: column;
        flex: 1;
        padding: 2rem 2.2rem 2.2rem;
    }

.c-sake__tag {
        align-self: flex-start;
        margin-bottom: 1.2rem;
    }

.c-sake__name {
        margin: 0 0 .6rem;
        font-family: var(--font-family-serif);
        font-size: 2rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-sake__meta {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .04em;
        color: var(--color-ink3);
    }

/* 味わいチップ（上罫線下・cream地ピル）。カードリンクの外の兄弟要素のため、余白は自己完結させる */

.c-sake__chips {
        display: flex;
        flex-wrap: wrap;
        gap: .6rem;
        padding: 1.4rem 2.2rem 2.2rem;
        border-top: 1px solid var(--color-line);
    }

.c-sake__chips .c-sake__chip {
        padding: .5rem 1.1rem;
        font-size: 1.1rem;
        color: var(--color-ink2);
        background: var(--color-cream);
        border: 1px solid var(--color-line);
        border-radius: 999px;
        cursor: pointer;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
        .c-sake__chips .c-sake__chip:hover {
            color: var(--color-primary);
            border-color: var(--color-primary);
        }
    }

@media (max-width: 750px) {

.c-sake {
        padding: 4.4rem 0
}

        .c-sake__filters { margin: 2.4rem 0 2.4rem; }
        .c-sake__list { grid-template-columns: 1fr; gap: 1.6rem; }
    }

/* ===========================================================
   .c-brewery — 02 / BREWERY 酒蔵・醸造所一覧（4カード）
   =========================================================== */

.c-brewery {
    padding: 8rem 0;
    background: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}

.c-brewery__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-brewery__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 2rem;
        margin-bottom: 4rem;
    }

.c-brewery__more {
        flex-shrink: 0;
        display: inline-flex;
        align-items: center;
        gap: .6rem;
        padding-bottom: .4rem;
        font-size: 1.35rem;
        color: var(--color-text);
        border-bottom: 1px solid var(--color-primary);
    }

.c-brewery__more i { font-size: 1.1rem; color: var(--color-primary); }

.c-brewery__list {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 2.4rem;
    }

.c-brewery__card {
        display: flex;
        flex-direction: column;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        overflow: hidden;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-brewery__card:hover { border-color: var(--color-primary); }
        }

/* 蔵外観の実写写真（16:11） */

.c-brewery__photo {
        display: block;
        width: 100%;
        aspect-ratio: 16 / 11;
        object-fit: cover;
    }

.c-brewery__body {
        display: block;
        padding: 1.8rem 2rem 2rem;
    }

.c-brewery__name {
        margin: 0 0 .6rem;
        font-family: var(--font-family-serif);
        font-size: 1.7rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-brewery__meta {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .04em;
        color: var(--color-ink3);
    }

@media (max-width: 750px) {

.c-brewery {
        padding: 4.4rem 0
}

        .c-brewery__head { margin-bottom: 3.2rem; }
        .c-brewery__list { grid-template-columns: repeat(2, 1fr); gap: 1.6rem; }
    }

/* ===========================================================
   .c-bookmap — 03 / AREA 地図から探す（design_handoff_map_section v2）
   実マップ（Leaflet + OSM）＋エリアカード×5＋現在地CTA。
   エリアカードクリックで flyTo（htdocs/js/map.js）。
   =========================================================== */

.c-bookmap {
    padding: 8rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-bookmap__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-bookmap__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 2rem;
    }

.c-bookmap__more {
        flex-shrink: 0;
        display: inline-flex;
        align-items: center;
        gap: .6rem;
        padding-bottom: .4rem;
        font-size: 1.35rem;
        color: var(--color-text);
        border-bottom: 1px solid var(--color-primary);
    }

.c-bookmap__more i { font-size: 1.1rem; color: var(--color-primary); }

.c-bookmap__lead {
        margin: 1.6rem 0 0 2.5rem;
        font-size: 1.4rem;
        letter-spacing: .05em;
        color: var(--color-ink2);
    }

.c-bookmap__grid {
        display: grid;
        grid-template-columns: 1.3fr 1fr;
        gap: 2.8rem;
        margin-top: 3rem;
    }

/* 地図（Leaflet + OpenStreetMap・デフォルト表示は大分市周辺） */

.c-bookmap__map {
        position: relative;
        z-index: 0; /* Leaflet 内部の高い z-index を閉じ込め、sticky ヘッダーより前面に出さない */
        overflow: hidden;
        min-height: 62rem;
        background: #f2f0e6;
        border: 1px solid var(--color-line);
        border-radius: 8px;
        box-shadow: 0 8px 24px rgba(40, 30, 16, .06);
    }

.c-bookmap__canvas {
        position: absolute;
        inset: 0;
    }

/* 右カラム：エリアカード×5＋CTA */

.c-bookmap__areas {
        display: flex;
        flex-direction: column;
        gap: 1.6rem;
    }

.c-bookmap__area {
        display: flex;
        align-items: center;
        gap: 1.8rem;
        padding: 1.4rem 2.2rem 1.4rem 1.6rem;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        border-radius: 10px;
        box-shadow: 0 4px 14px rgba(40, 30, 16, .05);
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-bookmap__area:hover {
                transform: translateY(-4px);
                border-color: var(--color-primary);
            }
        }

.c-bookmap__area-icon {
        flex-shrink: 0;
        display: block;
        width: 7.6rem;
        height: 7.6rem;
        border: 1px solid var(--color-line);
        border-radius: 50%;
    }

.c-bookmap__area-body {
        min-width: 0;
        display: flex;
        flex-direction: column;
    }

.c-bookmap__area-badge {
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .14em;
        color: var(--color-primary);
    }

.c-bookmap__area-name {
        margin-top: .3rem;
        font-family: var(--font-family-serif);
        font-size: 2.1rem;
        font-weight: 600;
        letter-spacing: .04em;
        color: var(--color-text);
    }

.c-bookmap__area-towns {
        margin-top: .4rem;
        font-size: 1.2rem;
        letter-spacing: .03em;
        color: var(--color-ink2);
    }

.c-bookmap__area-arrow {
        margin-left: auto;
        color: var(--color-primary);
    }

.c-bookmap__area-arrow i { font-size: 1.5rem; }

/* 現在地 CTA バンド */

.c-bookmap__cta {
        margin-top: .2rem;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 1rem;
        padding: 1.6rem 2rem;
        font-family: var(--font-family-serif);
        font-size: 1.6rem;
        font-weight: 600;
        letter-spacing: .08em;
        color: var(--color-primary);
        background: var(--color-cream);
        border: 1px solid var(--color-line);
        border-radius: 8px;
        transition: var(--trans-hover);
    }

.c-bookmap__cta i { font-size: 1.4rem; }

.c-bookmap__cta i:last-child { font-size: 1.1rem; }

@media (min-width: 751px) {
            .c-bookmap__cta:hover { border-color: var(--color-primary); }
        }

@media (max-width: 750px) {

.c-bookmap {
        padding: 3.6rem 0
}

        .c-bookmap__lead {
            margin: 1.2rem .6rem 0;
            font-size: 1.2rem;
            letter-spacing: .04em;
            line-height: 1.7;
        }

        .c-bookmap__grid { grid-template-columns: 1fr; gap: 1.4rem; margin-top: 1.6rem; }

        .c-bookmap__map {
            min-height: 0;
            height: 28rem;
            box-shadow: 0 6px 18px rgba(40, 30, 16, .06);
        }

        .c-bookmap__areas { gap: 1rem; }

        .c-bookmap__area {
            gap: 1.3rem;
            padding: 1.1rem 1.6rem 1.1rem 1.2rem;
            box-shadow: 0 3px 10px rgba(40, 30, 16, .05);
        }

        .c-bookmap__area-icon { width: 5.4rem; height: 5.4rem; }
        .c-bookmap__area-badge { font-size: .9rem; }
        .c-bookmap__area-name { margin-top: .2rem; font-size: 1.55rem; letter-spacing: .03em; }
        .c-bookmap__area-towns { margin-top: .3rem; font-size: 1.05rem; line-height: 1.5; }
        .c-bookmap__area-arrow i { font-size: 1.2rem; }

        .c-bookmap__cta {
            gap: .8rem;
            padding: 1.3rem 1.6rem;
            font-size: 1.35rem;
            letter-spacing: .06em;
        }

            .c-bookmap__cta i { font-size: 1.2rem; }
    }

/* ===========================================================
   カスタムピン（Leaflet divIcon — 朱の丸ピン）
   htdocs/js/map.js が L.divIcon({ className: 'c-map-pin' }) で使用
   =========================================================== */

.c-map-pin .c-map-pin__dot {
        display: block;
        width: 1.8rem;
        height: 1.8rem;
        background: var(--color-primary);
        border: 2px solid #fff;
        border-radius: 50% 50% 50% 0;
        transform: rotate(-45deg);
        box-shadow: 0 2px 6px rgba(40, 30, 16, .35);
    }

/* --- 地酒・焼酎一覧（180_sake-index 各セクション）--- */

/* ===========================================================
   .c-list-head — 一覧/カテゴリページの軽量導入（生成り地・mono英＋H1）
   =========================================================== */

.c-list-head {
    padding: 5.6rem 0 0;
    background: var(--color-bg-base);
}

.c-list-head__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-list-head__en {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .16em;
        color: var(--color-primary);
        margin-bottom: 1.4rem;
    }

.c-list-head__title {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 3.4rem;
        line-height: 1.4;
        font-weight: 600;
        letter-spacing: .05em;
        color: var(--color-text);
    }

/* 導入リード文（イベント一覧など） */

.c-list-head__lead {
        margin: 1.8rem 0 0;
        max-width: 76rem;
        font-size: 1.4rem;
        line-height: 2;
        color: var(--color-ink2);
    }

/* 直後に地色の違うセクションが来るとき（イベント一覧2ページ目以降など）は下にも余白を取る */

.c-list-head--gap {
        padding-bottom: 5.2rem;
    }

@media (max-width: 750px) {

.c-list-head {
        padding: 3rem 0 0
}

        .c-list-head--gap { padding-bottom: 4rem; }

        .c-list-head__en { font-size: 1rem; letter-spacing: .14em; margin-bottom: 1rem; }
        .c-list-head__title { font-size: 2.4rem; }
        .c-list-head__lead { margin-top: 1.4rem; font-size: 1.3rem; }
    }

/* ===========================================================
   .c-nav-local — ページ内ローカルナビ（カテゴリタブ・単一アクティブ）
   =========================================================== */

.c-nav-local {
    display: flex;
    gap: 1rem;
    margin-top: 2.6rem;
}

.c-nav-local__item {
        flex-shrink: 0;
        padding: 1.1rem 2.2rem;
        font-size: 1.35rem;
        color: var(--color-ink2);
        background: var(--color-card);
        border: 1px solid var(--color-line);
        border-radius: 2px;
        transition: var(--trans-hover);
    }

.c-nav-local__item.is-current {
        font-weight: 600;
        color: #fff;
        background: var(--color-primary);
        border-color: var(--color-primary);
    }

@media (min-width: 751px) {
        .c-nav-local__item:not(.is-current):hover { border-color: var(--color-primary); }
    }

@media (max-width: 750px) {

.c-nav-local {
        gap: .8rem;
        margin-top: 1.8rem;
        overflow-x: auto;
        padding-bottom: .4rem;
        -webkit-overflow-scrolling: touch
}

        .c-nav-local__item {
            padding: .9rem 1.6rem;
            font-size: 1.25rem;
            border-radius: 999px;
        }
    }

/* ===========================================================
   .c-sake-list — 地酒・焼酎一覧（横長カード：テキスト左・ボトル写真右）
   =========================================================== */

.c-sake-list {
    padding: 4.8rem 0 8rem;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-sake-list__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-sake-list__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 2rem;
        margin-bottom: 2.8rem;
    }

.c-sake-list__count {
        flex-shrink: 0;
        font-family: var(--font-family-mono);
        font-size: 1.2rem;
        color: var(--color-ink3);
    }

/* タグ絞り込みチップ（フルページ遷移・is-current はサーバー側で判定） */

.c-sake-list__filters {
        display: flex;
        flex-wrap: wrap;
        gap: .8rem;
        margin-bottom: 2.8rem;
    }

.c-sake-list__chip {
        display: inline-block;
        padding: .35rem 1.6rem;
        font-size: 1.25rem;
        color: var(--color-ink2);
        background: var(--color-card);
        border: 1px solid var(--color-line);
        border-radius: 999px;
        cursor: pointer;
        transition: var(--trans-hover);
    }

.c-sake-list__chip.is-current {
        font-weight: 600;
        color: #fff;
        background: var(--color-primary);
        border-color: var(--color-primary);
    }

@media (min-width: 751px) {
        .c-sake-list__chip:not(.is-current):hover { border-color: var(--color-primary); }
    }

/* 蔵で絞り込むプルダウン（フルページ遷移・.js-sake-brewery-filter がハンドラを持つ） */

.c-sake-list__brewery {
        display: flex;
        align-items: center;
        gap: 1.2rem;
        margin-bottom: 2.8rem;
    }

.c-sake-list__brewery-label {
        flex-shrink: 0;
        font-size: 1.3rem;
        color: var(--color-ink2);
    }

.c-sake-list__brewery-select {
        min-width: 22rem;
        padding: .9rem 3.6rem .9rem 1.6rem;
        font-size: 1.4rem;
        color: var(--color-text);
        background: var(--color-card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%235c5347' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 1.6rem center;
        border: 1px solid var(--color-line);
        border-radius: .6rem;
        appearance: none;
        cursor: pointer;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
        .c-sake-list__brewery-select:hover { border-color: var(--color-primary); }
    }

.c-sake-list__brewery-select:focus-visible {
        outline: 2px solid var(--color-primary);
        outline-offset: 2px;
    }

.c-sake-list__list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2.4rem;
    }

.c-sake-list__card {
        display: grid;
        grid-template-columns: 1fr 0.92fr;
        align-items: stretch;
        min-height: 23.2rem;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        overflow: hidden;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-sake-list__card:hover { border-color: var(--color-primary); }
        }

.c-sake-list__body {
        display: flex;
        flex-direction: column;
        padding: 2.8rem 3rem;
    }

.c-sake-list__tag {
        align-self: flex-start;
        margin-bottom: 1.8rem;
    }

.c-sake-list__name {
        margin: 0 0 .8rem;
        font-family: var(--font-family-serif);
        font-size: 2.4rem;
        font-weight: 600;
        line-height: 1.4;
        letter-spacing: .02em;
        color: var(--color-text);
    }

.c-sake-list__vol {
        font-family: var(--font-family-mono);
        font-size: 1.3rem;
        letter-spacing: .04em;
        color: var(--color-ink3);
    }

.c-sake-list__rule {
        width: 3rem;
        height: 1px;
        margin: auto 0 1.4rem;
        background: var(--color-line);
    }

.c-sake-list__meta {
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        letter-spacing: .04em;
        color: var(--color-ink2);
    }

.c-sake-list__photo {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        background: linear-gradient(160deg, #efe9dc, #d9d0bd);
    }

/* WP: 実写真は縦横比がまちまちなので、ラッパー＋絶対配置フィルで
       画像の固有サイズが行の高さ（＝カード）を押し広げないようにする */

.c-sake-list__media {
        position: relative;
        overflow: hidden;
        background: linear-gradient(160deg, #efe9dc, #d9d0bd);
    }

.c-sake-list__media .c-sake-list__photo {
            position: absolute;
            inset: 0;
        }

@media (max-width: 750px) {

.c-sake-list {
        padding: 3.2rem 0 4.8rem
}

        .c-sake-list__filters {
            flex-wrap: nowrap;
            overflow-x: auto;
            padding-bottom: .4rem;
            -webkit-overflow-scrolling: touch;
        }

            .c-sake-list__filters .c-sake-list__chip { flex-shrink: 0; }

        .c-sake-list__brewery { flex-wrap: wrap; }
        .c-sake-list__brewery-select { min-width: 0; width: 100%; }

        .c-sake-list__list { grid-template-columns: 1fr; gap: 1.6rem; }

        .c-sake-list__card { min-height: 16rem; }

        .c-sake-list__body { padding: 2rem 2.2rem; }
        .c-sake-list__name { font-size: 1.9rem; }
        .c-sake-list__vol { font-size: 1.2rem; }
        .c-sake-list__meta { font-size: 1.05rem; }
    }

/* ===========================================================
   .c-pagenation — ページ送り（中央・mono・現在ページ朱）
   =========================================================== */

.c-pagenation {
    display: flex;
    justify-content: center;
    gap: .8rem;
    margin-top: 4rem;
}

.c-pagenation__item {
        font-family: var(--font-family-mono);
        font-size: 1.2rem;
        padding: .9rem 1.5rem;
        color: var(--color-ink2);
        background: var(--color-card);
        border: 1px solid var(--color-line);
        transition: var(--trans-hover);
    }

.c-pagenation__item.is-current {
        color: #fff;
        background: var(--color-primary);
        border-color: var(--color-primary);
    }

@media (min-width: 751px) {
        .c-pagenation__item:not(.is-current):hover { border-color: var(--color-primary); }
    }

@media (max-width: 750px) {

.c-pagenation {
        gap: .6rem;
        margin-top: 3rem
}

        .c-pagenation__item { font-size: 1.1rem; padding: .7rem 1.3rem; }
    }

/* ===========================================================
   .c-list-nav — 一覧ページ下部の導線（2カラム：戻る＋地図）
   =========================================================== */

.c-list-nav {
    padding: 5.6rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-list-nav__inner {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 2.2rem;
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-list-nav__item {
        display: flex;
        align-items: center;
        gap: 1.8rem;
        padding: 2.8rem 3.4rem;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-list-nav__item:hover { border-color: var(--color-primary); }
        }

.c-list-nav__item--map {
        justify-content: space-between;
        color: #fff;
        background: var(--color-primary);
        border-color: var(--color-primary);
    }

@media (min-width: 751px) {
            .c-list-nav__item--map:hover { background: var(--color-primary-dark); border-color: var(--color-primary-dark); }
        }

.c-list-nav__icon {
        flex-shrink: 0;
        font-size: 1.5rem;
        color: var(--color-primary);
        transition: transform 300ms;
    }

@media (min-width: 751px) {
        .c-list-nav__item:hover .c-list-nav__icon { transform: translateX(-.4rem); }
        .c-list-nav__item--map:hover .c-list-nav__icon { transform: translateX(.4rem); }
    }

.c-list-nav__item--map .c-list-nav__icon { color: #fff; }

.c-list-nav__label {
        display: block;
        margin-bottom: .5rem;
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .1em;
        color: var(--color-ink3);
    }

.c-list-nav__item--map .c-list-nav__label { color: rgba(255, 255, 255, .85); }

.c-list-nav__title {
        display: block;
        font-family: var(--font-family-serif);
        font-size: 1.8rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-list-nav__item--map .c-list-nav__title { color: #fff; }

@media (max-width: 750px) {

.c-list-nav {
        padding: 4rem 0
}

        .c-list-nav__inner { grid-template-columns: 1fr; gap: 1.2rem; }

        .c-list-nav__item { padding: 2rem 2.4rem; }
        .c-list-nav__title { font-size: 1.5rem; }
    }

/* --- 地酒・焼酎 詳細（180_sake-detail 各セクション）--- */

/* ===========================================================
   .c-sake-detail — 銘柄詳細ヒーロー（左ギャラリー／右商品情報）
   .c-sake-body   — 詳細本文2カラム（左記事／右サイドカード）
   =========================================================== */

.c-sake-detail {
    padding: 5.6rem 0 6.4rem;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-sake-detail__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-sake-detail__grid {
        display: grid;
        grid-template-columns: 0.9fr 1.1fr;
        gap: 4.8rem;
        align-items: start;
    }

/* ---- 左：ギャラリー ---- */

.c-sake-detail__main {
        position: relative;
        overflow: hidden;
        height: 46rem;
        border: 1px solid var(--color-line);
        background: var(--color-lightest);
    }

.c-sake-detail__main .splide,
        .c-sake-detail__main .splide__track,
        .c-sake-detail__main .splide__list,
        .c-sake-detail__main .splide__slide {
            height: 100%;
        }

.c-sake-detail__image {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: center;
    }

.c-sake-detail__badge {
        position: absolute;
        top: 1.8rem;
        left: 1.8rem;
        z-index: 3;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: .2rem;
        min-width: 6.6rem;
        min-height: 6.6rem;
        max-width: 15rem;
        padding: .6rem 1.2rem;
        border-radius: 999px;
        background: var(--color-primary);
        color: #fff;
        font-family: var(--font-family-serif);
        font-size: 1.2rem;
        font-weight: 600;
        line-height: 1.3;
        text-align: center;
    }

.c-sake-detail__arrow {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        z-index: 2;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 4.2rem;
        height: 4.2rem;
        border-radius: 50%;
        background: rgba(255, 255, 255, .92);
        border: 1px solid var(--color-line);
        color: var(--color-text);
        font-size: 1.4rem;
        line-height: 1;
        cursor: pointer;
        box-shadow: 0 2px 10px rgba(40, 30, 16, .12);
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-sake-detail__arrow:hover { background: #fff; border-color: var(--color-primary); }
        }

.c-sake-detail__arrow--prev { left: 1.6rem; }

.c-sake-detail__arrow--next { right: 1.6rem; }

.c-sake-detail__thumbs {
        display: flex;
        gap: 1rem;
        margin-top: 1.2rem;
    }

.c-sake-detail__thumb {
        position: relative;
        flex: 1;
        aspect-ratio: 1 / 1;
        overflow: hidden;
        border: 1px solid var(--color-line);
        background: linear-gradient(160deg, #efe9dc, #d6ccb8);
        cursor: pointer;
    }

.c-sake-detail__thumb img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

.c-sake-detail__thumb.is-active { border-color: var(--color-primary); }

.c-sake-detail__thumb-label {
        position: absolute;
        right: .4rem;
        bottom: .3rem;
        font-family: var(--font-family-mono);
        font-size: .9rem;
        letter-spacing: .06em;
        color: var(--color-ink3);
    }

.c-sake-detail__note {
        margin: .8rem 0 0;
        font-family: var(--font-family-mono);
        font-size: 1rem;
        color: var(--color-ink3);
    }

/* ---- 右：商品情報 ---- */

.c-sake-detail__meta {
        display: flex;
        align-items: center;
        gap: 1rem;
        margin-bottom: 1.6rem;
    }

.c-sake-detail__brand {
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink3);
    }

.c-sake-detail__title {
        margin: 0 0 2.2rem;
        font-family: var(--font-family-serif);
        font-size: 3.6rem;
        font-weight: 600;
        line-height: 1.35;
        letter-spacing: .03em;
        color: var(--color-text);
    }

.c-sake-detail__lead {
        margin: 0 0 2.4rem;
        font-size: 1.4rem;
        line-height: 2;
        color: var(--color-ink2);
    }

.c-sake-detail__spec {
        margin: 0;
        border-top: 1px solid var(--color-line);
    }

.c-sake-detail__spec-row {
        display: grid;
        grid-template-columns: 10rem 1fr;
        gap: 1.6rem;
        padding: 1.2rem .2rem;
        border-bottom: 1px solid var(--color-line);
    }

.c-sake-detail__spec-dt {
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink3);
    }

.c-sake-detail__spec-dd {
        margin: 0;
        font-size: 1.35rem;
        color: var(--color-text);
    }

.c-sake-detail__chips {
        display: flex;
        flex-wrap: wrap;
        gap: .9rem;
        margin-top: 2rem;
    }

.c-sake-detail__chip {
        padding: .7rem 1.3rem;
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink2);
        background: var(--color-card);
        border: 1px solid var(--color-line);
        border-radius: 999px;
    }

@media (max-width: 750px) {

.c-sake-detail {
        padding: 3.2rem 0 4rem
}

        .c-sake-detail__grid { grid-template-columns: 1fr; gap: 2.8rem; }
        .c-sake-detail__main { height: 34rem; }
        .c-sake-detail__title { font-size: 2.8rem; }
        .c-sake-detail__spec-row { grid-template-columns: 8rem 1fr; gap: 1.2rem; }
    }

.c-sake-body {
    padding: 6.4rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-sake-body__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-sake-body__grid {
        display: grid;
        grid-template-columns: 1.6fr 1fr;
        gap: 4.8rem;
        align-items: start;
    }

.c-sake-body__h2 {
        margin: 0 0 1.6rem;
        font-family: var(--font-family-serif);
        font-size: 2.2rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-sake-body__h3 {
        margin: 3.2rem 0 1.4rem;
        font-family: var(--font-family-serif);
        font-size: 1.8rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-sake-body__text {
        margin: 0;
        font-size: 1.4rem;
        line-height: 2.1;
        color: var(--color-ink2);
    }

/* 本文（ACF WYSIWYG 出力用）：素の h2/h3/p を記事デザインへマッピング */

.c-sake-body__article > h2 {
        margin: 0 0 1.6rem;
        font-family: var(--font-family-serif);
        font-size: 2.2rem;
        font-weight: 600;
        color: var(--color-text);
        }

.c-sake-body__article > h3 {
        margin: 3.2rem 0 1.4rem;
        font-family: var(--font-family-serif);
        font-size: 1.8rem;
        font-weight: 600;
        color: var(--color-text);
        }

.c-sake-body__article > p {
        margin: 0;
        font-size: 1.4rem;
        line-height: 2.1;
        color: var(--color-ink2);
        }

.c-sake-body__article > p {
            margin-bottom: 1.2rem;
        }

.c-sake-body__article a {
            color: var(--color-link);
            text-decoration: none;
            transition: var(--trans-hover);
        }

@media (min-width: 751px) {
                .c-sake-body__article a:hover { text-decoration: underline; }
            }

/* 醸造元カード（& a に含まれるが、hoverでも下線を出さない） */

@media (min-width: 751px) {
                .c-sake-body__article a.c-sake-body__brewery:hover { text-decoration: none; }
            }

/* 醸造元カード */

.c-sake-body__brewery {
        display: grid;
        grid-template-columns: 12rem 1fr auto;
        gap: 1.8rem;
        align-items: center;
        padding: 1.4rem;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-sake-body__brewery:hover { border-color: var(--color-primary); }
        }

.c-sake-body__brewery-photo {
        display: block;
        width: 100%;
        height: 7.2rem;
        object-fit: cover;
    }

.c-sake-body__brewery-name {
        font-family: var(--font-family-serif);
        font-size: 1.6rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-sake-body__brewery-meta {
        margin-top: .4rem;
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        color: var(--color-ink3);
    }

.c-sake-body__brewery-link {
        display: inline-flex;
        align-items: center;
        gap: .5rem;
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-primary);
        white-space: nowrap;
    }

.c-sake-body__brewery-link i { font-size: 1rem; }

/* 前後ナビ */

.c-sake-body__nav {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        gap: 1.6rem;
        align-items: center;
        margin-top: 2.8rem;
        padding-top: 1.8rem;
        border-top: 1px solid var(--color-line);
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
    }

.c-sake-body__nav-prev { color: var(--color-ink3); }

.c-sake-body__nav-back { color: var(--color-primary); text-align: center; }

.c-sake-body__nav-next { color: var(--color-ink3); text-align: right; }

@media (min-width: 751px) {
        .c-sake-body__nav-prev:hover,
        .c-sake-body__nav-next:hover { color: var(--color-text); }
    }

.c-sake-body__side {
        display: flex;
        flex-direction: column;
        gap: 1.8rem;
    }

@media (max-width: 750px) {

.c-sake-body {
        padding: 4.4rem 0
}

        .c-sake-body__grid { grid-template-columns: 1fr; gap: 3.2rem; }
        .c-sake-body__brewery { grid-template-columns: 9rem 1fr; }
        .c-sake-body__brewery-link { grid-column: 1 / -1; }
    }

/* ===========================================================
   .c-side-card — 詳細ページ右カラムの情報カード（取扱店・飲食店・同じ蔵）
   =========================================================== */

.c-side-card {
    padding: 2.2rem;
    background: var(--color-card);
    border: 1px solid var(--color-line);
}

.c-side-card--accent { border-color: var(--color-primary); }

/* CV（コンバージョン）カード：朱地・白文字 */

.c-side-card--cv {
        background: var(--color-primary);
        border-color: var(--color-primary);
    }

.c-side-card__title {
        margin: 0 0 1.4rem;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        font-weight: 600;
        letter-spacing: .06em;
        color: var(--color-ink2);
    }

.c-side-card--accent .c-side-card__title { color: var(--color-primary); }

.c-side-card--cv .c-side-card__title { color: rgba(255, 255, 255, .85); }

.c-side-card__list {
        margin: 0;
        padding: 0;
        list-style: none;
        display: flex;
        flex-direction: column;
    }

.c-side-card__item {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1.2rem;
        font-size: 1.3rem;
        line-height: 1.5;
        color: var(--color-text);
    }

.c-side-card__item:not(:last-child) {
            margin-bottom: 1rem;
            padding-bottom: 1rem;
            border-bottom: 1px solid var(--color-line);
        }

.c-side-card--cv .c-side-card__item {
            color: #fff;
        }

.c-side-card--cv .c-side-card__item:not(:last-child) { border-bottom-color: rgba(255, 255, 255, .2); }

.c-side-card--cv .c-side-card__item a { color: #fff; }

/* 件数（CATEGORY / ARCHIVE の右端） */

.c-side-card__count {
        flex-shrink: 0;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        color: var(--color-ink3);
    }

.c-side-card__more {
        display: inline-flex;
        align-items: center;
        gap: .5rem;
        margin-top: 1.2rem;
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        color: var(--color-ink3);
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-side-card__more:hover { color: var(--color-primary); }
        }

/* 11件目以降の折りたたみ（parts/side-list・.js-side-fold で開閉。ボタンはリスト末尾） */

.c-side-card__fold-list {
        /* 開閉アニメーションで高さに含めるため margin ではなく padding で間隔を取る（10件目との区切り線も内側に持つ） */
        padding-top: 1rem;
    }

/* .c-side-card__list の display:flex が hidden 属性に勝つため明示 */

.c-side-card__fold-list[hidden] { display: none; }

.c-side-card__fold-list > .c-side-card__item:first-child {
            padding-top: 1rem;
            border-top: 1px solid var(--color-line);
        }

.c-side-card__fold-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: .6rem;
        width: 100%;
        margin-top: 1.2rem;
        padding: .9rem 1rem;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        color: var(--color-ink2);
        background: none;
        border: 1px solid var(--color-line);
        cursor: pointer;
        transition: var(--trans-hover);
    }

.c-side-card__fold-toggle i {
            font-size: .9rem;
            transition: transform 300ms;
        }

.c-side-card__fold-toggle[aria-expanded="true"] i { transform: rotate(180deg); }

@media (min-width: 751px) {
            .c-side-card__fold-toggle:hover {
                color: var(--color-primary);
                border-color: var(--color-primary);
            }
        }

.c-side-card__fold-label--close { display: none; }

.c-side-card__fold-toggle[aria-expanded="true"] .c-side-card__fold-label--open { display: none; }

.c-side-card__fold-toggle[aria-expanded="true"] .c-side-card__fold-label--close { display: inline; }

/* 申込ボックス：点線区切りの行（残席／締切／参加費 など） */

.c-side-card__row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1.2rem;
        padding: 1rem 0;
    }

.c-side-card__row:not(:last-child) { border-bottom: 1px dashed var(--color-line); }

.c-side-card__row-label {
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink3);
    }

.c-side-card__row-val {
        font-size: 1.3rem;
        text-align: right;
        color: var(--color-text);
    }

/* 空状態（該当データなし）の一言テキスト */

.c-side-card__empty {
        margin: 0;
        font-size: 1.3rem;
        line-height: 1.7;
        color: var(--color-ink3);
    }

/* 申込ボックスの朱ボタン */

.c-side-card__btn {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: .9rem;
        margin-top: 1.4rem;
        padding: 1.4rem;
        font-family: var(--font-family-serif);
        font-size: 1.4rem;
        font-weight: 600;
        color: #fff;
        background: var(--color-primary);
        transition: var(--trans-hover);
    }

.c-side-card__btn i { font-size: 1rem; }

@media (min-width: 751px) {
            .c-side-card__btn:hover { background: var(--color-primary-dark); }
        }

/* ===========================================================
   .c-related — RELATED 関連する地酒（クリーム地・3カラム縦カード）
   =========================================================== */

.c-related {
    padding: 7.2rem 0;
    background: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}

.c-related__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-related__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 2rem;
        margin-bottom: 3.2rem;
    }

.c-related__more {
        flex-shrink: 0;
        display: inline-flex;
        align-items: center;
        gap: .6rem;
        padding-bottom: .3rem;
        font-size: 1.3rem;
        color: var(--color-text);
        border-bottom: 1px solid var(--color-primary);
    }

.c-related__more i { font-size: 1rem; color: var(--color-primary); }

.c-related__list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2.4rem;
    }

.c-related__card {
        display: block;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        overflow: hidden;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-related__card:hover { border-color: var(--color-primary); }
        }

.c-related__photo {
        display: block;
        width: 100%;
        height: 15rem;
        object-fit: cover;
    }

.c-related__body {
        padding: 1.8rem 2rem 2rem;
    }

.c-related__kind {
        display: block;
        margin-bottom: .9rem;
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        color: var(--color-primary);
    }

.c-related__name {
        margin: 0 0 .8rem;
        font-family: var(--font-family-serif);
        font-size: 1.7rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-related__meta {
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        color: var(--color-ink3);
    }

@media (max-width: 750px) {

.c-related {
        padding: 4.4rem 0
}

        .c-related__list { grid-template-columns: 1fr; gap: 1.6rem; }
    }

/* --- 酒蔵・酒販店・飲食店 一覧／詳細（190・200・210）＋イベント一覧／詳細（220）--- */

/* ===========================================================
   .c-cat-list — カテゴリー一覧の汎用カードグリッド
   （酒蔵・醸造所／取扱酒販店／取扱飲食店：上写真＋タグ＋明朝名＋mono件数）
   =========================================================== */

.c-cat-list {
    padding: 4.8rem 0 8rem;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-cat-list__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-cat-list__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 2rem;
        margin-bottom: 2.8rem;
    }

.c-cat-list__count {
        flex-shrink: 0;
        font-family: var(--font-family-mono);
        font-size: 1.2rem;
        color: var(--color-ink3);
    }

.c-cat-list__list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2.4rem;
    }

.c-cat-list__card {
        display: block;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        overflow: hidden;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-cat-list__card:hover { border-color: var(--color-primary); }
        }

.c-cat-list__photo {
        display: block;
        width: 100%;
        height: 18.8rem;
        object-fit: cover;
    }

.c-cat-list__body {
        padding: 2rem 2.2rem 2.2rem;
    }

.c-cat-list__tag {
        display: inline-block;
        margin-bottom: 1.4rem;
        padding: .4rem 1rem;
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .04em;
        color: var(--color-ink2);
        background: var(--color-cream);
        border: 1px solid var(--color-line);
        border-radius: 2px;
    }

.c-cat-list__name {
        margin: 0 0 1rem;
        font-family: var(--font-family-serif);
        font-size: 2.1rem;
        line-height: 1.4;
        font-weight: 600;
        letter-spacing: .02em;
        color: var(--color-text);
    }

.c-cat-list__meta {
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        letter-spacing: .04em;
        color: var(--color-ink3);
    }

@media (max-width: 750px) {

.c-cat-list {
        padding: 3.2rem 0 5.6rem
}

        .c-cat-list__list { grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
        .c-cat-list__photo { height: 13rem; }
        .c-cat-list__body { padding: 1.4rem 1.4rem 1.6rem; }
        .c-cat-list__tag { margin-bottom: 1rem; font-size: .95rem; padding: .3rem .8rem; }
        .c-cat-list__name { font-size: 1.5rem; margin-bottom: .7rem; }
        .c-cat-list__meta { font-size: 1.05rem; }
    }

/* ===========================================================
   .c-detail-hero — BOOK／EVENT 詳細ヒーロー
   左：写真 ／ 右：タグ・所在地・H1・リード・スペックdl・ハッシュタグ
   --event 修飾子：写真をフルハイト・右にステータス＋CTA
   =========================================================== */

.c-detail-hero {
    padding: 5.6rem 0 6.4rem;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-detail-hero__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-detail-hero__grid {
        display: grid;
        grid-template-columns: 0.9fr 1.1fr;
        gap: 4.8rem;
        align-items: start;
    }

.c-detail-hero__media {
        border: 1px solid var(--color-line);
        overflow: hidden;
    }

/* ---- ギャラリー（brewery / store / dining。event は __media を直接使用） ---- */

.c-detail-hero__main {
        position: relative;
        overflow: hidden;
        height: 40rem;
        border: 1px solid var(--color-line);
        background: linear-gradient(160deg, #efe9dc, #e4ddcc);
    }

.c-detail-hero__main .splide,
        .c-detail-hero__main .splide__track,
        .c-detail-hero__main .splide__list,
        .c-detail-hero__main .splide__slide {
            height: 100%;
        }

.c-detail-hero__photo {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.c-detail-hero__arrow {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        z-index: 2;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 4.2rem;
        height: 4.2rem;
        border-radius: 50%;
        background: rgba(255, 255, 255, .92);
        border: 1px solid var(--color-line);
        color: var(--color-text);
        font-size: 1.4rem;
        line-height: 1;
        cursor: pointer;
        box-shadow: 0 2px 10px rgba(40, 30, 16, .12);
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-detail-hero__arrow:hover { background: #fff; border-color: var(--color-primary); }
        }

.c-detail-hero__arrow--prev { left: 1.6rem; }

.c-detail-hero__arrow--next { right: 1.6rem; }

.c-detail-hero__thumbs {
        display: flex;
        gap: 1rem;
        margin-top: 1.2rem;
    }

.c-detail-hero__thumb {
        position: relative;
        flex: 1;
        aspect-ratio: 1 / 1;
        overflow: hidden;
        border: 1px solid var(--color-line);
        background: linear-gradient(160deg, #efe9dc, #d6ccb8);
        cursor: pointer;
    }

.c-detail-hero__thumb img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

.c-detail-hero__thumb.is-active { border-color: var(--color-primary); }

.c-detail-hero__meta {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 1rem;
        margin-bottom: 1.6rem;
    }

.c-detail-hero__cat {
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .06em;
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
        padding: .4rem 1.1rem;
    }

.c-detail-hero__status {
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .06em;
        color: #fff;
        background: var(--color-primary);
        padding: .5rem 1.1rem;
    }

.c-detail-hero__region {
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink3);
    }

.c-detail-hero__region i { margin-right: .6rem; color: var(--color-primary); }

.c-detail-hero__title {
        margin: 0 0 2.2rem;
        font-family: var(--font-family-serif);
        font-size: 3.6rem;
        line-height: 1.35;
        font-weight: 600;
        letter-spacing: .03em;
        color: var(--color-text);
    }

.c-detail-hero__lead {
        margin: 0 0 2.4rem;
        font-size: 1.4rem;
        line-height: 2;
        color: var(--color-ink2);
    }

.c-detail-hero__spec {
        margin: 0;
        border-top: 1px solid var(--color-line);
    }

.c-detail-hero__spec-row {
        display: grid;
        grid-template-columns: 10rem 1fr;
        align-items: baseline;
        gap: 1.6rem;
        padding: 1.2rem .2rem;
        border-bottom: 1px solid var(--color-line);
    }

.c-detail-hero__spec-dt {
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink3);
    }

/* 項目名の前にアイコン（イベント詳細。トップ c-next__info と同じ見た目） */

.c-detail-hero__spec--icon .c-detail-hero__spec-row { align-items: center; }

.c-detail-hero__spec--icon .c-detail-hero__spec-dt {
        display: flex;
        align-items: center;
        gap: 1rem;
    }

.c-detail-hero__spec-icon {
        display: flex;
        flex-shrink: 0;
        color: var(--color-primary);
    }

.c-detail-hero__spec-icon svg { width: 1.8rem; height: 1.8rem; }

.c-detail-hero__spec-dd {
        margin: 0;
        font-size: 1.35rem;
        color: var(--color-text);
    }

.c-detail-hero__spec-link {
        display: inline-flex;
        align-items: center;
        gap: .5rem;
        color: var(--color-primary);
        text-decoration: underline;
        transition: var(--trans-hover);
    }

.c-detail-hero__spec-link:hover { color: var(--color-primary-dark); }

.c-detail-hero__tags {
        display: flex;
        flex-wrap: wrap;
        gap: .9rem;
        margin-top: 2rem;
    }

.c-detail-hero__hash {
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink2);
        background: var(--color-card);
        border: 1px solid var(--color-line);
        padding: .7rem 1.3rem;
        border-radius: 999px;
    }

.c-detail-hero__cta {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 1.2rem;
        margin-top: 2.6rem;
    }

/* SNS シェア（Facebook / X / LINE）— 46×46 の枠線ボタン */

.c-detail-hero__share {
        display: inline-flex;
        align-items: center;
        gap: 1rem;
    }

.c-detail-hero__share-label {
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .08em;
        color: var(--color-ink3);
    }

.c-detail-hero__share-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 4.6rem;
        height: 4.6rem;
        border: 1px solid var(--color-text);
        color: var(--color-text);
        font-size: 1.6rem;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-detail-hero__share-btn:hover {
                background: var(--color-text);
                color: #fff;
            }
        }

/* アクセス・集合場所（CTA 直下の地図） */

.c-detail-hero__access {
        margin-top: 2.6rem;
    }

.c-detail-hero__access-ttl {
        margin: 0 0 1.2rem;
        font-family: var(--font-family-serif);
        font-size: 1.8rem;
        font-weight: 600;
        color: var(--color-text);
    }

/* イベント詳細：写真を縦いっぱい・グリッド比率を変更 */

.c-detail-hero--event .c-detail-hero__grid {
            grid-template-columns: 1.1fr 1fr;
            gap: 4.4rem;
            align-items: stretch;
        }

.c-detail-hero--event .c-detail-hero__body {
            display: flex;
            flex-direction: column;
        }

.c-detail-hero--event .c-detail-hero__photo {
            height: 100%;
            min-height: 38rem;
        }

.c-detail-hero--event .c-detail-hero__title { font-size: 3.4rem; margin-bottom: 2.4rem; }

.c-detail-hero--event .c-detail-hero__spec-row { grid-template-columns: 9.2rem 1fr; padding: 1.3rem .2rem; }

.c-detail-hero--event .c-detail-hero__spec-dd { font-size: 1.4rem; }

@media (max-width: 750px) {

.c-detail-hero {
        padding: 3.2rem 0 4rem
}

        .c-detail-hero__grid,
        .c-detail-hero--event .c-detail-hero__grid {
            grid-template-columns: 1fr;
            gap: 2.4rem;
            align-items: start;
        }

        .c-detail-hero__main,
        .c-detail-hero--event .c-detail-hero__photo { height: 24rem; min-height: 0; }

        .c-detail-hero__title,
        .c-detail-hero--event .c-detail-hero__title { font-size: 2.6rem; margin-bottom: 1.8rem; }

        .c-detail-hero__spec-row { grid-template-columns: 8rem 1fr; gap: 1.2rem; }
        .c-detail-hero__cta { gap: 1rem; }
        .c-detail-hero__cta .c-btn { width: 100%; }
    }

/* ===========================================================
   .c-detail-body — BOOK／EVENT 詳細の本文2カラム
   左：記事（h2/h3/本文・当日の流れ・MAP・ギャラリー・前後ナビ）
   右：サイドカード（c-side-card）
   =========================================================== */

.c-detail-body {
    padding: 6.4rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-detail-body__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-detail-body__grid {
        display: grid;
        grid-template-columns: 1.6fr 1fr;
        gap: 4.8rem;
        align-items: start;
    }

.c-detail-body__h2 {
        margin: 0 0 1.6rem;
        font-family: var(--font-family-serif);
        font-size: 2.2rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-detail-body__h3 {
        margin: 3.2rem 0 1.4rem;
        font-family: var(--font-family-serif);
        font-size: 1.8rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-detail-body__text {
        margin: 0;
        font-size: 1.4rem;
        line-height: 2.1;
        color: var(--color-ink2);
    }

/* 本文（ACF WYSIWYG / ブロックエディタ出力用）：素の h2/h3/p をマッピング */

.c-detail-body__article > h2 {
        margin: 0 0 1.6rem;
        font-family: var(--font-family-serif);
        font-size: 2.2rem;
        font-weight: 600;
        color: var(--color-text);
        }

.c-detail-body__article > h3 {
        margin: 3.2rem 0 1.4rem;
        font-family: var(--font-family-serif);
        font-size: 1.8rem;
        font-weight: 600;
        color: var(--color-text);
        }

.c-detail-body__article > p {
        margin: 0;
        font-size: 1.4rem;
        line-height: 2.1;
        color: var(--color-ink2);
        }

.c-detail-body__article > p {
            margin-bottom: 1.2rem;
        }

.c-detail-body__article a {
            color: var(--color-link);
            text-decoration: none;
            transition: var(--trans-hover);
        }

@media (min-width: 751px) {
                .c-detail-body__article a:hover { text-decoration: underline; }
            }

/* 当日の流れ（時刻＋内容） */

.c-detail-body__flow {
        border-top: 1px solid var(--color-line);
    }

.c-detail-body__flow-row {
        display: grid;
        grid-template-columns: 9.2rem 1fr;
        gap: 1.8rem;
        padding: 1.4rem .2rem;
        border-bottom: 1px solid var(--color-line);
        align-items: baseline;
    }

.c-detail-body__flow-time {
        font-family: var(--font-family-mono);
        font-size: 1.3rem;
        color: var(--color-primary);
    }

.c-detail-body__flow-text {
        font-size: 1.4rem;
        color: var(--color-ink2);
    }

/* ギャラリー（過去の様子・3枚） */

.c-detail-body__gallery {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1.4rem;
    }

.c-detail-body__gallery-item {
        display: block;
        width: 100%;
        height: 13rem;
        object-fit: cover;
        border: 1px solid var(--color-line);
    }

/* 前後ナビ（← 前 ｜ 一覧へ戻る ｜ 次 →） */

.c-detail-body__nav {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        gap: 1.6rem;
        align-items: center;
        margin-top: 2.8rem;
        padding-top: 1.8rem;
        border-top: 1px solid var(--color-line);
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink3);
    }

.c-detail-body__nav-prev { color: var(--color-ink3); }

.c-detail-body__nav-back {
        color: var(--color-primary);
        text-align: center;
    }

.c-detail-body__nav-next {
        color: var(--color-ink3);
        text-align: right;
    }

.c-detail-body__side {
        display: flex;
        flex-direction: column;
        gap: 1.8rem;
    }

@media (min-width: 751px) {
        .c-detail-body__nav-prev:hover,
        .c-detail-body__nav-next:hover { color: var(--color-primary); }
    }

@media (max-width: 750px) {

.c-detail-body {
        padding: 4.4rem 0
}

        .c-detail-body__grid { grid-template-columns: 1fr; gap: 3.2rem; }
        .c-detail-body__flow-row { grid-template-columns: 7.6rem 1fr; gap: 1.2rem; }
        .c-detail-body__gallery { gap: 1rem; }
        .c-detail-body__gallery-item { height: 9rem; }
        .c-detail-body__nav { font-size: 1.05rem; gap: 1rem; }
    }

/* ===========================================================
   .c-mapph — 地図プレースホルダ（45度ストライプ＋mono ラベル）
   本実装で Google Maps / Leaflet 等の埋め込みに置換する。
   =========================================================== */

.c-mapph {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 22rem;
    border: 1px solid var(--color-line);
    background: repeating-linear-gradient(45deg,
            var(--color-band) 0,
            var(--color-band) 10px,
            var(--color-cream) 10px,
            var(--color-cream) 20px);
}

.c-mapph__label {
        display: inline-flex;
        align-items: center;
        gap: .8rem;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .12em;
        color: var(--color-ink3);
    }

.c-mapph__label i { color: var(--color-primary); }

@media (max-width: 750px) {

.c-mapph {
        height: 18rem
}
    }

/* 住所入力時の Google マップ埋め込み（APIキー不要の iframe） */

.c-mapph--embed {
        display: block;
        height: 38rem;
        padding: 0;
        background: var(--color-cream);
    }

@media (max-width: 750px) {

.c-mapph--embed {
            height: 28rem
    }
        }

.c-mapph__frame {
        display: block;
        width: 100%;
        height: 100%;
        border: 0;
    }

/* ヒーロー内（イベント詳細のアクセス・集合場所）はコンパクトに */

.c-mapph--hero {
        height: 26rem;
    }

@media (max-width: 750px) {

.c-mapph--hero {
            height: 22rem
    }
        }

/* ===========================================================
   .c-event-list — イベント一覧（UPCOMING 開催予定／PAST 過去）
   上写真＋タグ＋ステータスバッジ＋明朝タイトル＋mono 日付場所
   --past 修飾子：クリーム地。--muted カードは淡色（アーカイブ）。
   =========================================================== */

.c-event-list {
    padding: 5.2rem 0 7.2rem;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-event-list__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-event-list__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 2rem;
        margin-bottom: 3.2rem;
    }

.c-event-list__count {
        flex-shrink: 0;
        font-family: var(--font-family-mono);
        font-size: 1.2rem;
        color: var(--color-ink3);
    }

.c-event-list__list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2.4rem;
    }

.c-event-list__card {
        position: relative;
        display: block;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        overflow: hidden;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-event-list__card:hover { border-color: var(--color-primary); }
        }

.c-event-list__card--muted { opacity: .92; }

.c-event-list__photo {
        display: block;
        width: 100%;
        height: 18.8rem;
        object-fit: cover;
    }

/* サムネイル左上：会員限定ツアー（ACF member_only） */

.c-event-list__label {
        position: absolute;
        top: 1.2rem;
        left: 1.2rem;
        padding: .5rem 1rem;
        border-radius: 2px;
        background: var(--color-primary);
        color: var(--color-lightest);
        font-size: 1.15rem;
        font-weight: 600;
        letter-spacing: .04em;
        line-height: 1.4;
    }

.c-event-list__body {
        padding: 1.8rem 2.2rem 2rem;
    }

.c-event-list__row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        margin-bottom: 1.2rem;
    }

.c-event-list__tag {
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .06em;
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
        padding: .4rem .9rem;
        border-radius: 2px;
    }

.c-event-list__card--muted .c-event-list__tag {
            color: var(--color-ink3);
            border-color: var(--color-line);
        }

.c-event-list__status {
        font-family: var(--font-family-mono);
        font-size: 1rem;
        letter-spacing: .06em;
        color: var(--color-ink3);
        border: 1px solid var(--color-line);
        padding: .4rem .9rem;
        border-radius: 2px;
    }

.c-event-list__status--hot {
            color: #fff;
            background: var(--color-primary);
            border-color: var(--color-primary);
        }

.c-event-list__name {
        margin: 0 0 .9rem;
        font-family: var(--font-family-serif);
        font-size: 1.8rem;
        line-height: 1.45;
        font-weight: 600;
        color: var(--color-text);
    }

.c-event-list__card--muted .c-event-list__name { color: var(--color-ink3); }

.c-event-list__meta {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        color: var(--color-ink3);
    }

/* 次回未定時のプレースホルダー */

.c-event-list__empty {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 1.2rem;
        padding: 4rem 2rem;
        border: 1px solid var(--color-line);
        text-align: center;
    }

.c-event-list__empty-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 5.2rem;
        height: 5.2rem;
        border-radius: 50%;
        background: var(--color-cream);
        color: var(--color-ink3);
        font-size: 2rem;
    }

.c-event-list__empty-text {
        margin: 0;
        font-size: 1.4rem;
        color: var(--color-ink2);
    }

/* 過去のイベント：クリーム地 */

.c-event-list--past {
        background: var(--color-cream);
        padding: 7.2rem 0;
    }

.c-event-list--past .c-event-list__photo { height: 16.8rem; }

@media (max-width: 750px) {

.c-event-list {
        padding: 4rem 0 5.6rem
}

        .c-event-list__list { grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
        .c-event-list__photo { height: 12rem; }
        .c-event-list__label { top: .8rem; left: .8rem; padding: .4rem .7rem; font-size: 1rem; }
        .c-event-list__body { padding: 1.4rem 1.4rem 1.6rem; }
        .c-event-list__row { margin-bottom: 1rem; }
        .c-event-list__name { font-size: 1.45rem; }
        .c-event-list__meta { font-size: 1rem; }
        .c-event-list__empty { padding: 3.2rem 1.6rem; }
        .c-event-list__empty-icon { width: 4.6rem; height: 4.6rem; font-size: 1.8rem; }
        .c-event-list__empty-text { font-size: 1.3rem; }

        .c-event-list--past { padding: 5.6rem 0; }
        .c-event-list--past .c-event-list__photo { height: 11rem; }
    }

/* --- お知らせ一覧／詳細（230_news-index・230_news-detail 各セクション）--- */

/* ===========================================================
   .c-news-list — お知らせ一覧（絞り込みチップ＋記事リスト＋サイドバー）
   =========================================================== */

.c-news-list {
    padding: 4.8rem 0 8rem;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-news-list__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-news-list__grid {
        display: grid;
        grid-template-columns: 1fr 28rem;
        gap: 4.4rem;
        align-items: start;
    }

/* 絞り込みチップ（ラジオ＋ラベル・単一選択・JS不要） */

.c-news-list__filters {
        display: flex;
        flex-wrap: wrap;
        gap: .8rem;
        margin-bottom: 1.8rem;
    }

.c-news-list__radio {
        position: absolute;
        width: 1px;
        height: 1px;
        opacity: 0;
        pointer-events: none;
    }

.c-news-list__chip {
        display: inline-block;
        padding: .35rem 1.6rem;
        font-size: 1.25rem;
        color: var(--color-ink2);
        background: var(--color-card);
        border: 1px solid var(--color-line);
        border-radius: 999px;
        cursor: pointer;
        transition: var(--trans-hover);
    }

.c-news-list__radio:checked + .c-news-list__chip,
    .c-news-list__chip.is-current {
        font-weight: 600;
        color: #fff;
        background: var(--color-primary);
        border-color: var(--color-primary);
    }

@media (min-width: 751px) {
        .c-news-list__radio:not(:checked) + .c-news-list__chip:hover,
        .c-news-list__chip:not(.is-current):hover { border-color: var(--color-primary); }
    }

.c-news-list__radio:focus-visible + .c-news-list__chip {
        outline: 2px solid var(--color-primary);
        outline-offset: 2px;
    }

/* 記事リスト */

.c-news-list__list {
        border-top: 1px solid var(--color-line);
    }

.c-news-list__row {
        display: grid;
        grid-template-columns: 9.4rem 15rem 1fr 2.4rem;
        gap: 1.8rem;
        align-items: center;
        padding: 1.8rem .4rem;
        border-bottom: 1px solid var(--color-line);
        color: var(--color-text);
        transition: var(--trans-hover);
    }

.c-news-list__row .c-tag { justify-self: start; }

@media (min-width: 751px) {
            .c-news-list__row:hover { background: rgba(0, 0, 0, .02); }
            .c-news-list__row:hover .c-news-list__arrow { transform: translateX(.3rem); }
        }

.c-news-list__date {
        font-family: var(--font-family-mono);
        font-size: 1.2rem;
        color: var(--color-ink3);
    }

.c-news-list__title {
        font-family: var(--font-family-serif);
        font-size: 1.55rem;
        font-weight: 600;
        line-height: 1.5;
        color: var(--color-text);
    }

.c-news-list__arrow {
        text-align: right;
        color: var(--color-ink3);
        transition: transform 300ms;
    }

.c-news-list__side {
        display: flex;
        flex-direction: column;
        gap: 1.8rem;
    }

@media (max-width: 750px) {

.c-news-list {
        padding: .8rem 0 4.8rem

        /* SP は日付＋タグを上段、タイトルを下段に・矢印は非表示 */
}

        .c-news-list__grid { grid-template-columns: 1fr; gap: 0; }
        .c-news-list__side { display: none; }

        .c-news-list__filters {
            flex-wrap: nowrap;
            overflow-x: auto;
            padding-bottom: .4rem;
            -webkit-overflow-scrolling: touch;
        }

            .c-news-list__filters .c-news-list__chip { flex-shrink: 0; }
        .c-news-list__row {
            grid-template-columns: auto 1fr;
            grid-template-areas:
                "date  tag"
                "title title";
            gap: .8rem 1.1rem;
            padding: 1.4rem .2rem;
        }

        .c-news-list__date { grid-area: date; }
        .c-news-list .c-tag { grid-area: tag; }
        .c-news-list__title { grid-area: title; font-size: 1.4rem; }
        .c-news-list__arrow { display: none; }
    }

/* ===========================================================
   .c-news-detail — お知らせ記事詳細（本文＋サイドバー）
   =========================================================== */

.c-news-detail {
    padding: 5.6rem 0 6.4rem;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-news-detail__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-news-detail__grid {
        display: grid;
        grid-template-columns: 1fr 28rem;
        gap: 4.4rem;
        align-items: start;
    }

/* ---- 記事ヘッダー ---- */

.c-news-detail__meta {
        display: flex;
        align-items: center;
        gap: 1.4rem;
        margin-bottom: 1.8rem;
    }

.c-news-detail__date {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        color: var(--color-ink3);
    }

.c-news-detail__share {
        margin-left: auto;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        color: var(--color-ink3);
    }

.c-news-detail__share a {
            margin-left: 1rem;
            color: var(--color-ink3);
            transition: var(--trans-hover);
        }

@media (min-width: 751px) {
                .c-news-detail__share a:hover { color: var(--color-primary); }
            }

.c-news-detail__title {
        margin: 0 0 2.4rem;
        font-family: var(--font-family-serif);
        font-size: 3.4rem;
        font-weight: 600;
        line-height: 1.45;
        letter-spacing: .02em;
        color: var(--color-text);
    }

.c-news-detail__eyecatch {
        display: block;
        width: 100%;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

/* ---- 本文プロース（the_content 相当）---- */

.c-news-detail__body {
        margin-top: 2.8rem;
    }

.c-news-detail__body p {
            margin: 0 0 1.8rem;
            font-size: 1.4rem;
            line-height: 2.1;
            color: var(--color-ink2);
        }

.c-news-detail__body a {
            color: var(--color-link);
            text-decoration: none;
            transition: var(--trans-hover);
        }

@media (min-width: 751px) {
                .c-news-detail__body a:hover { text-decoration: underline; }
            }

.c-news-detail__body h2 {
            margin: 3rem 0 1.4rem;
            font-family: var(--font-family-serif);
            font-size: 2.1rem;
            font-weight: 600;
            color: var(--color-text);
        }

.c-news-detail__body blockquote {
            margin: 2.4rem 0;
            padding: 1.2rem 2rem;
            background: var(--color-cream);
            border-left: 3px solid var(--color-primary);
        }

.c-news-detail__body blockquote p {
                margin: 0;
                font-family: var(--font-family-serif);
                font-size: 1.5rem;
                line-height: 1.8;
                color: var(--color-ink2);
            }

.c-news-detail__figures {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1.4rem;
        margin: 2.4rem 0;
    }

.c-news-detail__figure {
        display: block;
        width: 100%;
        height: 15rem;
        object-fit: cover;
    }

/* ---- ハッシュタグ ---- */

.c-news-detail__tags {
        display: flex;
        flex-wrap: wrap;
        gap: .8rem;
        margin-top: 2.8rem;
    }

.c-news-detail__tag {
        padding: .7rem 1.3rem;
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink2);
        background: var(--color-card);
        border: 1px solid var(--color-line);
        border-radius: 999px;
    }

/* ---- 前後ナビ ---- */

.c-news-detail__nav {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        gap: 1.6rem;
        align-items: center;
        margin-top: 2.8rem;
        padding-top: 1.8rem;
        border-top: 1px solid var(--color-line);
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
    }

.c-news-detail__nav-prev { color: var(--color-ink3); }

.c-news-detail__nav-back { color: var(--color-primary); text-align: center; }

.c-news-detail__nav-next { color: var(--color-ink3); text-align: right; }

@media (min-width: 751px) {
        .c-news-detail__nav-prev:hover,
        .c-news-detail__nav-next:hover { color: var(--color-text); }
    }

.c-news-detail__side {
        display: flex;
        flex-direction: column;
        gap: 1.8rem;
    }

@media (max-width: 750px) {

.c-news-detail {
        padding: 3.2rem 0 4.4rem
}

        .c-news-detail__grid { grid-template-columns: 1fr; gap: 0; }
        .c-news-detail__side { display: none; }

        .c-news-detail__meta { flex-wrap: wrap; }
        .c-news-detail__share { margin-left: 0; flex-basis: 100%; }
        .c-news-detail__title { font-size: 2.6rem; }
        .c-news-detail__figures { gap: 1rem; }
        .c-news-detail__figure { height: 11rem; }
    }

/* --- お問い合わせ（240_contact 各セクション）--- */

/* ===========================================================
   .c-contact-intro — お問い合わせ導入（左：見出し／右：リード＋連絡先）
   =========================================================== */

.c-contact-intro {
    padding: 6.4rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-contact-intro__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-contact-intro__grid {
        display: grid;
        grid-template-columns: 1fr 1.2fr;
        gap: 4.8rem;
        align-items: start;
    }

.c-contact-intro__en {
        margin-bottom: 1.4rem;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .16em;
        color: var(--color-primary);
    }

.c-contact-intro__title {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 3.2rem;
        font-weight: 600;
        line-height: 1.45;
        letter-spacing: .03em;
        color: var(--color-text);
    }

.c-contact-intro__lead {
        margin: 0 0 2rem;
        font-size: 1.4rem;
        line-height: 2;
        color: var(--color-ink2);
    }

/* 連絡先リスト（アイコン｜ラベル｜値） */

.c-contact-intro__list {
        margin: 0;
        border-top: 1px solid var(--color-line);
    }

.c-contact-intro__row {
        display: grid;
        grid-template-columns: 2.2rem 8rem 1fr;
        gap: 1.2rem;
        align-items: center;
        padding: 1.2rem .2rem;
        border-bottom: 1px solid var(--color-line);
    }

.c-contact-intro__icon {
        display: flex;
        color: var(--color-primary);
    }

.c-contact-intro__label {
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink3);
    }

.c-contact-intro__value {
        margin: 0;
        font-size: 1.35rem;
        color: var(--color-text);
    }

@media (max-width: 750px) {

.c-contact-intro {
        padding: 4.4rem 0

        /* SP は連絡先リストを省略（フッター参照） */
}

        .c-contact-intro__grid { grid-template-columns: 1fr; gap: 2.4rem; }
        .c-contact-intro__title { font-size: 2.6rem; }
        .c-contact-intro__list { display: none; }
    }

/* ===========================================================
   .c-contact-types — お問い合わせの種類（3カラム・白カード朱枠）
   =========================================================== */

.c-contact-types {
    padding: 6.4rem 0;
    background: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}

.c-contact-types__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-contact-types__head {
        margin-bottom: 3.6rem;
    }

.c-contact-types__list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2.4rem;
    }

.c-contact-types__card {
        display: flex;
        flex-direction: column;
        gap: 1rem;
        padding: 2.6rem 2.8rem;
        background: var(--color-card);
        border: 1px solid var(--color-primary);
    }

.c-contact-types__no {
        font-family: var(--font-family-mono);
        font-size: 1rem;
        letter-spacing: .1em;
        color: var(--color-primary);
    }

.c-contact-types__title {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 1.9rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-contact-types__text {
        margin: 0;
        font-size: 1.25rem;
        line-height: 1.7;
        color: var(--color-ink2);
    }

@media (max-width: 750px) {

.c-contact-types {
        padding: 4.4rem 0
}

        .c-contact-types__head { margin-bottom: 3.2rem; }
        .c-contact-types__list { grid-template-columns: 1fr; gap: 1.6rem; }
    }

/* --- お問い合わせ 送信完了（240_thanks 各セクション）--- */

/* ===========================================================
   .c-complete — お問い合わせ送信完了（ステップ／サンクス／控え／導線）
   =========================================================== */

/* ---- ステップインジケーター ---- */

.c-complete-steps {
    padding: 4.8rem 0 4rem;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-complete-steps__list {
        display: flex;
        align-items: center;
        justify-content: center;
        max-width: 68rem;
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-complete-steps__item {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: .8rem;
    }

.c-complete-steps__en {
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .1em;
        color: var(--color-ink3);
    }

.c-complete-steps__item.is-active .c-complete-steps__en { color: var(--color-primary); }

.c-complete-steps__label {
        font-family: var(--font-family-serif);
        font-size: 1.6rem;
        font-weight: 600;
        color: var(--color-ink3);
    }

.c-complete-steps__item.is-active .c-complete-steps__label { color: var(--color-text); }

.c-complete-steps__bar {
        flex: 1;
        max-width: 9rem;
        height: 1px;
        margin: 0 1.8rem;
        background: var(--color-line);
    }

/* ---- サンクスメッセージ ---- */

.c-complete-msg {
    padding: 5.6rem 0 6.4rem;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
    text-align: center;
}

.c-complete-msg__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-complete-msg__icon {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 7.6rem;
        height: 7.6rem;
        margin: 0 auto 2.4rem;
        border: 2px solid var(--color-primary);
        border-radius: 50%;
        color: var(--color-primary);
        font-size: 3.4rem;
    }

.c-complete-msg__en {
        margin-bottom: 1.4rem;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .16em;
        color: var(--color-primary);
    }

.c-complete-msg__title {
        margin: 0 0 2rem;
        font-family: var(--font-family-serif);
        font-size: 3rem;
        font-weight: 600;
        line-height: 1.5;
        color: var(--color-text);
    }

.c-complete-msg__text {
        max-width: 54rem;
        margin: 0 auto;
        font-size: 1.45rem;
        line-height: 1.95;
        color: var(--color-ink2);
    }

/* ---- 受付内容（控え）＋次アクション ---- */

.c-complete-next {
    padding: 5.6rem 0;
    background: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}

.c-complete-next__inner {
        max-width: 82rem;
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-complete-next__receipt {
        margin-bottom: 2.6rem;
        padding: 2.4rem 2.8rem;
        background: var(--color-card);
        border: 1px solid var(--color-line);
    }

.c-complete-next__receipt-title {
        margin-bottom: 1.4rem;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .1em;
        color: var(--color-ink3);
    }

.c-complete-next__row {
        display: grid;
        grid-template-columns: 15rem 1fr;
        gap: 1.6rem;
        padding: 1.1rem 0;
    }

.c-complete-next__row:not(:first-child) { border-top: 1px solid var(--color-line); }

.c-complete-next__dt {
        font-family: var(--font-family-mono);
        font-size: 1.2rem;
        color: var(--color-ink3);
    }

.c-complete-next__dd {
        margin: 0;
        font-size: 1.35rem;
        color: var(--color-text);
    }

.c-complete-next__lead {
        margin-bottom: 1.6rem;
        font-family: var(--font-family-serif);
        font-size: 1.6rem;
        font-weight: 600;
        text-align: center;
        color: var(--color-text);
    }

.c-complete-next__actions {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1.6rem;
    }

.c-complete-next__action {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: .8rem;
        padding: 2.2rem 2rem;
        text-align: center;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-complete-next__action:hover { border-color: var(--color-primary); }
        }

.c-complete-next__action--feature {
        background: var(--color-primary);
        border-color: var(--color-primary);
    }

@media (min-width: 751px) {
            .c-complete-next__action--feature:hover { background: var(--color-primary-dark); border-color: var(--color-primary-dark); }
        }

.c-complete-next__action-title {
        font-family: var(--font-family-serif);
        font-size: 1.5rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-complete-next__action--feature .c-complete-next__action-title { color: #fff; }

.c-complete-next__action-en {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        color: var(--color-primary);
    }

.c-complete-next__action--feature .c-complete-next__action-en { color: rgba(255, 255, 255, .85); }

@media (max-width: 750px) {

.c-complete-next {
        padding: 4.4rem 0
}

        .c-complete-next__receipt { padding: 2rem 2rem; }
        .c-complete-next__row { grid-template-columns: 1fr; gap: .4rem; }
        .c-complete-next__actions { grid-template-columns: 1fr; }
    }

@media (max-width: 750px) {
    .c-complete-steps { padding: 3.6rem 0 3rem; }
    .c-complete-steps__bar { margin: 0 1rem; }

    .c-complete-msg { padding: 4.4rem 0 4.8rem; }
    .c-complete-msg__title { font-size: 2.4rem; }
}

/* --- プライバシーポリシー（250_privacy）--- */

/* ===========================================================
   .c-privacy — プライバシーポリシー（導入＋全9条＋窓口ボックス）
   =========================================================== */

.c-privacy {
    padding: 5.6rem 0 7.2rem;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-privacy__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-privacy__en {
        margin-bottom: 1.4rem;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .16em;
        color: var(--color-primary);
    }

.c-privacy__title {
        margin: 0 0 2rem;
        font-family: var(--font-family-serif);
        font-size: 3.2rem;
        font-weight: 600;
        letter-spacing: .04em;
        color: var(--color-text);
    }

.c-privacy__lead {
        max-width: 82rem;
        margin: 0;
        font-size: 1.4rem;
        line-height: 2;
        color: var(--color-ink2);
    }

/* 条文リスト */

.c-privacy__list {
        max-width: 86rem;
        margin: 4.8rem 0 0;
        display: flex;
        flex-direction: column;
        gap: 3rem;
    }

.c-privacy__h2 {
        margin: 0 0 1.2rem;
        padding-left: 1.4rem;
        font-family: var(--font-family-serif);
        font-size: 1.9rem;
        font-weight: 600;
        color: var(--color-text);
        border-left: 3px solid var(--color-primary);
    }

.c-privacy__text {
        margin: 0;
        font-size: 1.35rem;
        line-height: 2;
        color: var(--color-ink2);
    }

.c-privacy__ul {
        margin: 1.2rem 0 0;
        padding-left: 2.2rem;
        font-size: 1.35rem;
        line-height: 2;
        color: var(--color-ink2);
    }

/* 本文（WPブロックエディタ出力用）：素の h2/p/ul を条文デザインへマッピング */

.c-privacy__body {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

.c-privacy__body h2 {
        margin: 0 0 1.2rem;
        padding-left: 1.4rem;
        font-family: var(--font-family-serif);
        font-size: 1.9rem;
        font-weight: 600;
        color: var(--color-text);
        border-left: 3px solid var(--color-primary);
        }

@media (max-width: 750px) {

    .c-privacy__body h2 { font-size: 1.7rem;
        }
    }

.c-privacy__body h2 {
            margin-top: 3rem;
        }

.c-privacy__body p {
        margin: 0;
        font-size: 1.35rem;
        line-height: 2;
        color: var(--color-ink2);
        }

.c-privacy__body ul {
        margin: 1.2rem 0 0;
        padding-left: 2.2rem;
        font-size: 1.35rem;
        line-height: 2;
        color: var(--color-ink2);
        }

/* 窓口ボックス（第9条） */

.c-privacy__box {
        margin-top: 1.4rem;
        padding: 1.6rem 2rem;
        background: var(--color-cream);
        border: 1px solid var(--color-line);
        font-size: 1.3rem;
        line-height: 1.95;
        color: var(--color-text);
    }

.c-privacy__date {
        margin-top: 1.2rem;
        padding-top: 1.8rem;
        border-top: 1px solid var(--color-line);
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        letter-spacing: .04em;
        color: var(--color-ink3);
    }

@media (max-width: 750px) {

.c-privacy {
        padding: 4.4rem 0 5.6rem
}

        .c-privacy__title { font-size: 2.6rem; }
        .c-privacy__list { margin-top: 3.6rem; gap: 2rem; }
        .c-privacy__h2 { font-size: 1.7rem; }
    }

/* --- 404（260_not-found）--- */

/* ===========================================================
   .c-notfound — 404 ページ（中央寄せ・大きな 404 ＋導線）
   =========================================================== */

.c-notfound {
    padding: 8.8rem 0 10rem;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
    text-align: center;
}

.c-notfound__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-notfound__num {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 12rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: .06em;
        color: var(--color-primary);
    }

.c-notfound__en {
        margin: 1.8rem 0 1.4rem;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .24em;
        color: var(--color-ink3);
    }

.c-notfound__title {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 2.6rem;
        font-weight: 600;
        line-height: 1.5;
        color: var(--color-text);
    }

.c-notfound__text {
        max-width: 52rem;
        margin: 2rem auto 0;
        font-size: 1.45rem;
        line-height: 1.95;
        color: var(--color-ink2);
    }

.c-notfound__actions {
        display: flex;
        justify-content: center;
        gap: 1.6rem;
        margin-top: 3.6rem;
    }

/* よく見られるページ（クイックリンク） */

.c-notfound__links {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 1rem 2.4rem;
        margin-top: 4.4rem;
        padding-top: 3rem;
        border-top: 1px solid var(--color-line);
    }

.c-notfound__links-label {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .1em;
        color: var(--color-ink3);
    }

.c-notfound__link {
        display: inline-flex;
        align-items: center;
        gap: .6rem;
        font-size: 1.35rem;
        color: var(--color-text);
        border-bottom: 1px solid var(--color-line);
        padding-bottom: .3rem;
        transition: var(--trans-hover);
    }

.c-notfound__link i { font-size: 1rem; color: var(--color-primary); }

@media (min-width: 751px) {
            .c-notfound__link:hover { border-bottom-color: var(--color-primary); }
        }

@media (max-width: 750px) {

.c-notfound {
        padding: 5.6rem 0 6.4rem
}

        .c-notfound__num { font-size: 8rem; }
        .c-notfound__title { font-size: 2.1rem; }

        .c-notfound__actions { flex-direction: column; }
        .c-notfound__actions .c-btn { width: 100%; }

        .c-notfound__links { gap: 1rem 1.8rem; }
    }

/* --- 会員（170_join 各セクション）--- */

/* ===========================================================
   .c-member-types — 会員種別（2カラム・白カード朱枠）
   =========================================================== */

.c-member-types {
    padding: 8rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-member-types__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-member-types__head {
        margin-bottom: 4.4rem;
    }

.c-member-types__list {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 2.6rem;
    }

.c-member-types__card {
        display: flex;
        flex-direction: column;
        gap: 1.4rem;
        padding: 3.4rem 3.6rem;
        background: var(--color-card);
        border: 1px solid var(--color-primary);
    }

.c-member-types__card-en {
        font-family: var(--font-family-mono);
        font-size: 1.05rem;
        letter-spacing: .1em;
        color: var(--color-primary);
    }

.c-member-types__card-name {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 2.4rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-member-types__card-body {
        margin: 0;
        font-size: 1.35rem;
        line-height: 1.85;
        color: var(--color-ink2);
    }

.c-member-types__card-fee {
        margin-top: .4rem;
        padding-top: 1.4rem;
        font-family: var(--font-family-mono);
        font-size: 1.25rem;
        color: var(--color-text);
        border-top: 1px solid var(--color-line);
    }

@media (max-width: 750px) {

.c-member-types {
        padding: 4.4rem 0
}

        .c-member-types__head { margin-bottom: 3.2rem; }
        .c-member-types__list { grid-template-columns: 1fr; gap: 1.6rem; }
        .c-member-types__card { padding: 2.8rem 2.6rem; }
        .c-member-types__card-name { font-size: 2.1rem; }
    }

/* ===========================================================
   .c-join-flow — 入会の流れ（4ステップ・間に矢印・STEP4 強調）
   =========================================================== */

.c-join-flow {
    padding: 8rem 0;
    background: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}

.c-join-flow__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-join-flow__head {
        margin-bottom: 4.4rem;
    }

.c-join-flow__list {
        display: flex;
        align-items: stretch;
    }

.c-join-flow__item {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 3rem 2.2rem 2.8rem;
        text-align: center;
        background: var(--color-card);
        border: 1px solid var(--color-line);
    }

.c-join-flow__item--feature {
        color: #fff;
        background: var(--color-primary);
        border: none;
    }

.c-join-flow__step {
        margin-bottom: 1.4rem;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .1em;
        color: var(--color-primary);
    }

.c-join-flow__item--feature .c-join-flow__step { color: rgba(255, 255, 255, .8); }

.c-join-flow__title {
        margin: 0 0 1.2rem;
        font-family: var(--font-family-serif);
        font-size: 1.8rem;
        font-weight: 600;
    }

.c-join-flow__divider {
        width: 2.4rem;
        height: 1px;
        margin-bottom: 1.2rem;
        background: var(--color-line);
    }

.c-join-flow__item--feature .c-join-flow__divider { background: rgba(255, 255, 255, .4); }

.c-join-flow__desc {
        margin: 0;
        font-size: 1.2rem;
        line-height: 1.7;
        color: var(--color-ink2);
    }

.c-join-flow__item--feature .c-join-flow__desc { color: rgba(255, 255, 255, .85); }

.c-join-flow__arrow {
        display: flex;
        align-items: center;
        padding: 0 1.2rem;
        color: var(--color-ink3);
    }

@media (max-width: 750px) {

.c-join-flow {
        padding: 4.4rem 0
}

        .c-join-flow__head { margin-bottom: 3.2rem; }

        .c-join-flow__list { flex-direction: column; }
        .c-join-flow__arrow {
            padding: 1rem 0;
            justify-content: center;
            transform: rotate(90deg);
        }
    }

/* ===========================================================
   .c-fees — 会費・期限管理（定義リスト・朱アイコン）
   =========================================================== */

.c-fees {
    padding: 8rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-fees__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-fees__head {
        margin-bottom: 3.6rem;
    }

.c-fees__list {
        max-width: 82rem;
        margin: 0;
        border-top: 2px solid var(--color-text);
    }

.c-fees__row {
        display: grid;
        grid-template-columns: 16rem 1fr;
        gap: 2.4rem;
        padding: 1.8rem .4rem;
        border-bottom: 1px solid var(--color-line);
    }

.c-fees__dt {
        display: flex;
        align-items: center;
        gap: 1.1rem;
        font-size: 1.4rem;
        font-weight: 500;
        color: var(--color-text);
    }

.c-fees__dt i {
            width: 1.8rem;
            font-size: 1.5rem;
            text-align: center;
            color: var(--color-primary);
        }

.c-fees__dd {
        margin: 0;
        font-size: 1.4rem;
        line-height: 1.8;
        color: var(--color-ink2);
    }

@media (max-width: 750px) {

.c-fees {
        padding: 4.4rem 0
}

        .c-fees__head { margin-bottom: 3.2rem; }
        .c-fees__row { grid-template-columns: 1fr; gap: .8rem; }
    }

/* ===========================================================
   .c-faq — よくあるご質問（ネイティブ details・排他アコーディオン）
   =========================================================== */

.c-faq {
    padding: 8rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-faq__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-faq__head {
        margin-bottom: 3.6rem;
    }

.c-faq__list {
        max-width: 92rem;
        border-top: 1px solid var(--color-line);
    }

.c-faq__item {
        border-bottom: 1px solid var(--color-line);
    }

.c-faq__q {
        display: grid;
        grid-template-columns: 2.8rem 1fr 2.8rem;
        gap: 1.4rem;
        align-items: center;
        padding: 2rem .2rem;
        cursor: pointer;
        list-style: none;
    }

.c-faq__q::-webkit-details-marker { display: none; }

.c-faq__q::before {
            content: "Q.";
            font-family: var(--font-family-serif);
            font-size: 1.8rem;
            color: var(--color-primary);
        }

.c-faq__q::after {
            /* 開閉アイコンは Unicode エスケープで記述（多バイト直書きは
               配信時の文字コード解釈によって文字化けするため）
               \FF0B = ＋（全角プラス） / \2212 = −（マイナス記号） */
            content: "\FF0B";
            font-family: var(--font-family-mono);
            font-size: 1.6rem;
            text-align: right;
            color: var(--color-ink3);
        }

.c-faq__item[open] .c-faq__q::after { content: "\2212"; }

.c-faq__q-text {
        font-family: var(--font-family-serif);
        font-size: 1.6rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-faq__a {
        display: grid;
        grid-template-columns: 2.8rem 1fr;
        gap: 1.4rem;
        padding: 0 .2rem 2.2rem;
    }

.c-faq__a::before {
            content: "A.";
            font-family: var(--font-family-serif);
            font-size: 1.8rem;
            color: var(--color-ink3);
        }

.c-faq__a-text {
        margin: 0;
        font-size: 1.35rem;
        line-height: 1.9;
        color: var(--color-ink2);
    }

@media (max-width: 750px) {

.c-faq {
        padding: 4.4rem 0
}

        .c-faq__head { margin-bottom: 3.2rem; }
        .c-faq__q { grid-template-columns: 2.4rem 1fr 2.4rem; gap: 1rem; }
        .c-faq__q-text { font-size: 1.45rem; }
        .c-faq__a { grid-template-columns: 2.4rem 1fr; gap: 1rem; }
    }

/* --- イベント・出店（160_oita-event 各セクション）--- */

/* ===========================================================
   .c-event-next — NEXT 次回開催（横長カード：写真＋朱丸バッジ＋明細＋CTA）
   =========================================================== */

.c-event-next {
    padding: 8rem 0;
    background: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}

.c-event-next__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-event-next__head {
        margin-bottom: 4rem;
    }

.c-event-next__card {
        display: grid;
        grid-template-columns: 1.1fr 1fr;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        overflow: hidden;
    }

.c-event-next__media {
        position: relative;
    }

.c-event-next__photo {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.c-event-next__badge {
        position: absolute;
        top: 2rem;
        left: 2rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 8rem;
        height: 8rem;
        border-radius: 50%;
        background: var(--color-primary);
        color: #fff;
        font-family: var(--font-family-serif);
        font-size: 1.3rem;
        line-height: 1.3;
    }

.c-event-next__body {
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 4.4rem 4.8rem;
    }

.c-event-next__cat {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .12em;
        color: var(--color-primary);
        margin-bottom: 1.2rem;
    }

.c-event-next__title {
        margin: 0 0 2.2rem;
        font-family: var(--font-family-serif);
        font-size: 2.8rem;
        font-weight: 600;
        line-height: 1.4;
        letter-spacing: .02em;
        color: var(--color-text);
    }

.c-event-next__dl {
        margin: 0;
        border-top: 1px solid var(--color-line);
    }

.c-event-next__row {
        display: grid;
        grid-template-columns: 9rem 1fr;
        gap: 1.4rem;
        padding: 1.3rem .2rem;
        border-bottom: 1px solid var(--color-line);
    }

.c-event-next__dt {
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        letter-spacing: .04em;
        color: var(--color-ink3);
    }

.c-event-next__dd {
        margin: 0;
        font-size: 1.4rem;
        color: var(--color-text);
    }

.c-event-next__actions {
        display: flex;
        gap: 1.4rem;
        margin-top: 2.6rem;
    }

/* 次回未定時のプレースホルダーカード */

.c-event-next__empty {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 1.6rem;
        padding: 5.6rem 4rem;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        text-align: center;
    }

.c-event-next__empty-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 6rem;
        height: 6rem;
        border-radius: 50%;
        background: var(--color-cream);
        color: var(--color-ink3);
        font-size: 2.2rem;
    }

.c-event-next__empty-title {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 2rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-event-next__empty-text {
        margin: 0;
        max-width: 44rem;
        font-size: 1.4rem;
        line-height: 1.9;
        color: var(--color-ink2);
    }

.c-event-next__empty-cta { margin-top: .6rem; }

@media (max-width: 750px) {

.c-event-next {
        padding: 5.6rem 0
}

        .c-event-next__head { margin-bottom: 3rem; }
        .c-event-next__card { grid-template-columns: 1fr; }
        .c-event-next__photo { aspect-ratio: 16 / 11; height: auto; }
        .c-event-next__badge { top: 1.4rem; left: 1.4rem; width: 6.4rem; height: 6.4rem; font-size: 1.15rem; }
        .c-event-next__body { padding: 3rem 2rem; }
        .c-event-next__title { font-size: 2.2rem; }
        .c-event-next__row { grid-template-columns: 7rem 1fr; gap: 1rem; }
        .c-event-next__dd { font-size: 1.3rem; }
        .c-event-next__actions { flex-direction: column; gap: 1rem; }
        .c-event-next__actions .c-btn { width: 100%; }

        .c-event-next__empty { padding: 4rem 2rem; }
        .c-event-next__empty-icon { width: 5.2rem; height: 5.2rem; font-size: 1.9rem; }
        .c-event-next__empty-title { font-size: 1.8rem; }
        .c-event-next__empty-text { font-size: 1.3rem; line-height: 1.75; }
    }

/* ===========================================================
   .c-event-schedule — SCHEDULE 出店・イベント一覧（行リスト）
   日付(mono) / 朱枠カテゴリタグ / 明朝タイトル / 会場 / 残席（hot は朱太字）
   =========================================================== */

.c-event-schedule {
    padding: 8rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-event-schedule__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-event-schedule__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 1.2rem;
        flex-wrap: wrap;
    }

.c-event-schedule__more {
        display: inline-flex;
        align-items: center;
        gap: .8rem;
        font-size: 1.3rem;
        color: var(--color-text);
        border-bottom: 1px solid var(--color-primary);
        padding-bottom: .4rem;
        white-space: nowrap;
        transition: var(--trans-hover);
    }

.c-event-schedule__more i { font-size: 1.1rem; }

@media (min-width: 751px) {
            .c-event-schedule__more:hover { color: var(--color-primary); }
        }

.c-event-schedule__list {
        margin-top: 3.6rem;
        border-top: 2px solid var(--color-text);
    }

.c-event-schedule__row {
        display: grid;
        /* タイトル列は幅固定せず文字数（最大30文字・PHP側で丸め済み）に応じて伸縮。残りは会場列へ */
        grid-template-columns: 11rem 10rem max-content 1fr 7rem;
        gap: 2rem;
        align-items: center;
        padding: 2rem .4rem;
        border-bottom: 1px solid var(--color-line);
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-event-schedule__row:hover { background: var(--color-card); }
        }

.c-event-schedule__date {
        font-family: var(--font-family-mono);
        font-size: 1.35rem;
        letter-spacing: .02em;
        color: var(--color-text);
    }

/* 朱アウトラインのカテゴリタグ（RIDESHARE / POP-UP / EVENT / EXHIBIT） */

.c-event-schedule__cat {
        font-family: var(--font-family-mono);
        font-size: 1rem;
        letter-spacing: .06em;
        text-align: center;
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
        border-radius: 2px;
        padding: .5rem 0;
    }

.c-event-schedule__ttl {
        font-family: var(--font-family-serif);
        font-size: 1.6rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-event-schedule__place {
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        color: var(--color-ink3);
    }

.c-event-schedule__place i { margin-right: .6rem; }

.c-event-schedule__status {
        font-family: var(--font-family-mono);
        font-size: 1.15rem;
        color: var(--color-ink3);
        text-align: right;
        white-space: nowrap;
    }

.c-event-schedule__status i { margin-left: .8rem; font-size: 1rem; }

.c-event-schedule__status--hot {
        color: var(--color-primary);
        font-weight: 700;
    }

@media (max-width: 750px) {

.c-event-schedule {
        padding: 5.6rem 0
}

        .c-event-schedule__list { margin-top: 2.8rem; }

        .c-event-schedule__row {
            grid-template-columns: auto 1fr;
            grid-template-areas:
                "date cat"
                "ttl ttl"
                "place status";
            gap: .8rem 1.4rem;
            padding: 1.8rem .2rem;
        }

        .c-event-schedule__date { grid-area: date; align-self: center; }
        .c-event-schedule__cat { grid-area: cat; justify-self: start; padding: .4rem 1rem; }
        .c-event-schedule__ttl { grid-area: ttl; font-size: 1.5rem; }
        .c-event-schedule__place { grid-area: place; }
        .c-event-schedule__status { grid-area: status; }
    }

/* ===========================================================
   .c-event-bar — RIDESHARE & BAR 地酒バー出店・蔵巡り
   左＝説明文＋3ステップ FLOW カード / 右＝写真
   =========================================================== */

.c-event-bar {
    padding: 8rem 0;
    background: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}

.c-event-bar__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-event-bar__head {
        margin-bottom: 4rem;
    }

.c-event-bar__grid {
        display: grid;
        grid-template-columns: 1.4fr 1fr;
        gap: 4rem;
        align-items: center;
    }

.c-event-bar__lead {
        margin: 0;
        font-size: 1.45rem;
        line-height: 2.2;
        color: var(--color-ink2);
    }

.c-event-bar__flow {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1.4rem;
        margin-top: 2.8rem;
    }

.c-event-bar__step {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 2.6rem 1.8rem 2.2rem;
        background: var(--color-card);
        border: 1px solid var(--color-line);
    }

.c-event-bar__icon {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 5.6rem;
        height: 5.6rem;
        margin-bottom: 1.6rem;
        border-radius: 50%;
        color: var(--color-primary);
    }

/* 円枠ごと描かれた画像なので枠線は付けず、円いっぱいに表示する */

.c-event-bar__icon img {
            width: 100%;
            height: auto;
        }

.c-event-bar__step-no {
        font-family: var(--font-family-mono);
        font-size: 1rem;
        letter-spacing: .12em;
        color: var(--color-ink3);
        margin-bottom: .8rem;
    }

.c-event-bar__step-title {
        font-family: var(--font-family-serif);
        font-size: 1.6rem;
        font-weight: 600;
        color: var(--color-text);
    }

.c-event-bar__photo {
        display: block;
        width: 100%;
        aspect-ratio: 4 / 3;
        object-fit: cover;
        border: 1px solid var(--color-line);
    }

@media (max-width: 750px) {

.c-event-bar {
        padding: 5.6rem 0
}

        .c-event-bar__head { margin-bottom: 3rem; }
        .c-event-bar__grid { grid-template-columns: 1fr; gap: 2.8rem; }
        .c-event-bar__lead { font-size: 1.35rem; line-height: 2; }
        .c-event-bar__flow { gap: 1rem; margin-top: 2.2rem; }
        .c-event-bar__step { padding: 2rem 1rem 1.6rem; }
        .c-event-bar__icon { width: 4.2rem; height: 4.2rem; margin-bottom: 1.2rem; }
        .c-event-bar__step-title { font-size: 1.4rem; }
        .c-event-bar__photo { aspect-ratio: 16 / 11; }
    }

/* ===========================================================
   .c-event-archive — ARCHIVE 過去のイベント（3カラムカード）
   写真＋mono年＋明朝タイトル
   =========================================================== */

.c-event-archive {
    padding: 8rem 0;
    background: var(--color-bg-base);
    border-bottom: 1px solid var(--color-line);
}

.c-event-archive__inner {
        max-width: var(--width-content);
        margin: 0 auto;
        padding-inline: var(--pad-side);
    }

.c-event-archive__head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 1.2rem;
        flex-wrap: wrap;
    }

.c-event-archive__more {
        display: inline-flex;
        align-items: center;
        gap: .8rem;
        font-size: 1.3rem;
        color: var(--color-text);
        border-bottom: 1px solid var(--color-primary);
        padding-bottom: .4rem;
        white-space: nowrap;
        transition: var(--trans-hover);
    }

.c-event-archive__more i { font-size: 1.1rem; }

@media (min-width: 751px) {
            .c-event-archive__more:hover { color: var(--color-primary); }
        }

.c-event-archive__list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2.4rem;
        margin-top: 4rem;
    }

.c-event-archive__card {
        display: block;
        background: var(--color-card);
        border: 1px solid var(--color-line);
        overflow: hidden;
        transition: var(--trans-hover);
    }

@media (min-width: 751px) {
            .c-event-archive__card:hover { border-color: var(--color-primary); }
        }

.c-event-archive__photo {
        display: block;
        width: 100%;
        aspect-ratio: 16 / 10;
        object-fit: cover;
    }

.c-event-archive__body {
        padding: 1.8rem 2.2rem 2rem;
    }

.c-event-archive__year {
        display: block;
        font-family: var(--font-family-mono);
        font-size: 1.1rem;
        letter-spacing: .08em;
        color: var(--color-primary);
        margin-bottom: .8rem;
    }

.c-event-archive__title {
        margin: 0;
        font-family: var(--font-family-serif);
        font-size: 1.7rem;
        font-weight: 600;
        line-height: 1.5;
        color: var(--color-text);
    }

@media (max-width: 750px) {

.c-event-archive {
        padding: 5.6rem 0
}

        .c-event-archive__list { grid-template-columns: 1fr; gap: 1.8rem; margin-top: 2.8rem; }
    }

/* --- 装飾：クリーム地セクションの麻の葉帯（各セクションの background より後に置く）--- */

/* ===========================================================
   麻の葉の縦帯（クリーム地 --color-cream のセクション共通・PCのみ）
   左右 15rem の帯を背景レイヤーで重ねる（マークアップ不要）。
   各セクションの background ショートハンドより後に読ませるため style.css の末尾で import する。
   クリーム地のセクションを新設したら、ここにセレクタを追加する。
   =========================================================== */

@media (min-width: 751px) {
    .c-quick,
    .c-next,
    .c-persp,
    .c-news--press,
    .c-section--cream,
    .c-mvv,
    .c-activities,
    .c-records,
    .c-members,
    .c-docs,
    .c-featured,
    .c-brewery,
    .c-related,
    .c-demae-types,
    .c-event-next,
    .c-event-bar,
    .c-event-list--past,
    .c-join-flow,
    .c-form--cream,
    .c-contact-types,
    .c-complete-next {
        /* 52×90 の麻の葉タイルを幅 150 の帯に敷いた SVG（右帯はタイルを右端基準に揃えて左右対称に） */
        background-image:
            url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='90'%3E%3Cdefs%3E%3Cpattern id='a' width='52' height='90' patternUnits='userSpaceOnUse'%3E%3Cg fill='none' stroke='%238a7e6e' stroke-width='1' stroke-opacity='0.065'%3E%3Cpath d='M26 0 52 15 52 45 26 60 0 45 0 15Z'/%3E%3Cpath d='M26 0 26 60M0 15 52 45M52 15 0 45'/%3E%3Cpath d='M26 60 52 75 52 90M26 60 0 75 0 90'/%3E%3C/g%3E%3C/pattern%3E%3C/defs%3E%3Crect width='150' height='90' fill='url(%23a)'/%3E%3C/svg%3E"),
            url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='90'%3E%3Cdefs%3E%3Cpattern id='a' x='46' width='52' height='90' patternUnits='userSpaceOnUse'%3E%3Cg fill='none' stroke='%238a7e6e' stroke-width='1' stroke-opacity='0.065'%3E%3Cpath d='M26 0 52 15 52 45 26 60 0 45 0 15Z'/%3E%3Cpath d='M26 0 26 60M0 15 52 45M52 15 0 45'/%3E%3Cpath d='M26 60 52 75 52 90M26 60 0 75 0 90'/%3E%3C/g%3E%3C/pattern%3E%3C/defs%3E%3Crect width='150' height='90' fill='url(%23a)'/%3E%3C/svg%3E");
        background-position: left top, right top;
        background-size: 15rem 9rem;
        background-repeat: repeat-y;
    }
}

/*# sourceMappingURL=style.css.map */