@charset "UTF-8";
/*
  Skin Name: Clean Trust Skin for NODA HAPPY
  Description: 焼肉店・飲食店の店舗運営者向けに「清潔感・信頼感・やさしさ・専門性」を伝える野田ハッピーブログ専用スキン。
  Skin URI: https://nodahappy.jp/blog/
  Author: NODA HAPPY
  Author URI: https://nodahappy.jp/
  Screenshot URI: https://nodahappy.jp/blog/wp-content/themes/cocoon-child-master/skins/nodahappyblog/screenshot.png
  TODO: screenshot.pngを設置（完成後にこのスキンフォルダ直下へアップロード）
  Version: 1.0.0
  Priority: 100
*/

/* =========================================================
   目次 / TABLE OF CONTENTS
   0. カラーパレット / 変数（Cocoon既存変数の上書き）
   1. 全体・タイポグラフィ
   2. ヘッダー・グローバルナビ
   3. モバイルメニュー（ドロワー）
   4. カード共通（.a-wrap = Cocoon全カードの共通クラス）
   5. ボタン
   6. トップページ独自ブロック（ヒーロー／お悩みカード）
   7. CTA（Cocoon標準の cta-box を再配色）
   8. 人気記事ランキング
   9. カテゴリー別おすすめ記事（独自ブロック）
   10. 記事本文（見出し・リンク・引用・表・目次・パンくず）
   11. サイドバー・ウィジェット
   12. フォーム
   13. フッター
   14. 既存の管理画面カラー設定の上書き（!important）
   15. レスポンシブ（〜1023px／〜834px／〜480px）
========================================================= */


/* =========================================================
   0. カラーパレット / 変数
   Cocoon本体が全体で参照している CSS変数をこのスキンの色に
   置き換えることで、親テーマを直接編集せずに配色を一括変更する。
========================================================= */
:root {
  /* --- NODA HAPPY オリジナル変数 --- */
  --nh-bg: #FFFFFF;
  --nh-white: #FFFFFF;
  --nh-cream: #F3EEE7;
  --nh-greige: #D8CFC5;
  --nh-text: #2F2B28;
  --nh-subtext: #6F6861;
  --nh-border: #E7DED5;
  --nh-red: #B24A4A;
  --nh-red-dark: #963E3E;
  --nh-red-light: #F4E4E2;
  --nh-blue: #6A9FB5;
  --nh-green: #8CA17D;
  --nh-orange: #D49A72;
  --nh-yellow: #C9A227;

  /* --- Cocoon本体の変数を上書き（全体の配色・形状に反映される） --- */
  --cocoon-text-color: var(--nh-text);
  --cocoon-pallid-text-color: var(--nh-subtext);
  --cocoon-x-pallid-text-color: var(--nh-subtext);
  --cocoon-white-color: var(--nh-white);

  --cocoon-basic-border-color: var(--nh-border);
  --cocoon-thin-color: var(--nh-border);
  --cocoon-x-thin-color: var(--nh-border);
  --cocoon-xx-thin-color: var(--nh-cream);
  --cocoon-xxx-thin-color: var(--nh-bg);
  --cocoon-middle-thickness-color: var(--nh-red);

  /* メーカーとしてのシンプルさ・信頼感を出すため、丸みは基本つけず直線的にする */
  --cocoon-basic-border-radius: 0px;
  --cocoon-badge-border-radius: 0px;
  --cocoon-middle-border-radius: 0px;

  /* Cocoonの「赤」系トークン（カテゴリラベル・強調に多用）をくすみ赤に */
  --cocoon-red-color: var(--nh-red);
  --cocoon-watery-red-color: var(--nh-red-light);

  /* ボタンショートコードの「色未指定時」のデフォルト色 → くすみ赤に */
  --cocoon-custom-background-color: var(--nh-red);
  --cocoon-custom-text-color: #fff;
  --cocoon-custom-border-color: var(--nh-red);

  --cocoon-current-background-color: var(--nh-red-light);
  --cocoon-select-background-color: var(--nh-red-light);

  --cocoon-default-font:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    "YuGothic",
    sans-serif;
}


/* =========================================================
   1. 全体・タイポグラフィ
========================================================= */
body {
  background: var(--nh-bg);
  color: var(--nh-text);
  font-family: var(--cocoon-default-font);
  font-size: 17px;
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
}

.wrap {
  background: transparent;
}

/* 見出しサイズ（本文外・一般見出し要素の初期値） */
h1 { font-size: clamp(30px, 3vw, 44px); line-height: 1.45; }
h2 { font-size: clamp(24px, 2.4vw, 32px); line-height: 1.55; }
h3 { font-size: clamp(20px, 2vw, 25px); line-height: 1.6; }


/* =========================================================
   2. ヘッダー・グローバルナビ
   実クラス: .header-container-in.hlt-top-menu（top_menuレイアウト）
            .navi / .navi-in / .site-name-text / .logo-image
   ※ functions.php で get_header_layout_type() を 'top_menu' に上書き
========================================================= */
.header-container,
#header-container {
  background: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid var(--nh-border);
  box-shadow: 0 2px 12px rgba(70, 55, 45, 0.04);
}

.header-container-in.hlt-top-menu {
  padding: 4px 0;
}

/*
  functions.phpでget_header_layout_type()を'top_menu'に上書きしているが、
  万一有効になっていない場合でもロゴ左・ナビ右の1行レイアウトになるよう、
  レイアウト種別クラスに依存せずheader-container-in自体をflexで強制する。
*/
.header-container-in {
  position: relative;
  display: flex;
  /* wrapさせるとロゴとナビ全体の合計幅が収まらない時にナビごと2行目に
     落ちてしまうため、ロゴ・ナビは常に同じ行に固定する（nowrap）。
     ナビ自体の項目が多い場合は、ナビの中の.navi-in ul側で折り返す。 */
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 24px;
  padding: 12px 0;
}

