/* ============================================================
   ひぐま堂株式会社 メインスタイルシート
   Cocoon子テーマ用 / ブロックエディタ対応
   ============================================================ */

/* ─── Cocoonアニメーション完全無効化（最優先） ───────────── */
/*
.animated,
.fadeIn, .fadeInUp, .fadeInDown, .fadeInLeft, .fadeInRight,
[class*="wow"], [class*="animate__"],
.is-animated, .will-animate, .js-scroll-hidden,
.c-entry__content *[style*="opacity"],
.entry-content *[style*="opacity"] {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
  transition: none !important;
}
*/

/* ─── Cocoonアニメーション完全無効化（最優先） ───────────── */
.animated { animation: none !important; opacity: 1 !important; transform: none !important; visibility: visible !important; transition: none !important; }
.fadeIn { animation: none !important; opacity: 1 !important; transform: none !important; }
.fadeInUp { animation: none !important; opacity: 1 !important; transform: none !important; }
.fadeInDown { animation: none !important; opacity: 1 !important; transform: none !important; }
.is-animated { opacity: 1 !important; transform: none !important; visibility: visible !important; }
.will-animate { opacity: 1 !important; transform: none !important; visibility: visible !important; }
.js-scroll-hidden { opacity: 1 !important; transform: none !important; visibility: visible !important; }

/* baguetteBox オーバーレイを非表示 */
#baguetteBox-overlay { display: none !important; }

/* ─── CSS変数 ─────────────────────────────────────────── */
:root {
  --hm-teal:       #2A7B7B;
  --hm-teal-mid:   #3A9090;
  --hm-teal-light: #5BAEAE;
  --hm-teal-pale:  #E8F5F5;
  --hm-teal-xpale: #F2FAFA;
  --hm-amber:      #D4840A;
  --hm-amber-lt:   #F0A840;
  --hm-amber-pale: #FEF3E2;
  --hm-warm-white: #FDFAF6;
  --hm-warm-gray:  #F5F0E8;
  --hm-text-dark:  #1E2C2C;
  --hm-text-mid:   #4A5E5E;
  --hm-text-light: #7A9090;
  --hm-border:     rgba(42,123,123,0.15);
}

/* ─── ベースリセット・タイポグラフィ ────────────────────── */
body,
.entry-content,
.page-content {
  font-family: 'Noto Serif JP', serif !important;
  background-color: var(--hm-warm-white) !important;
  color: var(--hm-text-dark) !important;
  line-height: 1.85;
}

/* Cocoon デフォルト背景・枠線リセット */
#container,
#main,
#content,
.entry-content {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ─── カスタムカーソル ───────────────────────────────── */
.hm-cursor {
  width: 10px; height: 10px;
  background: var(--hm-amber);
  border-radius: 50%;
  position: fixed; pointer-events: none;
  z-index: 9999; transform: translate(-50%,-50%);
  transition: width .25s, height .25s;
  mix-blend-mode: multiply;
}
.hm-cursor-ring {
  width: 32px; height: 32px;
  border: 1.5px solid var(--hm-teal-mid);
  border-radius: 50%;
  position: fixed; pointer-events: none;
  z-index: 9998; transform: translate(-50%,-50%);
  opacity: .5;
}

/* ─── ナビゲーション（Cocoon上書き） ───────────────────── */
#header,
.site-header {
  position: fixed !important;
  top: 0; left: 0; right: 0;
  z-index: 200 !important;
  background: rgba(253,250,246,0) !important;
  box-shadow: none !important;
  transition: background .5s, box-shadow .5s, padding .4s !important;
  padding: 1rem 5vw !important;
  height: auto !important;
  max-height: 80px !important;
  overflow: visible !important;
}
#header.hm-scrolled,
.site-header.hm-scrolled {
  background: rgba(253,250,246,0.97) !important;
  backdrop-filter: blur(16px) !important;
  box-shadow: 0 1px 0 var(--hm-border), 0 4px 24px rgba(42,123,123,.08) !important;
  height: auto !important;
  max-height: 80px !important;
  overflow: visible !important;
}
/* Cocoonのメニュー文字色 */
#header .site-name-text,
.logo-header .site-name-text {
  font-family: 'Shippori Mincho B1', serif !important;
  color: var(--hm-text-dark) !important;
}
#header .global-nav a,
.navi-in > ul > li > a {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: .95rem !important;
  letter-spacing: .12em !important;
  color: var(--hm-text-mid) !important;
  transition: color .3s !important;
}
#header .global-nav a:hover,
.navi-in > ul > li > a:hover {
  color: var(--hm-teal) !important;
}
/* お問い合わせボタン（最後のナビ項目に .nav-cta クラスをCocoon管理画面から付与する） */
.nav-cta > a {
  background: var(--hm-teal) !important;
  color: white !important;
  padding: .5rem 1.3rem !important;
  border-radius: 3px !important;
  box-shadow: 0 2px 12px rgba(42,123,123,.25) !important;
}

/* ─── スクロールリベール共通 ─────────────────────────── */
.hm-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .75s ease, transform .75s ease;
}
.hm-reveal.hm-visible {
  opacity: 1;
  transform: translateY(0);
}
.hm-reveal.hm-d1 { transition-delay: .1s; }
.hm-reveal.hm-d2 { transition-delay: .2s; }
.hm-reveal.hm-d3 { transition-delay: .3s; }
.hm-reveal.hm-d4 { transition-delay: .4s; }

