/*
Theme Name:  Neve Child
Template:    neve
Version:     2.0.0
Description: E・M Holdings カスタム子テーマ
Text Domain: neve-child
*/

/* ============================
   デザイントークン
   ============================ */
:root {
  --em-navy:        #152e45;
  --em-navy-mid:    #1e4268;
  --em-blue:        #2d6fa6;
  /* アクセントカラーは Neve のプライマリカラーに連動 */
  --em-orange:      var(--nv-primary-accent, #009660);
  --em-orange-h:    color-mix(in srgb, var(--nv-primary-accent, #009660), black 15%);
  --em-light:       #f4f6f9;
  --em-lighter:     #edf0f4;
  --em-white:       #ffffff;
  --em-dark:        #1a1a1a;
  --em-text:        #2e2e2e;
  --em-gray:        #6b7280;
  --em-gray-light:  #9ca3af;
  --em-border:      #d9e0ea;
  --em-shadow-sm:   0 2px 10px rgba(0,0,0,0.06);
  --em-shadow-md:   0 6px 24px rgba(0,0,0,0.10);
  --em-shadow-lg:   0 12px 48px rgba(0,0,0,0.14);
  --em-radius:      12px;
  --em-radius-sm:   7px;
  --em-transition:  0.22s ease;
  /* 固定ヘッダー高さ */
  --em-header-h:    80px;
}

/* ============================
   全幅ブロック対応
   （Neve の alignfull 負のマージンを尊重する）
   ============================ */
.wp-block-group.alignfull,
.wp-block-cover.alignfull {
  box-sizing: border-box;
}

/* ============================
   写真プレースホルダー
   ============================ */
.em-photo-placeholder {
  background: linear-gradient(135deg, #e4eaf2 0%, #f4f6f9 100%);
  border: 2px dashed #b8c4d4;
  border-radius: var(--em-radius);
  padding: 40px 20px;
  text-align: center;
  color: var(--em-gray);
  font-size: 0.88rem;
  line-height: 1.7;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 240px;
}

.em-photo-placeholder .ph-icon {
  font-size: 2.8rem;
  opacity: 0.45;
  display: block;
  margin-bottom: 6px;
}

.em-photo-placeholder .ph-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--em-navy);
  display: block;
}

.em-photo-placeholder .ph-desc {
  color: var(--em-gray);
  font-size: 0.82rem;
}

.em-photo-placeholder .ph-size {
  display: inline-block;
  background: rgba(45,111,166,0.12);
  color: var(--em-blue);
  font-size: 0.76rem;
  font-weight: 700;
  padding: 3px 12px;
  border-radius: 20px;
  margin-top: 4px;
}

/* ============================
   セクション共通
   ============================ */
.em-section {
  padding: 56px 32px;
}

.em-section-sm {
  padding: 40px 32px;
}

/* フッター直前のセクションは下余白を縮小 */
.em-section:last-child,
.em-section-dark:last-child {
  padding-bottom: 48px;
}

.em-section-alt {
  background: var(--em-light);
}

.em-section-dark {
  background: var(--em-navy);
  position: relative;
  overflow: hidden;
}

.em-section-dark::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
}

.em-section-dark *,
.em-section-dark .wp-block-heading,
.em-section-dark p {
  color: var(--em-white);
  position: relative;
}

.em-inner {
  max-width: 1060px;
  margin: 0 auto;
}

.em-inner-sm {
  max-width: 720px;
  margin: 0 auto;
}

.em-label {
  display: block;
  text-align: center;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--em-orange);
  font-weight: 800;
  margin-bottom: 10px;
}

.em-section-dark .em-label {
  color: rgba(200,85,26,0.85);
}

.em-title {
  font-size: clamp(1.35rem, 3.2vw, 1.9rem);
  font-weight: 800;
  color: var(--em-navy);
  margin-bottom: 48px;
  line-height: 1.35;
  padding-bottom: 22px;
  position: relative;
}

