@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@700&display=swap");

/* ============================================================
   暮らしの森工務店 — 追加CSS
   すべて .hidamari 配下にスコープ。SWELLのヘッダー/フッターには干渉しない。
   デザイン基準は design.md（色・タイポ・8px余白・1120px・角丸8/12px）。
   ============================================================ */

/* ============================================================
   ヘッダー・フッター（SWELL共通部分）
   ※ ここだけ .hidamari の外。共通部分はページ本文の外にあるため。
   静的サイトの見た目に合わせるための最小限の指定にとどめる。
   ============================================================ */
:root {
  --hdm-g-primary: #8B6F47;
  --hdm-g-accent:  #E8A87C;
  --hdm-g-accent-dk:#D8905E;
  --hdm-g-base:    #FAF7F2;
  --hdm-g-text:    #3A3226;
  --hdm-g-line:    #E5DDD0;
  --hdm-g-font: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}

/* ---- ヘッダー ---- */
.l-header__bar { display: none; }          /* キャッチフレーズ＋アイコン列は使わない */
.l-header { box-shadow: none; border-bottom: 1px solid var(--hdm-g-line); }
.l-header__inner { min-height: 88px; }     /* ロゴ指示書：ヘッダー高さ88〜96px */
.c-headLogo__img { width: 280px; height: auto; max-width: 100%; }
.l-fixHeader .c-headLogo__img { width: 210px; }

.c-gnav > li > a { font-family: var(--hdm-g-font); font-size: 15px; font-weight: 500; }
.c-gnav > li > a::after { background: var(--hdm-g-primary); }

/* CTAのメニュー項目だけボタンにする。
   SWELLは .c-gnav > li > a に height:100% を当てるため、明示的に高さを戻す。 */
.c-gnav > li.gnav-cta { display: flex; align-items: center; margin-left: 12px; }
.c-gnav > li.gnav-cta > a {
  height: auto !important;
  min-height: 0;
  align-self: center;
  background: var(--hdm-g-accent);
  color: var(--hdm-g-text) !important;
  border-radius: 8px;
  padding: 11px 22px !important;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.4;
  white-space: nowrap;
  transition: background-color .2s ease;
}
.c-gnav > li.gnav-cta > a:hover { background: var(--hdm-g-accent-dk); }
.c-gnav > li.gnav-cta > a::after { content: none; }

/* ---- トップページ：ヒーロー写真に重ねる透過ヘッダー ---- */
.home #header {
  position: absolute; left: 0; right: 0; z-index: 20;
  background: transparent;
  border-bottom-color: transparent;
}
.home #header .c-headLogo__img { content: url("assets/logo/logo-horizontal-white.svg"); }
.home #header .c-gnav > li:not(.gnav-cta) > a { color: #fff; }
.home #header .c-gnav > li:not(.gnav-cta) > a:hover { color: var(--hdm-g-accent); }
.home #header .l-header__menuBtn,
.home #header .c-iconBtn { color: #fff; }
/* スクロール後に出るSWELLの追従ヘッダーは通常配色のまま（＝静的サイトと同じ挙動） */

/* ---- 本文まわりの余白（.hidamari を使うページのみ） ----
   本文側に独自のページヘッダー（.hdm-pagehead）があるため、
   SWELLのページタイトルと上下の余白を打ち消して、ヘッダーに密着させる。 */
.hdm-page .c-pageTitle { display: none; }
.hdm-page #content { padding-top: 0; }
.hdm-page .post_content { margin-top: 0; }

/* SWELLは .post_content 直下の各ブロックに margin-bottom:2em を付ける。
   全幅セクションはそれぞれ自前の上下パディングを持っているため、
   そのままだとセクションの継ぎ目に32pxの隙間ができて背景が覗く。 */
.hdm-page .post_content > .hidamari { margin-top: 0; margin-bottom: 0; }