/* ─── セクションラベル共通 ───────────────────────────── */
.hm-label {
  font-family: 'Cormorant Garamond', serif;
  font-size: .75rem; letter-spacing: .35em; text-transform: uppercase;
  color: var(--hm-teal-mid);
  display: flex; align-items: center; gap: .8rem;
  margin-bottom: .8rem;
}
.hm-label::before {
  content: ''; display: inline-block;
  width: 28px; height: 1px; background: var(--hm-teal-mid);
}

/* ─── セクション見出し共通 ─────────────────────────────── */
.hm-section-title,
.entry-content h2.hm-section-title {
  font-family: 'Shippori Mincho B1', serif !important;
  font-size: clamp(1.8rem, 3.5vw, 2.8rem) !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  color: var(--hm-text-dark) !important;
  margin-bottom: 1.2rem !important;
  border: none !important; /* Cocoonの見出し枠線を除去 */
  padding: 0 !important;
  background: none !important;
}

/* ─── ボタン共通 ──────────────────────────────────────── */
.wp-block-button__link,
.hm-btn {
  font-family: 'Noto Serif JP', serif !important;
  letter-spacing: .06em !important;
  border-radius: 3px !important;
  transition: all .3s !important;
  text-decoration: none !important;
}
/* プライマリ（テール色） */
.wp-block-button.is-style-fill .wp-block-button__link,
.hm-btn-primary {
  background: var(--hm-teal) !important;
  color: white !important;
  box-shadow: 0 3px 16px rgba(42,123,123,.28) !important;
}
.wp-block-button.is-style-fill .wp-block-button__link:hover,
.hm-btn-primary:hover {
  background: var(--hm-teal-mid) !important;
  transform: translateY(-2px) !important;
}
/* アウトライン */
.wp-block-button.is-style-outline .wp-block-button__link,
.hm-btn-outline {
  border: 1.5px solid var(--hm-teal) !important;
  color: var(--hm-teal) !important;
  background: transparent !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.hm-btn-outline:hover {
  background: var(--hm-teal-pale) !important;
  transform: translateY(-2px) !important;
}
/* アンバー（CTAバナー用） */
.hm-btn-amber {
  background: var(--hm-amber) !important;
  color: white !important;
  box-shadow: 0 3px 16px rgba(212,132,10,.3) !important;
}
.hm-btn-amber:hover {
  background: var(--hm-amber-lt) !important;
  transform: translateY(-2px) !important;
}

/* ─── ページヘッダー（固定ページ用） ────────────────────── */
.hm-page-header {
  padding: 140px 5vw 80px;
  background: var(--hm-teal-xpale);
  position: relative; overflow: hidden;
}
.hm-page-header::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 60% 80% at 90% 50%, rgba(42,123,123,.08) 0%, transparent 70%);
  pointer-events: none;
}
.hm-page-header-inner { max-width: 1100px; margin: 0 auto; position: relative; }
.hm-page-header h1 {
  font-family: 'Shippori Mincho B1', serif !important;
  font-size: clamp(2rem, 4vw, 3rem) !important;
  font-weight: 800 !important;
  color: var(--hm-text-dark) !important;
  line-height: 1.25 !important;
  border: none !important; padding: 0 !important; background: none !important;
}
.hm-page-header-sub {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1rem; font-style: italic;
  color: var(--hm-text-light); margin-top: .4rem;
}