.header-container-in .header {
  flex-shrink: 0;
}

/*
  PC幅では、flexのwrap挙動に頼らない、より確実な方法で1行固定にする。
  ロゴ（.header）を絶対位置で左側に浮かせて通常のフローから外し、
  ナビ（.navi）はブロック要素として残りの幅いっぱいに広げる。
  こうすることで「合計幅が収まらない時に片方が2行目に落ちる」という
  flex-wrap起因の問題が構造的に起こらなくなる。
*/
@media screen and (min-width: 835px) {
  .header-container-in,
  .header-container-in.hlt-top-menu {
    display: block !important;
    position: relative !important;
    min-height: 70px !important;
    padding: 0 !important;
  }

  .header-container-in .header,
  .header-container-in .logo-header {
    position: absolute !important;
    left: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: auto !important;
  }

  .header-container-in .navi {
    display: block !important;
    width: 100% !important;
    padding-left: 260px !important;
  }

  .header-container-in .navi-in > ul {
    flex-wrap: nowrap !important;
  }
}

/*
  お問い合わせボタンは .navi-in > ul の中の1項目（li）のままだと、
  項目数が多い時にul自体のflex-wrapで下の行に折り返されてしまう。
  それを避けるため、ボタンだけflexの折り返し計算から外し、
  .header-container-in を基準に右上へ絶対位置で固定表示する。
*/
.navi-in > ul > li.header-contact-button,
.navi-in > ul > li.menu-item-contact {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: auto;
}

/* ボタン分の場所をナビ側であらかじめ空けておき、文字と重ならないようにする */
.navi-in {
  padding-right: 150px;
}

/* スマホ表示ではドロワーメニュー内に通常の項目として表示させる（絶対位置は解除） */
@media screen and (max-width: 834px) {
  .navi-in > ul > li.header-contact-button,
  .navi-in > ul > li.menu-item-contact {
    position: static;
    transform: none;
  }

  .navi-in {
    padding-right: 0;
  }
}

/*
  1行に収めるため「焼肉・焼鳥・中華・その他」カテゴリのナビ項目を非表示にする
  （合意の上での対応）。functions.phpでお問い合わせボタンをナビ末尾に追加して
  いるため、実際の並びは [... , 焼肉・焼鳥・中華・その他, お問い合わせ] の順。
  お問い合わせボタン（最後の項目）は残し、その1つ前を非表示にする。
*/
.navi-in > ul > li:nth-last-child(2) {
  display: none;
}

.header-container-in .navi {
  flex: 1 1 auto;
  min-width: 0;
}

.site-name-text,
.site-name-text-link {
  color: var(--nh-text) !important;
  font-family: var(--cocoon-default-font) !important;
  font-weight: 700 !important;
  font-style: normal !important;
  letter-spacing: 0.03em;
}

/* Cocoon既定（top_menuレイアウト時 22px）より大きく、はっきり見せる */
.header-container-in.hlt-top-menu .site-name-text {
  font-size: 24px !important;
}

/*
  サイトに元々あった別のCSS（.logo-header a span を対象にした、
  56px + 8方向text-shadowによる縁取り文字装飾）を無効化する。
  検証ツールで確認済みの実際のセレクタに合わせて直接上書きする。
  可能であれば、外観 > カスタマイズ > 追加CSS 内の該当箇所も
  合わせて削除すると、根本的にすっきりします（必須ではありません）。
*/
.logo-header a span {
  font-size: 24px !important;
  font-weight: 700 !important;
  text-shadow: none !important;
  letter-spacing: 0.03em !important;
  color: var(--nh-text) !important;
}

/* サイト名の前後に意図しないアイコン等が表示される場合の保険（疑似要素を消す） */
.logo-header::before,
.logo-header::after,
.site-name-text::before,
.site-name-text::after,
.site-name-text-link::before,
.site-name-text-link::after {
  content: none !important;
}

.tagline {
  color: var(--nh-subtext);
  font-size: 12px;
}

/*
  ロゴ（サイトタイトル）リンクにクリック/Tab移動でフォーカスした際、
  ブラウザ既定の黒い矩形フォーカス枠が表示されて見た目が崩れるため、
  くすみ赤の控えめなフォーカス枠に差し替える（フォーカス表示自体は
  アクセシビリティ上残す）。
*/
.site-name-text-link,
.logo-header,
.logo-image,
.logo-text {
  border: none;
}

.site-name-text-link:focus,
.logo-header a:focus {
  outline: 2px solid var(--nh-red);
  outline-offset: 3px;
}

/* グローバルナビ本体 */
.navi {
  background-color: transparent;
}

.navi-in > ul > li > a {
  color: var(--nh-text);
  font-size: 15px;
  font-weight: 600;
}

.navi-in > ul > li > a:hover {
  color: var(--nh-red);
  background-color: var(--nh-red-light);
}

/* 現在ページのメニュー下にくすみ赤の細いライン */
.navi-in > ul > li.current-menu-item > a,
.navi-in > ul > li.current-menu-ancestor > a,
.navi-in > ul > li.current_page_item > a {
  color: var(--nh-red);
  box-shadow: inset 0 -3px 0 var(--nh-red);
}

.navi-in .sub-menu {
  background-color: var(--nh-white);
  border: 1px solid var(--nh-border);
  border-radius: 0;
  box-shadow: 0 8px 20px rgba(70, 55, 45, 0.08);
}

/*
  ヘッダー右端のお問い合わせボタン導線（functions.phpでナビ末尾に自動追加）。
  以前は複数の重複ルールに分かれており、片方が !important 無しの
  background だったために優先度が不安定になっていた。1つに整理統合し、
  通常時・ホバー時・フォーカス時・クリック時のすべてで同じ見た目に固定する。
*/
.navi-in > ul > li.menu-item-contact,
.navi-in > ul > li.header-contact-button {
  width: auto !important;
  height: 100% !important;
  opacity: 1 !important;
}