.em-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 42px;
  height: 4px;
  background: var(--em-orange);
  border-radius: 2px;
}

.em-section-dark .em-title {
  color: var(--em-white);
}

.em-title.em-title-left {
  text-align: left;
  margin-bottom: 28px;
}

.em-title.em-title-left::after {
  left: 0;
  transform: none;
}

/* ============================
   ヒーロー（Cover block対応）
   ============================ */
.em-hero-cover {
  position: relative;
}

.em-hero-cover .wp-block-cover__inner-container {
  /* top: ヘッダー80px + 余白40px */
  padding: calc(var(--em-header-h) + 40px) 24px 64px;
  text-align: center;
}

.em-hero-cover .wp-block-heading,
.em-hero-cover h1 {
  color: var(--em-white) !important;
  font-size: clamp(1.65rem, 4.5vw, 2.7rem) !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  text-shadow: 0 2px 12px rgba(0,0,0,0.3);
  margin-bottom: 10px !important;
}

.em-hero-tag {
  display: inline-block;
  background: var(--em-orange);
  color: var(--em-white) !important;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 5px 16px;
  border-radius: 2px;
  margin-bottom: 20px;
}

.em-hero-sub {
  color: rgba(255,255,255,0.95) !important;
  font-size: clamp(1.05rem, 2.5vw, 1.3rem) !important;
  font-weight: 700 !important;
  margin-bottom: 18px !important;
  text-shadow: 0 1px 6px rgba(0,0,0,0.2);
}

.em-hero-copy {
  color: rgba(255,255,255,0.88) !important;
  font-size: 0.97rem !important;
  line-height: 2.0 !important;
  max-width: 620px;
  margin: 0 auto 40px !important;
  text-shadow: 0 1px 4px rgba(0,0,0,0.15);
}

.em-hero-cover .wp-block-buttons {
  gap: 16px;
}

.em-hero-cover .wp-block-button__link {
  font-weight: 700 !important;
  font-size: 0.95rem;
  padding: 15px 36px !important;
  border-radius: var(--em-radius-sm) !important;
  letter-spacing: 0.02em;
  transition: all var(--em-transition);
}

/* ============================
   選ばれる理由
   ============================ */
.em-reasons-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.em-reason-card {
  background: var(--em-white);
  border-radius: var(--em-radius);
  overflow: hidden;
  box-shadow: var(--em-shadow-md);
  transition: transform var(--em-transition), box-shadow var(--em-transition);
  display: flex;
  flex-direction: column;
}

.em-reason-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--em-shadow-lg);
}

.em-reason-bar {
  height: 6px;
  background: linear-gradient(90deg, var(--em-orange) 0%, var(--em-orange-h) 100%);
}

.em-reason-body {
  padding: 32px 28px;
  flex: 1;
}

.em-reason-num {
  font-size: 3rem;
  font-weight: 900;
  color: var(--em-lighter);
  line-height: 1;
  margin-bottom: 4px;
  font-family: Georgia, serif;
}

.em-reason-card h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--em-navy);
  margin-bottom: 12px;
  line-height: 1.5;
}

.em-reason-card p {
  font-size: 0.88rem;
  color: var(--em-gray);
  line-height: 1.9;
  margin: 0;
}

/* ============================
   サービス内容（左テキスト・右写真）
   ============================ */
.em-service-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  max-width: 1060px;
  margin: 0 auto;
}

.em-service-list {
  list-style: none;
  padding: 0;
  margin: 0 0 36px;
}

.em-service-list li {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 15px 0;
  border-bottom: 1px solid var(--em-border);
  font-weight: 600;
  font-size: 0.97rem;
  color: var(--em-text);
}

.em-service-list li:first-child {
  border-top: 1px solid var(--em-border);
}

.em-service-list li::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  min-width: 6px;
  background: var(--em-orange);
  border-radius: 50%;
}

.em-service-photo {
  position: relative;
}