/* ─── ヒーローセクション ─────────────────────────────── */
.hm-hero {
  min-height: 100vh;
  background: var(--hm-warm-white);
  display: flex; align-items: center;
  position: relative; overflow: hidden;
  padding: 120px 5vw 80px;
}
.hm-hero-bg-dots {
  position: absolute; inset: 0;
  background-image: radial-gradient(circle, rgba(42,123,123,.12) 1px, transparent 1px);
  background-size: 36px 36px;
  opacity: .5; pointer-events: none;
}
.hm-hero-bg-glow1 {
  position: absolute; width: 700px; height: 700px; border-radius: 50%;
  background: radial-gradient(circle, rgba(42,123,123,.07) 0%, transparent 65%);
  top: -200px; right: -100px; pointer-events: none;
  animation: hmGlow1 12s ease-in-out infinite alternate;
}
.hm-hero-bg-glow2 {
  position: absolute; width: 500px; height: 500px; border-radius: 50%;
  background: radial-gradient(circle, rgba(212,132,10,.06) 0%, transparent 65%);
  bottom: -100px; left: 10%; pointer-events: none;
  animation: hmGlow2 10s ease-in-out infinite alternate;
}
@keyframes hmGlow1 { 0%{transform:translate(0,0) scale(1);} 100%{transform:translate(-30px,20px) scale(1.08);} }
@keyframes hmGlow2 { 0%{transform:translate(0,0);} 100%{transform:translate(20px,-20px);} }

.hm-hero-inner {
  max-width: 1100px; margin: 0 auto; width: 100%;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 4rem; align-items: center;
  position: relative; z-index: 1;
}
.hm-hero-tag {
  display: inline-flex; align-items: center; gap: .6rem;
  background: var(--hm-teal-pale); color: var(--hm-teal);
  font-family: 'Cormorant Garamond', serif;
  font-size: .78rem; letter-spacing: .25em; text-transform: uppercase;
  padding: .4rem 1rem; border-radius: 20px;
  margin-bottom: 1.5rem;
  opacity: 0; animation: hmFadeUp .7s .2s forwards;
}
.hm-hero-tag-dot { width:6px; height:6px; background:var(--hm-teal); border-radius:50%; }
.hm-hero-h1 {
  font-family: 'Shippori Mincho B1', serif !important;
  font-size: clamp(2.4rem, 5vw, 4rem) !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  color: var(--hm-text-dark) !important;
  margin-bottom: .6rem !important;
  border: none !important; padding: 0 !important; background: none !important;
  opacity: 0; animation: hmFadeUp .8s .4s forwards;
}
.hm-hero-h1 em {
  font-style: normal; color: var(--hm-teal); position: relative;
}
.hm-hero-h1 em::after {
  content: '';
  position: absolute; bottom: 2px; left: 0; right: 0;
  height: 3px; background: var(--hm-amber-lt);
  border-radius: 2px; transform: scaleX(0); transform-origin: left;
  animation: hmUnderline .6s 1.2s forwards;
}
@keyframes hmUnderline { to { transform: scaleX(1); } }
.hm-hero-en {
  font-family: 'Cormorant Garamond', serif;
  font-size: .9rem; font-style: italic; letter-spacing: .12em;
  color: var(--hm-text-light); margin-bottom: 2rem;
  opacity: 0; animation: hmFadeUp .8s .55s forwards;
}
.hm-hero-desc {
  font-size: .97rem; color: var(--hm-text-mid); line-height: 2.1;
  margin-bottom: 2.5rem;
  opacity: 0; animation: hmFadeUp .8s .7s forwards;
}
.hm-hero-btns {
  display: flex; gap: 1rem; flex-wrap: wrap;
  opacity: 0; animation: hmFadeUp .8s .9s forwards;
}
.hm-hero-btns a {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .9rem 2rem; border-radius: 3px;
  font-family: 'Noto Serif JP', serif;
  font-size: .9rem; font-weight: 700; letter-spacing: .06em;
  text-decoration: none; transition: all .3s;
}
.hm-hero-btns .hm-btn-primary {
  background: var(--hm-teal); color: white;
  box-shadow: 0 3px 16px rgba(42,123,123,.28);
}
.hm-hero-btns .hm-btn-primary:hover {
  background: var(--hm-teal-mid); transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(42,123,123,.38);
}
.hm-hero-btns .hm-btn-outline {
  border: 1.5px solid var(--hm-teal); color: var(--hm-teal); background: transparent;
}
.hm-hero-btns .hm-btn-outline:hover {
  background: var(--hm-teal-pale); transform: translateY(-2px);
}

