/* gift-media.css — ギフトメディア刷新デザインシステム
   独自テーマ memoco のデザイン基盤。
   フォント(Noto Sans JP)は assets/css/fonts.css でセルフホストし非同期読込する。
   ここで @import しないこと（CSS→GoogleCSS→フォントの直列チェーンを作りFCPを大幅に遅らせるため）。 */

:root{
  /* 独自トークン */
  --gm-tiff:#0ABAB5; --gm-tiff-soft:#8FE0DA; --gm-tiff-bg:#EAF7F5;
  --gm-ink:#232627; --gm-muted:#8a8f92; --gm-line:#ececec; --gm-paper:#fff;
}

/* SWELLはインラインCSSで :root の色を再定義するため、!important で確実に上書きする */
:root{
  --color_main:#0ABAB5 !important;
  --color_main_rgb:10,186,181 !important;
  --color_main_dark:#0a9b96 !important;
  --color_main_thin:rgba(10,186,181,.06) !important;
  --color_text_main:#0ABAB5 !important;
}

/* 基本フォント Noto Sans JP（視認性・SEO/AIO・モバイル最適）。CWVのため将来self-host化＝E */
body,
body.swell-body{ font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif !important; }

/* ===== SWELLレイアウト: サイドバー無し・フルワイド（gift-mediaは1カラム方針） ===== */
.l-sidebar{ display:none !important; }
.l-mainContent{ width:100% !important; max-width:100% !important; flex:1 1 100% !important; }
/* 記事本文の可読幅は保ちつつ、TOP/一覧(.gm-top)は自前で最大幅制御 */
.single .l-mainContent__inner{ max-width:760px; margin-inline:auto; }

/* PR表記（全記事・小さくグレー） */
.gm-promo{font-size:11px;color:var(--gm-muted);margin:10px 0 0;}