.navi-in .menu-item-contact > a,
.navi-in .header-contact-button > a,
.navi-in .menu-item-contact > a:focus,
.navi-in .header-contact-button > a:focus,
.navi-in .menu-item-contact > a:active,
.navi-in .header-contact-button > a:active,
.navi-in .menu-item-contact > a:visited,
.navi-in .header-contact-button > a:visited {
  background: #B24A4A !important;
  background-color: #B24A4A !important;
  background-image: none !important;
  color: #ffffff !important;
  opacity: 1 !important;
  filter: none !important;
  border-radius: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  min-height: 60px;
  padding: 8px 24px !important;
  text-align: center;
  transition: background-color 0.2s ease !important;
}

/* ホバー時は濃い赤にする（文字色・不透明度は変えない） */
.navi-in .menu-item-contact > a:hover,
.navi-in .header-contact-button > a:hover {
  background: #963E3E !important;
  background-color: #963E3E !important;
  background-image: none !important;
  color: #ffffff !important;
  opacity: 1 !important;
  filter: none !important;
}

.nh-header-cta-main,
.nh-header-cta-sub {
  display: block;
  color: #ffffff !important;
  opacity: 1 !important;
}

.nh-header-cta-main {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
}

.nh-header-cta-sub {
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.5;
}


/* =========================================================
   3. モバイルメニュー（ドロワー）
   実クラス: .menu-content / .navi-menu-content / .menu-drawer
========================================================= */
.menu-content {
  background: var(--nh-white);
}

.menu-drawer a {
  color: var(--nh-text);
  font-size: 16px;
  padding: 14px 10px;
  min-height: 48px;
}

.menu-drawer a:hover {
  background-color: var(--nh-red-light);
  color: var(--nh-red-dark);
}

.menu-drawer li.current-menu-item > a {
  color: var(--nh-red);
  font-weight: 700;
}

.menu-close-button {
  color: var(--nh-text);
}


/* =========================================================
   4. カード共通
   .a-wrap は Cocoonの「カード」系コンポーネント
   （新着記事／関連記事／人気記事ウィジェット／おすすめ記事／カルーセル）
   すべてに共通するラッパークラス。ここを整えるだけで全カードが揃う。
========================================================= */
.a-wrap {
  background: var(--nh-white);
  border: 1px solid var(--nh-border);
  border-radius: 0;
  box-shadow: 0 8px 24px rgba(70, 55, 45, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  overflow: hidden;
}

.a-wrap:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(70, 55, 45, 0.1);
  background-color: var(--nh-white); /* Cocoon既定のホバー背景変化を打ち消す */
}

/* 記事一覧（カテゴリーアーカイブ等）のカード枠線。
   Cocoon既定では管理画面の「サイトキーカラー」（現状は赤系）が
   そのまま .entry-card-wrap の枠線色になり目立ちすぎるため、
   他カードと揃えたベージュ系の枠線に上書きする。 */
.list.ecb-entry-border .entry-card-wrap {
  border-color: var(--nh-border) !important;
}

.entry-card-title,
.related-entry-card-title,
.card-title {
  color: var(--nh-text);
  font-weight: 700;
  line-height: 1.65;
}

.entry-card-snippet,
.related-entry-card-snippet,
.card-snippet {
  color: var(--nh-subtext);
  line-height: 1.8;
}

/* カテゴリラベル：淡い赤背景＋くすみ赤文字の角丸ピル */
.cat-label {
  position: absolute;
  top: 10px;
  left: 10px;
  background-color: var(--nh-red-light);
  color: var(--nh-red-dark);
  border: none;
  border-radius: 999px;
  padding: 4px 12px;
  font-weight: 700;
  font-size: 12px;
  max-width: 80%;
}

.post-date,
.post-update {
  color: var(--nh-subtext);
  font-size: 13px;
}

/* 記事カードの「続きを読む」矢印 */
.card-arrow .a-wrap::after {
  color: var(--nh-red);
}


/* =========================================================
   5. ボタン
   実クラス: .btn（Cocoon標準ボタンショートコード） / .btn-l / .btn-red 等
========================================================= */
.btn,
.btn-wrap > a,
.wp-block-button__link {
  border-radius: 999px;
  font-weight: 700;
  font-size: 16px;
  padding: 14px 28px;
  border-width: 1px;
}

/* サブボタン（白地・赤枠・赤文字）: 記事内で class="nh-btn-sub" を付けて使用 */
.nh-btn-sub {
  background: #fff !important;
  color: var(--nh-red) !important;
  border: 1px solid var(--nh-red) !important;
}

.nh-btn-sub:hover {
  background: var(--nh-red-light) !important;
}

.go-to-top-button {
  background-color: var(--nh-white);
  color: var(--nh-red);
  border: 1px solid var(--nh-border);
  box-shadow: 0 4px 14px rgba(70, 55, 45, 0.1);
}

/*
  記事下・記事上のシェアボタン内「コピー」ボタン。
  Cocoon標準では背景色に --cocoon-sns-color（既定で --cocoon-text-color を継承）が
  使われるため、このスキンのテキスト色（濃いグレー）がそのまま背景色になり黒っぽく
  見えていた。white bg + くすみ赤文字の見た目に上書きする。
*/
.copy-button {
  background-color: var(--nh-white) !important;
  color: var(--nh-red-dark) !important;
  border: 1px solid var(--nh-border) !important;
}

.copy-button:hover {
  background-color: var(--nh-red-light) !important;
  color: var(--nh-red) !important;
}


/* =========================================================
   6. トップページ独自ブロック（ヒーロー／お悩みカード）
   Gutenbergの「カスタムHTML」ブロックに blocks/hero.html,
   blocks/worry-cards.html を貼り付けて使用する前提のクラス。
========================================================= */