.em-service-photo .em-photo-placeholder {
  min-height: 360px;
  border-radius: var(--em-radius);
}

/* ============================
   施工事例（Before/After）
   ============================ */
.em-works-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  max-width: 800px;
  margin: 0 auto 48px;
}

.em-works-card {
  border-radius: var(--em-radius);
  overflow: hidden;
  box-shadow: var(--em-shadow-sm);
}

.em-works-label {
  padding: 10px 18px;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.em-works-label.before {
  background: var(--em-gray);
  color: var(--em-white);
}

.em-works-label.after {
  background: var(--em-navy);
  color: var(--em-white);
}

.em-works-photo-area .em-photo-placeholder {
  border-radius: 0;
  border: none;
  min-height: 200px;
}

.em-works-sep {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 32px;
  font-size: 0.9rem;
  color: var(--em-gray);
  line-height: 1.8;
  padding: 20px 0;
  border-top: 1px solid var(--em-border);
  border-bottom: 1px solid var(--em-border);
}

/* ============================
   オーナー様へ（背景写真Cover対応）
   ============================ */
.em-owner-cover .wp-block-cover__inner-container {
  padding: 80px 32px;
}

.em-worry-list {
  list-style: none;
  padding: 0;
  max-width: 540px;
  margin: 0 auto 32px;
}

.em-worry-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 13px 0;
  border-bottom: 1px solid rgba(255,255,255,0.12);
  font-size: 0.97rem;
  color: var(--em-white);
  line-height: 1.6;
}

.em-worry-list li::before {
  content: '✓';
  color: var(--em-orange);
  font-weight: 800;
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: 1px;
}

.em-owner-text {
  max-width: 640px;
  margin: 0 auto 36px !important;
  line-height: 2.0;
  font-size: 0.95rem !important;
  color: rgba(255,255,255,0.88) !important;
}

/* ============================
   売却・購入（左写真・右テキスト）
   ============================ */
.em-buysell-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  max-width: 1060px;
  margin: 0 auto;
}

.em-buysell-photo .em-photo-placeholder {
  min-height: 360px;
  border-radius: var(--em-radius);
}

.em-buysell-lead {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: var(--em-navy) !important;
  margin-bottom: 18px !important;
}

.em-buysell-list {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
}

.em-buysell-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 11px 0;
  border-bottom: 1px solid var(--em-border);
  font-size: 0.92rem;
  color: var(--em-text);
  line-height: 1.6;
}

.em-buysell-list li::before {
  content: '▶';
  color: var(--em-orange);
  font-size: 0.62rem;
  flex-shrink: 0;
  margin-top: 4px;
}

.em-buysell-body {
  font-size: 0.9rem !important;
  color: var(--em-gray) !important;
  line-height: 1.95 !important;
  margin-bottom: 28px !important;
}

/* ============================
   サービスページ個別アイテム
   ============================ */
.em-service-item {
  border-left: 4px solid var(--em-orange);
  padding: 18px 22px;
  margin-bottom: 12px;
  background: var(--em-light);
  border-radius: 0 var(--em-radius-sm) var(--em-radius-sm) 0;
  transition: background var(--em-transition);
}
.em-service-item:hover {
  background: var(--em-lighter);
}
.em-service-item .wp-block-heading {
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--em-navy) !important;
  margin-bottom: 6px !important;
}
.em-service-item .wp-block-paragraph {
  font-size: 0.88rem;
  color: var(--em-gray);
  margin: 0 !important;
  line-height: 1.75;
}

/* ============================
   物件情報
   ============================ */
.em-property-note {
  color: var(--em-gray) !important;
  line-height: 1.85;
  margin-bottom: 32px !important;
  font-size: 0.95rem !important;
}

/* ============================
   お知らせ・ブログ
   ============================ */
.em-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-bottom: 36px;
}