/* リード文 */
.gm-lead{font-size:15px;line-height:2;color:#454a4c;margin:14px 0 0;padding-bottom:20px;border-bottom:1px solid var(--gm-line);}

/* セクション見出し（上段サブ=グレー / 本見出し=短いティファニー下線） */
.gm-sec-sub{display:block;font-size:11px;color:var(--gm-muted);font-weight:500;letter-spacing:.06em;margin-bottom:5px;}
.gm-h2{position:relative;padding-bottom:10px;border-bottom:1px solid var(--gm-line);}
.gm-h2::after{content:"";position:absolute;left:0;bottom:-1px;width:56px;height:2px;background:var(--gm-tiff);}

/* タグライン（旧サイトのサブ見出し）＝見出しの上段。
   検索意図を担っていることが多い文言なので、装飾ではなく情報として扱う。
   上段はグレーで控えめに、下段の見出しを黒で目立たせて主従を作る。 */
.gm-tagline{font-size:11.5px;color:var(--gm-muted);font-weight:500;letter-spacing:0;margin:26px 0 -2px;line-height:1.6;}
.gm-art-body .gm-tagline{margin:26px 0 -2px;}
/* 上段の直後に来る見出しは、対だと分かるよう上の余白を詰める */
.gm-art-body .gm-tagline + h2,
.gm-art-body .gm-tagline + h3,
.gm-art-body .gm-tagline + h4,
.gm-heading--editor .gm-tagline + h2,
.gm-heading--editor .gm-tagline + h3,
.gm-heading--editor .gm-tagline + h4{margin-top:6px;}

/* 商品紹介カード（no-box・下線区切り）。画像 左 / 本文 右。 */
/* 上段タグラインはカード左上に幅いっぱいで置くため、専用の行(tag)を持たせる。
   ※ この行に置く要素は1つだけにすること。同じ grid-area に複数置くと重なって描画される。 */
.gm-product{display:grid;grid-template-columns:150px 1fr;grid-template-areas:"tag tag" "thumb body";gap:0 20px;padding:24px 0;border-top:1px solid var(--gm-line);}
/* タグライン＋キャッチの対は2組あり、置き場所だけが違う（1組目=カード左上・画像の上 /
   2組目=画像の横）。**見た目の仕組みは同じ**なので、1つのルールで両方を賄う。
   別々に書くとどちらかだけズレる。 */
.gm-product > .gm-product__head{grid-area:tag;margin:0 0 14px;}
.gm-product .gm-tagline{margin:0;font-size:11.5px;color:var(--gm-muted);font-weight:500;line-height:1.6;letter-spacing:0;}
.gm-product .gm-sub,
.gm-product .gm-catch{font-size:14.5px;color:var(--gm-ink);font-weight:700;line-height:1.55;letter-spacing:0;margin:1px 0 0;}
.gm-product > .gm-thumb{grid-area:thumb;}
.gm-product__body{grid-area:body;}
/* 商品写真は正方形の枠に「全体を収める」。cover だと商品が見切れるため contain。
   EC写真は白背景が多いので枠も白+極薄罫にして、余白が出ても自然に見せる。 */
.gm-product .gm-thumb{width:150px;height:150px;flex:0 0 150px;border-radius:8px;overflow:hidden;background:#fff;border:1px solid var(--gm-line);box-sizing:border-box;}
.gm-product .gm-thumb img{width:100%;height:100%;object-fit:contain;display:block;}
/* 配布元で画像が消えた(404)商品はグレーアウト（カードの形は保つ） */
.gm-product .gm-thumb--noimg{background:#eceded;}
.gm-product__body{min-width:0;}
/* カードは 上段キャッチ → 下段キャッチ → ブランド名 → 商品名 → 説明 の順。
   移行データは brand に「メーカー／和名 + 商品名」が1塊で入っているため、
   分解できたものだけブランドと商品名を分けて見せる。 */
.gm-product .gm-desc{font-size:13px;color:#585d5f;line-height:1.9;margin-top:10px;}
/* ブランド名・商品名は購入ボタンの直上。「何を買うのか」を確認してから押す並びにする */
.gm-product .gm-brand{font-size:10.5px;color:var(--gm-muted);margin-top:14px;letter-spacing:.04em;line-height:1.5;}
.gm-product .gm-name{font-size:15px;font-weight:700;color:var(--gm-ink);line-height:1.5;margin:2px 0 0;}
/* ブランド名が無い商品では商品名が説明文の直後に来る。ブランド名と同じだけ間を空ける
   （余白を .gm-brand だけに持たせると、ブランド名の有無で間隔が変わってしまう） */
.gm-product .gm-desc + .gm-name{margin-top:14px;}
.gm-product--editor .gm-thumb{cursor:pointer;position:relative;}
/* 複数画像: メイン画像 + その下に小さくサムネイル（1枚のときはこの塊は出ない）
   ※ .gm-product .gm-thumb img の指定に負けないよう .gm-product を付けて詳細度を揃える */
.gm-product .gm-thumb.gm-gal{height:auto;aspect-ratio:auto;background:none;border:0;border-radius:0;overflow:visible;}
.gm-product .gm-gal__main{width:150px;height:150px;border-radius:8px;overflow:hidden;background:#fff;border:1px solid var(--gm-line);box-sizing:border-box;}
.gm-product .gm-gal__slide{width:100%;height:100%;}
.gm-product .gm-gal__slide img{width:100%;height:100%;object-fit:contain;display:block;}
/* サムネイルは「メイン画像の幅ぴったりに4枚」で1行に収める。
   ★固定幅36px×4＋隙間15px＝159px はメイン画像の150pxをはみ出して折り返し、
     4枚目が下の段に落ちて隣の要素と重なって見えていた（2026-07-19 ユーザー指摘）。
     グリッドで4等分すれば、メイン画像の幅が変わっても常に4枚が1行に並ぶ。 */
.gm-product .gm-gal__thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:7px;}
.gm-product .gm-gal__thumb{width:auto;aspect-ratio:1;height:auto;padding:0;border:1.5px solid var(--gm-line);background:none;cursor:pointer;border-radius:5px;line-height:0;overflow:hidden;transition:border-color .15s;}
.gm-product .gm-gal__thumb:hover{border-color:var(--gm-tiff-soft);}
.gm-product .gm-gal__thumb.is-active{border-color:var(--gm-tiff);}
.gm-product .gm-gal__thumb img{width:100%;height:100%;object-fit:cover;display:block;}

/* 記事内CTA（ティファニー塗り・モバイル折返し無し） */
.gm-btn{display:block;width:100%;background:var(--gm-tiff);color:#fff;font-size:13px;font-weight:700;padding:12px 20px;border-radius:8px;box-shadow:0 5px 12px rgba(10,186,181,.24);white-space:nowrap;text-decoration:none;text-align:center;box-sizing:border-box;}
/* 2段目=黒 / 3段目=白に黒線（購入先が複数あるときの優先度を色で表す） */
.gm-btn--dark{background:var(--gm-ink);color:#fff;box-shadow:0 5px 12px rgba(35,38,39,.20);}
.gm-btn--outline{background:#fff;color:var(--gm-ink);border:1.5px solid var(--gm-ink);box-shadow:none;padding:10.5px 20px;}
/* EC別ブランドカラー（読者が買える場所を一目で判別できるように） */
.gm-btn--amazon{background:#FF9900;color:#232627;box-shadow:0 5px 12px rgba(255,153,0,.28);}
.gm-btn--rakuten{background:#BF0000;color:#fff;box-shadow:0 5px 12px rgba(191,0,0,.22);}
.gm-btn--yahoo{background:#FF0033;color:#fff;box-shadow:0 5px 12px rgba(255,0,51,.22);}
.gm-btns{display:flex;flex-direction:column;gap:8px;margin-top:14px;max-width:420px;}

/* 本文に単独で置く外部リンクボタン（memoco/button）。
   商品カードの中(.gm-btns)は最大420pxに抑えるが、本文のボタンは**全幅**にして
   押しやすくする。上下の余白は前後の段落と衝突しないよう、ここで持たせる。
   ※ セレクタは .gm-btnbox で包む。中の <a> は本文のリンク色(.gm-art-body a)に
     負けないよう詳細度を確保する（.gm-art-body a は 0,1,1）。 */
.gm-btnbox{margin:26px 0 28px;}
/* 中の .gm-btns はカード用に 420px 上限・上マージン付きなので、本文側では解除する */
.gm-btnbox .gm-btns{max-width:none;margin-top:0;}
.gm-btnbox .gm-btn{max-width:100%;white-space:normal;}
.gm-art-body .gm-btnbox a.gm-btn{color:#fff;text-decoration:none;}
.gm-art-body .gm-btnbox a.gm-btn--outline{color:var(--gm-ink);}
.gm-art-body .gm-btnbox a.gm-btn--amazon{color:#232627;}
/* エディタでも公開ページと同じ見え方にする */
.gm-btnbox--editor .gm-btn{cursor:text;}

/* 内部リンクボックス（関連記事誘導） */
/* 目次下の商品サマリー表（画像/商品名/最初の購入ボタン）。行から本文の商品へジャンプする。 */
.gm-ptable-wrap{margin-top:16px;padding-top:14px;border-top:1px solid var(--gm-line);}
.gm-ptable__head{font-size:12px;font-weight:700;color:var(--gm-muted);letter-spacing:.04em;margin-bottom:8px;}
.gm-ptable{width:100%;border-collapse:collapse;}
.gm-ptable td{padding:9px 6px;border-bottom:1px solid var(--gm-line);vertical-align:middle;}
.gm-ptable tr:last-child td{border-bottom:0;}
.gm-ptable__img{width:52px;}
.gm-ptable__img img,.gm-ptable__img .gm-noimg{width:44px;height:44px;object-fit:contain;background:#fff;border:1px solid var(--gm-line);border-radius:5px;display:block;}
/* 配布元で画像が消えた(404)場合のグレーアウト表示 */
.gm-noimg{background:#eceded;}
.gm-ptable__name{font-size:13px;line-height:1.5;}
.gm-ptable__name a{color:var(--gm-ink);text-decoration:none;font-weight:500;}
.gm-ptable__name a:hover{color:var(--gm-tiff);}
/* ボタンはラベルの文字数（「Amazonで見る」「楽天で見る」「商品詳細はこちら」）で
   幅が変わらないよう、セル幅に対して100%で揃える */
.gm-ptable__btn{width:118px;}
.gm-btn--sm{display:block;width:100%;font-size:11px;font-weight:700;padding:7px 8px;border-radius:6px;box-shadow:none;white-space:nowrap;box-sizing:border-box;}

/* 商品が多い記事は5.5行目で切ってグラデーションでぼかし、「すべて見る」で展開する。
   1行の高さ = 画像44 + 上下padding18 + 罫線1 = 63px。JSを使わずチェックボックスで開閉。 */
.gm-ptable-wrap{--gm-ptable-row:63px;}
.gm-ptable__toggle{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.gm-ptable__clip{position:relative;max-height:calc(var(--gm-ptable-row) * 5.5);overflow:hidden;}
.gm-ptable__toggle:checked ~ .gm-ptable__clip{max-height:none;}
.gm-ptable__fade{position:absolute;left:0;right:0;bottom:0;height:86px;background:linear-gradient(to bottom,rgba(255,255,255,0),#fff 82%);pointer-events:none;}
.gm-ptable__toggle:checked ~ .gm-ptable__clip .gm-ptable__fade{display:none;}
.gm-ptable__more{display:block;margin:2px auto 0;padding:9px 20px;width:fit-content;font-size:12px;font-weight:700;color:var(--gm-ink);background:#fff;border:1px solid var(--gm-ink);border-radius:20px;cursor:pointer;user-select:none;transition:background .15s;}
.gm-ptable__more:hover{background:#f7f8f8;}
.gm-ptable__more .is-close{display:none;}
.gm-ptable__toggle:checked ~ .gm-ptable__more .is-open{display:none;}
.gm-ptable__toggle:checked ~ .gm-ptable__more .is-close{display:inline;}
/* キーボード操作でも開閉できることが分かるように */
.gm-ptable__toggle:focus-visible ~ .gm-ptable__more{outline:2px solid var(--gm-tiff);outline-offset:2px;}

/* 内部リンクカード（黒線・黒字）。商品カードのボタン類と役割が違うので色で差別化する。 */
.gm-ilink{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--gm-ink);border-radius:10px;padding:14px 18px;margin:18px 0;background:#fff;text-decoration:none;transition:background .15s;}
.gm-ilink:hover{background:#f7f8f8;}
.gm-ilink .t{font-size:14px;font-weight:700;color:var(--gm-ink);line-height:1.55;}
.gm-ilink .c{color:var(--gm-ink);font-size:22px;flex:0 0 auto;}

/* 一覧カード（極薄カード） */
.gm-card{display:block;border:1px solid #eee;border-radius:10px;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.04);background:#fff;text-decoration:none;color:inherit;}
.gm-card img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;}
.gm-card .cb{padding:12px 13px 15px;}
.gm-card .lbl{font-size:9px;color:var(--gm-tiff);letter-spacing:.12em;}
.gm-card .ct{font-size:13px;color:var(--gm-ink);line-height:1.5;margin-top:4px;font-weight:500;}

/* 記事末導線（関連/人気/カテゴリCTA） */
.gm-after{margin-top:40px;}
.gm-after .gm-sec-head{text-align:center;margin:0 0 18px;}
.gm-after .gm-sec-head .en{font-size:10px;letter-spacing:.24em;color:var(--gm-tiff);}
.gm-after .gm-sec-head .jp{font-size:15px;color:var(--gm-ink);font-weight:700;margin-top:5px;}
.gm-after .gm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.gm-catcta{display:block;text-align:center;background:var(--gm-tiff);color:#fff;font-size:14px;font-weight:700;padding:14px;border-radius:8px;box-shadow:0 5px 12px rgba(10,186,181,.22);white-space:nowrap;text-decoration:none;margin-top:22px;}

@media(max-width:600px){
  .gm-product{grid-template-columns:1fr;grid-template-areas:"tag" "thumb" "body";gap:0;}
  /* 商品写真は正方形(1000x1000等)が主。3:2の枠だと上下が見切れるため正方形にする。
     幅いっぱいだと大きすぎるので上限を設けて中央寄せ。 */
  .gm-product .gm-thumb{width:100%;max-width:300px;height:auto;aspect-ratio:1/1;flex:none;margin:0 auto 14px;}
  /* 複数画像: メインを正方形、サムネイルはその下に少し大きめで */
  .gm-product .gm-thumb.gm-gal{aspect-ratio:auto;border:0;background:none;max-width:300px;}
  .gm-product .gm-gal__main{width:100%;height:auto;aspect-ratio:1/1;background:#fff;border:1px solid var(--gm-line);box-sizing:border-box;}
  /* モバイルはメイン画像が可変幅（最大300px）なので、PCの150px固定3列グリッドは使わない。
     従来どおり44pxのサムネを中央寄せで折り返す。 */
  .gm-product .gm-gal__thumbs{display:flex;flex-wrap:wrap;justify-content:center;width:auto;}
  .gm-product .gm-gal__thumb{width:44px;height:44px;aspect-ratio:auto;}
  /* 商品サマリー表: 幅が狭いので余白と文字を詰め、ボタンは折り返さない */
  .gm-ptable-wrap{--gm-ptable-row:55px;} /* 画像38 + 上下padding16 + 罫線1 */
  .gm-ptable td{padding:8px 4px;}
  .gm-ptable__img{width:44px;}
  .gm-ptable__img img,.gm-ptable__img .gm-noimg{width:38px;height:38px;}
  /* 商品名は2行までで省略（長い商品名で行が伸びて表が読みにくくなるのを防ぐ） */
  .gm-ptable__name{font-size:12px;}
  .gm-ptable__name a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .gm-ptable__btn{width:104px;} /* モバイルも固定幅にしてボタンを揃える */
  .gm-btn--sm{padding:6px 6px;font-size:10.5px;}
  .gm-btns{flex-direction:column;} .gm-btn{width:100%;text-align:center;}
  .gm-after .gm-grid{grid-template-columns:1fr;}
}

/* ===== TOP（front-page） ===== */
.gm-top{max-width:960px;margin:0 auto;padding:24px 20px 48px;}
.gm-feature{margin-bottom:40px;text-align:center;}
.gm-feature img{width:100%;aspect-ratio:16/7;object-fit:cover;border-radius:8px;}
.gm-feature-label{display:inline-block;margin-top:14px;font-size:10px;letter-spacing:.16em;color:var(--gm-tiff);border-bottom:1px solid var(--gm-tiff);padding-bottom:2px;}
.gm-feature-title{font-size:26px;line-height:1.55;color:var(--gm-ink);font-weight:700;margin:12px 0 0;}
.gm-sec-head{text-align:center;margin:40px 0 22px;}
.gm-sec-head .en{font-size:10px;letter-spacing:.24em;color:var(--gm-tiff);}
.gm-sec-head .jp{font-size:16px;color:var(--gm-ink);font-weight:700;margin-top:5px;}
.gm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.gm-scene-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.gm-scene-item{display:flex;flex-direction:column;align-items:center;text-decoration:none;text-align:center;}
.gm-scene-name{font-size:13px;color:var(--gm-ink);font-weight:700;}
.gm-scene-count{font-size:10px;color:var(--gm-muted);margin-top:3px;}
@media(max-width:600px){
  .gm-top{padding:16px 16px 40px;}
  .gm-grid{grid-template-columns:1fr;}
  .gm-scene-grid{grid-template-columns:1fr 1fr;}
  .gm-feature-title{font-size:21px;}
}

/* ============================================================
   スタンドアロン（モック忠実）: 共通ヘッダ/フッタ ＋ TOP
   front-page.php 等が gm-header/gm-footer を include して使う
   ============================================================ */
.gm-page{ background:#fff; color:var(--gm-ink); overflow-x:hidden; }
.gm-page *{ box-sizing:border-box; }
.gm-main{ max-width:960px; margin:0 auto; padding:8px 20px 48px; }
.gm-logo-h1{ margin:0; padding:0; line-height:1; }
.gm-section--first .gm-sec-head{ margin-top:30px; }
.gm-main img{ max-width:100%; height:auto; }

/* --- 共通ヘッダ（中央ロゴ） --- */
.gm-header{ border-top:3px solid var(--gm-tiff); border-bottom:1px solid var(--gm-line); background:#fff; }
.gm-header__inner{ max-width:960px; margin:0 auto; padding:22px 20px 0; text-align:center; }
/* ロゴ = ティファニーのワードマーク流儀:
   高コントラストのセリフ体・全大文字・広い字間・細めのウェイト。
   字間を空けると右端に余白が付くので margin-right の負値で光学的に中央へ戻す。 */
.gm-logo{ font-family:'Playfair Display', 'Times New Roman', serif; font-size:30px; font-weight:500; letter-spacing:.22em; margin-right:-.22em; text-transform:uppercase; color:var(--gm-ink); text-decoration:none; display:inline-block; line-height:1.1; }
/* サイトのタグライン（ロゴ下）。記事のタグライン(.gm-tagline)と別物なのでクラスを分ける */
.gm-sitetag{ font-size:9px; letter-spacing:.3em; color:var(--gm-muted); margin-top:7px; }
.gm-nav{ display:flex; gap:22px; justify-content:center; flex-wrap:wrap; margin-top:16px; padding-bottom:14px; }
.gm-nav a{ font-size:11px; letter-spacing:.08em; color:#4f5456; text-decoration:none; padding-bottom:12px; }
.gm-nav a:hover{ color:var(--gm-tiff); }
.gm-nav a.is-current{ color:var(--gm-tiff); border-bottom:2px solid var(--gm-tiff); }

/* --- ナビのドロップダウン（シーンで探す/相手で探す・JS無し） --- */
.gm-nav details.gm-nav__dd{ position:relative; }
.gm-nav .gm-nav__dd summary{ list-style:none; cursor:pointer; font-size:11px; letter-spacing:.08em; color:#4f5456; padding-bottom:12px; }
.gm-nav .gm-nav__dd summary::-webkit-details-marker{ display:none; }
.gm-nav .gm-nav__dd summary::after{ content:" ▾"; font-size:9px; color:var(--gm-muted); }
.gm-nav .gm-nav__dd summary:hover,
.gm-nav .gm-nav__dd[open] summary{ color:var(--gm-tiff); }
.gm-nav__panel{ position:absolute; left:50%; transform:translateX(-50%); top:100%; z-index:50; background:#fff; border:1px solid var(--gm-line); border-radius:8px; box-shadow:0 10px 26px rgba(0,0,0,.08); padding:14px 18px; display:grid; grid-template-columns:repeat(2,max-content); gap:2px 24px; text-align:left; min-width:260px; }
.gm-nav__panel a{ font-size:11px; color:#4f5456; text-decoration:none; line-height:2.1; padding-bottom:0; white-space:nowrap; }

/* ヘッダーの検索ドロップダウン。既存パネルは「リンクの2列グリッド」だが、検索は
   フォーム＋軸チップで中身の性質が違うので専用の型にする（既存の見た目は壊さない）。 */
.gm-nav__panel--search{ display:block; min-width:min(92vw,420px); max-width:92vw; }
.gm-navsearch{ display:flex; gap:6px; margin-bottom:4px; }
.gm-navsearch input[type=search]{ flex:1; min-width:0; padding:8px 10px; border:1px solid var(--gm-line); border-radius:6px; font-size:14px; }
.gm-navsearch button{ padding:8px 14px; border:0; border-radius:6px; background:var(--gm-tiff); color:#fff; font-size:12px; font-weight:700; cursor:pointer; white-space:nowrap; }
.gm-navsearch__axis{ margin-top:10px; }
.gm-navsearch__lbl{ display:block; font-size:10px; letter-spacing:.08em; color:var(--gm-muted); margin-bottom:5px; }
.gm-navsearch__chips{ display:flex; flex-wrap:wrap; gap:6px; }
.gm-navsearch__chips a{ font-size:11px; line-height:1.5; padding:4px 9px; border:1px solid var(--gm-line); border-radius:999px; white-space:nowrap; }
.gm-navsearch__chips a:hover{ border-color:var(--gm-tiff); color:var(--gm-tiff); }
.gm-nav__panel--search .gm-nav__all{ display:block; margin-top:12px; text-align:right; }
.gm-nav__panel a:hover{ color:var(--gm-tiff); }
.gm-nav__panel .gm-nav__all{ grid-column:1 / -1; color:var(--gm-tiff); margin-top:4px; }

/* --- FEATURE --- */
.gm-feature{ text-align:center; padding:34px 0 8px; }
.gm-feature__img{ display:block; }
.gm-feature__img img{ width:100%; aspect-ratio:16/7; object-fit:cover; border-radius:6px; }
.gm-feature__label{ margin-top:16px; }
.gm-feature__label span{ font-size:10px; letter-spacing:.16em; color:var(--gm-tiff); border-bottom:1px solid var(--gm-tiff); padding-bottom:2px; }
.gm-feature__title{ font-size:27px; line-height:1.55; color:var(--gm-ink); font-weight:700; margin:16px 0 0; }
.gm-feature__title a{ color:inherit; text-decoration:none; }
.gm-feature__more{ margin-top:14px; }
.gm-feature__more a{ font-size:12px; color:var(--gm-tiff); letter-spacing:.06em; text-decoration:none; }

/* --- セクション見出し（下線付き） --- */
.gm-section{ margin-top:8px; }
.gm-section--narrow{ max-width:640px; margin-left:auto; margin-right:auto; }
.gm-sec-head{ text-align:center; margin:40px 0 22px; }
.gm-sec-head .en{ font-size:10px; letter-spacing:.24em; color:var(--gm-tiff); }
.gm-sec-head .jp{ font-size:16px; color:var(--gm-ink); font-weight:700; margin-top:5px; letter-spacing:.06em; }
.gm-sec-head .u{ width:30px; height:2px; background:var(--gm-tiff); margin:10px auto 0; }

/* --- 新着カードグリッド（極薄カード） --- */
.gm-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.gm-card{ display:block; border:1px solid #eee; border-radius:10px; overflow:hidden; box-shadow:0 4px 14px rgba(0,0,0,.04); background:#fff; text-decoration:none; color:inherit; }
.gm-card img{ width:100%; aspect-ratio:3/2; object-fit:cover; display:block; }
.gm-card .cb{ padding:12px 13px 15px; }
.gm-card .lbl{ font-size:9px; color:var(--gm-tiff); letter-spacing:.12em; }
.gm-card .ct{ font-size:13px; color:var(--gm-ink); line-height:1.5; margin-top:4px; font-weight:500; }

/* --- シーンで選ぶ（丸画像） --- */
.gm-scene-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.gm-scene{ display:flex; flex-direction:column; align-items:center; text-align:center; text-decoration:none; color:inherit; }
/* 丸背景の中に線アイコン。黒の細いストロークで上品に見せる（ホバーでティファニー） */
.gm-scene__img{ width:76px; height:76px; border-radius:50%; background:linear-gradient(135deg,#edf3f4,#e8f0f1); display:flex; align-items:center; justify-content:center; transition:background .2s; }
.gm-scene__icon{ width:32px; height:32px; fill:none; stroke:var(--gm-ink); stroke-width:1; stroke-linecap:round; stroke-linejoin:round; transition:stroke .2s; }
.gm-scene:hover .gm-scene__img{ background:var(--gm-tiff-bg); }
.gm-scene:hover .gm-scene__icon{ stroke:var(--gm-tiff); }
.gm-scene__name{ font-size:11px; color:#333; margin-top:10px; font-weight:500; }
.gm-scene__count{ font-size:9px; color:var(--gm-muted); margin-top:2px; }

/* --- 人気ランキング --- */
.gm-rank__item{ display:flex; gap:14px; align-items:center; padding:12px 0; border-bottom:1px solid var(--gm-line); text-decoration:none; color:inherit; }
.gm-rank__no{ font-size:18px; color:var(--gm-tiff-soft); font-weight:700; width:26px; text-align:center; flex:0 0 26px; }
.gm-rank__thumb{ width:64px; height:44px; flex:0 0 64px; border-radius:4px; overflow:hidden; background:linear-gradient(135deg,#edf3f4,#e8f0f1); }
.gm-rank__thumb img{ width:100%; height:100%; object-fit:cover; }
.gm-rank__title{ font-size:12.5px; color:var(--gm-ink); line-height:1.45; }

/* --- 共通フッタ --- */
.gm-footer{ background:#fafafa; border-top:1px solid var(--gm-line); margin-top:46px; padding:30px 0 22px; text-align:center; }
.gm-footer__inner{ max-width:960px; margin:0 auto; padding:0 20px; }
.gm-footer .gm-logo{ font-size:19px; }
.gm-fnav{ display:flex; gap:18px; justify-content:center; flex-wrap:wrap; margin-top:14px; }
.gm-fnav a{ font-size:10px; color:#6b7072; text-decoration:none; }
.gm-fnav a:hover{ color:var(--gm-tiff); }
.gm-copy{ font-size:9px; color:#b5babc; margin-top:16px; }

@media(max-width:600px){
  .gm-header__inner{ padding:18px 16px 0; }
  .gm-logo{ font-size:22px; }
  .gm-nav{ gap:12px 16px; margin-top:14px; padding:0 16px 12px; justify-content:center; flex-wrap:wrap; }
  .gm-nav a{ padding-bottom:0; }
  .gm-nav .gm-nav__dd summary{ padding-bottom:0; }
  .gm-nav__panel{ position:static; transform:none; grid-template-columns:repeat(2,1fr); min-width:0; box-shadow:none; border:1px solid var(--gm-line); }
  .gm-main{ padding:8px 16px 40px; }
  .gm-grid{ grid-template-columns:1fr; gap:16px; }
  .gm-scene-grid{ grid-template-columns:1fr 1fr; gap:14px; }
  .gm-sec-head{ margin:32px 0 18px; }
  .gm-section--narrow{ max-width:100%; }
  .gm-rank__title{ font-size:12px; }
}

/* ============================================================
   記事詳細（single.php・モック忠実）
   ============================================================ */
.gm-article{ max-width:720px; }
.gm-breadcrumb{ font-size:10px; color:var(--gm-muted); padding:16px 0 0; display:flex; gap:6px; flex-wrap:wrap; }
.gm-breadcrumb a{ color:var(--gm-muted); text-decoration:none; }
.gm-breadcrumb a:hover{ color:var(--gm-tiff); }
.gm-art-head{ padding-top:4px; }
.gm-art-cat{ display:inline-block; font-size:10px; color:var(--gm-tiff); letter-spacing:.14em; margin-top:18px; text-decoration:none; }
.gm-art-title{ font-size:26px; line-height:1.55; color:var(--gm-ink); font-weight:700; margin:8px 0 0; letter-spacing:.01em; }
.gm-art-meta{ font-size:11px; color:var(--gm-muted); margin-top:12px; display:flex; gap:14px; flex-wrap:wrap; }
.gm-art-hero{ margin:20px 0 0; }
.gm-art-hero img{ width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:8px; display:block; }

/* 目次 */
/* 目次は枠線・背景なし。枠が無くなった分、左右の内側余白を詰めて本文幅いっぱいに使う。 */
.gm-toc{ border:0; border-radius:0; background:none; padding:0; margin:26px 0 8px; }
.gm-toc__title{ font-size:12px; font-weight:700; color:var(--gm-ink); }
.gm-toc__list{ margin:10px 0 0; padding-left:20px; color:#3f4446; font-size:12.5px; line-height:1.95; }
.gm-toc__list a{ color:#3f4446; text-decoration:none; }
.gm-toc__list a:hover{ color:var(--gm-tiff); text-decoration:underline; }

/* 本文（移行済み markup ＝ 素のh2/h3/p ＋ mc-* 両対応） */
.gm-art-body{ margin-top:8px; }
.gm-art-body p,
.gm-art-body .mc-text{ font-size:15px; line-height:1.95; color:#33383a; margin:0 0 18px; }
.gm-art-body .mc-text p{ margin:0 0 14px; }
.gm-art-body a{ color:var(--gm-tiff); text-decoration:underline; text-underline-offset:2px; }
/* ボタン類は本文リンクの色/下線を継承しない（白文字・下線無し） */
.gm-art-body a.gm-btn,
.gm-art-body .gm-btns a,
.gm-art-body .wp-block-button__link{ color:#fff; text-decoration:none; }
.gm-art-body a.gm-btn:hover,
.gm-art-body .gm-btns a:hover,
.gm-art-body .wp-block-button__link:hover{ color:#fff; text-decoration:none; }
/* 白地・明るい地のボタンは文字を黒に戻す（コントラスト確保） */
.gm-art-body a.gm-btn--outline,
.gm-art-body a.gm-btn--outline:hover,
.gm-art-body a.gm-btn--amazon,
.gm-art-body a.gm-btn--amazon:hover{ color:var(--gm-ink); }
/* 内部リンクカードも本文リンクの色/下線を継承しない（黒線・黒字のカードとして見せる） */
.gm-art-body a.gm-ilink,
.gm-art-body a.gm-ilink:hover{ color:var(--gm-ink); text-decoration:none; }
.gm-art-body strong,.gm-art-body b{ font-weight:700; color:#2b2f30; }
/* 見出しは front では .gm-art-body 直下、エディタでは .gm-heading--editor の中に出るため
   両方に同じ見え方を与える（編集画面と公開ページを一致させる）。 */
.gm-art-body h2,
.gm-heading--editor h2{ font-size:20px; color:var(--gm-ink); font-weight:700; margin:38px 0 16px; padding-bottom:10px; border-bottom:1px solid var(--gm-line); position:relative; }
.gm-art-body h2::after,
.gm-heading--editor h2::after{ content:""; position:absolute; left:0; bottom:-1px; width:56px; height:2px; background:var(--gm-tiff); }
/* 見出しの縦線あしらいは本文h3のみ。商品カードの商品名(.gm-name)には付けない。 */
.gm-art-body h3:not(.gm-name),
.gm-heading--editor h3{ font-size:16px; color:var(--gm-ink); font-weight:700; margin:28px 0 12px; padding-left:12px; border-left:3px solid var(--gm-tiff-soft); }
/* 商品名は商品カードの位置に応じて h3〜h6 になる。本文見出しの装飾は当てない。 */
.gm-art-body h4:not(.gm-name),
.gm-heading--editor h4{ font-size:15px; font-weight:700; color:var(--gm-ink); margin:24px 0 10px; }
.gm-art-body h5:not(.gm-name),
.gm-art-body h6:not(.gm-name){ font-size:14px; font-weight:700; color:var(--gm-ink); margin:20px 0 8px; }

/* オリジナル見出しブロック（エディタ）。タグラインと見出しが対だと分かる余白にする。 */
.gm-heading--editor{ margin:38px 0 16px; }
.gm-heading--editor h2,
.gm-heading--editor h3,
.gm-heading--editor h4{ margin-top:0; }
.gm-heading--editor .gm-tagline{ margin:0 0 2px; }
.gm-art-body img,
.gm-art-body .mc-image img{ max-width:100%; height:auto; border-radius:6px; display:block; }
.gm-art-body figure,
.gm-art-body .mc-image{ margin:22px 0; }
.gm-art-body figcaption{ font-size:12px; color:var(--gm-muted); margin-top:8px; text-align:center; }
.gm-art-body ul,.gm-art-body ol{ margin:0 0 20px; padding-left:22px; }
.gm-art-body li{ font-size:15px; line-height:1.9; color:#33383a; }
.gm-art-body blockquote{ margin:22px 0; padding:12px 18px; border-left:3px solid var(--gm-tiff); background:#fafcfc; color:#5a5f61; font-size:14px; line-height:1.9; }
/* 記事内アフィボタン（btn-link-box → gm-btn 橋渡し） */
.gm-art-body .btn-link-box.gm-btn{ display:block; max-width:420px; margin:22px auto; text-align:center; padding:15px 24px; font-size:15px; }
/* 移行本文の各種ボタン（afi_btns / adbtn / mc-btn）をティファニー塗りに */
.gm-art-body .afi_btns{ margin:18px 0; }
.gm-art-body .adbtn-single{ margin:8px 0; }
.gm-art-body .adbtn-single > a,
.gm-art-body a.press,
.gm-art-body a.mc-btn{ display:block; max-width:420px; margin:0 auto; text-align:center; background:var(--gm-tiff); color:#fff; font-weight:700; font-size:15px; line-height:1.4; padding:14px 22px; border-radius:8px; box-shadow:0 6px 16px rgba(10,186,181,.26); text-decoration:none; }
.gm-art-body .adbtn-single > a:hover,
.gm-art-body a.press:hover,
.gm-art-body a.mc-btn:hover{ opacity:.92; }
.gm-art-body .mc-btn-wrap{ text-align:center; margin:22px 0; }
.gm-art-body a.mc-btn.mc-btn-white{ background:#fff; color:var(--gm-tiff); border:1px solid var(--gm-tiff-soft); box-shadow:none; }
/* 内部リンクボックス（関連記事誘導） */
.gm-art-body .internal_link{ margin:18px 0; }
.gm-art-body .internal_link > a{ display:flex; align-items:center; gap:12px; border:1px solid var(--gm-tiff-soft); border-radius:10px; padding:14px 18px; background:#fbfefe; text-decoration:none; transition:background .15s,border-color .15s; }
.gm-art-body .internal_link > a:hover{ background:var(--gm-tiff-bg); border-color:var(--gm-tiff); }
.gm-art-body .internal_link_box_content_title{ font-size:14px; font-weight:700; color:var(--gm-tiff); line-height:1.55; margin:0; }
.gm-art-body .internal_link > a::after{ content:"›"; margin-left:auto; color:var(--gm-tiff); font-size:22px; }

/* 関連（記事末）— gm-after は共通、記事では中央CTA */
.gm-article .gm-after{ margin-top:44px; }

@media(max-width:600px){
  .gm-art-title{ font-size:21px; }
  .gm-art-body .btn-link-box.gm-btn{ max-width:100%; }
}

/* ===== 一覧・アーカイブ（カテゴリ/タグ/検索/newest） ===== */
.gm-archive{ max-width:960px; }
.gm-arch-head{ text-align:center; margin-bottom:6px; }
.gm-arch-desc{ font-size:13px; color:var(--gm-muted); line-height:1.9; max-width:640px; margin:2px auto 8px; }
.gm-empty{ text-align:center; color:var(--gm-muted); padding:44px 0; }
.gm-listing-title{font-size:22px;font-weight:700;color:var(--gm-ink);text-align:center;margin:14px 0 22px;position:relative;padding-bottom:12px;}
.gm-listing-title::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:30px;height:2px;background:var(--gm-tiff);}
.gm-pager{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:34px 0 10px;}
.gm-pager a,.gm-pager span{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 10px;border:1px solid var(--gm-line);border-radius:8px;font-size:13px;color:var(--gm-ink);text-decoration:none;}
.gm-pager a:hover{border-color:var(--gm-tiff-soft);color:var(--gm-tiff);}
.gm-pager .current{background:var(--gm-tiff);color:#fff;border-color:var(--gm-tiff);}

@media(max-width:600px){
}

/* ===== オリジナルリスト（表を縦積みで見せる） =====
   旧サイトの記事には <table> が233個ある（205記事）。表は横に伸びるためスマホで
   横スクロールが要り読みにくい。1行=1つのまとまりとして積む。

   旧サイトの <th>（ラベル）/<td>（値）の関係をそのまま見せる:
     PC     … ラベル左（地色つき）／ 値右
     モバイル … ラベルの帯の下に値（縦積み）
   どちらも横スクロールは起きない。

   ※ セレクタは必ず .gm-list で包むこと。中の要素は <p>/<dl>/<dd> なので、
     `.gm-art-body p`(0,1,1) のような本文のルールに `.gm-list__title`(0,1,0) では負け、
     本文段落のマージン(0 0 18px)が付いて行が間延びする（実際に踏んだ）。
   ※ 縦線の意匠は使わない。本文のh3が左に3pxの縦線を持ち、リストの各行が見出しに見える。 */
.gm-list{
  margin:32px 0;
  border:1px solid var(--gm-line);
  border-radius:10px;
  overflow:hidden;
  background:var(--gm-paper);
}
.gm-list .gm-list__caption{
  margin:0;
  padding:11px 16px;
  font-size:11.5px;
  color:#4f6d6c;
  letter-spacing:.03em;
  line-height:1.6;
  background:#f3faf9;
  border-bottom:1px solid var(--gm-line);
}
.gm-list .gm-list__item{border-bottom:1px solid var(--gm-line);}
.gm-list .gm-list__item:last-child{border-bottom:0;}

/* ラベル（1列目）。旧サイトの <th> にあたる */
.gm-list .gm-list__title{
  margin:0;
  padding:10px 16px;
  background:#f3faf9;
  font-size:12.5px;
  font-weight:700;
  color:#2f4f4e;
  line-height:1.6;
}
/* 値（2列目以降）。旧サイトの <td> にあたる */
.gm-list .gm-list__fields{margin:0;padding:11px 16px 12px;}
/* 長いURLや英単語で枠を突き破らないようにする */
.gm-list .gm-list__val{margin:0;font-size:13.5px;color:#4c5153;line-height:1.8;overflow-wrap:anywhere;}

/* 3列以上（早見表など）: 「項目名 → 値」を1組ずつ箱にして、幅に応じて折り返す。
   縦一列に積むと8項目の早見表が延々と縦に伸びる（13行で約2,900pxになった）。
   数字が縦に揃うよう tabular-nums（年齢・西暦が並ぶ表が多い）。 */
.gm-list .gm-list__fields--keyed{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(148px,1fr));
  gap:7px 18px;
}
.gm-list .gm-list__pair{display:flex;gap:8px;align-items:baseline;min-width:0;}
.gm-list .gm-list__fields--keyed .gm-list__key{
  margin:0;
  flex:0 0 auto;
  font-size:10.5px;
  color:var(--gm-muted);
  font-weight:500;
  letter-spacing:.02em;
  white-space:nowrap;
}
.gm-list .gm-list__fields--keyed .gm-list__val{
  font-size:13px;
  line-height:1.6;
  font-variant-numeric:tabular-nums;
}

@media (min-width:601px){
  /* 広い画面はラベル左／値右。
     リスト全体を1つのグリッドにして**ラベル列の幅を全行で揃える**
     （行ごとにグリッドを作ると行ごとに違う幅になって列が揃わない）。
     fit-content(13em) は「一番長いラベルに合わせる。ただし13emで頭打ちにして折り返す」。
     固定幅にすると「漢字」(2文字)にも「小学校低学年（6〜8歳頃）」(13文字)にも同じ幅を
     与えることになり、短いラベルの行が間延びする。 */
  .gm-list .gm-list__rows{display:grid;grid-template-columns:fit-content(13em) 1fr;}
  .gm-list .gm-list__item{display:contents;}
  .gm-list .gm-list__title{
    display:flex;
    align-items:center;
    border-right:1px solid var(--gm-line);
    padding:11px 16px;
  }
  /* display:contents で行の箱が消えるので、罫線はセル側に持たせる */
  .gm-list .gm-list__title,
  .gm-list .gm-list__fields{border-bottom:1px solid var(--gm-line);}
  .gm-list .gm-list__item:last-child > *{border-bottom:0;}
}

/* エディタでも公開ページと同じ見え方にする（食い違わないように） */
.gm-list--editor .gm-list__item{position:relative;}
.gm-list--editor .gm-list__ops{
  position:absolute;right:6px;top:6px;
  display:flex;gap:1px;opacity:.3;transition:opacity .15s;
  background:rgba(255,255,255,.9);border-radius:4px;
}
.gm-list--editor .gm-list__item:hover .gm-list__ops{opacity:1;}

/* ===== フッター固定広告（memoco/footer-ad）=====
   画面下に固定するバー。左に2段テキスト（下段を大きく）＋右端にボタン、または画像1枚。
   背景色・文字色・ボタン色は管理画面から入るのでインラインstyleで当たる。
   ※ 管理画面のプレビューは同じHTML・同じCSSを使う（別々に書くと見た目がずれる）。 */
.gm-fixad{position:fixed;left:0;right:0;bottom:0;z-index:90;box-shadow:0 -2px 16px rgba(0,0,0,.16);}
/* 内側は記事本文と同じ幅に収める（バーだけ広いと本文と揃わず、文言とボタンが離れて見える） */
.gm-fixad__link{display:flex;align-items:center;gap:14px;max-width:760px;margin:0 auto;padding:10px 18px;text-decoration:none;box-sizing:border-box;}
.gm-fixad__text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;}
.gm-fixad__top{font-size:11.5px;font-weight:500;line-height:1.4;opacity:.9;}
.gm-fixad__bottom{font-size:17px;font-weight:700;line-height:1.35;letter-spacing:.01em;}
/* 右端ボタンは押しやすいよう幅広に。文言が短くても最低幅を確保する */
.gm-fixad__btn{flex:none;min-width:190px;padding:13px 28px;border-radius:999px;font-size:14px;font-weight:700;
  text-align:center;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.14);}
.gm-fixad__close{position:absolute;top:50%;right:10px;transform:translateY(-50%);width:26px;height:26px;
  display:flex;align-items:center;justify-content:center;border:0;border-radius:50%;cursor:pointer;
  background:rgba(0,0,0,.22);color:#fff;font-size:15px;line-height:1;padding:0;}
.gm-fixad--image .gm-fixad__link{padding:0 44px 0 0;justify-content:center;}
.gm-fixad__img{display:block;max-width:100%;height:auto;}
/* 記事末尾がバーに隠れないように、固定分の高さを空ける */
body.single .gm-site-footer{padding-bottom:84px;}
@media (max-width:600px){
  .gm-fixad__link{gap:10px;padding:8px 38px 8px 12px;}
  .gm-fixad__top{font-size:10.5px;}
  .gm-fixad__bottom{font-size:14px;}
  .gm-fixad__btn{min-width:132px;padding:11px 16px;font-size:12.5px;}
}

/* 管理画面のプレビュー: 固定配置と影を外し、枠の中に収める */
.gm-fixad--preview{position:relative;box-shadow:none;border-radius:8px;overflow:hidden;}
.gm-fixad--preview .gm-fixad__close{cursor:default;}

/* ===== 記事下の関連記事（横スクロール2段）=====
   1段目=タイトルが似ている記事 / 2段目=同じカテゴリの記事。10件ずつ。
   カード幅は固定にして、はみ出した分を横スクロールで見せる（JS不使用）。
   ※ .gm-after .gm-grid（3列グリッド）とは別物。こちらは track を flex で流す。 */
.gm-rel{margin-bottom:34px;}
.gm-rel__track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;
  padding:2px 0 12px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
.gm-rel__card{flex:0 0 220px;width:220px;scroll-snap-align:start;}
/* 3列グリッド前提の高さ指定に負けないよう、横スクロール側で上書きする */
.gm-rel__track .gm-card img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;}
.gm-rel__track .gm-card .ct{
  /* タイトルは3行で打ち切る。カードの高さが揃わないと横スクロールがガタつく */
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
/* 「まだ右にカードがある」ことを示す白のグラデーション。
   中身の最後に置いた span を position:sticky で右端に張り付かせている。
   末尾までスクロールすると自分の定位置（最後のカードの右の空き48px）に着地して自然に消えるので、
   「もう続きが無いのに霞んだまま」にならない（常時のオーバーレイだとそうなる）。JS不使用。
   ※ 高さは .gm-rel__card と揃える（align-self:stretch だとスクロールバー分ずれる）。 */
.gm-rel__fade{flex:0 0 48px;align-self:stretch;position:sticky;right:0;pointer-events:none;
  background:linear-gradient(to right, rgba(255,255,255,0), var(--gm-paper) 72%);}

/* スクロールバーを控えめに（消さない。動くことが分からないと触られない） */
.gm-rel__track::-webkit-scrollbar{height:6px;}
.gm-rel__track::-webkit-scrollbar-thumb{background:#dfe4e5;border-radius:99px;}
.gm-rel__track::-webkit-scrollbar-track{background:transparent;}
@media (max-width:600px){
  /* モバイルは画面端まで流して「まだ続く」ことを見せる */
  .gm-rel__track{margin-inline:-16px;padding-inline:16px;gap:12px;}
  .gm-rel__card{flex-basis:168px;width:168px;}
  /* モバイルはカードが画面端まで流れること自体が「続きがある」合図。フェードは出さない */
  .gm-rel__fade{display:none;}
}

/* ===== 旧サイトから引き継いだ広告枠（inc/memoco-tags.php の memoco_ad_slot）=====
   中身は旧サイトの実クリエイティブをそのまま出している（HTMLに意味がありIDに分解できない）。
   旧HTMLは幅640px固定のiframe等を含むため、**ここで必ず枠に収める**。
   素で置くとモバイルでページ全体が横スクロールする（本文は横スクロールさせない方針）。 */
.gm-adslot{margin:26px 0;max-width:100%;}
.gm-adslot :where(iframe,img,ins,video){max-width:100%;}
/* 幅・高さが属性で固定されたiframe（Vimeo等）を比率を保って収める */
.gm-adslot iframe{width:100%;aspect-ratio:4/3;height:auto;display:block;}
/* AdSense の ins は自前で幅を測るので触らない（aspect-ratio を当てると描画が壊れる） */
.gm-adslot ins.adsbygoogle{display:block;width:100%;aspect-ratio:auto;}
/* TOPのピンク帯: 旧HTMLの padding-top:50px / font-size:36px はモバイルで大きすぎる */
.gm-adslot--top-pc-7{margin:0 0 24px;}
.gm-adslot--top-pc-7 .top{padding:0 16px 16px;}
.gm-adslot--top-pc-7 .top-title{padding-top:28px !important;font-size:clamp(20px,4.4vw,36px) !important;padding-bottom:16px;}
.gm-adslot--top-pc-7 iframe{max-width:640px;margin:0 auto;}

/* ===== 記事のキーワード（タグ）=====
   旧サイトが持っていた「記事→キーワード→記事」の回遊導線。新テーマで丸ごと落ちていた。
   置き場所は記事の末尾（読み終わった読者を次へ送るのが役目。ヘッダに30個並べると主役が埋もれる）。 */
.gm-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:30px 0 0;
  padding-top:20px;border-top:1px solid var(--gm-line);}
.gm-tags__label{font-size:11px;color:var(--gm-muted);letter-spacing:.08em;margin-right:2px;}
.gm-tags__item{display:inline-block;font-size:12px;line-height:1;color:#4a5152;text-decoration:none;
  padding:7px 12px;border:1px solid var(--gm-line);border-radius:999px;background:var(--gm-paper);
  transition:border-color .15s, color .15s;}
.gm-tags__item:hover{border-color:var(--gm-tiff);color:var(--gm-tiff);}
/* 本文のリンク色(.gm-art-body a)に負けないよう詳細度を確保する */
.gm-article .gm-tags a.gm-tags__item{text-decoration:none;}

/* ============================================================
   タグ一覧（tag-index.php /articles/tag）
   ============================================================ */
.gm-tagidx__head{ text-align:center; margin-top:26px; }
.gm-tagidx__lead{ font-size:13px; color:#6b7072; line-height:1.9; margin:10px auto 0; max-width:560px; }
.gm-tagidx__anchors{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:22px 0 4px; }
.gm-tagidx__anchors a{ font-size:11px; color:var(--gm-tiff); border:1px solid var(--gm-tiff); border-radius:999px; padding:5px 13px; text-decoration:none; }
.gm-tagidx__anchors a:hover{ background:var(--gm-tiff); color:#fff; }
.gm-tagidx__sec{ scroll-margin-top:20px; }
.gm-tagidx__chips{ display:flex; flex-wrap:wrap; gap:8px; }
.gm-tagidx__chip{ display:inline-flex; align-items:center; gap:5px; background:#f6f8f8; border-radius:999px; color:#33383a; text-decoration:none; }
.gm-tagidx__chip .n{ font-size:.75em; color:var(--gm-tiff); font-weight:600; }
.gm-tagidx__chip:hover{ background:var(--gm-tiff-bg); color:var(--gm-tiff); }
.gm-tagidx__chip--l{ font-size:13.5px; padding:8px 15px; background:var(--gm-tiff-bg); font-weight:500; }
.gm-tagidx__chip--m{ font-size:12px; padding:6px 13px; }
.gm-tagidx__chip--s{ font-size:10.5px; padding:4px 11px; color:#6b7072; }
/* .jp を div から h2 化（見出しアウトライン付与）したことで出るUA既定marginを消す。
   front-page 等の div 版(.gm-sec-head .jp)には影響させないよう .gm-tagidx でスコープする。 */
.gm-tagidx .gm-sec-head .jp{ margin:0; }

/* ============================================================
   TOP ヒーロービュー＋充実化セクション（2026-07-18 刷新）
   設計: docs/superpowers/specs/2026-07-18-top-hero-redesign-design.md
   ============================================================ */

/* --- ヒーロービュー: ヘッダー＋ヒーロー＝ちょうど1画面 ---
   .gm-hv（flex縦積み）にヘッダーとヒーローを入れ、ヒーローに flex:1 を与える。
   ヘッダーの実高さを数値で持たない＝ナビの折返し・フォント差で高さが変わっても
   常に「残り全部」がヒーローになる。svh はモバイルのアドレスバー対策（vhはフォールバック）。 */
.gm-hv{ display:flex; flex-direction:column; min-height:100vh; min-height:100svh; }
.gm-hero{ position:relative; flex:1; display:flex; align-items:center; justify-content:center; overflow:hidden; min-height:420px; }
/* 背景はCSS backgroundではなく<img>（preload/LCP計測・出し分けが効く）。装飾なのでalt空。 */
.gm-hero__pic{ position:absolute; inset:0; }
.gm-hero__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
/* 墨色テキストのコントラスト確保。画像は中央が明るい構図で生成しているので薄い膜だけ重ねる */
.gm-hero__scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(255,255,255,.46) 0%, rgba(255,255,255,.12) 44%, rgba(255,255,255,.46) 100%); }
.gm-hero__inner{ position:relative; text-align:center; padding:0 22px 34px; max-width:760px; }
.gm-hero__title{ font-size:clamp(27px,4.4vw,42px); font-weight:700; color:var(--gm-ink); line-height:1.62; letter-spacing:.05em; margin:0; }
/* 「｜MEMOCO」はロゴと同じセリフ体＝ワードマークとして見せる */
/* MEMOCO は見出しと同じ書体で組む（2026-07-18 ユーザー指定。ロゴのPlayfairは使わない）。
   区切りの「｜」も外したので、和文の直後に欧文が詰まらないよう左に少しだけ間を取る
   （letter-spacing は字の右側にしか効かないため左は margin で取る）。 */
.gm-hero__brand{ margin-left:.28em; }
.gm-hero__lead{ font-size:clamp(13px,1.6vw,15px); line-height:2.1; color:#454a4c; margin:16px auto 0; max-width:560px; }
.gm-hero__cta{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:26px; }
.gm-hero__btn{ display:inline-block; padding:13px 30px; border-radius:999px; font-size:13.5px; font-weight:700; letter-spacing:.04em; text-decoration:none; }
.gm-hero__btn--fill{ background:var(--gm-tiff); color:#fff; box-shadow:0 8px 22px rgba(10,186,181,.32); }
.gm-hero__btn--fill:hover{ opacity:.92; }
.gm-hero__btn--line{ background:rgba(255,255,255,.72); color:var(--gm-ink); border:1.5px solid var(--gm-ink); }
.gm-hero__btn--line:hover{ background:#fff; }
/* スクロールキュー（JS不使用。細い縦線が伸びて消える） */
.gm-hero__scroll{ position:absolute; left:50%; transform:translateX(-50%); bottom:12px; display:flex; flex-direction:column; align-items:center; gap:7px; text-decoration:none; color:var(--gm-ink); }
.gm-hero__scroll span{ font-size:9px; letter-spacing:.3em; }
.gm-hero__scroll::after{ content:""; width:1px; height:32px; background:var(--gm-ink); transform-origin:top; animation:gm-scrollcue 2.2s ease-in-out infinite; }
@keyframes gm-scrollcue{ 0%{ transform:scaleY(0); opacity:1; } 55%{ transform:scaleY(1); opacity:1; } 100%{ transform:scaleY(1); opacity:0; } }
/* 読み込み時のフェードアップ（1回だけ・控えめ） */
.gm-hero__inner > *{ animation:gm-rise .7s ease-out backwards; }
.gm-hero__title{ animation-delay:.05s; }
.gm-hero__lead{ animation-delay:.18s; }
.gm-hero__cta{ animation-delay:.3s; }
@keyframes gm-rise{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){
  .gm-hero__inner > *, .gm-hero__scroll::after{ animation:none; }
}
@media (max-width:600px){
  .gm-hero__title{ font-size:clamp(23px,6.9vw,29px); }
  .gm-hero__inner{ padding-bottom:64px; }
  .gm-hero__btn{ padding:12px 24px; font-size:12.5px; }
}

/* --- 横スクロール帯（おすすめ特集・人気ギフト共通の入れ物） ---
   意匠は記事下の関連記事(.gm-rel__track)と同じ流儀（固定幅カード＋右端stickyフェード）。 */
.gm-strip{ display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x proximity; padding:2px 0 12px; -webkit-overflow-scrolling:touch; scrollbar-width:thin; }
.gm-strip::-webkit-scrollbar{ height:6px; }
.gm-strip::-webkit-scrollbar-thumb{ background:#dfe4e5; border-radius:99px; }
.gm-strip::-webkit-scrollbar-track{ background:transparent; }
.gm-strip__fade{ flex:0 0 48px; align-self:stretch; position:sticky; right:0; pointer-events:none; background:linear-gradient(to right, rgba(255,255,255,0), var(--gm-paper) 72%); }

/* 特集カード（ピラー） */
.gm-strip__card{ flex:0 0 220px; width:220px; scroll-snap-align:start; display:block; border:1px solid #eee; border-radius:10px; overflow:hidden; box-shadow:0 4px 14px rgba(0,0,0,.04); background:#fff; text-decoration:none; color:inherit; }
.gm-strip__card img{ width:100%; aspect-ratio:3/2; object-fit:cover; display:block; }
.gm-strip__noimg{ display:block; width:100%; aspect-ratio:3/2; background:linear-gradient(135deg,#edf3f4,#e8f0f1); }
.gm-strip__t{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:13px; font-weight:500; color:var(--gm-ink); line-height:1.5; padding:11px 13px 0; }
.gm-strip__n{ display:block; font-size:10px; color:var(--gm-tiff); letter-spacing:.06em; padding:5px 13px 12px; }
.gm-strip__card:hover .gm-strip__t{ color:var(--gm-tiff); }
/* 末尾の「すべての特集を見る」カード */
.gm-strip__more{ display:flex; align-items:center; justify-content:center; background:var(--gm-tiff-bg); border-color:var(--gm-tiff-soft); box-shadow:none; }
.gm-strip__more span{ font-size:12.5px; font-weight:700; color:var(--gm-tiff); padding:16px; }
.gm-strip__more:hover{ background:#def2ef; }

/* 人気ギフトカード（商品）。EC写真は白背景が多いので白枠+contain（.gm-thumbと同じ理由）
   カードは <div>（中に特集リンクと購入ボタンの2種類のリンクが入るため）。
   .gm-pick__link を flex:1 にして、名前の行数が違っても購入ボタンの上端が揃うようにする。 */
.gm-pick{ flex:0 0 180px; width:180px; scroll-snap-align:start; display:flex; flex-direction:column; }
.gm-pick__link{ display:flex; flex-direction:column; flex:1; text-decoration:none; color:inherit; }
.gm-pick__buy{ margin-top:8px; display:flex; flex-direction:column; gap:5px; }
.gm-pick__img{ display:block; width:180px; height:180px; border-radius:10px; border:1px solid var(--gm-line); background:#fff; overflow:hidden; }
.gm-pick__img img{ width:100%; height:100%; object-fit:contain; display:block; }
.gm-pick__votes{ font-size:9.5px; color:var(--gm-tiff); font-weight:700; letter-spacing:.04em; margin-top:9px; }
.gm-pick__brand{ font-size:10px; color:var(--gm-muted); margin-top:4px; }
.gm-pick__name{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:12.5px; color:var(--gm-ink); line-height:1.5; margin-top:2px; }
/* #タグ は「特集ページへの入口」＝カード本体（販売ページ行き）とは別のリンク。
   下線は出さないが hover で色を変えて、押せることが分かるようにする。 */
.gm-pick__tag{ display:block; font-size:10px; color:var(--gm-muted); margin-top:6px; margin-bottom:2px; text-decoration:none; }
.gm-pick__tag:hover{ color:var(--gm-tiff); }
.gm-pick__link:hover .gm-pick__name{ color:var(--gm-tiff); }

/* --- タグから探す（TOP版。チップの意匠は /articles/tag と共通の .gm-tagidx__chip） --- */
.gm-tagsec{ margin-top:18px; }
.gm-tagsec__label{ font-size:12px; font-weight:700; color:#4f5456; letter-spacing:.06em; margin-bottom:10px; }
.gm-tagsec__all{ text-align:center; margin:24px 0 0; }
.gm-tagsec__all a{ font-size:12px; color:var(--gm-tiff); letter-spacing:.06em; text-decoration:none; }
.gm-tagsec__all a:hover{ text-decoration:underline; }

/* --- 記事下の「みんなが選んだ人気ギフト」（帯・カードはTOPの .gm-strip/.gm-pick を再利用） --- */
.gm-artpicks{ margin:34px 0 8px; }
.gm-artpicks__label{ font-size:12px; font-weight:700; color:#4f5456; letter-spacing:.06em; margin:14px 0 10px; }

/* 商品説明。閉じているときは2行に抑え、クリックで全文（JS不使用の <details>）。
   実測で127〜181字あるので、そのまま出すとカードが縦に伸びて帯が破綻する。 */
.gm-pick__more{ margin-top:8px; }
.gm-pick__desc{ list-style:none; cursor:pointer; font-size:11.5px; line-height:1.65; color:var(--gm-muted);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.gm-pick__desc::-webkit-details-marker{ display:none; }
.gm-pick__desc:hover{ color:var(--gm-ink); }
.gm-pick__more[open] .gm-pick__desc{ display:none; }
.gm-pick__descfull{ font-size:11.5px; line-height:1.65; color:var(--gm-ink); }

/* 帯末尾の「＞」＝続きは特集ページにある（ピラーの棚の .mc-next と同じ意匠） */
.gm-pick--next{ align-items:center; justify-content:center; gap:8px; text-decoration:none;
  border:1px solid var(--gm-tiff-soft,#bfe9e6); border-radius:10px; background:var(--gm-tiff-bg,#eefaf9);
  min-height:180px; transition:background .2s ease; }
.gm-pick--next:hover{ background:#def2ef; }
.gm-pick--next__ar{ font-size:30px; line-height:1; color:var(--gm-tiff); }
.gm-pick--next__t{ font-size:12px; font-weight:700; color:var(--gm-tiff); }

@media (max-width:600px){
  /* 帯は画面端まで流して「まだ続く」ことを見せる（.gm-rel__trackと同じ） */
  .gm-strip{ margin-inline:-16px; padding-inline:16px; gap:12px; }
  .gm-strip__card{ flex-basis:180px; width:180px; }
  .gm-pick{ flex-basis:150px; width:150px; }
  .gm-pick__img{ width:150px; height:150px; }
  .gm-strip__fade{ display:none; }
}

/* ============================================================
   記事下部のセクション見出しを、ピラーの「Editors' Picks」と同じ意匠に揃える
   （ユーザー指示 2026-07-20: 左寄せ・内容も大きさも合わせる）。

   同じ記事ページに2つの意匠が同居していた:
     ピラー側 .mc-sec-head = 左寄せ / 英字11px letter-spacing:.26em 700 大文字 /
                             見出し clamp(19px,2.4vw,26px) 800 / 注記12.5px
     テーマ側 .gm-sec-head = 中央寄せ / 英字10px / 見出し15-16px / 下線30px
   後者を前者に合わせる。色は目標側と同じ深いティファニー(#067E7A)を使う
   （--gm-tiff #0ABAB5 は白地の小文字だと薄いため、ピラーも深い方を使っている）。

   ★front-page・タグ一覧など他ページの中央寄せ版は変えないよう .gm-article-page でスコープ。
   ★.gm-after .gm-sec-head（0,2,0）と同じ詳細度なので、必ずそれより後ろに置いて勝たせる。
   ============================================================ */
.gm-article-page .gm-sec-head{ text-align:left; margin:34px 0 20px; }
.gm-article-page .gm-sec-head .en{
  font-size:11px; letter-spacing:.26em; font-weight:700; text-transform:uppercase;
  color:#067E7A; margin:0 0 6px; }
.gm-article-page .gm-sec-head .jp{
  font-size:clamp(19px,2.4vw,26px); font-weight:800; letter-spacing:.02em;
  line-height:1.3; margin-top:0; }
/* 下線は目標の意匠に無い */
.gm-article-page .gm-sec-head .u{ display:none; }

/* =====================================================   TOPの記事帯（新着記事・人気の記事）と「すべて見る」導線。

   ⚠️ このマークアップ（.gm-artstrip / .gm-seeall）は **商品DBセッションが
      2026-07-20 16:43 にデプロイした front-page.php** が参照しているもので、
      CSSだけが未着だったため素のまま描画されていた（＝TOPの崩れの実体）。
      ユーザー判断で本セッションが補った。あちらでも同名を定義した場合は
      重複するので、どちらか一方に寄せて整理すること。

   操作感は front-page.php のコメント指定どおり商品の帯(.mc-shelf__grid)に合わせる
   ＝横スクロール＋スナップ＋右端を霞ませて「まだ続く」を示す。
   カード幅は front-page.php の sizes 指定「(max-width:600px) 74vw, 260px」と一致させる
   （ずれると srcset が実寸と噛み合わず、無駄に大きい画像が落ちてくる）。
   ============================================================ */
.gm-artstrip{
  list-style:none; margin:0; padding:4px 2px 12px;
  /* 幅280px: コンテンツ920pxに対し 3枚＋2割の覗き（280*3+14*2=868 → 残り52px≒19%）。
     260pxだと4枚目が43%も出て「中途半端に切れた」ように見えていた。 */
  display:grid; grid-auto-flow:column; grid-template-rows:auto; grid-auto-columns:280px;
  gap:14px; overflow-x:auto; -webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity; scrollbar-width:thin;
  -webkit-mask-image:linear-gradient(90deg,#000 96%,transparent);
          mask-image:linear-gradient(90deg,#000 96%,transparent);
}
.gm-artstrip > li{ scroll-snap-align:start; min-width:0; }
.gm-artstrip .gm-card{ height:100%; }
/* タイトルは2行で切る。3〜4行とばらつくとカード下部が重く、高さも不揃いに見える。 */
.gm-artstrip .gm-card .ct{
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; line-height:1.55; }
.gm-artstrip::-webkit-scrollbar{ height:6px; }
.gm-artstrip::-webkit-scrollbar-thumb{ background:#dfe4e5; border-radius:99px; }
.gm-artstrip::-webkit-scrollbar-track{ background:transparent; }

.gm-seeall{ margin:14px 0 0; }
.gm-seeall__link{
  display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:700; color:#067E7A; text-decoration:none;
}
.gm-seeall__link::after{ content:"→"; font-size:12px; }
.gm-seeall__link:hover{ opacity:.72; }

/* main側の工夫を取り込み（2026-07-21 マージ時に統合）:
   ①上位3件だけブランド色で強調＝1位が一目で分かる
   ②「一覧へ」をボタン型に＝横スクロールし切らない人にも入口が目立つ
   ※帯の幅・タイトル行数・順位バッジの基本形は、実ブラウザで実測して決めた側を採用。 */
.gm-artstrip > li:nth-child(-n+3) .gm-card__rank{ background:var(--gm-tiff,#0ABAB5); }
.gm-seeall{ text-align:center; }
.gm-seeall__link{
  padding:11px 26px; border-radius:999px;
  border:1px solid var(--gm-line,#e6e8e9); background:#fff; color:var(--gm-ink,#16191a);
  transition:border-color .2s ease, color .2s ease, transform .2s ease; }
.gm-seeall__link:hover{
  border-color:var(--gm-tiff,#0ABAB5); color:var(--gm-tiff,#0ABAB5); transform:translateY(-1px); }
@media (prefers-reduced-motion:reduce){ .gm-seeall__link{ transition:none; } }


@media(max-width:600px){
  /* 商品帯の確定仕様と同じ「1.2枚見え」に揃える（min(78vw,300px)＝390px幅で約1.25枚）。
     260pxだと1.43枚見えて、2枚目が中途半端に出ていた。
     画面端まで帯を伸ばして、切れ目が「まだ続く」ことを示す。 */
  .gm-artstrip{ grid-auto-columns:min(78vw,300px); gap:12px;
                margin-inline:-16px; padding-inline:16px; }
}

/* 人気の記事の順位バッジ。
   ⚠️ .gm-card--rank / .gm-card__rank も front-page.php にマークアップだけあってCSSが無く、
      素の数字が画像の上に落ちて白い帯を作っていた（.gm-artstrip と同じ取りこぼし）。
   画像の左上に小さく重ねる。ブランド色の円＋白文字で「順位」と一目で分かるようにし、
   どんな写真の上でも読めるよう淡い影を敷く。 */
.gm-artstrip .gm-card--rank{ position:relative; }
.gm-artstrip .gm-card__rank{
  position:absolute; top:8px; left:8px; z-index:1;
  display:grid; place-items:center; width:30px; height:30px;
  border-radius:50%; background:var(--gm-tiff); color:#fff;
  font-size:13px; font-weight:800; line-height:1; font-variant-numeric:tabular-nums;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
}

@media(max-width:600px){
  /* ============================================================
     モバイルのヘッダーメニュー（プルダウン）を押しやすく・読みやすく。
     実測: 文字11px / タップ領域23px しかなく、推奨44pxの半分だった。
     パネルはモバイルでは position:static（アコーディオン式）なので、
     開いたときに **行いっぱい** へ広げると一覧性が上がる。
     ============================================================ */
  .gm-nav__dd[open]{ flex:1 0 100%; }
  .gm-nav__panel{ width:100%; padding:6px 12px 10px; gap:0 12px; }
  /* 上下paddingで44px目安のタップ領域を確保しつつ、文字も11→13pxへ */
  .gm-nav__panel a{ font-size:13px; line-height:1.5; padding:12px 6px; white-space:normal; }
  .gm-nav__panel--search .gm-nav__all,
  .gm-nav__all{ padding:14px 6px 4px; font-weight:700; }

  /* 検索パネル。★入力の font-size が16px未満だと iOS はフォーカス時に
     ページを勝手に拡大する（戻せず操作しづらくなる）ので16pxを死守する。 */
  .gm-navsearch input[type=search]{ font-size:16px; padding:11px 12px; }
  .gm-navsearch button{ padding:11px 18px; font-size:13px; }
  .gm-navsearch__lbl{ font-size:11px; margin-bottom:7px; }
  .gm-navsearch__chips{ gap:8px; }
  .gm-navsearch__chips a{ font-size:12.5px; padding:9px 13px; line-height:1; }
}

/* ============================================================
   モバイルのハンバーガーメニュー（ロゴ左・ボタン右）。
   JSは使わない。details ではなくチェックボックス方式にしているのは、
   「デスクトップでは常時展開」をCSSだけで確実に作るため
   （閉じた details の中身はブラウザが描画しないので display で戻せない）。
   ============================================================ */
/* デスクトップでは存在しないものとして扱う（ナビは常時表示） */
.gm-burger__cb, .gm-burger__btn{ display:none; }

@media(max-width:600px){
  /* ロゴ左・バーガー右の一行に組み替える */
  .gm-header__inner{ display:flex; align-items:center; justify-content:space-between;
                     flex-wrap:wrap; text-align:left; padding:12px 16px; column-gap:12px; }
  .gm-logo, .gm-logo-h1{ margin:0; }
  .gm-logo{ font-size:22px; }

  /* ボタン本体（3本線）。チェックボックスは見えないがフォーカス可能なまま残す
     ＝Tabで到達しSpaceで開閉できる（display:none にすると操作できなくなる）。 */
  .gm-burger__cb{ display:block; position:absolute; right:16px; width:44px; height:44px;
                  margin:0; opacity:0; z-index:2; cursor:pointer; }
  .gm-burger__btn{ display:flex; flex-direction:column; justify-content:center; gap:5px;
                   width:44px; height:44px; padding:0 8px; cursor:pointer; }
  .gm-burger__btn span{ display:block; height:2px; background:var(--gm-ink); border-radius:2px;
                        transition:transform .18s, opacity .18s; }
  /* 開いている間は×に変える（状態が一目で分かる） */
  .gm-burger__cb:checked + .gm-burger__btn span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .gm-burger__cb:checked + .gm-burger__btn span:nth-child(2){ opacity:0; }
  .gm-burger__cb:checked + .gm-burger__btn span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .gm-burger__cb:focus-visible + .gm-burger__btn{ outline:2px solid var(--gm-tiff); outline-offset:2px; border-radius:6px; }

  /* 閉じている間はナビごと隠す。開いたら全幅の縦リストで出す。 */
  .gm-nav{ display:none; }
  .gm-burger__cb:checked ~ .gm-nav{
    display:flex; flex-direction:column; align-items:stretch;
    flex-basis:100%; gap:0; margin-top:8px; padding:0 0 10px; }
  /* 検索を最上部へ（DOM順は変えず表示順だけ入れ替える＝使用頻度が高い） */
  .gm-nav__dd--search{ order:-1; }
  /* 行はすべて左寄せ・区切り線つき・44pxのタップ領域 */
  .gm-nav > a,
  .gm-nav .gm-nav__dd > summary{
    text-align:left; font-size:14px; padding:13px 4px; border-top:1px solid var(--gm-line); }
  .gm-nav .gm-nav__dd{ border:0; }
}