/* ---- ヒーローエリア ---- */
/*
  写真をヒーロー全体の背景（1枚）にし、テキスト側だけ白グラデーションを
  重ねて読みやすくする（箱・枠線なし）。
  「不要な左右の余白を外す」ため、.nh-hero自体は100vw幅でブレイクアウトし、
  画面の端から端まで背景を広げる。
  内側の .nh-hero-in は、ヘッダー・ナビが使っている Cocoon標準の .wrap
  （width:1256px; margin:0 auto;）と完全に同じ値にして、左端がヘッダーの
  ロゴやナビと正確に揃うようにする（独自のpaddingは持たせない）。
*/
.nh-hero {
  position: relative;
  left: 50%;
  right: 50%;
  width: 100vw;
  margin-left: -50vw;
  margin-right: -50vw;
  min-height: 460px;
  display: flex;
  align-items: center;
  background-color: var(--nh-cream);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
  /* ヒーロー直後の商品カルーセルとくっつかないよう下に余白を確保 */
  margin-bottom: 48px;
}

/*
  テキスト側から写真側へ、淡いクリーム色から透明へのグラデーション。
  ページ全体の背景が白（--nh-bg）のため、ここも真っ白にすると
  境目が全くわからず不自然に見える。わずかに色味のあるクリーム
  （--nh-cream）にすることで、白背景とヒーローの境界が自然にわかるようにする。
*/
.nh-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    to right,
    var(--nh-cream) 0%,
    var(--nh-cream) 40%,
    rgba(243, 238, 231, 0.75) 52%,
    rgba(243, 238, 231, 0) 68%
  );
}

.nh-hero-in {
  position: relative;
  z-index: 2;
  width: 1256px;
  max-width: 100%;
  margin: 0 auto;
  padding: 60px 0;
}

.nh-hero-text {
  max-width: 560px;
}

.nh-hero-text h2.nh-hero-title {
  font-size: clamp(28px, 3.2vw, 40px);
  line-height: 1.5;
  color: var(--nh-text);
  margin: 0 0 20px;
  background: none;
  border: none;
  padding: 0;
}

.nh-hero-text p.nh-hero-sub {
  color: var(--nh-subtext);
  font-size: 16px;
  line-height: 1.9;
  margin: 0 0 28px;
}

.nh-hero-actions {
  display: flex;
  gap: 16px;
  flex-wrap: nowrap;
}

.nh-hero-actions .nh-btn-primary,
.nh-hero-actions .nh-btn-secondary {
  white-space: nowrap;
}

.nh-btn-primary,
.nh-btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: 999px;
  padding: 14px 28px;
  font-weight: 700;
  font-size: 16px;
  text-decoration: none;
  min-height: 48px;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.nh-btn-icon {
  display: inline-flex;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.nh-btn-icon svg {
  width: 100%;
  height: 100%;
  stroke: currentColor;
}

.nh-btn-primary {
  background: var(--nh-red);
  color: #fff !important;
  /* ご指定によりメインボタンだけ角を四角にする（サブボタンは丸のまま） */
  border-radius: 0;
}
.nh-btn-primary:hover { background: var(--nh-red-dark); }

.nh-btn-secondary {
  background: #fff;
  color: var(--nh-red) !important;
  border: 1px solid var(--nh-red);
}
.nh-btn-secondary:hover { background: var(--nh-red-light); }

/*
  画像未設置の代わりに使うダミー表示。壊れた画像アイコンが出るのを防ぎ、
  「準備中」であることが分かる見た目にする。実画像を差し替えたら不要になる。
  （CTAエリアの画像枠でまだ使用中）
*/
.nh-image-placeholder {
  min-height: 260px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: linear-gradient(135deg, var(--nh-cream), var(--nh-greige));
  color: var(--nh-subtext);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.8;
  padding: 20px;
}

.nh-image-placeholder small {
  display: block;
  font-weight: 400;
  font-size: 12px;
  margin-top: 4px;
}

.cta-thumb.nh-image-placeholder {
  min-height: 160px;
}

/*
  商品カルーセル（Cocoon本体）は margin-top:10px のみで margin-bottom が
  無いため、直後の「お悩み・目的から探す」見出しとくっついてしまう。
  下に余白を追加する。
*/
#carousel {
  margin-bottom: 48px !important;
}

/* ---- お悩み・目的から探すカード ---- */
.nh-worry-heading {
  text-align: center;
  font-size: clamp(22px, 2.4vw, 28px);
  color: var(--nh-text);
  margin: 0 0 28px;
  background: none;
  border: none;
  padding: 0;
}

.nh-worry-cards {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  margin: 0 0 40px;
}

.nh-worry-card {
  background: var(--nh-white);
  border: 1px solid var(--nh-border);
  border-radius: 0;
  box-shadow: 0 8px 24px rgba(70, 55, 45, 0.06);
  padding: 28px 12px;
  text-align: center;
  text-decoration: none;
  color: var(--nh-text);
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.nh-worry-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(70, 55, 45, 0.1);
  color: var(--nh-text);
}

.nh-worry-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 1.5px solid var(--nh-red);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  color: var(--nh-red);
}

.nh-worry-icon svg {
  width: 28px;
  height: 28px;
  stroke: currentColor;
}

.nh-worry-card-title {
  font-weight: 700;
  font-size: 17px;
  letter-spacing: -0.01em;
  margin-bottom: 6px;
}

.nh-worry-card-cat {
  color: var(--nh-red-dark);
  font-size: 12px;
  font-weight: 700;
  background: var(--nh-red-light);
  border-radius: 999px;
  padding: 2px 10px;
  margin-bottom: 10px;
}

.nh-worry-card-desc {
  color: var(--nh-subtext);
  font-size: 13px;
  line-height: 1.7;
  margin-bottom: 12px;
}

.nh-worry-card-arrow {
  margin-top: auto;
  color: var(--nh-red);
  font-size: 13px;
  font-weight: 700;
}

/* ---- 新着記事（front-page.php専用グリッド） ----
   Cocoon標準の tmp/entry-card.php をそのまま呼び出しつつ、
   このグリッドの中でだけ縦型カード（サムネイル上・テキスト下）に組み替える。 */
