@charset "utf-8";
/*
Theme Name: Ankle Child (iYON)
Theme URI: https://iyon.4meee.com/
Description: iYON 用 Ankle 子テーマ。親テーマ(Ankle 1.4.8 / フォルダ名 ankle_tcd092)は無改変。トップページ(玉井詩織アンバサダーLP)・共通ヘッダー/フッターの新デザインを実装。
Author: iYON / あおき
Template: ankle_tcd092
Version: 0.1.3
Text Domain: tcd-ankle-child
*/

/* =============================================================================
   構成メモ
   - 親テーマ style.css は functions.php で 'ankle-parent' として読み込み（本ファイルより前）。
   - 本ファイルは「共通ヘッダー/フッターの新デザイン」＋「トップLPのセクションCSS」を担当。
   - 下層ページ既存デザイン維持のための親CSS移植（Step3・約380〜450行）は
     移植台帳の確認後に本ファイル末尾へ追記予定（現状は未移植＝TODO）。
   - 汎用クラス衝突を避けるため、共通部は .iyon-site-header / .iyon-site-footer、
     LP本文は .iyon-lp 配下にスコープしている。
   ============================================================================= */

/* --- スコープ内リセット（親テーマ全体には影響させない） --------------------- */
.iyon-lp *, .iyon-lp *::before, .iyon-lp *::after,
.iyon-site-header *, .iyon-site-header *::before, .iyon-site-header *::after,
.iyon-site-footer *, .iyon-site-footer *::before, .iyon-site-footer *::after {
  box-sizing: border-box;
}
.iyon-lp img, .iyon-lp video { display: block; max-width: 100%; height: auto; }
.iyon-lp a, .iyon-site-header a, .iyon-site-footer a { text-decoration: none; color: inherit; }

/* LP は不透明な白地。親テーマが全ページに敷く固定背景(bg_minamo 水面)より前面に置き、
   新デザイン(白基調)を維持する。ヒーローは動画/オーバーレイがこの白地を覆う。
   ※ bg_minamo 自体は下層ページでは従来どおり表示される（§3 全ページ引き継ぎ）。 */
.iyon-lp { position: relative; z-index: 1; background: #fff; font-family: 'Noto Sans JP', sans-serif; color: #2D2A26; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
.iyon-lp .font-display { font-family: 'Cormorant Garamond', serif; }
.iyon-lp .font-serif-jp { font-family: 'Noto Serif JP', serif; }

/* 下層ページ（非フロント）は固定ヘッダー分の余白を確保
   TODO: 親テーマの上部余白と実機で突き合わせて数値調整 */
body:not(.home):not(.front-page) { padding-top: 80px; }

/* --- アニメーション ---------------------------------------------------------- */
@keyframes iyonFadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes iyonScaleY   { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes iyonScrollLine { 0% { transform: translateY(-100%); } 100% { transform: translateY(100%); } }
@keyframes iyonFadeIn   { from { opacity: 0; } to { opacity: 1; } }

.iyon-lp .animate-fade-in-up { animation: iyonFadeInUp 1s cubic-bezier(0.23,1,0.32,1) forwards; opacity: 0; }
.iyon-lp .animate-scale-y    { animation: iyonScaleY 0.8s cubic-bezier(0.23,1,0.32,1) forwards; transform-origin: top; }
.iyon-lp .animate-fade-in    { animation: iyonFadeIn 1.5s ease forwards; opacity: 0; }

.iyon-lp .delay-300  { animation-delay: 0.3s; }
.iyon-lp .delay-500  { animation-delay: 0.5s; }
.iyon-lp .delay-800  { animation-delay: 0.8s; }
.iyon-lp .delay-1000 { animation-delay: 1.0s; }
.iyon-lp .delay-1200 { animation-delay: 1.2s; }
.iyon-lp .delay-1400 { animation-delay: 1.4s; }
.iyon-lp .delay-2500 { animation-delay: 2.5s; }

/* スクロールで表示 */
.iyon-lp .reveal { opacity: 0; transform: translateY(20px); transition: opacity 1s cubic-bezier(0.23,1,0.32,1), transform 1s cubic-bezier(0.23,1,0.32,1); }
.iyon-lp .reveal.visible { opacity: 1; transform: translateY(0); }

/* =============================================================================
   共通ヘッダー（全ページ）
   - フロント: .is-overlay（ヒーロー上に透過・白文字）→ スクロールで .is-scrolled（白背景）
   - 下層:     .is-solid（常に白背景・濃色）
   ============================================================================= */
.iyon-site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 50; transition: background .5s ease, box-shadow .5s ease; }
.iyon-site-header .iyon-header-inner { max-width: 1400px; margin: 0 auto; padding: 0 40px; display: flex; align-items: center; justify-content: space-between; height: 80px; }

.iyon-site-header .iyon-logo { display: inline-flex; align-items: center; }
.iyon-site-header .iyon-logo svg { height: 28px; width: auto; transition: fill .5s ease, opacity .5s ease; }

.iyon-site-header .iyon-nav { display: flex; align-items: center; gap: 40px; font-size: 12px; letter-spacing: .18em; transition: color .5s ease; }
.iyon-site-header .iyon-nav a { transition: opacity .3s ease; }
.iyon-site-header .iyon-nav a:hover { opacity: .6; }
/* wp_nav_menu 出力(ul/li)を横並び整形 */
.iyon-site-header .iyon-nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 40px; }
.iyon-site-header .iyon-nav li { margin: 0; }