/* ヒーロー右カード */
.hm-hero-card {
  background: white; border-radius: 16px;
  box-shadow: 0 8px 48px rgba(42,123,123,.12), 0 2px 8px rgba(0,0,0,.05);
  padding: 2.5rem 2rem; position: relative; overflow: hidden;
  opacity: 0; animation: hmFadeIn 1s .6s forwards;
}
.hm-hero-card::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, var(--hm-teal), var(--hm-teal-light), var(--hm-amber-lt));
}
.hm-hero-card-logo { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.8rem; }
.hm-hero-card-logo img { height: 40px; }
.hm-hero-card-logo-text {
  font-family: 'Shippori Mincho B1', serif;
  font-size: .95rem; font-weight: 600; color: var(--hm-text-dark);
}
.hm-hero-card-logo-text small {
  display: block; font-family: 'Cormorant Garamond', serif;
  font-size: .62rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--hm-teal-mid);
}
.hm-hero-services { display: flex; flex-direction: column; gap: .8rem; }
.hm-hero-service {
  display: flex; align-items: center; gap: .9rem;
  padding: .9rem 1rem; background: var(--hm-teal-xpale); border-radius: 8px;
  animation: hmSlideIn .5s both;
}
.hm-hero-service:nth-child(1) { animation-delay: 1.0s; }
.hm-hero-service:nth-child(2) { animation-delay: 1.2s; }
.hm-hero-service:nth-child(3) { animation-delay: 1.4s; }
@keyframes hmSlideIn { from{opacity:0;transform:translateX(12px);} to{opacity:1;transform:translateX(0);} }
.hm-hs-icon {
  width:36px; height:36px; border-radius:8px;
  background: var(--hm-teal); color:white;
  display:flex; align-items:center; justify-content:center;
  font-size:1rem; flex-shrink:0;
}
.hm-hs-text { font-size: .85rem; font-weight: 600; color: var(--hm-text-dark); }
.hm-hs-text small { display:block; font-size:.72rem; font-weight:400; color:var(--hm-text-light); }
.hm-hero-card-badge {
  position: absolute; bottom: 1.2rem; right: 1.2rem;
  background: var(--hm-amber-pale); border: 1px solid rgba(212,132,10,.2);
  padding: .35rem .75rem; border-radius: 6px;
  font-size: .7rem; color: var(--hm-amber);
  font-family: 'Cormorant Garamond', serif; letter-spacing: .08em;
}
.hm-hero-scroll {
  position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: .5rem;
  opacity: 0; animation: hmFadeIn 1s 1.6s forwards;
}
.hm-hero-scroll span {
  font-family: 'Cormorant Garamond', serif;
  font-size: .65rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--hm-text-light);
}
.hm-scroll-bar {
  width:1px; height:44px;
  background: linear-gradient(to bottom, var(--hm-teal-mid), transparent);
  animation: hmScrollFade 2s ease-in-out infinite;
}
@keyframes hmScrollFade { 0%,100%{opacity:1;transform:scaleY(1);} 50%{opacity:.3;transform:scaleY(.5);} }
@keyframes hmFadeUp { from{opacity:0;transform:translateY(24px);} to{opacity:1;transform:translateY(0);} }
@keyframes hmFadeIn { from{opacity:0;} to{opacity:1;} }