.nh-new-articles-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 24px;
  margin: 0 0 40px;
}

.nh-new-articles-grid .entry-card-wrap {
  width: auto;
  padding: 0;
}

.nh-new-articles-grid .entry-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.nh-new-articles-grid .entry-card-thumb {
  float: none;
  width: 100%;
  margin-top: 0;
}

.nh-new-articles-grid .entry-card-thumb-image {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 0;
}

.nh-new-articles-grid .entry-card-content {
  margin: 0;
  padding: 16px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.nh-new-articles-grid .entry-card-meta {
  position: static;
  margin-top: auto;
  padding-top: 8px;
  text-align: left;
}

/* ---- 新着記事の行 ----
   front-page.phpのみで使用。 */
.nh-new-articles-row {
  margin: 0 0 40px;
}

.nh-new-articles-row .nh-new-articles-grid {
  grid-template-columns: repeat(4, 1fr);
  margin: 0;
}

@media screen and (max-width: 900px) {
  .nh-new-articles-row .nh-new-articles-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  }
}

/* ---- 記事一覧ページ（page-articles.php）専用 ----
   フロントページの新着記事（4列）とは列数を独立させ、2列で表示する。 */
.nh-articles-page-row {
  margin: 0 0 40px;
}

.nh-articles-page-row .nh-articles-grid-2col {
  grid-template-columns: repeat(2, 1fr);
  margin: 0;
}

@media screen and (max-width: 600px) {
  .nh-articles-page-row .nh-articles-grid-2col {
    grid-template-columns: 1fr;
  }
}

.nh-new-articles-heading-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}

.nh-new-articles-heading-row .nh-worry-heading {
  text-align: left;
  margin: 0;
}

.nh-view-all {
  color: var(--nh-red-dark);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.nh-view-all:hover {
  color: var(--nh-red);
}

@media screen and (max-width: 600px) {
  .nh-new-articles-row {
    padding: 0 8px;
  }

  .nh-new-articles-grid,
  .nh-new-articles-row .nh-new-articles-grid {
    grid-template-columns: 1fr;
  }

  /* サムネイルとタイトルを横並び・縦中央揃えにして
     見出しの行数に関わらずバランスよく見えるようにする */
  .nh-new-articles-grid .entry-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 14px;
  }

  .nh-new-articles-grid .entry-card-thumb {
    float: none;
    width: 110px;
    flex-shrink: 0;
  }

  .nh-new-articles-grid .entry-card-thumb-image {
    border-radius: 0;
    aspect-ratio: 1 / 1;
  }

  .nh-new-articles-grid .entry-card-content {
    margin: 0;
    padding: 8px 0;
    flex: 1;
    min-width: 0;
  }
}


/* =========================================================
   7. CTA（Cocoon標準 .cta-box を再配色して利用）
   blocks/cta-banner.html, blocks/article-footer-cta.html が対応
========================================================= */
.cta-box {
  background: var(--nh-white);
  color: var(--nh-text);
  border: 1px solid var(--nh-border);
  border-radius: 0;
  padding: 32px;
  /* 前後のセクションとくっつかないよう上下に余白を確保 */
  margin: 40px 0;
  box-shadow: 0 8px 24px rgba(70, 55, 45, 0.06);
}

.cta-box.nh-cta-cream {
  background: var(--nh-cream);
  border-color: var(--nh-greige);
}

.cta-heading {
  color: var(--nh-text);
  font-size: clamp(22px, 2.2vw, 28px);
  line-height: 1.6;
}

.cta-content p {
  color: var(--nh-subtext);
}

.cta-button .btn,
.cta-button a {
  background: var(--nh-red);
  color: #fff !important;
}

.cta-button .btn:hover,
.cta-button a:hover {
  background: var(--nh-red-dark);
}

.nh-cta-tel {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 22px;
  font-weight: 700;
  color: var(--nh-text);
  text-decoration: none;
}

.nh-cta-tel small {
  display: block;
  font-size: 12px;
  font-weight: 400;
  color: var(--nh-subtext);
}


/* =========================================================
   8. 人気記事ランキング
   実クラス: .ranking-item / .widget-entry-cards.ranking-visible
========================================================= */
.ranking-item {
  background: var(--nh-white);
  border: 1px solid var(--nh-border);
  border-radius: 0;
}

/* 新着記事ウィジェットのランキング表示（順位番号バッジ） */
.widget-entry-cards.ranking-visible .card-thumb::before {
  background-color: var(--nh-greige);
  color: var(--nh-text);
  font-weight: 700;
  width: 22px;
  height: 22px;
  line-height: 22px;
  border-radius: 999px;
  top: 6px;
  left: 6px;
}

.widget-entry-cards.ranking-visible .no-1 .card-thumb::before,
.widget-entry-cards.ranking-visible .no-2 .card-thumb::before,
.widget-entry-cards.ranking-visible .no-3 .card-thumb::before {
  background: var(--nh-yellow);
  color: var(--nh-text);
}


/* =========================================================
   9. カテゴリー別おすすめ記事（独自ブロック）
   blocks/category-recommend.html に対応。
   PC: 5カラムのカード / スマホ: <details> によるアコーディオン（JS不要）
========================================================= */
.nh-category-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 0 0 40px;
}

.nh-category-card {
  background: var(--nh-white);
  border: 1px solid var(--nh-border);
  border-radius: 0;
  box-shadow: 0 8px 24px rgba(70, 55, 45, 0.06);
  padding: 20px;
}

.nh-category-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  color: var(--nh-text);
  font-size: 17px;
}

.nh-category-card-head .nh-cat-icon {
  color: var(--nh-red);
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}

.nh-category-card-list {
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
}

.nh-category-card-list li {
  border-top: 1px solid var(--nh-border);
}

.nh-category-card-list li:first-child {
  border-top: none;
}