.em-blog-cat {
  background: var(--em-white);
  border-radius: var(--em-radius);
  overflow: hidden;
  box-shadow: var(--em-shadow-sm);
  transition: transform var(--em-transition), box-shadow var(--em-transition);
  display: flex;
  flex-direction: column;
}

.em-blog-cat:hover {
  transform: translateY(-4px);
  box-shadow: var(--em-shadow-md);
}

.em-blog-cat-bar {
  height: 4px;
  background: linear-gradient(90deg, var(--em-blue), var(--em-navy));
}

.em-blog-cat-body {
  padding: 22px 20px;
}

.em-blog-cat h4 {
  font-size: 0.97rem;
  font-weight: 700;
  color: var(--em-navy);
  margin-bottom: 8px;
}

.em-blog-cat p {
  font-size: 0.82rem;
  color: var(--em-gray);
  margin: 0;
  line-height: 1.65;
}

/* ============================
   会社情報
   ============================ */
.em-company-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
  max-width: 1060px;
  margin: 0 auto;
}

.em-company-photo .em-photo-placeholder {
  min-height: 320px;
  border-radius: var(--em-radius);
}

.em-company-info h3 {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--em-white);
  margin-bottom: 16px;
}

.em-company-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 32px;
}

.em-company-table tr {
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.em-company-table th {
  padding: 11px 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(255,255,255,0.55);
  white-space: nowrap;
  padding-right: 20px;
  width: 100px;
}

.em-company-table td {
  padding: 11px 0;
  font-size: 0.88rem;
  color: rgba(255,255,255,0.9);
}

/* ============================
   SNSプレースホルダー
   ============================ */
.em-sns-placeholder {
  text-align: center;
  padding: 48px 24px;
  background: var(--em-white);
  border: 2px dashed var(--em-border);
  border-radius: var(--em-radius);
  max-width: 720px;
  margin: 0 auto;
  color: var(--em-gray);
  font-size: 0.9rem;
  line-height: 1.8;
}

.em-sns-placeholder p {
  margin: 4px 0;
}

/* ============================
   ボタン
   ============================ */
.em-btn-orange .wp-block-button__link,
.wp-block-button .em-btn-orange-link {
  background: var(--em-orange) !important;
  color: var(--em-white) !important;
  border-radius: var(--em-radius-sm) !important;
  font-weight: 700 !important;
  border: none !important;
  transition: background var(--em-transition), transform var(--em-transition) !important;
}

.em-btn-orange .wp-block-button__link:hover {
  filter: brightness(0.88);
  transform: translateY(-2px);
}

.em-btn-outline-white .wp-block-button__link {
  background: transparent !important;
  color: var(--em-white) !important;
  border: 2px solid rgba(255,255,255,0.6) !important;
  border-radius: var(--em-radius-sm) !important;
  font-weight: 700 !important;
  transition: all var(--em-transition) !important;
}

.em-btn-outline-white .wp-block-button__link:hover {
  background: rgba(255,255,255,0.12) !important;
  border-color: var(--em-white) !important;
}

.em-btn-navy .wp-block-button__link {
  background: var(--em-navy) !important;
  color: var(--em-white) !important;
  border-radius: var(--em-radius-sm) !important;
  font-weight: 700 !important;
}

/* ============================
   レスポンシブ
   ============================ */
@media (max-width: 900px) {
  .em-reasons-grid {
    grid-template-columns: 1fr;
    max-width: 480px;
    margin: 0 auto;
  }

  .em-service-split,
  .em-buysell-split,
  .em-company-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .em-works-grid {
    grid-template-columns: 1fr;
    max-width: 420px;
  }

  .em-blog-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .em-section {
    padding: 44px 20px;
  }

  .em-section-sm {
    padding: 32px 20px;
  }

  .em-section:last-child,
  .em-section-dark:last-child {
    padding-bottom: 36px;
  }

  .em-hero-cover .wp-block-cover__inner-container {
    padding: calc(var(--em-header-h) + 28px) 20px 44px;
  }

  .em-hero {
    padding: calc(var(--em-header-h) + 24px) 20px 32px;
  }
}

@media (max-width: 480px) {
  .em-hero-cover .wp-block-buttons {
    flex-direction: column;
    align-items: center;
  }
}

/* ============================
   wp:columns カード（選ばれる理由）
   ============================ */
.em-reasons-grid.wp-block-columns {
  gap: 22px !important;
  align-items: stretch !important;
}
.em-reasons-grid > .wp-block-column {
  background: var(--em-white);
  border-radius: var(--em-radius);
  overflow: hidden;
  box-shadow: var(--em-shadow-md);
  transition: transform var(--em-transition), box-shadow var(--em-transition);
  border-top: 6px solid var(--em-orange);
  padding: 28px 24px 32px !important;
}
.em-reasons-grid > .wp-block-column:hover {
  transform: translateY(-5px);
  box-shadow: var(--em-shadow-lg);
}
.em-reasons-grid .em-reason-num {
  font-size: 2.8rem !important;
  font-weight: 900 !important;
  color: var(--em-lighter) !important;
  line-height: 1 !important;
  margin-bottom: 8px !important;
  font-family: Georgia, serif;
}
.em-reasons-grid .wp-block-heading {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: var(--em-navy) !important;
  margin-bottom: 10px !important;
}
.em-reasons-grid .wp-block-paragraph:not(.em-reason-num) {
  font-size: 0.88rem;
  color: var(--em-gray);
  line-height: 1.9;
  margin: 0;
}

/* ============================
   wp:columns 分割レイアウト
   ============================ */
.em-service-split.wp-block-columns,
.em-buysell-split.wp-block-columns,
.em-company-cols.wp-block-columns {
  gap: 56px !important;
  align-items: center !important;
}
/* 写真カラムの画像を角丸に */
.em-col-photo,
.em-col-photo img {
  border-radius: var(--em-radius);
  width: 100%;
  height: auto;
  display: block;
}
/* 写真が未設定の場合のプレースホルダー表示 */
.em-col-photo:not(:has(img[src]:not([src=""]))) {
  background: linear-gradient(135deg,#e4eaf2 0%,#f4f6f9 100%);
  border: 2px dashed var(--em-border);
  border-radius: var(--em-radius);
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--em-gray);
  font-size: 0.85rem;
  text-align: center;
}

/* ============================
   wp:list スタイル（各セクション）
   ============================ */

/* サービス一覧 */
.em-service-split .wp-block-list {
  list-style: none !important;
  padding: 0 !important;
  margin-bottom: 28px !important;
}
.em-service-split .wp-block-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 0;
  border-bottom: 1px solid var(--em-border);
  font-weight: 600;
  font-size: 0.97rem;
  color: var(--em-text);
}
.em-service-split .wp-block-list li:first-child {
  border-top: 1px solid var(--em-border);
}
.em-service-split .wp-block-list li::before {
  content: '';
  display: inline-block;
  width: 7px;
  height: 7px;
  min-width: 7px;
  background: var(--em-orange);
  border-radius: 50%;
}

