/* ===== 共通ヘッダー / フッター =====
   デザインの正 ＝ 支給カンプ（2026-08-25 受領）。全ページで読み込む。
   Tailwind に依存しない自己完結CSS（preflight の有無に左右されないため）。 */

/* ---- 共通ヘッダー（3ロゴ）----
   旧 Tailwind ユーティリティを実測値で1:1置換。対応は以下。
     w-full / px-6 md:px-12 lg:px-20 / pt-7 md:pt-9 / pb-5 / relative z-20
     max-w-[1500px] mx-auto flex items-center justify-between gap-4
     flex items-end gap-5 md:gap-9
     h-7 md:h-9 / h-4 md:h-6 opacity-90 / w-auto
     hidden md:block text-[10px] tracking-[0.4em] text-[var(--muted)]
   ※`img{height:auto}`(Astra/preflight) に負けないよう、ロゴは詳細度(0,2,0)で指定する。 */
.kb-site-header{
  width:100%;
  padding:1.75rem 1.5rem 1.25rem;
  position:relative; z-index:20;
}
.kb-site-header__inner{
  max-width:1500px; margin-left:auto; margin-right:auto;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.kb-site-header__logos{ display:flex; align-items:flex-end; gap:1.25rem; }
.kb-site-header .kb-site-header__logo{
  display:block; width:auto; max-width:100%; height:1.75rem;
}
.kb-site-header .kb-site-header__logo--doch{ height:1rem; opacity:.9; }
.kb-site-header__mark{
  display:none;
  font-size:10px; letter-spacing:.4em; color:var(--kb-text-mute);
}
@media (min-width:768px){
  .kb-site-header{ padding:2.25rem 3rem 1.25rem; }
  .kb-site-header__logos{ gap:2.25rem; }
  .kb-site-header .kb-site-header__logo{ height:2.25rem; }
  .kb-site-header .kb-site-header__logo--doch{ height:1.5rem; }
  .kb-site-header__mark{ display:block; }
}
@media (min-width:1024px){
  .kb-site-header{ padding:2.25rem 5rem 1.25rem; }
}

/* ---- フッター ---- */
.kb-site-footer{
  /* フッターは常に明るい面を自前で持つ。ページ側がダーク文脈でも影響を受けないよう、
     ここで役割トークンを既定へリセットする（文脈の境界）。 */
  --kb-text:var(--kb-c-ink);
  --kb-text-soft:var(--kb-c-ink-soft);
  --kb-text-mute:var(--kb-c-ink-mute);
  --kb-rule:var(--kb-c-rule);
  --kb-link:var(--kb-c-brown);
  --kb-link-hover:var(--kb-c-gold);
  /* 旧: #3a3733 / #5b5751 / #d9d5cc。サイト共通トークンへ統一した（トンマナ揃え） */
  --kb-f-ink:var(--kb-text);
  --kb-f-soft:var(--kb-text-soft);
  --kb-f-line:var(--kb-rule);
  background:linear-gradient(100deg,var(--kb-c-white) 0%,#fbfaf8 45%,#e9e7e1 100%);
  border-top:1px solid var(--kb-f-line);
  font-family:var(--kb-font-jp);
  color:var(--kb-f-ink);
}
.kb-foot{
  max-width:1400px; margin:0 auto;
  padding:clamp(3rem,6vw,5rem) clamp(1.5rem,5vw,5rem) clamp(2rem,4vw,3rem);
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,4rem); align-items:start;
}

.kb-foot__menu{ display:flex; flex-direction:column; gap:1.15rem; }
.kb-foot__menu a{
  font-size:.86rem; letter-spacing:.1em; color:var(--kb-f-soft);
  text-decoration:none; transition:color .3s ease; width:fit-content;
}
.kb-foot__menu a:hover{ color:var(--kb-link); }

.kb-foot__logos{ display:flex; flex-direction:column; align-items:center; gap:clamp(1.4rem,3vw,2.2rem); }
/* ブランドページの `.kb-brand-body img`(0,1,1) に負けないよう詳細度を上げる */
.kb-site-footer .kb-foot__logo{ display:block; width:auto; max-width:none; }
.kb-site-footer .kb-foot__logo--honpo{ height:clamp(28px,3.2vw,42px); }
.kb-site-footer .kb-foot__logo--doch{ height:clamp(20px,2.4vw,30px); opacity:.92; }
.kb-site-footer .kb-foot__logo--gesund{ height:clamp(38px,4.4vw,58px); }

.kb-foot__side{
  display:flex; flex-direction:column; gap:clamp(2.5rem,6vw,4.5rem);
  padding-left:clamp(1.5rem,3vw,3rem); border-left:1px solid var(--kb-f-line);
  min-height:100%;
}
.kb-foot__shop{ display:block; text-decoration:none; color:inherit; width:fit-content; }
.kb-foot__shop-en{
  display:block; font-size:clamp(1.1rem,1.7vw,1.4rem); letter-spacing:.05em;
  color:var(--kb-f-ink); line-height:1.3;
}
.kb-foot__shop-ja{
  display:block; font-size:.7rem; letter-spacing:.12em; color:var(--kb-f-soft); margin-top:.5rem;
}
.kb-foot__shop-arrow{
  display:block; position:relative; height:1px; background:var(--kb-f-ink);
  margin-top:.8rem; width:min(15rem,100%); transition:width .35s ease;
}
.kb-foot__shop-arrow::after{
  content:""; position:absolute; right:0; top:-3px;
  width:7px; height:7px; border-top:1px solid var(--kb-f-ink); border-right:1px solid var(--kb-f-ink);
  transform:rotate(45deg);
}
.kb-foot__shop:hover .kb-foot__shop-arrow{ width:min(17rem,100%); }

.kb-foot__legal{ display:flex; flex-direction:column; gap:.9rem; }
.kb-foot__legal a{
  font-size:.72rem; letter-spacing:.08em; color:var(--kb-f-soft);
  text-decoration:none; transition:color .3s ease; width:fit-content;
}
.kb-foot__legal a:hover{ color:var(--kb-link); }

.kb-foot__copy{
  margin:0; padding:0 1.5rem clamp(1.5rem,3vw,2rem);
  text-align:center; font-size:.63rem; letter-spacing:.12em; color:var(--kb-text-mute);
}

@media (max-width:900px){
  .kb-foot{ grid-template-columns:1fr; gap:2.75rem; justify-items:center; text-align:center; }
  .kb-foot__menu{ align-items:center; order:2; }
  .kb-foot__logos{ order:1; }
  .kb-foot__side{
    order:3; border-left:0; border-top:1px solid var(--kb-f-line);
    padding-left:0; padding-top:2.25rem; align-items:center; gap:2.25rem; width:100%;
  }
  .kb-foot__legal{ align-items:center; }
}

/* ---- 定義リスト表は kurobo-tokens.css の .kb-dl / .kb-rtable へ移動 ---- */

/* ---- Elementor で組むページ（採用情報など）のブランド既定 ----
   クライアントが Elementor 側で個別指定すればそちらが勝つ（Elementorのpost CSSが後勝ち）。
   ここは「何も指定しない状態でもブランドに乗る」ための下地。 */
.elementor-widget-heading .elementor-heading-title{
  font-family:var(--kb-font-jp);
  font-weight:500; color:var(--kb-text); letter-spacing:.12em; line-height:1.7;
}
.elementor-widget-heading h1.elementor-heading-title{ font-size:clamp(1.4rem,3vw,2rem); letter-spacing:.2em; }
.elementor-widget-heading h2.elementor-heading-title{
  font-size:clamp(1.05rem,2.2vw,1.35rem); letter-spacing:.16em;
  padding-bottom:.7rem; border-bottom:1px solid var(--kb-rule);
}
.elementor-widget-heading h3.elementor-heading-title{
  font-size:clamp(.92rem,1.8vw,1.05rem); letter-spacing:var(--kb-ls-wide); color:var(--kb-text-soft);
}
.elementor-widget-text-editor{
  font-family:var(--kb-font-jp);
  font-size:.86rem; line-height:var(--kb-lh-body); letter-spacing:var(--kb-ls-tight); color:var(--kb-text-soft);
}
.elementor-widget-text-editor p{ margin:0 0 1.6em; }
.elementor-widget-text-editor p:last-child{ margin-bottom:0; }
/* セクション間・ウィジェット間の余白（Elementor 側で上書き可） */
.elementor-widget:not(:last-child){ margin-bottom:clamp(1.25rem,2.6vw,2rem); }
.elementor-widget-heading + .elementor-widget-heading{ margin-top:clamp(1rem,2vw,1.5rem); }
.elementor-section:not(:first-child){ padding-top:clamp(1.5rem,4vw,3rem); }
/* Elementor 本文中のリンク（Astra の既定リンク色＝青を上書き） */
.elementor-widget-text-editor a{ color:var(--kb-link); text-decoration:underline; text-underline-offset:.25em; }
.elementor-widget-text-editor a:hover{ color:var(--kb-link-hover); }