.nh-category-card-list a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 2px;
  color: var(--nh-text);
  font-size: 16px;
  line-height: 1.5;
  text-decoration: none;
}

.nh-category-card-list a:hover {
  color: var(--nh-red);
}

.nh-category-card-thumb {
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  overflow: hidden;
  background: var(--nh-cream);
}

.nh-category-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.nh-category-card-thumb-empty {
  display: block;
  width: 100%;
  height: 100%;
}

.nh-category-card-title {
  flex: 1;
  min-width: 0;
}

.nh-category-card-empty {
  display: block;
  padding: 10px 2px;
  color: var(--nh-subtext);
  font-size: 16px;
  line-height: 1.7;
}

.nh-category-card-more {
  display: inline-block;
  margin-top: 12px;
  color: var(--nh-red-dark);
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
}

.nh-category-card-more:hover {
  color: var(--nh-red);
}


/* =========================================================
   10. 記事本文
   実クラス: .article（記事本文ラッパー）
========================================================= */
.article,
.entry-content {
  font-size: 18px;
  line-height: 2;
}

.article p,
.entry-content p {
  margin-bottom: 1.8em;
}

.entry-title {
  color: var(--nh-text);
  font-size: clamp(30px, 3vw, 44px);
  line-height: 1.5;
}

/* 見出しH2：枠(box)は使わず、左のくすみ赤ラインだけで区切る */
.article h2 {
  background-color: var(--nh-white);
  border: none;
  border-left: 5px solid var(--nh-red);
  border-radius: 0;
  padding: 12px 18px;
  color: var(--nh-text);
  box-shadow: none;
}

/* 見出しH3：下線は淡いグレージュ、左に小さなアクセント */
.article h3 {
  border-left: 4px solid var(--nh-red-light);
  border-right: none;
  border-top: none;
  border-bottom: 1px solid var(--nh-border);
  background: none;
  padding: 10px 16px;
  color: var(--nh-text);
}

.article h4,
.article h5,
.article h6 {
  border-color: var(--nh-border);
  color: var(--nh-red-dark);
}

/* 本文内リンク */
.article a,
.entry-content a {
  color: var(--nh-red-dark);
  text-decoration-color: rgba(178, 74, 74, 0.35);
  text-underline-offset: 3px;
}

.article a:hover,
.entry-content a:hover {
  color: var(--nh-red);
  text-decoration-color: var(--nh-red);
}

/* 引用 */
blockquote {
  background: var(--nh-cream);
  border-left: 5px solid var(--nh-red);
  border-radius: 0;
  color: var(--nh-text);
}

/* 表：スマホは横スクロール対応（Cocoon標準の table-scroll構造を利用） */
table th,
table td {
  border-color: var(--nh-border);
  padding: 14px;
}

table th {
  background-color: var(--nh-cream);
  color: var(--nh-text);
}

/* 目次
   Cocoon既定では管理画面の「サイトキーカラー」（.article .toc に
   border-color を直接指定）が優先されて赤枠になるため、!importantで上書きする。 */
.toc,
.article .toc {
  background: var(--nh-white);
  border: 1px solid var(--nh-border) !important;
  border-radius: 0;
}

.toc-title {
  background: var(--nh-cream);
  color: var(--nh-text);
}

.toc a:hover {
  color: var(--nh-red);
}

/* パンくず */
.breadcrumb,
.breadcrumb a {
  color: var(--nh-subtext);
}

/* 記事下CTA導線（blocks/article-footer-cta.html） */
.nh-article-footer-cta {
  margin: 48px 0 0;
}


/* =========================================================
   11. サイドバー・ウィジェット
========================================================= */
.sidebar {
  background-color: var(--nh-white);
  border-color: transparent;
}

.sidebar .widget {
  background: var(--nh-white);
  border: 1px solid var(--nh-border);
  border-radius: 0;
  box-shadow: 0 8px 24px rgba(70, 55, 45, 0.06);
  padding: 22px;
  margin-bottom: 24px;
}

.sidebar h2,
.sidebar h3,
.widget-title {
  background: none;
  border-bottom: 1px solid var(--nh-border) !important;
  color: var(--nh-text);
  padding: 0 0 12px;
  font-size: 18px;
  position: relative;
}

.sidebar h2::before,
.sidebar h3::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 16px;
  background: var(--nh-red);
  margin-right: 8px;
  vertical-align: -2px;
  border-radius: 0;
}

.widget_categories ul li,
.widget_archive ul li {
  border-bottom: 1px solid var(--nh-border);
}

.widget_categories ul li a,
.widget_archive ul li a {
  color: var(--nh-text);
  line-height: 1.8;
}

.widget_categories ul li a:hover,
.widget_archive ul li a:hover {
  color: var(--nh-red);
  background: none;
}


/* =========================================================
   12. フォーム
========================================================= */
input,
textarea,
select {
  font-size: 17px;
  border-radius: 0;
  border: 1px solid var(--nh-border);
  padding: 14px 16px;
  background: #fff;
  color: var(--nh-text);
}

input:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: var(--nh-red);
  box-shadow: 0 0 0 3px rgba(178, 74, 74, 0.12);
}

input[type="submit"] {
  background-color: var(--nh-red);
  color: #fff;
  border: none;
  border-radius: 999px;
  font-weight: 700;
}

input[type="submit"]:hover {
  background-color: var(--nh-red-dark);
}


/* =========================================================
   13. フッター
========================================================= */
.footer,
#footer {
  background: var(--nh-cream);
  color: var(--nh-text);
  border-top: 1px solid var(--nh-border);
  margin-top: 40px;
}

.footer a {
  color: var(--nh-text);
}

.footer a:hover {
  color: var(--nh-red);
}

.footer-bottom {
  color: var(--nh-subtext);
  border-top: none;
}

.navi-footer-in a {
  color: var(--nh-subtext);
}

.navi-footer-in li {
  border-color: var(--nh-border) !important;
}