/* ─── フィロソフィー（About strip） ──────────────────────── */
.hm-philosophy {
  padding: 80px 5vw;
  background: var(--hm-teal-xpale);
}
.hm-philosophy-inner {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 5rem; align-items: center;
}
.hm-philosophy-text p { font-size:1rem; color:var(--hm-text-mid); line-height:2.1; margin-bottom:1.2rem; }
.hm-value-cards { display: flex; flex-direction: column; gap: 1rem; }
.hm-value-card {
  background: white; border-radius: 10px;
  padding: 1.3rem 1.5rem;
  display: flex; align-items: flex-start; gap: 1rem;
  box-shadow: 0 2px 12px rgba(42,123,123,.07);
  border-left: 3px solid var(--hm-teal);
  transition: transform .3s, box-shadow .3s;
}
.hm-value-card:hover { transform: translateX(4px); box-shadow: 0 4px 20px rgba(42,123,123,.13); }
.hm-vc-icon { font-size: 1.3rem; margin-top: 2px; flex-shrink: 0; }
.hm-vc-title { font-family:'Shippori Mincho B1',serif; font-size:.95rem; font-weight:700; color:var(--hm-text-dark); margin-bottom:.2rem; }
.hm-vc-desc  { font-size:.82rem; color:var(--hm-text-mid); line-height:1.7; }

/* ─── サービスカード ─────────────────────────────────────── */
.hm-services-section {
  padding: 100px 5vw;
  background: var(--hm-warm-white);
}
.hm-services-section .section-inner { max-width: 1100px; margin: 0 auto; }
.hm-services-grid {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem;
}
.hm-service-card {
  background: white; border-radius: 12px;
  padding: 2.5rem 2rem;
  box-shadow: 0 2px 16px rgba(0,0,0,.05);
  border: 1px solid rgba(42,123,123,.1);
  position: relative; overflow: hidden;
  transition: transform .35s, box-shadow .35s;
}
.hm-service-card::before {
  content: '';
  position: absolute; top:0; left:0; right:0;
  height: 3px;
  background: linear-gradient(90deg, var(--hm-teal), var(--hm-teal-light));
  transform: scaleX(0); transform-origin: left; transition: transform .4s;
}
.hm-service-card:hover { transform: translateY(-5px); box-shadow: 0 12px 36px rgba(42,123,123,.13); }
.hm-service-card:hover::before { transform: scaleX(1); }
.hm-sc-num { font-family:'Cormorant Garamond',serif; font-size:3rem; font-weight:300; color:var(--hm-teal-pale); line-height:1; margin-bottom:.8rem; }
.hm-sc-icon { font-size:2rem; margin-bottom:.8rem; }
.hm-sc-title { font-family:'Shippori Mincho B1',serif; font-size:1.15rem; font-weight:700; color:var(--hm-text-dark); margin-bottom:.8rem; line-height:1.4; }
.hm-sc-desc { font-size:.875rem; color:var(--hm-text-mid); line-height:1.9; }
.hm-sc-tags { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:1.5rem; }
.hm-sc-tag {
  font-family:'Cormorant Garamond',serif; font-size:.7rem; letter-spacing:.08em;
  color:var(--hm-teal); border:1px solid var(--hm-border);
  background:var(--hm-teal-xpale); padding:.2rem .6rem; border-radius:3px;
}