/* パンくずも配色に合わせる */
.hdm-page #breadcrumb.p-breadcrumb {
  background: var(--hdm-g-base);
  border-bottom: 1px solid var(--hdm-g-line);
}
.hdm-page .p-breadcrumb__text,
.hdm-page .p-breadcrumb a { color: #7A7060; font-size: 12px; }
.hdm-page .p-breadcrumb a:hover { color: var(--hdm-g-primary); }
/* トップページはヒーローを最上部に出すのでパンくずは出さない */
.home #breadcrumb { display: none; }

/* ---- フッター ---- */
.l-footer { background: #3A3226; color: rgba(255,255,255,.8); font-family: var(--hdm-g-font); }
.l-footer a { color: rgba(255,255,255,.8); }
.l-footer a:hover { color: #fff; }
.l-footer .c-widget__title { color: #fff; }
.l-footer__widgets, .l-footer__inner { border: 0; }

.hdm-fname { color: #fff; font-size: 18px; font-weight: 700; margin: 0; }
.hdm-faddr { font-size: 14px; line-height: 1.9; margin: 16px 0 0; }
.hdm-fttl {
  color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .1em;
  margin: 0 0 16px;
}
.hdm-flist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.hdm-flist a { text-decoration: none; }

.l-footer__foot { border-top: 1px solid rgba(255,255,255,.18); margin-top: 32px; padding-top: 24px; }
.l-footer__foot > .l-container { display: flex; flex-direction: column; align-items: stretch; gap: 20px; }
.l-footer .copyright { font-size: 12px; color: rgba(255,255,255,.6); margin: 0; text-align: center; }
.l-footer__nav { order: -2; }

/* 架空案件のデモである旨の明記（コピーライトより上に出す） */
.hdm-demo-notice {
  order: -1;
  border: 1px solid rgba(232,168,124,.55);
  border-left: 4px solid var(--hdm-g-accent);
  border-radius: 8px;
  background: rgba(255,255,255,.05);
  padding: 20px 24px;
  text-align: left;
}
.hdm-demo-notice__ttl {
  margin: 0 0 8px;
  color: var(--hdm-g-accent);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
}
.hdm-demo-notice__txt {
  margin: 0;
  color: rgba(255,255,255,.82);
  font-size: 13px;
  line-height: 1.9;
}
.hdm-demo-notice__txt strong { color: #fff; font-weight: 700; }

@media (max-width: 600px) {
  .hdm-demo-notice { padding: 16px; }
  .hdm-demo-notice__txt { font-size: 12px; }
  .hdm-demo-notice__txt br { display: none; }
}

@media (max-width: 959px) {
  .c-headLogo__img { width: 200px; }
  /* ロゴ・ハンバーガーが画面端に貼り付かないよう、本文と同じ左右余白を入れる */
  .l-header__inner { min-height: 72px; padding-inline: 20px; }
  /* タップ領域を44px確保する */
  .l-header__menuBtn .c-iconBtn,
  .l-header__customBtn .c-iconBtn {
    min-width: 44px; min-height: 44px;
    display: flex; align-items: center; justify-content: center;
  }
  /* タップ領域は44pxのまま、アイコンの見た目の右端を左右余白（20px）にそろえる */
  .l-header__menuBtn { margin-right: -4px; }
}

/* ============================================================
   ここから下はページ本文（.hidamari 配下）
   ============================================================ */

.hidamari {
  /* color */
  --hdm-primary:   #8B6F47;
  --hdm-accent:    #E8A87C;
  --hdm-accent-dk: #D8905E;
  --hdm-base:      #FAF7F2;
  --hdm-white:     #FFFFFF;
  --hdm-text:      #3A3226;
  --hdm-sub:       #7A7060;
  --hdm-line:      #E5DDD0;
  --hdm-tint:      #F3EDE3;
  --hdm-dash:      #D8C7AC;

  /* spacing */
  --hdm-s1: 8px;  --hdm-s2: 16px; --hdm-s3: 24px; --hdm-s4: 32px;
  --hdm-s5: 48px; --hdm-s6: 64px; --hdm-s7: 96px;

  --hdm-wrap: 1120px;
  --hdm-gut: 24px;

  --hdm-r-btn: 8px;
  --hdm-r-card: 12px;
  --hdm-r-img: 8px;
  --hdm-shadow: 0 2px 12px rgba(0,0,0,.06);
  --hdm-shadow-hover: 0 6px 20px rgba(0,0,0,.10);

  --hdm-font: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  --hdm-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;

  font-family: var(--hdm-font);
  font-size: 16px;
  line-height: 1.8;
  color: var(--hdm-text);
}

/* ---------- 全幅セクション ----------
   はみ出しはSWELL側の .alignfull（position:relative; left:calc(50% - 50vw); width:100vw）
   に任せる。ここで margin を足すと二重にずれるので指定しない。 */
.hidamari.alignfull { max-width: 100vw; }

/* ---------- 共通 ---------- */
.hidamari p { margin: 0; }
.hidamari h1, .hidamari h2, .hidamari h3, .hidamari h4 {
  margin: 0;
  font-weight: 700;
  line-height: 1.4;
  color: var(--hdm-text);
  text-wrap: balance;
  word-break: auto-phrase;
  line-break: strict;
}
/* ---------- SWELL の投稿本文スタイルの打ち消し ----------
   SWELLは .post_content h2 に見出しデザイン（背景色・上下線）を当てる。
   :where() は詳細度0なので .hidamari + クラス（0,2,0）で確実に上書きできる。 */
.hidamari .wp-block-heading {
  background: none;
  color: var(--hdm-text);
  padding: 0;
  border: 0;
}
.hidamari .wp-block-heading::before { content: none; }

/* 引用ブロック（SWELLは左に二重線を出す） */
.hidamari .hdm-voice::before {
  position: static;
  border: 0;
  top: auto; left: auto;
}

/* 本文リストのマーカー・余白 */
.hidamari .wp-block-list { padding-left: 0; }
.hidamari .wp-block-list li::before { content: none; }

.hidamari a { color: var(--hdm-primary); }
.hidamari img { max-width: 100%; height: auto; display: block; }
.hidamari ul, .hidamari ol { margin: 0; padding: 0; list-style: none; }
.hidamari .hdm-nw { display: inline-block; }
.hidamari :focus-visible { outline: 3px solid var(--hdm-primary); outline-offset: 2px; }
/* 固定ヘッダー分、アンカー着地位置をずらす */
.hidamari [id] { scroll-margin-top: 100px; }

/* セクションの上下余白はこのクラスだけが持つ */
.hidamari.hdm-section { padding-block: var(--hdm-s7); background: var(--hdm-base); }
.hidamari.hdm-section-tint { background: var(--hdm-tint); }
.hidamari.hdm-section-plain { background: var(--hdm-base); }

.hidamari .hdm-wrap {
  width: 100%;
  max-width: var(--hdm-wrap);
  margin-inline: auto;
  padding-inline: var(--hdm-gut);
}

/* ---------- 見出し ---------- */
.hidamari .hdm-eyebrow {
  font-size: 12px; font-weight: 500; letter-spacing: .18em;
  color: var(--hdm-primary); text-transform: uppercase;
  margin-bottom: var(--hdm-s2) !important;
}
.hidamari .hdm-sec-ttl {
  font-size: 32px;
  position: relative;
  padding-bottom: 34px;
  margin-bottom: var(--hdm-s2) !important;
}
/* 見出し装飾：section-sprout.svg（全セクション共通部品） */
.hidamari .hdm-sec-ttl::after,
.hidamari .hdm-alt-ttl::after {
  content: ""; position: absolute; left: 0; bottom: 0;
  width: 140px; height: 31px;
  background: url("assets/decor/section-sprout.svg") no-repeat center bottom / contain;
}
.hidamari .hdm-lead { color: var(--hdm-sub); max-width: 62ch; margin-bottom: 48px !important; }
.hidamari .hdm-head-center { text-align: center; margin-bottom: 48px; }

/* 見出しブロックのすぐ下に画像やカードが来ても密着させない */
.hidamari .hdm-lead + *,
.hidamari .hdm-sec-ttl + .wp-block-columns,
.hidamari .hdm-sec-ttl + .wp-block-image { margin-top: 48px; }

.hidamari .hdm-head-center .hdm-sec-ttl::after { left: 50%; transform: translateX(-50%); }
.hidamari .hdm-head-center .hdm-lead { margin-inline: auto; }

/* ---------- ボタン ---------- */
.hidamari .wp-block-buttons { gap: var(--hdm-s2); }
.hidamari .wp-block-button__link {
  padding: 14px 28px;
  border-radius: var(--hdm-r-btn);
  font-family: var(--hdm-font);
  font-weight: 700; font-size: 16px; line-height: 1.5;
  border: 2px solid transparent;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.hidamari .hdm-btn-primary .wp-block-button__link { background: var(--hdm-accent); color: var(--hdm-text); }
.hidamari .hdm-btn-primary .wp-block-button__link:hover { background: var(--hdm-accent-dk); color: var(--hdm-text); }

.hidamari .hdm-btn-outline .wp-block-button__link {
  background: transparent; color: var(--hdm-primary); border-color: var(--hdm-line);
  display: inline-flex; align-items: center; gap: var(--hdm-s1);
}
.hidamari .hdm-btn-outline .wp-block-button__link:hover { background: var(--hdm-white); border-color: var(--hdm-primary); }
.hidamari .hdm-btn-outline .wp-block-button__link::after {
  content: ""; flex: none; width: 17px; height: 17px;
  background: url("assets/decor/arrow-right.svg") no-repeat center / contain;
  transition: transform .2s ease;
}
.hidamari .hdm-btn-outline .wp-block-button__link:hover::after { transform: translateX(4px); }

.hidamari .hdm-btn-ghost .wp-block-button__link { background: var(--hdm-white); color: var(--hdm-text); }
.hidamari .hdm-btn-ghost .wp-block-button__link:hover { background: var(--hdm-base); }
.hidamari .hdm-btn-ondark .wp-block-button__link { background: transparent; color: #fff; border-color: rgba(255,255,255,.72); }
.hidamari .hdm-btn-ondark .wp-block-button__link:hover { background: rgba(255,255,255,.16); border-color: #fff; }

/* ---------- ヒーロー ---------- */
.hidamari.hdm-hero {
  position: relative;
  display: grid; place-items: center;
  height: 78vh; min-height: 620px; max-height: 820px;
  overflow: hidden;
  background: var(--hdm-text);
  padding: 0;
}
/* 3枚のクロスフェード。画像ブロックを重ねて opacity を切り替える */
.hidamari.hdm-hero .hdm-hero__slides { position: absolute; inset: 0; }
.hidamari .hdm-hero__slide {
  position: absolute; inset: 0; margin: 0;
  opacity: 0;
  transition: opacity 1.6s ease;
}
.hidamari .hdm-hero__slide img { width: 100%; height: 100%; object-fit: cover; }
/* JSが動かない場合は1枚目だけを表示 */
.hidamari .hdm-hero__slide:first-child { opacity: 1; }
/* JSが動いたら is-active のみ表示（同じ詳細度なので、後に書いたこちらが優先） */
.hidamari .is-running .hdm-hero__slide { opacity: 0; }
.hidamari .is-running .hdm-hero__slide.is-active { opacity: 1; }

/* 背景として使う画像は装飾なので、SWELLのライトボックスを開かせない */
.hidamari .hdm-hero__slide img,
.hidamari .hdm-cta__bg img { pointer-events: none; }
.hidamari.hdm-hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(37,31,22,.50) 0%, rgba(37,31,22,.30) 45%, rgba(37,31,22,.58) 100%);
}
.hidamari .hdm-hero__inner {
  position: relative; z-index: 2;
  width: 100%; max-width: var(--hdm-wrap);
  margin-inline: auto; padding-inline: var(--hdm-gut);
  text-align: center;
}
.hidamari .hdm-hero__ttl {
  font-family: var(--hdm-serif);
  font-size: clamp(28px, 4.4vw, 58px);
  line-height: 1.6; letter-spacing: .08em;
  color: #fff;
  margin-bottom: var(--hdm-s4) !important;
}
.hidamari .hdm-hero__lead {
  color: rgba(255,255,255,.92);
  max-width: 46ch; margin-inline: auto;
  margin-bottom: var(--hdm-s4) !important;
}
.hidamari .hdm-hero__cta { justify-content: center; }

/* ---------- 信頼バー ---------- */
.hidamari.hdm-trustbar {
  background: var(--hdm-white);
  border-bottom: 1px solid var(--hdm-line);
  padding-block: var(--hdm-s3);
}
.hidamari .hdm-trustbar__list {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: var(--hdm-s2) var(--hdm-s5);
}
.hidamari .hdm-trustbar__list li {
  display: flex; align-items: center; gap: var(--hdm-s1);
  font-size: 14px; font-weight: 700; color: var(--hdm-primary);
}
.hidamari .hdm-trustbar__list li::before {
  content: ""; flex: none; width: 8px; height: 8px; border-radius: 2px; background: var(--hdm-accent);
}

/* ---------- 下層ページヘッダー ---------- */
.hidamari.hdm-pagehead {
  background: var(--hdm-tint);
  border-bottom: 1px solid var(--hdm-line);
  padding-block: var(--hdm-s6);
}
.hidamari .hdm-pagehead__ttl { font-size: 36px; margin-bottom: var(--hdm-s2) !important; }
.hidamari .hdm-pagehead__lead { color: var(--hdm-sub); max-width: 62ch; }

/* ---------- カード（columns / column） ---------- */
.hidamari .hdm-cards { gap: 32px; }

/* 横並びブロックの直後に続く要素との間隔（カード2段組み・カード下のボタンなど） */
.hidamari .wp-block-columns + * { margin-top: 48px; }
.hidamari .wp-block-columns + .wp-block-columns { margin-top: 32px; }
.hidamari .hdm-table + *,
.hidamari .wp-block-table + * { margin-top: 32px; }
.hidamari .hdm-card {
  background: var(--hdm-white);
  border-radius: var(--hdm-r-card);
  box-shadow: var(--hdm-shadow);
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: box-shadow .25s ease, transform .25s ease;
}
.hidamari .hdm-card:hover { box-shadow: var(--hdm-shadow-hover); transform: translateY(-2px); }
.hidamari .hdm-card > .wp-block-image { margin: 0; }
.hidamari .hdm-card__body {
  padding: var(--hdm-s3);
  display: flex; flex-direction: column; gap: var(--hdm-s1);
  flex: 1;
}
.hidamari .hdm-card-icon .hdm-card__body { padding-top: var(--hdm-s5); position: relative; }
.hidamari .hdm-card-icon .hdm-card__body::before {
  content: ""; display: block; width: 48px; height: 48px; margin-bottom: 10px;
  background-repeat: no-repeat; background-position: center; background-size: contain;
}
.hidamari .hdm-icon-timber  .hdm-card__body::before { background-image: url("assets/decor/reason-timber.svg"); }
.hidamari .hdm-icon-design  .hdm-card__body::before { background-image: url("assets/decor/reason-design.svg"); }
.hidamari .hdm-icon-support .hdm-card__body::before { background-image: url("assets/decor/reason-support.svg"); }

.hidamari .hdm-card__ttl { font-size: 20px; }
.hidamari .hdm-card__txt { color: var(--hdm-sub); font-size: 15px; }
.hidamari .hdm-card__more { margin-top: auto !important; padding-top: var(--hdm-s2); font-weight: 700; font-size: 15px; }
.hidamari .hdm-card__more a { display: inline-flex; align-items: center; gap: var(--hdm-s1); text-decoration: none; }
.hidamari .hdm-card__more a::after {
  content: ""; flex: none; width: 17px; height: 17px;
  background: url("assets/decor/arrow-right.svg") no-repeat center / contain;
  transition: transform .2s ease;
}
.hidamari .hdm-card__more a:hover::after { transform: translateX(4px); }

.hidamari .hdm-tag {
  align-self: flex-start;
  font-size: 12px; font-weight: 700; letter-spacing: .04em;
  color: var(--hdm-primary); background: var(--hdm-tint);
  border-radius: 999px; padding: 4px 12px;
}

/* 画像未投入でも枠が崩れないようにする */
.hidamari .wp-block-image img {
  width: 100%;
  border-radius: 0;
  background-color: var(--hdm-tint);
  background-image: repeating-linear-gradient(45deg, rgba(139,111,71,.07) 0 10px, transparent 10px 20px);
}
.hidamari .hdm-ratio-32 img { aspect-ratio: 3 / 2; object-fit: cover; }
.hidamari .hdm-ratio-43 img { aspect-ratio: 4 / 3; object-fit: cover; }
.hidamari .hdm-ratio-34 img { aspect-ratio: 3 / 4; object-fit: cover; }
.hidamari .hdm-ratio-169 img { aspect-ratio: 16 / 9; object-fit: cover; }

/* ---------- 家づくりの流れ ---------- */
.hidamari .hdm-flow { gap: var(--hdm-s3); position: relative; }
.hidamari .hdm-flow::before {
  content: ""; position: absolute; z-index: 0;
  left: 12%; right: 12%; top: 48px;
  border-top: 1px dashed var(--hdm-dash);
}
.hidamari .hdm-flow__item {
  position: relative; z-index: 1;
  background: var(--hdm-white); border: 1px solid var(--hdm-line);
  border-radius: var(--hdm-r-card); padding: var(--hdm-s3);
  display: flex; flex-direction: column; gap: var(--hdm-s1);
}
.hidamari .hdm-flow__item::before {
  content: ""; display: block; width: 40px; height: 40px; margin-bottom: var(--hdm-s1);
  background-repeat: no-repeat; background-position: center; background-size: contain;
}
.hidamari .hdm-flow-consult::before  { background-image: url("assets/decor/flow-consult.svg"); }
.hidamari .hdm-flow-design::before   { background-image: url("assets/decor/flow-design.svg"); }
.hidamari .hdm-flow-build::before    { background-image: url("assets/decor/flow-build.svg"); }
.hidamari .hdm-flow-handover::before { background-image: url("assets/decor/flow-handover.svg"); }
.hidamari .hdm-flow__step { font-size: 12px; font-weight: 700; letter-spacing: .12em; color: var(--hdm-accent-dk); }
.hidamari .hdm-flow__ttl { font-size: 18px; }
.hidamari .hdm-flow__txt { font-size: 14px; color: var(--hdm-sub); line-height: 1.75; }
.hidamari .hdm-flow__span { font-size: 12px; font-weight: 500; color: var(--hdm-primary); margin-top: auto !important; padding-top: var(--hdm-s1); }

/* ---------- お客様の声 ---------- */
.hidamari .hdm-voice {
  background: var(--hdm-white); border: 1px solid var(--hdm-line);
  border-radius: var(--hdm-r-card); padding: var(--hdm-s4);
  margin: 0;
}
.hidamari .hdm-voice::before {
  content: ""; display: block; width: 32px; height: 24px; margin-bottom: var(--hdm-s2);
  background: url("assets/decor/quote-mark.svg") no-repeat center / contain;
}
.hidamari .hdm-voice p { font-size: 17px; font-weight: 500; line-height: 1.8; }
.hidamari .hdm-voice__meta { font-size: 13px !important; font-weight: 400 !important; color: var(--hdm-sub); margin-top: var(--hdm-s2) !important; }
.hidamari .hdm-voice__demo {
  font-size: 11px !important; font-weight: 400 !important; color: var(--hdm-sub);
  border-top: 1px dashed var(--hdm-line);
  margin-top: var(--hdm-s2) !important; padding-top: var(--hdm-s2);
}

/* ---------- 画像＋テキストの交互レイアウト ---------- */
.hidamari .hdm-alt { gap: var(--hdm-s6); align-items: center; }
.hidamari .hdm-alt-ttl { font-size: 28px; position: relative; padding-bottom: 30px; margin-bottom: var(--hdm-s2) !important; }
.hidamari .hdm-alt__txt { color: var(--hdm-sub); margin-bottom: var(--hdm-s3) !important; }
.hidamari .hdm-alt__list { display: flex; flex-direction: column; gap: var(--hdm-s1); margin-bottom: var(--hdm-s4) !important; }
.hidamari .hdm-alt__list li { position: relative; padding-left: 22px; font-size: 15px; }
.hidamari .hdm-alt__list li::before {
  content: ""; position: absolute; left: 0; top: .62em;
  width: 10px; height: 10px; border-radius: 3px; background: var(--hdm-accent);
}
.hidamari .hdm-sign { font-weight: 700; color: var(--hdm-text); }
.hidamari .hdm-note-sm { font-size: 13px; color: var(--hdm-sub); }

/* ---------- CTA帯 ---------- */
.hidamari .hdm-cta {
  position: relative; overflow: hidden;
  background: var(--hdm-primary);
  border-radius: var(--hdm-r-card);
  padding: var(--hdm-s6) var(--hdm-s5);
  text-align: center;
}
.hidamari .hdm-cta .hdm-cta__bg { position: absolute; inset: 0; margin: 0; z-index: 0; opacity: .3; }
.hidamari .hdm-cta .hdm-cta__bg img { width: 100%; height: 100%; object-fit: cover; background: none; }
.hidamari .hdm-cta > *:not(.hdm-cta__bg) { position: relative; z-index: 1; }
.hidamari .hdm-cta__ttl { font-size: 30px; color: #fff; margin-bottom: var(--hdm-s2) !important; }
.hidamari .hdm-cta__txt { color: rgba(255,255,255,.88); max-width: 56ch; margin-inline: auto; margin-bottom: var(--hdm-s4) !important; }
.hidamari .hdm-cta__row { justify-content: center; margin-bottom: var(--hdm-s3) !important; }

/* 並んだボタンの大きさをそろえる。
   inline-grid + 1fr にすると、各トラックが「一番広いボタン」に合わせた等幅になる。 */
.hidamari .hdm-hero__cta,
.hidamari .hdm-cta__row {
  display: inline-grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  gap: var(--hdm-s2);
  max-width: 100%;
}
.hidamari .hdm-hero__cta .wp-block-button,
.hidamari .hdm-cta__row .wp-block-button { width: auto; }
.hidamari .hdm-hero__cta .wp-block-button__link,
.hidamari .hdm-cta__row .wp-block-button__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 14px 28px;
  min-height: 48px;
}
.hidamari .hdm-cta__note { font-size: 12px; color: rgba(255,255,255,.75); }

/* ---------- 背景の年輪 ---------- */
.hidamari.hdm-rings { position: relative; overflow: hidden; }
.hidamari.hdm-rings::after {
  content: ""; position: absolute; z-index: 0;
  width: 280px; aspect-ratio: 320 / 220;
  background: url("assets/decor/wood-rings.svg") no-repeat center / contain;
  opacity: .45; pointer-events: none;
}
.hidamari.hdm-rings-br::after { right: -48px; bottom: -36px; }
.hidamari.hdm-rings-tl::after { left: -48px; top: -36px; }
.hidamari.hdm-rings > .hdm-wrap { position: relative; z-index: 1; }

/* ---------- 表 ---------- */
.hidamari .hdm-table { margin: 0; }
.hidamari .hdm-table table {
  width: 100%; border-collapse: collapse;
  background: var(--hdm-white);
  border: 1px solid #D6C9B4;               /* 表の輪郭。tint背景の上でも境界が見える */
  border-radius: var(--hdm-r-card);
  overflow: hidden; box-shadow: var(--hdm-shadow);
}
.hidamari .hdm-table th, .hidamari .hdm-table td {
  text-align: left; padding: var(--hdm-s3);
  border: 0; border-bottom: 1px solid var(--hdm-line);
  font-size: 15px; vertical-align: top;
}
.hidamari .hdm-table tr:last-child th, .hidamari .hdm-table tr:last-child td { border-bottom: 0; }
/* 見出し列。セクション背景（#F3EDE3）と同色だと表に埋もれるため、
   パレットの罫線色（#E5DDD0）まで落として、白い本文列との差で読ませる */
.hidamari .hdm-table th {
  width: 220px;
  background: var(--hdm-line);
  border-right: 1px solid #D6C9B4;
  font-weight: 700;
  color: var(--hdm-text);
}
.hidamari .hdm-table tr + tr th { border-top: 1px solid #D6C9B4; }
.hidamari .hdm-table th { border-bottom-color: #D6C9B4; }

/* 地図プレースホルダ */
.hidamari .hdm-map-ph {
  aspect-ratio: 16 / 7; border-radius: var(--hdm-r-card);
  border: 1px dashed var(--hdm-primary); background: var(--hdm-tint);
  display: grid; place-items: center; text-align: center;
  color: var(--hdm-sub); font-size: 13px; padding: var(--hdm-s3);
  margin-bottom: var(--hdm-s4) !important;
}

/* ---------- 注意書き ---------- */
.hidamari .hdm-notice {
  border-left: 4px solid var(--hdm-accent); background: var(--hdm-white);
  border-radius: var(--hdm-r-btn); padding: var(--hdm-s3);
  font-size: 14px; color: var(--hdm-sub);
  margin-bottom: var(--hdm-s5) !important;
}
.hidamari .hdm-demobar {
  background: var(--hdm-primary); color: #fff;
  font-size: 12px; text-align: center; padding: 6px var(--hdm-gut);
}

/* ---------- 本文（プライバシーポリシー等） ---------- */
.hidamari .hdm-prose h3 { font-size: 20px; margin-top: var(--hdm-s5) !important; margin-bottom: var(--hdm-s2) !important; }
.hidamari .hdm-prose p { max-width: 68ch; margin-bottom: var(--hdm-s3) !important; }
.hidamari .hdm-prose ul { margin-bottom: var(--hdm-s3) !important; }

/* ---------- お問い合わせフォーム ---------- */
.hidamari .hdm-form { display: flex; flex-direction: column; gap: var(--hdm-s4); max-width: 720px; }
.hidamari .hdm-field { display: flex; flex-direction: column; gap: var(--hdm-s1); }
.hidamari .hdm-field__label { font-weight: 700; font-size: 15px; display: flex; align-items: center; gap: var(--hdm-s1); }
.hidamari .hdm-req, .hidamari .hdm-opt { font-size: 11px; font-weight: 700; border-radius: 4px; padding: 2px 8px; }
.hidamari .hdm-req { background: var(--hdm-accent); color: var(--hdm-text); }
.hidamari .hdm-opt { background: var(--hdm-line); color: var(--hdm-sub); }
.hidamari .hdm-field__hint { font-size: 13px; color: var(--hdm-sub); }
.hidamari .hdm-input, .hidamari .hdm-textarea {
  font-family: inherit; font-size: 16px; color: var(--hdm-text);
  background: var(--hdm-white); border: 1px solid var(--hdm-line);
  border-radius: var(--hdm-r-btn); padding: 12px 14px; width: 100%;
}
.hidamari .hdm-textarea { min-height: 180px; resize: vertical; line-height: 1.7; }
.hidamari .hdm-check { display: flex; gap: var(--hdm-s2); align-items: flex-start; font-size: 15px; }
.hidamari .hdm-check input { width: 20px; height: 20px; margin-top: 4px; flex: none; accent-color: var(--hdm-primary); }
.hidamari .hdm-submit {
  align-self: flex-start;
  padding: 14px 28px; border: 0; border-radius: var(--hdm-r-btn);
  background: var(--hdm-accent); color: var(--hdm-text);
  font-family: inherit; font-weight: 700; font-size: 16px; cursor: pointer;
}
.hidamari .hdm-submit:hover { background: var(--hdm-accent-dk); }
.hidamari .hdm-form-note {
  font-size: 13px; color: var(--hdm-sub);
  background: var(--hdm-tint); border-radius: var(--hdm-r-btn); padding: var(--hdm-s3);
}

/* ---------- Contact Form 7 ----------
   CF7 は各行を <p> で包み、ラベルの後ろに <br> を入れる。
   自前の .hdm-field（縦並び）に合わせて打ち消す。 */
.hidamari .wpcf7 { margin: 0; }
.hidamari .wpcf7-form { margin: 0; }
.hidamari .hdm-form > .hdm-field > p { margin: 0; display: flex; flex-direction: column; gap: var(--hdm-s1); }
.hidamari .hdm-form br { display: none; }
.hidamari .wpcf7-form-control-wrap { display: block; }
.hidamari .hdm-form .hdm-field__hint { margin: 0; }

/* 入力欄 */
.hidamari .hdm-form .wpcf7-form-control.hdm-input,
.hidamari .hdm-form .wpcf7-form-control.hdm-textarea {
  font-family: var(--hdm-font);
  font-size: 16px;
  line-height: 1.7;
  color: var(--hdm-text);
  background: var(--hdm-white);
  border: 1px solid var(--hdm-line);
  border-radius: var(--hdm-r-btn);
  padding: 12px 14px;
  width: 100%;
  max-width: 100%;
  box-shadow: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.hidamari .hdm-form .hdm-textarea { min-height: 180px; resize: vertical; }
.hidamari .hdm-form .hdm-input::placeholder,
.hidamari .hdm-form .hdm-textarea::placeholder { color: #b3aa9a; }
.hidamari .hdm-form .hdm-input:focus,
.hidamari .hdm-form .hdm-textarea:focus {
  border-color: var(--hdm-primary);
  box-shadow: 0 0 0 3px rgba(139,111,71,.2);
  outline: none;
}

/* 同意チェック */
.hidamari .hdm-consent .wpcf7-acceptance,
.hidamari .hdm-consent .wpcf7-list-item { display: block; margin: 0; }
.hidamari .hdm-consent .wpcf7-list-item label {
  display: flex; align-items: flex-start; gap: var(--hdm-s2);
  font-size: 15px; cursor: pointer;
}
.hidamari .hdm-consent input[type="checkbox"] {
  width: 20px; height: 20px; margin: 4px 0 0; flex: none;
  accent-color: var(--hdm-primary);
}
.hidamari .hdm-consent .wpcf7-list-item-label { line-height: 1.7; }

/* 送信ボタン */
.hidamari .hdm-actions { margin: 0; }
.hidamari .hdm-form .wpcf7-submit.hdm-submit {
  display: inline-block;
  padding: 14px 28px;
  border: 0;
  border-radius: var(--hdm-r-btn);
  background: var(--hdm-accent);
  color: var(--hdm-text);
  font-family: var(--hdm-font);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.5;
  width: auto;
  cursor: pointer;
  transition: background-color .2s ease;
}
.hidamari .hdm-form .wpcf7-submit.hdm-submit:hover { background: var(--hdm-accent-dk); }
.hidamari .wpcf7-spinner { margin-left: var(--hdm-s2); background-color: var(--hdm-primary); }

/* 送信結果・エラー表示 */
.hidamari .wpcf7-response-output {
  margin: var(--hdm-s3) 0 0;
  padding: var(--hdm-s3);
  border: 0;
  border-left: 4px solid var(--hdm-accent);
  border-radius: var(--hdm-r-btn);
  background: var(--hdm-white);
  font-size: 15px;
  line-height: 1.8;
  color: var(--hdm-text);
}
.hidamari form.sent .wpcf7-response-output { border-left-color: var(--hdm-primary); }
.hidamari form.invalid .wpcf7-response-output,
.hidamari form.failed .wpcf7-response-output { border-left-color: #c0563f; }
.hidamari .wpcf7-not-valid-tip {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  font-weight: 500;
  color: #c0563f;
}
.hidamari .wpcf7-form-control.wpcf7-not-valid { border-color: #c0563f; }

/* ---------- レスポンシブ ---------- */
@media (max-width: 900px) {
  .hidamari .hdm-flow::before { display: none; }
  .hidamari.hdm-hero { height: 62vh; min-height: 480px; }
  .hidamari .hdm-sec-ttl { font-size: 28px; }
}

@media (max-width: 781px) {
  /* columns が縦積みになる幅。カード幅は100%に */
  .hidamari .wp-block-columns { gap: var(--hdm-s3); }
  .hidamari .hdm-alt { gap: var(--hdm-s4); }
}

@media (max-width: 600px) {
  .hidamari { --hdm-gut: 20px; }
  .hidamari.hdm-section { padding-block: 56px; }
  .hidamari.hdm-pagehead { padding-block: var(--hdm-s5); }
  /* ヘッダー（72px）を透過で重ねているので、見出しがかぶらない位置まで上を空ける */
  /* 上の112pxのうち73pxはヘッダーが重なる分。見えている余白が上下でつり合うよう下は48pxにする */
  .hidamari.hdm-hero { height: auto; min-height: 0; max-height: none; padding: 112px 0 48px; }
  .hidamari .hdm-sec-ttl { font-size: 26px; }
  .hidamari .hdm-pagehead__ttl { font-size: 28px; }
  .hidamari .hdm-alt-ttl { font-size: 22px; }
  .hidamari .hdm-hero__ttl { font-size: 27px; line-height: 1.75; }
  /* 左右はサイト共通の余白（24px）にそろえる。見出しは clamp で縮むので収まる */
  .hidamari .hdm-cta { padding: 48px 24px; }
  .hidamari .hdm-cta__ttl { font-size: clamp(20px, 6.2vw, 22px); }
  /* SPは縦積み。1列を一番広いボタンに合わせ、2つとも同じ幅にそろえる */
  .hidamari .hdm-hero__cta,
  .hidamari .hdm-cta__row {
    grid-auto-flow: row;
    grid-auto-columns: auto;
  }
  .hidamari .hdm-trustbar__list { gap: 6px var(--hdm-s3); }
  .hidamari .hdm-trustbar__list li { font-size: 13px; }
  .hidamari .hdm-table th, .hidamari .hdm-table td { display: block; width: 100%; }
  /* 縦積みになるので、右罫線ではなく下罫線で区切る */
  .hidamari .hdm-table th {
    border-right: 0;
    border-bottom: 1px solid var(--hdm-line);
    padding-top: var(--hdm-s2);
    padding-bottom: var(--hdm-s2);
  }
  .hidamari .hdm-br-pc { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .hidamari * { transition-duration: .001ms !important; }
  .hidamari .hdm-hero__slide { transition: none; }
}