/* お悩みリスト（Coverブロック・ダーク背景） */
.em-owner-cover .wp-block-list {
  list-style: none !important;
  padding: 0 !important;
  max-width: 540px;
  margin: 0 auto 28px !important;
}
.em-owner-cover .wp-block-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,0.13);
  font-size: 0.97rem;
  color: var(--em-white) !important;
  line-height: 1.65;
}
.em-owner-cover .wp-block-list li::before {
  content: '✓';
  color: var(--em-orange);
  font-weight: 800;
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: 2px;
}

/* 売却・購入リスト */
.em-buysell-split .wp-block-list {
  list-style: none !important;
  padding: 0 !important;
  margin-bottom: 20px !important;
}
.em-buysell-split .wp-block-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 11px 0;
  border-bottom: 1px solid var(--em-border);
  font-size: 0.92rem;
  color: var(--em-text);
  line-height: 1.6;
}
.em-buysell-split .wp-block-list li::before {
  content: '▶';
  color: var(--em-orange);
  font-size: 0.62rem;
  flex-shrink: 0;
  margin-top: 3px;
}

/* ============================
   wp:columns カード（ブログ）
   ============================ */
.em-blog-cols.wp-block-columns {
  gap: 20px !important;
  margin-bottom: 28px !important;
}
.em-blog-cols > .wp-block-column {
  background: var(--em-white);
  border-radius: var(--em-radius);
  overflow: hidden;
  box-shadow: var(--em-shadow-sm);
  transition: transform var(--em-transition), box-shadow var(--em-transition);
  border-top: 4px solid var(--em-blue);
  padding: 20px 18px 22px !important;
}
.em-blog-cols > .wp-block-column:hover {
  transform: translateY(-4px);
  box-shadow: var(--em-shadow-md);
}
.em-blog-cols .wp-block-heading {
  font-size: 0.97rem !important;
  font-weight: 700 !important;
  color: var(--em-navy) !important;
  margin-bottom: 8px !important;
}
.em-blog-cols .wp-block-paragraph {
  font-size: 0.82rem;
  color: var(--em-gray);
  margin: 0;
  line-height: 1.65;
}