/* ─── CTAバナー ─────────────────────────────────────────── */
.hm-cta-section {
  padding: 80px 5vw;
  background: var(--hm-teal);
  position: relative; overflow: hidden;
}
.hm-cta-section::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 70% 90% at 80% 50%, rgba(255,255,255,.06) 0%, transparent 70%);
}
.hm-cta-inner {
  max-width: 1100px; margin: 0 auto; position: relative;
  display: flex; align-items: center; justify-content: space-between;
  gap: 2rem; flex-wrap: wrap;
}
.hm-cta-inner h2 {
  font-family: 'Shippori Mincho B1', serif !important;
  font-size: clamp(1.5rem, 3vw, 2.2rem) !important;
  font-weight: 700 !important; color: white !important;
  margin-bottom: .6rem !important; line-height: 1.3 !important;
  border: none !important; padding: 0 !important; background: none !important;
}
.hm-cta-inner p { font-size:.95rem; color:rgba(255,255,255,.72); line-height:1.8; }
.hm-cta-btn {
  display: inline-flex; align-items: center; gap: .6rem;
  background: var(--hm-amber); color: white;
  padding: 1rem 2.4rem; border-radius: 3px;
  font-family: 'Noto Serif JP', serif;
  font-size: 1rem; font-weight: 700; letter-spacing: .06em;
  text-decoration: none; white-space: nowrap;
  box-shadow: 0 3px 16px rgba(212,132,10,.3);
  transition: all .3s;
}
.hm-cta-btn:hover { background: var(--hm-amber-lt); transform: translateY(-2px); box-shadow: 0 6px 24px rgba(212,132,10,.4); }

/* ─── 会社概要ページ ─────────────────────────────────────── */
.hm-company-layout {
  display: grid; grid-template-columns: 1fr 1.5fr;
  gap: 5rem; align-items: start;
  max-width: 1100px; margin: 0 auto; padding: 80px 5vw;
}
.hm-profile-card {
  position: sticky; top: 120px;
  background: white; border-radius: 14px;
  box-shadow: 0 4px 32px rgba(42,123,123,.1); overflow: hidden;
}
.hm-profile-top {
  background: var(--hm-teal); padding: 2.5rem 2rem; text-align: center; position: relative;
}
.hm-profile-top::after {
  content: ''; position: absolute; bottom:-1px; left:0; right:0;
  height:30px; background:white; clip-path:ellipse(55% 100% at 50% 100%);
}
.hm-profile-avatar {
  width:80px; height:80px; border-radius:50%;
  background:rgba(255,255,255,.2); margin:0 auto 1rem;
  display:flex; align-items:center; justify-content:center; font-size:2.5rem;
  border:3px solid rgba(255,255,255,.4);
}
.hm-profile-name { font-family:'Shippori Mincho B1',serif; font-size:1.4rem; font-weight:800; color:white; margin-bottom:.3rem; }
.hm-profile-role { font-family:'Cormorant Garamond',serif; font-size:.78rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.72); }
.hm-profile-body { padding: 2rem; }
.hm-profile-message { font-size:.875rem; color:var(--hm-text-mid); line-height:2; border-left:2px solid var(--hm-amber-lt); padding-left:1rem; font-style:italic; }
.hm-profile-divider { width:40px; height:1px; background:var(--hm-border); margin:1.5rem 0; }
.hm-profile-meta { display:flex; flex-direction:column; gap:.6rem; }
.hm-profile-meta-item { display:flex; align-items:center; gap:.6rem; font-size:.8rem; color:var(--hm-text-light); font-family:'Cormorant Garamond',serif; letter-spacing:.05em; }
.hm-profile-meta-dot { width:5px; height:5px; background:var(--hm-teal); border-radius:50%; flex-shrink:0; }

/* 会社概要テーブル */
.hm-company-table { width:100%; border-collapse:collapse; }
.hm-company-table tr { border-bottom:1px solid var(--hm-border); transition:background .2s; }
.hm-company-table tr:last-child { border-bottom:none; }
.hm-company-table tr:hover td, .hm-company-table tr:hover th { background:var(--hm-teal-xpale); }
.hm-company-table th { width:35%; padding:1.4rem 1rem 1.4rem 0; text-align:left; vertical-align:top; font-family:'Shippori Mincho B1',serif; font-size:.875rem; font-weight:700; color:var(--hm-teal); }
.hm-company-table td { padding:1.4rem 0; vertical-align:top; font-size:.9rem; color:var(--hm-text-mid); line-height:1.9; }
.hm-td-list { list-style:none; display:flex; flex-direction:column; gap:.3rem; }
.hm-td-list li { display:flex; align-items:flex-start; gap:.5rem; }
.hm-td-list li::before { content:'—'; color:var(--hm-teal-mid); flex-shrink:0; }