/* --- 透過状態（フロント最上部） --- */
.iyon-site-header.is-overlay:not(.is-scrolled) { background: transparent; box-shadow: none; }
.iyon-site-header.is-overlay:not(.is-scrolled) .iyon-logo svg { fill: #fff; opacity: .9; }
.iyon-site-header.is-overlay:not(.is-scrolled) .iyon-nav { color: rgba(255,255,255,.8); }

/* --- 不透明状態（スクロール後 or 下層ページ） --- */
.iyon-site-header.is-scrolled,
.iyon-site-header.is-solid { background: rgba(255,255,255,.95); backdrop-filter: blur(12px); box-shadow: 0 1px 0 rgba(0,0,0,.04); }
.iyon-site-header.is-scrolled .iyon-logo svg,
.iyon-site-header.is-solid .iyon-logo svg { fill: #656565; opacity: 1; } /* ブランドのロゴ色（gray_logo.png=#656565 / 親指定#656464 に一致） */
.iyon-site-header.is-scrolled .iyon-nav,
.iyon-site-header.is-solid .iyon-nav { color: #6B6560; }

/* =============================================================================
   SPナビ：ハンバーガー＋ドロワー（≤768px）
   - 支給デザインには無い新規。新LPトンマナに準拠：白基調・ブランドグレー #656565、
     1px の細線モチーフ（hero-line / divider-line と同質）、トラッキング .18em、
     イージングは LP 共通の cubic-bezier(0.23,1,0.32,1)。新規の色・装飾は持ち込まない。
   - PC(>768px)では非表示（グローバルナビが出るため）。CSS末尾のメディアクエリで表示制御。
   ============================================================================= */
/* ハンバーガーボタン（既定は非表示。SPで表示） */
.iyon-site-header .iyon-burger { display: none; position: relative; width: 28px; height: 20px; padding: 0; margin: 0; border: 0; background: transparent; cursor: pointer; }
.iyon-site-header .iyon-burger span { position: absolute; left: 0; width: 100%; height: 1px; background: #656565; transition: background .5s ease, transform .5s cubic-bezier(0.23,1,0.32,1), opacity .3s ease; }
.iyon-site-header .iyon-burger span:nth-child(1) { top: 3px; }
.iyon-site-header .iyon-burger span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.iyon-site-header .iyon-burger span:nth-child(3) { bottom: 3px; }
/* ヘッダー透過時（フロント最上部）は白線 */
.iyon-site-header.is-overlay:not(.is-scrolled) .iyon-burger span { background: #fff; }

/* ドロワー本体（初期は非表示・非操作） */
.iyon-drawer { position: fixed; inset: 0; z-index: 60; visibility: hidden; pointer-events: none; }
.iyon-drawer .iyon-drawer-overlay { position: absolute; inset: 0; background: rgba(45,42,38,.25); opacity: 0; transition: opacity .5s ease; }
.iyon-drawer .iyon-drawer-panel {
  position: absolute; top: 0; right: 0; height: 100%; width: 82%; max-width: 340px;
  background: #fff; box-shadow: -8px 0 60px rgba(0,0,0,.06);
  display: flex; flex-direction: column; justify-content: center;
  padding: 88px 40px 48px;
  transform: translateX(100%); transition: transform .6s cubic-bezier(0.23,1,0.32,1);
}
/* 開いた状態（body.iyon-drawer-open で制御） */
body.iyon-drawer-open .iyon-drawer { visibility: visible; pointer-events: auto; }
body.iyon-drawer-open .iyon-drawer .iyon-drawer-overlay { opacity: 1; }
body.iyon-drawer-open .iyon-drawer .iyon-drawer-panel { transform: translateX(0); }
/* 開いた状態でハンバーガーを × に */
body.iyon-drawer-open .iyon-site-header .iyon-burger span:nth-child(1) { top: 50%; transform: translateY(-50%) rotate(45deg); background: #656565; }
body.iyon-drawer-open .iyon-site-header .iyon-burger span:nth-child(2) { opacity: 0; }
body.iyon-drawer-open .iyon-site-header .iyon-burger span:nth-child(3) { bottom: auto; top: 50%; transform: translateY(-50%) rotate(-45deg); background: #656565; }

/* 閉じるボタン（× 細線） */
.iyon-drawer .iyon-drawer-close { position: absolute; top: 24px; right: 28px; width: 24px; height: 24px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.iyon-drawer .iyon-drawer-close span { position: absolute; top: 50%; left: 0; width: 100%; height: 1px; background: #656565; }
.iyon-drawer .iyon-drawer-close span:nth-child(1) { transform: translateY(-50%) rotate(45deg); }
.iyon-drawer .iyon-drawer-close span:nth-child(2) { transform: translateY(-50%) rotate(-45deg); }

/* ドロワー内ナビ（LPの縦積み・センター・細線区切りのトンマナ） */
.iyon-drawer .iyon-drawer-nav ul { list-style: none; margin: 0; padding: 0; }
.iyon-drawer .iyon-drawer-nav li {
  margin: 0; text-align: center;
  border-bottom: 1px solid #EDEBE8;
  /* 開くときにLPの .reveal と同質のフェードアップ（項目ごとにディレイ） */
  opacity: 0; transform: translateY(12px);
  transition: opacity .8s cubic-bezier(0.23,1,0.32,1), transform .8s cubic-bezier(0.23,1,0.32,1);
}
.iyon-drawer .iyon-drawer-nav li:first-child { border-top: 1px solid #EDEBE8; }
.iyon-drawer .iyon-drawer-nav a {
  display: block; padding: 20px 8px;
  font-size: 13px; letter-spacing: .18em; text-transform: uppercase;
  color: #6B6560; transition: color .3s ease;
}
.iyon-drawer .iyon-drawer-nav a:hover { color: #656565; }
body.iyon-drawer-open .iyon-drawer .iyon-drawer-nav li { opacity: 1; transform: translateY(0); }
body.iyon-drawer-open .iyon-drawer .iyon-drawer-nav li:nth-child(1) { transition-delay: .18s; }
body.iyon-drawer-open .iyon-drawer .iyon-drawer-nav li:nth-child(2) { transition-delay: .26s; }
body.iyon-drawer-open .iyon-drawer .iyon-drawer-nav li:nth-child(3) { transition-delay: .34s; }
body.iyon-drawer-open .iyon-drawer .iyon-drawer-nav li:nth-child(4) { transition-delay: .42s; }
body.iyon-drawer-open .iyon-drawer .iyon-drawer-nav li:nth-child(5) { transition-delay: .50s; }

/* 下部の細線ドット区切り（フッターと同質の装飾） */
.iyon-drawer .iyon-drawer-divider { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 40px; }
.iyon-drawer .iyon-drawer-divider-line { width: 24px; height: 1px; background: #E5E2DE; }
.iyon-drawer .iyon-drawer-divider-dot { width: 4px; height: 4px; border-radius: 50%; background: #D4CFC8; }

/* =============================================================================
   トップ LP セクション
   ============================================================================= */
/* Hero */
.iyon-lp .hero { position: relative; width: 100%; height: 100vh; }
.iyon-lp .hero-video { position: absolute; inset: 0; }
.iyon-lp .hero-video video { width: 100%; height: 100%; object-fit: cover; }
.iyon-lp .hero-video .video-desktop { display: block; }
.iyon-lp .hero-video .video-mobile { display: none; }
.iyon-lp .hero-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.6), rgba(0,0,0,.15) 50%, rgba(0,0,0,.25)); }
.iyon-lp .hero-content { position: relative; z-index: 10; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; text-align: center; color: #fff; }
.iyon-lp .hero-line { width: 1px; height: 64px; background: rgba(255,255,255,.4); margin: 0 auto; }
.iyon-lp .hero-label { font-size: 15px; letter-spacing: .5em; opacity: .7; text-transform: uppercase; margin-bottom: 12px; }
.iyon-lp .hero-title { font-size: 42px; letter-spacing: .18em; font-weight: 300; line-height: 1.6; margin-bottom: 16px; }
.iyon-lp .hero-subtitle { font-size: 15px; letter-spacing: .3em; opacity: .6; font-weight: 300; }
.iyon-lp .hero-scroll { position: absolute; bottom: 32px; left: 50%; transform: translateX(-50%); z-index: 10; text-align: center; }
.iyon-lp .hero-scroll p { font-size: 9px; letter-spacing: .3em; color: rgba(255,255,255,.5); text-transform: uppercase; margin-bottom: 12px; }
.iyon-lp .hero-scroll-bar { width: 1px; height: 40px; background: rgba(255,255,255,.3); margin: 0 auto; position: relative; overflow: hidden; }
.iyon-lp .hero-scroll-bar::after { content: ''; position: absolute; width: 100%; height: 33%; background: rgba(255,255,255,.7); animation: iyonScrollLine 1.8s linear infinite; }

/* Intro */
.iyon-lp .section-intro { padding: 128px 24px; text-align: center; }
.iyon-lp .section-intro-inner { max-width: 600px; margin: 0 auto; }
.iyon-lp .section-label { font-size: 12px; letter-spacing: .6em; color: #B5AFA8; text-transform: uppercase; margin-bottom: 48px; }
.iyon-lp .section-heading { font-size: 30px; line-height: 2.2; letter-spacing: .08em; font-weight: 300; margin-bottom: 56px; }
.iyon-lp .divider { display: flex; align-items: center; justify-content: center; gap: 16px; margin-bottom: 56px; }
.iyon-lp .divider-line { width: 32px; height: 1px; background: #D4CFC8; }
.iyon-lp .divider-dot { width: 6px; height: 6px; border-radius: 50%; border: 1px solid #D4CFC8; }
.iyon-lp .section-text { font-size: 15px; line-height: 2.6; color: #6B6560; letter-spacing: .05em; font-weight: 300; }

/* Photo */
.iyon-lp .photo-main { position: relative; max-width: 1000px; margin: 0 auto; }
.iyon-lp .photo-main-caption { position: absolute; left: -60px; top: 50%; transform: translateY(-50%) rotate(180deg); writing-mode: vertical-lr; font-size: 10px; letter-spacing: .4em; color: #B5AFA8; text-transform: uppercase; }
.iyon-lp .photo-full { width: 100%; max-height: 85vh; object-fit: cover; }

/* Profile */
.iyon-lp .section-profile { padding: 128px 24px; text-align: center; }
.iyon-lp .profile-inner { max-width: 550px; margin: 0 auto; }
.iyon-lp .profile-line { width: 1px; height: 48px; background: #D4CFC8; margin: 0 auto 40px; }
.iyon-lp .profile-name { font-size: 34px; letter-spacing: .3em; font-weight: 300; margin-bottom: 12px; }
.iyon-lp .profile-name-en { font-size: 16px; letter-spacing: .25em; color: #B5AFA8; font-style: italic; margin-bottom: 48px; }
.iyon-lp .profile-text { font-size: 14px; line-height: 2.6; color: #7A756F; letter-spacing: .05em; font-weight: 300; }

/* YouTube */
.iyon-lp .section-youtube { padding: 128px 24px; background: #FAFAF8; text-align: center; }
.iyon-lp .youtube-inner { max-width: 900px; margin: 0 auto; }
.iyon-lp .youtube-heading { font-size: 28px; letter-spacing: .12em; font-weight: 300; margin-bottom: 16px; }
.iyon-lp .youtube-wrapper { position: relative; width: 100%; padding-bottom: 56.25%; overflow: hidden; box-shadow: 0 8px 60px rgba(0,0,0,.06); }
.iyon-lp .youtube-wrapper iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; }
.iyon-lp .youtube-caption { margin-top: 32px; font-size: 11px; letter-spacing: .2em; color: #B5AFA8; font-style: italic; }

/* CTA */
.iyon-lp .section-cta { padding: 112px 24px; position: relative; text-align: center; }
.iyon-lp .section-cta::before { content: ''; position: absolute; inset: 0; opacity: .02; background-image: repeating-linear-gradient(90deg, #000 0px, #000 1px, transparent 1px, transparent 80px); }
.iyon-lp .cta-inner { max-width: 600px; margin: 0 auto; position: relative; z-index: 1; }
.iyon-lp .cta-line { width: 1px; height: 40px; background: #D4CFC8; margin: 0 auto 40px; }
.iyon-lp .cta-heading { font-size: 26px; letter-spacing: .1em; font-weight: 300; margin-bottom: 12px; }
.iyon-lp .cta-sub { font-size: 12px; color: #9B958E; letter-spacing: .15em; font-weight: 300; margin-bottom: 56px; }
.iyon-lp .cta-button { display: inline-flex; align-items: center; gap: 12px; border: 1px solid #2D2A26; color: #2D2A26; padding: 16px 56px; font-size: 11px; letter-spacing: .3em; text-transform: uppercase; transition: all .4s ease; }
.iyon-lp .cta-button:hover { background: #2D2A26; color: #fff; }
.iyon-lp .cta-button-line { display: inline-block; width: 16px; height: 1px; background: currentColor; transition: width .3s ease; }
.iyon-lp .cta-button:hover .cta-button-line { width: 24px; }

/* News（ラインナップ直下。細線リスト＝ドロワー/フッターと同質のトンマナ） */
.iyon-lp .section-news { padding: 128px 24px; text-align: center; background: #fff; }
.iyon-lp .news-inner { max-width: 600px; margin: 0 auto; }
.iyon-lp .news-heading { font-size: 26px; letter-spacing: .1em; font-weight: 300; margin-bottom: 12px; }
.iyon-lp .news-list { list-style: none; margin: 0 0 56px; padding: 0; text-align: left; }
.iyon-lp .news-list li { border-bottom: 1px solid #EDEBE8; }
.iyon-lp .news-list li:first-child { border-top: 1px solid #EDEBE8; }
.iyon-lp .news-list a { display: flex; align-items: baseline; gap: 24px; padding: 20px 8px; color: inherit; transition: opacity .3s ease; }
.iyon-lp .news-list a:hover { opacity: .6; }
.iyon-lp .news-date { font-size: 11px; letter-spacing: .15em; color: #B5AFA8; white-space: nowrap; }
.iyon-lp .news-title { font-size: 13px; letter-spacing: .05em; color: #6B6560; line-height: 1.8; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }

/* =============================================================================
   共通フッター（全ページ）
   ============================================================================= */
.iyon-site-footer { padding: 64px 24px; border-top: 1px solid #EDEBE8; text-align: center; background: #fff; }
.iyon-site-footer .iyon-footer-logo svg { height: 20px; width: auto; opacity: .5; fill: #656565; margin: 0 auto 32px; } /* ブランドのロゴ色に統一 */
.iyon-site-footer .iyon-footer-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 32px; margin-bottom: 40px; font-size: 10px; letter-spacing: .2em; color: #B5AFA8; text-transform: uppercase; }
.iyon-site-footer .iyon-footer-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 32px; }
.iyon-site-footer .iyon-footer-nav a:hover { color: #6B6560; }
.iyon-site-footer .iyon-footer-social { display: flex; justify-content: center; align-items: center; gap: 24px; margin-bottom: 32px; }
.iyon-site-footer .iyon-footer-social a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; color: #9B958E; transition: color .3s ease, transform .3s ease; }
.iyon-site-footer .iyon-footer-social a:hover { color: #2D2A26; transform: scale(1.1); }
.iyon-site-footer .iyon-footer-social svg { width: 20px; height: 20px; }
.iyon-site-footer .iyon-footer-divider { display: flex; align-items: center; justify-content: center; gap: 16px; margin-bottom: 24px; }
.iyon-site-footer .iyon-footer-divider-line { width: 24px; height: 1px; background: #E5E2DE; }
.iyon-site-footer .iyon-footer-divider-dot { width: 4px; height: 4px; border-radius: 50%; background: #D4CFC8; }
.iyon-site-footer .iyon-footer-copy { font-size: 9px; color: #C8C3BC; letter-spacing: .15em; }

/* =============================================================================
   トップへ戻る（§7-2: 親 #return_top の機能継承・新トンマナで刷新）
   1px細線サークル＋シェブロン。ドロワーと同じ #656565 / cubic-bezier(0.23,1,0.32,1)。
   表示制御は iyon.js（scrollY>400 で .is-visible）。
   ============================================================================= */
.iyon-return-top {
  position: fixed; right: 24px; bottom: 24px; z-index: 40; /* ヘッダー(50)・ドロワー(60)より下 */
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  width: 56px; height: 56px; border-radius: 50%;
  background: rgba(255,255,255,.92); border: 1px solid #D4CFC8;
  color: #656565; font-size: 8px; letter-spacing: .2em; text-transform: uppercase;
  opacity: 0; visibility: hidden; transform: translateY(12px);
  transition: opacity .6s cubic-bezier(0.23,1,0.32,1), transform .6s cubic-bezier(0.23,1,0.32,1),
              visibility .6s, border-color .3s ease;
}
.iyon-return-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.iyon-return-top:hover { border-color: #656565; }
.iyon-return-top svg { width: 12px; height: 8px; }

/* =============================================================================
   レスポンシブ（≤768px）
   ============================================================================= */
@media (max-width: 768px) {
  .iyon-site-header .iyon-header-inner { padding: 0 24px; height: 64px; }
  .iyon-site-header .iyon-logo svg { height: 22px; }
  /* SP：横並びナビは隠し、ハンバーガー（→ドロワー）に置換 */
  .iyon-site-header .iyon-nav { display: none; }
  .iyon-site-header .iyon-burger { display: block; }
  body:not(.home):not(.front-page) { padding-top: 64px; }

  .iyon-lp .hero-title { font-size: 28px; }
  .iyon-lp .hero-label, .iyon-lp .hero-subtitle { font-size: 13px; }
  .iyon-lp .hero-video .video-desktop { display: none; }
  .iyon-lp .hero-video .video-mobile { display: block; }
  .iyon-lp .section-intro { padding: 96px 24px; }
  .iyon-lp .section-heading { font-size: 22px; }
  .iyon-lp .section-text { font-size: 13px; }
  .iyon-lp .section-profile { padding: 96px 24px; }
  .iyon-lp .profile-name { font-size: 26px; }
  .iyon-lp .profile-name-en { font-size: 14px; }
  .iyon-lp .profile-text { font-size: 12px; }
  .iyon-lp .section-youtube { padding: 96px 24px; }
  .iyon-lp .youtube-heading { font-size: 20px; }
  .iyon-lp .section-cta { padding: 80px 24px; }
  .iyon-lp .cta-heading { font-size: 20px; }
  .iyon-lp .photo-main-caption { display: none; }

  .iyon-lp .section-news { padding: 96px 24px; }
  .iyon-lp .news-heading { font-size: 20px; }
  .iyon-lp .news-list a { flex-direction: column; gap: 6px; padding: 18px 4px; }
  .iyon-lp .news-title { -webkit-line-clamp: 2; }

  .iyon-return-top { right: 16px; bottom: 16px; width: 48px; height: 48px; }
}

/* =============================================================================
   下層ページ: 見出し・日付フォントをTOPと統一
   親の --tcd-font-type3 は Cormorant Garamond 先頭（英字=鋭いセリフ・
   日付=オールドスタイル数字）＋和文は游明朝フォールバックで、TOPの
   Noto Serif JP（見出し明朝）と質感が揃っていなかった。
   Cormorant を外し Noto Serif JP 先頭に差し替え：英字・数字・和文とも
   TOPの見出しと同一フォントになる（数字はライニングで揃う）。
   フォントは子テーマで全ページ読み込み済みのため追加ロードなし。
   ============================================================================= */
:root {
  --tcd-font-type3: "Noto Serif JP", "游明朝", "Yu Mincho", "游明朝体", "YuMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HiraMinProN-W3", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
}

/* 文字間・ウェイトもTOPの値に統一（親はすべて letter-spacing:normal / 英字大見出しのみ600） */
.rich_font { letter-spacing: .08em; }                       /* 基準: TOPのsection-heading(.08em) */
.title.rich_font { letter-spacing: .05em; }                  /* 記事タイトル: TOPのnews-title(.05em) */
li.date, p.date { font-family: "Noto Sans JP", sans-serif; font-size: 11px; letter-spacing: .15em; } /* 日付: TOPのnews-dateと同一（サンセリフ・11px・.15em） */

/* ページ見出しをTOPのセクション見出しと同じ型に:
   英字（News/About Us等）= TOPのセクションラベル（Cormorant・.6em・グレー・小さく）
   和文（お知らせ等・親設定では非表示）= 主見出しに昇格（TOPの明朝見出し扱い）
   見出し下 = TOPと同じ細線＋ドットのディバイダー（親の緑線は削除） */
/* 親は「テンプレート生成のアーカイブ見出し(.common_header内)」と「固定ページ本文の手書き見出し」で
   セレクタが分かれ、マージン値も別（負マージン等）。差が出ないよう両系統を同値で明示上書きする */
.heading .heading_top,
.common_header .heading_top {
  font-family: "Cormorant Garamond", serif;
  font-size: 14px !important; /* 親の動的CSS(36px)より後勝ちできないため最小限のimportant */
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: .6em;
  text-transform: uppercase;
  color: #B5AFA8;
  margin: 0 0 48px; /* 行間はTOPのラベル→見出し(48px)と同じリズム。親の負マージンもリセット */
}
.heading .heading_top::after { content: none; } /* 親の緑アンダーラインを削除 */
.heading br { display: none; } /* 保険: 本文編集でスパン間に改行が入るとwpautopがbrを生成し行間が崩れるため無効化。
   本体はAbout本文(ID95)の改行削除で対応済み（ローカル反映済み・本番は公開時に同じ編集が必要） */
.heading .heading_bottom,
.common_header .heading_top + .heading_bottom {
  display: block;
  font-size: 26px;
  font-weight: 300;
  letter-spacing: .1em;
  margin-top: 0; /* 親の系統別マージン（-0.5em／calc(20px-0.7em)）を両方打ち消し、行間を全ページ48pxに統一 */
  margin-bottom: 0;
}
.heading::after { /* TOPのdivider（32px線＋ドット＋32px線 #D4CFC8）と同じ飾り */
  content: '';
  display: block;
  width: 96px;
  height: 6px;
  margin: 12px auto 0; /* 見出し→ディバイダーはTOPと同じ12px */
  background:
    linear-gradient(#D4CFC8, #D4CFC8) left center / 32px 1px no-repeat,
    linear-gradient(#D4CFC8, #D4CFC8) right center / 32px 1px no-repeat,
    radial-gradient(circle 2px at center, #D4CFC8 0 2px, transparent 2.5px) center / 12px 6px no-repeat;
}

/* SPはラベル→和文見出しの行間を0に（48pxは狭い画面では過剰）。
   親のSP用負マージンは.common_header系にしか無くAbout（手書き見出し）とズレるため、両系統を明示指定。
   ※このブロックはPC用の margin: 0 0 48px より後に置くこと（同詳細度のため記述順で勝敗が決まる） */
@media (max-width: 768px) {
  .heading .heading_top,
  .common_header .heading_top { margin-bottom: 0; font-size: 12px !important; } /* TOPのラベル(SP=12px)と統一 */
  .heading .heading_bottom,
  .common_header .heading_top + .heading_bottom { font-size: 20px; } /* TOPの見出し(SP=20px)と統一 */
}

/* =============================================================================
   Step3: 下層ページ用 親CSS移植エリア（移植台帳の確認後に追記）
   ============================================================================= */
/* TODO(Step3): 移植台帳確定後、下記に約380〜450行を転記（`ver(` はそのまま） */