/* ============================
   レスポンシブ（columns追加分）
   ============================ */
@media (max-width: 900px) {
  .em-service-split.wp-block-columns,
  .em-buysell-split.wp-block-columns,
  .em-company-cols.wp-block-columns {
    gap: 36px !important;
  }
  .em-reasons-grid.wp-block-columns {
    flex-direction: column !important;
  }
  .em-blog-cols.wp-block-columns {
    flex-direction: column !important;
  }
}

/* ============================
   後方互換：旧クラス名エイリアス
   （物件情報ページなど）
   ============================ */

/* em-hero: 固定ページのヘッダーセクション（Coverブロック以外） */
.em-hero {
  background: linear-gradient(135deg, var(--em-navy) 0%, var(--em-navy-mid) 100%);
  /* top: ヘッダー80px + 余白36px */
  padding: calc(var(--em-header-h) + 36px) 24px 40px;
  text-align: center;
}

/* ヒーロー直後のセクションは上パディングを短縮 */
.em-hero + .em-section,
.em-hero + * > .em-section:first-child {
  padding-top: 44px;
}

.em-hero .wp-block-heading,
.em-hero h1, .em-hero h2 {
  color: var(--em-white) !important;
  font-size: clamp(1.55rem, 4vw, 2.3rem) !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  margin-bottom: 10px !important;
}

.em-hero .em-hero-sub,
.em-hero p.em-hero-sub {
  color: var(--em-white) !important;
  font-size: clamp(1rem, 2.5vw, 1.3rem) !important;
  font-weight: 700 !important;
  margin-bottom: 16px !important;
}

.em-hero .em-hero-copy,
.em-hero p.em-hero-copy {
  color: rgba(255,255,255,0.88) !important;
  font-size: 0.97rem !important;
  line-height: 1.95 !important;
  max-width: 600px;
  margin: 0 auto 36px !important;
}

/* em-section-label → em-label の旧名 */
.em-section-label {
  display: block;
  text-align: center;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--em-orange) !important;
  font-weight: 800;
  margin-bottom: 8px !important;
}

/* em-section-title → em-title の旧名 */
.em-section-title {
  font-size: clamp(1.35rem, 3.2vw, 1.9rem) !important;
  font-weight: 800 !important;
  color: var(--em-navy) !important;
  text-align: center;
  margin-bottom: 44px !important;
  padding-bottom: 22px;
  position: relative;
}

.em-section-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 42px;
  height: 4px;
  background: var(--em-orange);
  border-radius: 2px;
}

.em-section-dark .em-section-title {
  color: var(--em-white) !important;
}