/* フッター内CTAボタン（blocks側で .nh-btn-primary を使用） */

/* フッターのLINE公式アカウント誘導バナー。
   上の余白が狭く紹介文が見づらかったため、上下に余白を確保する。 */
.nh-footer-line-banner {
  margin: 32px 0 24px;
  padding: 20px 16px 0;
  color: var(--nh-text);
  font-size: 15px;
  line-height: 1.9;
}


/* =========================================================
   14. 既存の管理画面カラー設定の上書き（!important）

   このサイトには元々 Cocoon設定（サイトキー色・ヘッダー背景色・
   通知エリア・カテゴリー個別色など）で黒背景＋赤系の配色が
   管理画面の色設定として登録されていた。
   これらは wp-content/uploads/cocoon-resources/css-cache/css-custom.css
   に #header-container 等のID セレクタや .cat-label.cat-label-123 の
   ような詳細度の高いセレクタで直接出力されるため、通常のクラス
   セレクタで上書きしようとしても負けてしまう（詳細度または読み込み
   順のどちらか、あるいは両方で不利になるため）。
   そのため、この一箇所に対象セレクタを集約し !important で
   確実に配色を上書きする。
========================================================= */

/* ヘッダー全体（#header-container はID、旧設定で黒背景+白文字になっていた） */
#header-container,
#header-container .navi,
#navi .navi-in > .menu-header .sub-menu {
  background-color: var(--nh-white) !important;
}

.header,
.header .site-name-text,
#navi .navi-in a:not(#nh-header-contact-link),
#navi .navi-in a:not(#nh-header-contact-link):hover {
  color: var(--nh-text) !important;
}

#navi .navi-in a:not(#nh-header-contact-link):hover {
  color: var(--nh-red) !important;
  background-color: var(--nh-red-light) !important;
}

/*
  お問い合わせボタンは #navi .navi-in a という一般ルール（IDセレクタで
  優先度が高い）の対象から除外した上で、IDセレクタ同士で確実に
  白文字・赤背景になるようここで明示的に指定する。
*/
#navi .navi-in a#nh-header-contact-link,
#navi .navi-in a#nh-header-contact-link:focus,
#navi .navi-in a#nh-header-contact-link:active,
#navi .navi-in a#nh-header-contact-link:visited {
  color: #ffffff !important;
  background-color: #B24A4A !important;
}

#navi .navi-in a#nh-header-contact-link:hover {
  color: #ffffff !important;
  background-color: #963E3E !important;
}

/* サイト全体の背景色・リンク色（body.public-page が優先度で勝つため） */
body,
body.public-page {
  background-color: var(--nh-bg) !important;
}

a {
  color: var(--nh-red-dark);
}

/* 見出し（サイトキー色で背景色・白文字が強制されていた） */
.article h2 {
  background-color: var(--nh-white) !important;
  color: var(--nh-text) !important;
}

.sidebar h2,
.sidebar h3,
.widget-title {
  background-color: transparent !important;
  color: var(--nh-text) !important;
}

/* カテゴリラベル・カテゴリリンク（カテゴリー個別色が .cat-label.cat-label-123 で上書きしてくるため） */
.cat-label,
.cat-link {
  background-color: var(--nh-red-light) !important;
  color: var(--nh-red-dark) !important;
  border-color: transparent !important;
}

/* カルーセル（製品紹介スライダー等）の枠線色 */
.carousel .a-wrap {
  border-color: var(--nh-border) !important;
}

/*
  トップページのみサイドバーを非表示にしてメインカラムを全幅にする。

  body の class（.front-page）に頼ると、キャッシュ等の影響で意図通りに
  反映されない場合があるため、front-page.php自身が出力するヒーローエリア
  （.nh-hero）の有無を :has() で直接検知する、より確実な方法に変更。
  記事一覧・記事詳細・固定ページには .nh-hero が存在しないため影響しない。
*/
#content-in:has(.nh-hero) {
  display: block !important;
}

#content-in:has(.nh-hero) .main {
  width: 100% !important;
  /*
    ヒーロー以外（お悩みカード・新着記事・CTA・カテゴリー別おすすめ）は
    通常のレイアウトのままなので、.mainに幅の制限が無いと画面幅いっぱいに
    広がってしまい、ヒーロー（ヘッダー・ナビと同じ1256px幅）と横幅が
    揃わずバラバラに見えていた。.wrapと同じ1256pxを上限にして中央寄せし、
    全セクションの横幅を統一する。
    ヒーロー自体は .nh-hero 側の100vwブレイクアウトでこの制限の外側に
    出るため、ここで.mainを狭めてもヒーローの全幅表示には影響しない。
  */
  max-width: 1256px !important;
  margin: 0 auto !important;
  /*
    .mainの上下パディングを消し、ヒーローがナビ直後にぴったり付くようにする。
    左右パディング（Cocoon既定で29px）も消す。理由：全体はborder-box
    なので、パディングを残したまま max-width:1256px にすると実際の
    コンテンツ幅は1256px-58pxになってしまい、商品カルーセル内部が
    使っている固定幅の .wrap（width:1256px）とサイズが合わず、
    カルーセルだけ左右にはみ出して（ずれて）見える原因になっていた。
  */
  padding: 0 !important;
}

/* カルーセル内部の.wrapが.mainの外にはみ出さないようにする保険 */
#content-in:has(.nh-hero) .main #carousel-in.wrap {
  width: 100% !important;
  max-width: 1256px !important;
}

#content-in:has(.nh-hero) {
  padding-top: 0 !important;
}

/* Cocoon既定の .content{margin-top:24px} がナビとヒーローの間の隙間の原因だったため除去 */
.content:has(.nh-hero) {
  margin-top: 0 !important;
}

#content-in:has(.nh-hero) .sidebar {
  display: none !important;
}

/* 上記が使えない古いブラウザ向けの保険（body_class依存の従来方式も残す） */
.front-page .sidebar {
  display: none !important;
}