/* フィロソフィーカード */
.hm-phil-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2.5rem; }
.hm-phil-card { background:white; border-radius:12px; padding:2rem 1.5rem; box-shadow:0 2px 16px rgba(0,0,0,.05); border-top:3px solid var(--hm-teal); text-align:center; transition:transform .3s; }
.hm-phil-card:nth-child(2) { border-top-color:var(--hm-amber); }
.hm-phil-card:nth-child(3) { border-top-color:var(--hm-teal-mid); }
.hm-phil-card:hover { transform:translateY(-4px); }
.hm-phil-icon { font-size:2.2rem; margin-bottom:.8rem; }
.hm-phil-title { font-family:'Shippori Mincho B1',serif; font-size:1rem; font-weight:700; color:var(--hm-text-dark); margin-bottom:.5rem; }
.hm-phil-desc { font-size:.82rem; color:var(--hm-text-mid); line-height:1.8; }

/* ─── お問い合わせページ ─────────────────────────────────── */
.hm-contact-layout {
  display: grid; grid-template-columns: 1fr 1.6fr;
  gap: 5rem; align-items: start;
  max-width: 1100px; margin: 0 auto; padding: 80px 5vw;
}
.hm-contact-info-card {
  background: white; border-radius: 14px;
  padding: 2.5rem; margin-bottom: 1.5rem;
  box-shadow: 0 2px 20px rgba(42,123,123,.09);
  border-top: 3px solid var(--hm-teal);
}
.hm-ci-title { font-family:'Shippori Mincho B1',serif; font-size:1.05rem; font-weight:700; color:var(--hm-text-dark); margin-bottom:1rem; }
.hm-ci-items { display:flex; flex-direction:column; gap:1rem; }
.hm-ci-item { display:flex; align-items:flex-start; gap:.8rem; }
.hm-ci-icon { width:36px; height:36px; border-radius:8px; background:var(--hm-teal-xpale); color:var(--hm-teal); display:flex; align-items:center; justify-content:center; font-size:1rem; flex-shrink:0; }
.hm-ci-text strong { display:block; font-size:.82rem; font-weight:600; color:var(--hm-text-dark); }
.hm-ci-text span { font-size:.8rem; color:var(--hm-text-mid); }

/* CF7フォームスタイル */
.wpcf7-form .wpcf7-text,
.wpcf7-form .wpcf7-email,
.wpcf7-form .wpcf7-textarea,
.wpcf7-form .wpcf7-select {
  width: 100% !important;
  padding: .85rem 1rem !important;
  border: 1.5px solid var(--hm-border) !important;
  border-radius: 6px !important;
  font-family: 'Noto Serif JP', serif !important;
  font-size: .9rem !important;
  color: var(--hm-text-dark) !important;
  background: var(--hm-warm-white) !important;
  transition: border-color .3s, box-shadow .3s !important;
  outline: none !important;
  -webkit-appearance: none; appearance: none;
}
.wpcf7-form .wpcf7-text:focus,
.wpcf7-form .wpcf7-email:focus,
.wpcf7-form .wpcf7-textarea:focus,
.wpcf7-form .wpcf7-select:focus {
  border-color: var(--hm-teal) !important;
  background: white !important;
  box-shadow: 0 0 0 3px rgba(42,123,123,.1) !important;
}
.wpcf7-form .wpcf7-textarea { min-height: 160px !important; resize: vertical !important; line-height: 1.8 !important; }
.wpcf7-form .wpcf7-submit {
  width: 100% !important;
  background: var(--hm-teal) !important;
  color: white !important;
  border: none !important;
  padding: 1.1rem 2rem !important;
  border-radius: 6px !important;
  font-family: 'Noto Serif JP', serif !important;
  font-size: 1rem !important; font-weight: 700 !important;
  letter-spacing: .06em !important;
  cursor: pointer !important;
  transition: background .3s, transform .3s, box-shadow .3s !important;
  box-shadow: 0 3px 16px rgba(42,123,123,.25) !important;
}
.wpcf7-form .wpcf7-submit:hover {
  background: var(--hm-teal-mid) !important;
  transform: translateY(-2px) !important;
}
.wpcf7-form p { margin-bottom: 1.5rem !important; }
.wpcf7-form label {
  display: block !important;
  font-size: .875rem !important; font-weight: 600 !important;
  color: var(--hm-text-dark) !important;
  margin-bottom: .5rem !important;
}