.front-page .content-in {
  display: block !important;
}

.front-page .content .main {
  margin: 0 !important;
  width: 100% !important;
}

/* 引用 */
blockquote {
  background-color: var(--nh-cream) !important;
  border-color: var(--nh-red) !important;
}

/* 表の見出し行・ページネーション現在地 */
table th,
.pagination .current {
  background-color: var(--nh-cream) !important;
  border-color: var(--nh-border) !important;
}

/* ページ番号ボタン・「次のページ」ボタンの枠線を他カードと揃える
   （Cocoon既定では管理画面の「サイトキーカラー」がそのまま反映され赤系になるため） */
.page-numbers,
.page-numbers.dots,
.pagination-next-link {
  border-color: var(--nh-border) !important;
}

/* 「…」と「次のページ」はピンク系の背景も枠線に合わせてクリーム系に */
.page-numbers.dots,
.pagination-next-link {
  background-color: var(--nh-cream) !important;
}

/* メインカラム・サイドバーの枠線色 */
.main,
.sidebar {
  border-color: transparent !important;
}

/* 通知エリア（トップの赤い帯。#notice-area もID） */
#notice-area {
  background-color: var(--nh-cream) !important;
  color: var(--nh-text) !important;
}

#notice-area a {
  color: var(--nh-red-dark) !important;
}

/* アピールエリア（使用している場合の保険） */
.appeal,
.appeal-in {
  background-color: var(--nh-cream) !important;
}

.appeal-content .appeal-button {
  background-color: var(--nh-red) !important;
  color: #fff !important;
}

/* フッター（#footer もID） */
#footer,
.footer {
  background-color: var(--nh-cream) !important;
}

#footer,
#footer a:not(.sns-button),
.footer-title {
  color: var(--nh-text) !important;
}

#footer a:not(.sns-button):hover {
  color: var(--nh-red) !important;
  background-color: transparent !important;
}


/* =========================================================
   15. レスポンシブ
========================================================= */
@media screen and (max-width: 1023px) {
  .nh-worry-cards,
  .nh-category-cards {
    grid-template-columns: repeat(3, 1fr);
  }

  .nh-hero-text {
    max-width: 100%;
  }

  /* タブレット幅ではクリーム部分の比率を少し広げて読みやすさを優先する */
  .nh-hero::before {
    background: linear-gradient(
      to right,
      var(--nh-cream) 0%,
      var(--nh-cream) 55%,
      rgba(243, 238, 231, 0.75) 68%,
      rgba(243, 238, 231, 0) 85%
    );
  }
}

@media screen and (max-width: 834px) {
  .nh-worry-cards,
  .nh-category-cards {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* お悩みカードは5枚目だけ横幅いっぱいに（480px以下は専用レイアウトに
   切り替わるため、このタブレット幅専用の特殊配置には含めない） */
@media screen and (max-width: 834px) and (min-width: 481px) {
  .nh-worry-cards .nh-worry-card:last-child {
    grid-column: 1 / -1;
    flex-direction: row;
    text-align: left;
    gap: 16px;
  }

  .nh-worry-cards .nh-worry-card:last-child .nh-worry-icon {
    margin-bottom: 0;
    flex-shrink: 0;
  }

  .nh-worry-cards .nh-worry-card:last-child .nh-worry-card-arrow {
    margin-top: 0;
    margin-left: auto;
    align-self: center;
  }
}

@media screen and (max-width: 768px) {
  body {
    font-size: 16.5px;
    line-height: 1.9;
  }

  .article,
  .entry-content {
    font-size: 17px;
    line-height: 2;
  }

  h1, .entry-title { font-size: 28px; line-height: 1.55; }
  h2, .article h2 { font-size: 23px; line-height: 1.6; padding: 16px 18px; }
  h3, .article h3 { font-size: 20px; line-height: 1.65; }

  .a-wrap,
  .nh-worry-card,
  .nh-category-card {
    border-radius: 0;
  }

  .nh-hero {
    min-height: 0;
  }

  .nh-hero-in {
    padding: 32px 20px;
  }

  /* スマホでは画像が背景に溶け込みすぎず文字がはっきり読めるよう、
     ほぼ全面をクリーム色にし、右端にだけ写真が少し覗く程度にする */
  .nh-hero::before {
    background: linear-gradient(
      to right,
      var(--nh-cream) 0%,
      var(--nh-cream) 78%,
      rgba(243, 238, 231, 0) 100%
    );
  }

  .nh-hero-actions {
    flex-direction: column;
  }

  .nh-hero-actions .nh-btn-primary,
  .nh-hero-actions .nh-btn-secondary,
  .btn,
  .btn-wrap > a,
  .wp-block-button__link,
  input[type="submit"] {
    width: 100%;
    min-height: 48px;
    text-align: center;
    justify-content: center;
  }

  input,
  textarea,
  select {
    width: 100%;
    font-size: 16.5px;
  }

  .sidebar .widget {
    padding: 18px;
  }
}

/* =========================================================
   480px以下
========================================================= */
@media screen and (max-width: 480px) {
  .nh-category-cards {
    grid-template-columns: 1fr;
  }

  /* スマホ幅ではお悩みカードを1列にし、カードの中を2列にする。
     左列にシンボルアイコン、右列にテキストと「もっと見る」を配置する。 */
  .nh-worry-cards {
    grid-template-columns: 1fr;
    padding: 0 8px;
  }

  .nh-worry-card {
    display: grid;
    grid-template-columns: 56px 1fr;
    column-gap: 16px;
    align-items: start;
    text-align: left;
    padding: 20px;
  }

  .nh-worry-icon {
    grid-column: 1;
    grid-row: 1 / 3;
    margin-bottom: 0;
  }

  .nh-worry-card-body {
    grid-column: 2;
    grid-row: 1;
  }

  .nh-worry-card-arrow {
    grid-column: 2;
    grid-row: 2;
    margin-top: 8px;
  }
}