/* ─── プライバシーポリシーページ ──────────────────────────── */
.hm-privacy-body { max-width: 780px; margin: 0 auto; padding: 60px 5vw; }
.hm-privacy-intro {
  background: var(--hm-teal-xpale); border-radius: 10px;
  padding: 1.8rem 2rem; margin-bottom: 3rem;
  font-size: .9rem; color: var(--hm-text-mid); line-height: 2;
  border-left: 3px solid var(--hm-teal);
}
.hm-privacy-section { margin-bottom: 3rem; }
.hm-privacy-section h2 {
  font-family: 'Shippori Mincho B1', serif !important;
  font-size: 1.15rem !important; font-weight: 700 !important;
  color: var(--hm-text-dark) !important;
  margin-bottom: 1rem !important; padding-bottom: .5rem !important;
  border: none !important; border-bottom: 1px solid var(--hm-border) !important;
  background: none !important;
  display: flex !important; align-items: center !important; gap: .7rem !important;
}
.hm-privacy-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: .75rem; letter-spacing: .1em;
  background: var(--hm-teal); color: white;
  padding: .15rem .5rem; border-radius: 3px;
}
.hm-privacy-section p { font-size:.9rem; color:var(--hm-text-mid); line-height:2.1; margin-bottom:1rem; }
.hm-privacy-section ul { list-style:none; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.hm-privacy-section ul li { font-size:.88rem; color:var(--hm-text-mid); line-height:1.8; padding-left:1.4rem; position:relative; }
.hm-privacy-section ul li::before { content:'—'; position:absolute; left:0; color:var(--hm-teal-mid); }

/* ─── フッター ────────────────────────────────────────────── */
#footer,
.site-footer {
  background: var(--hm-text-dark) !important;
  color: rgba(255,255,255,.5) !important;
  padding: 0 !important;
}
.hm-footer-top {
  max-width: 1100px; margin: 0 auto;
  padding: 3rem 5vw 2rem;
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 2rem; flex-wrap: wrap;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.hm-footer-brand { display:flex; align-items:center; gap:.8rem; }
.hm-footer-brand img { height:30px; filter:brightness(0) invert(1) opacity(.65); }
.hm-footer-brand-name { font-family:'Shippori Mincho B1',serif; font-size:.95rem; color:rgba(255,255,255,.7); }
.hm-footer-brand-name small { display:block; font-family:'Cormorant Garamond',serif; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--hm-teal-light); }
.hm-footer-nav { display:flex; gap:2rem; flex-wrap:wrap; align-items:center; }
.hm-footer-nav a { font-family:'Cormorant Garamond',serif; font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.35); text-decoration:none; transition:color .3s; }
.hm-footer-nav a:hover { color:var(--hm-teal-light); }
.hm-footer-copy { max-width:1100px; margin:0 auto; padding:1.2rem 5vw; font-family:'Cormorant Garamond',serif; font-size:.75rem; letter-spacing:.08em; color:rgba(255,255,255,.2); }

/* ─── Cocoon要素の非表示 ──────────────────────────────────── */
/* 固定ページでは不要なCocoon要素を非表示 */
.page .breadcrumb,
.page .sns-share-buttons,
.page .author-info,
.page .related-entries,
.page .comment-area {
  display: none !important;
}

/* ─── レスポンシブ ───────────────────────────────────────── */
@media (max-width: 860px) {
  .hm-hero-inner { grid-template-columns: 1fr; }
  .hm-hero-card { display: none; } /* モバイルはカード非表示 */
  .hm-philosophy-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .hm-services-grid { grid-template-columns: 1fr; }
  .hm-cta-inner { flex-direction: column; text-align: center; }
  .hm-company-layout { grid-template-columns: 1fr; gap: 3rem; }
  .hm-profile-card { position: static; }
  .hm-phil-grid { grid-template-columns: 1fr; }
  .hm-contact-layout { grid-template-columns: 1fr; gap: 2.5rem; }
}