/* =========================================================
   御殿場カルチャーファーム 専用スキン site.css  v1（2026-09-18）
   「富士山のふもとの、手づくりの牧場」v1.1（2026-09-19 打ち合わせ反映）：クリーム地 × ロゴの深緑 × 楽学感遊の4色（桃・青・若草・橙）。
   高級感（メタリックな金）は避け、アットホームで気楽な雰囲気に。変数名 --gold は正本互換のため残し、値を「ひだまりの橙」に変更
   header.php から style.css / blocks.css / custom.css の後に読み込まれる。
   正本のトークン名はそのまま、値だけ差し替える。白や黄を直書きしている箇所はセレクタ単位で上書き。
   断片（custom_html）用のコンポーネントは末尾の「.cf-*」。
   ========================================================= */

:root {
  --bg-base: #FAF6EE;
  --bg-paper: #FFFFFF;
  --bg-warm: #F1E9D8;
  --bg-dark: #0B5F57;
  --bg-dark-deep: #084B45;
  --ink: #2B2620;
  --text-main: #2B2620;
  --text-sub: #5B534A;
  --text-muted: #9A9083;
  --text-on-dark: #FAF6EE;
  --text-on-dark-muted: rgba(250, 246, 238, 0.82);
  --gold: #F2A33A;
  --gold-light: #FFD08A;
  --gold-ink: #0B7A6B;          /* 白地の上の「文字用アクセント」＝緑 */
  --green: #0B7A6B;
  --green-deep: #00665E;
  --green-soft: #E0F0EC;
  --earth: #7A5230;
  --earth-soft: #EADFCB;
  --vermilion: #C4573A;
  --fc-btn-bg: #0B7A6B;
  --fc-btn-fg: #FFFFFF;
  --fc-btn-bg-hover: #00665E;
  --fc-btn-fg-hover: #FFFFFF;
  --fc-btn-border: #0B7A6B;
  --fc-btn-outline-fg: #0B7A6B;
  --line: #E2D8C6;
  --line-dark: rgba(43, 38, 32, 0.12);
  --shadow-base: 0 12px 34px rgba(80, 60, 30, 0.10);
  --c-raku: #E2568C;   /* 楽：桃 */
  --c-gaku: #0068A8;   /* 学：青 */
  --c-kan: #62A83A;    /* 感：若草 */
  --c-yu: #E8941A;     /* 遊：橙 */
  --radius: 18px;
  --font-heading: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Rounded Mplus 1c", "Noto Sans JP", sans-serif;
  --font-serif: var(--font-heading);
  --font-sans: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", -apple-system, BlinkMacSystemFont, sans-serif;
  --font-en: "Montserrat", "Helvetica Neue", Arial, sans-serif;
}

html { background: var(--bg-base); }
body { background: var(--bg-base); color: var(--text-main); font-family: var(--font-sans); }
::selection { background: var(--gold-light); color: #2B2620; }

/* ---------- 見出し：丸ゴシック ---------- */
h1, h2, h3, h4,
.menu-main-title, .store-info-title, .contact-main-title, .news-main-title, .free-text-title,
.concept-title, .concept-content h2, .concept-content h3, .feature-cards-title, .image-grid-title,
.link-button-title, .gmap-title, .staff-grid-title, .job-main-title, .footer-brand h2, .footer-nav-brand h2 {
  font-family: var(--font-heading);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.5;
  color: var(--ink);
}
/* 正本は英字の大見出し（Montserrat 900）をセクション名に使う。牧場では日本語見出しを主役にし、英字は小さなラベルへ */
.menu-main-title, .store-info-title, .contact-main-title, .news-main-title, .news-bar-eyebrow,
.concept-content p.concept-eyebrow, .feature-cards-eyebrow, .job-main-title {
  font-family: var(--font-en);
  font-size: 13px !important;
  font-weight: 700;
  letter-spacing: 0.24em;
  color: var(--green);
  line-height: 1.4;
}
.menu-sub-text, .store-info-text, .contact-sub-text, .news-sub-text, .concept-content h2, .feature-cards-title {
  font-family: var(--font-heading);
  font-size: clamp(1.6rem, 3vw, 2.2rem) !important;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: 0.06em;
  line-height: 1.5;
  margin-top: 6px;
}

/* ---------- 下層ヒーロー ---------- */
.page-hero-wrapper { background: var(--green-deep); min-height: 320px; }
.page-hero-wrapper::after, .ph-overlay {
  background: linear-gradient(180deg, rgba(0, 70, 64, 0.25) 0%, rgba(0, 70, 64, 0.55) 70%, rgba(0, 70, 64, 0.75) 100%) !important;
}
.ph-title { font-family: var(--font-heading); font-weight: 700; letter-spacing: 0.1em; color: #fff; font-size: clamp(1.9rem, 4.5vw, 3rem); text-shadow: 0 3px 24px rgba(0,0,0,.45); }
.ph-desc { color: var(--text-on-dark-muted); font-size: 14px; letter-spacing: 0.08em; }

/* ---------- ヘッダー ---------- */
.global-header {
  background: rgba(250, 246, 238, 0.94);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(10px);
  box-shadow: none;
}
.global-header.is-scrolled { background: rgba(250, 246, 238, 0.98); box-shadow: 0 6px 24px rgba(80, 60, 30, 0.08); }
.header-logo { font-family: var(--font-heading); font-weight: 700; letter-spacing: 0.06em; color: var(--green-deep); font-size: 20px; }
.header-logo img { max-height: 34px; }
@media (max-width: 768px) { .header-logo img { max-height: 24px; max-width: 70vw; } }
.desktop-nav { gap: 22px; }
.desktop-nav a { font-family: var(--font-heading); font-size: 14px; font-weight: 700; letter-spacing: 0.04em; color: var(--text-main); }
.desktop-nav a::after { background: var(--gold); height: 3px; border-radius: 3px; }
.desktop-nav a:hover, .desktop-nav a.active { color: var(--green); }
.btn-header-contact {
  background: var(--fc-btn-bg); color: #fff; border: 1px solid var(--fc-btn-bg);
  border-radius: 999px; font-family: var(--font-heading); font-weight: 700; letter-spacing: 0.04em; box-shadow: none;
}
.btn-header-contact:hover { background: var(--fc-btn-bg-hover); color: #fff; box-shadow: 0 6px 18px rgba(11, 122, 107, 0.28); }
.header-phone { color: var(--green-deep); font-family: var(--font-en); font-weight: 700; }
.menu-trigger { color: var(--green-deep); }
.mobile-nav-overlay { background: rgba(250, 246, 238, 0.98); }
.mobile-nav-overlay a { color: var(--ink); font-family: var(--font-heading); font-weight: 700; }
/* SEO 用 H1（右上の極小表示）は視覚的に隠す（読み上げ・検索用には残す） */
.global-header .header-page-eyebrow {
  position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important;
  overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; border: 0 !important;
}

/* ---------- フローティング（右端の縦ボタン） ---------- */
.fc-floating-action { border-radius: 12px 0 0 12px; font-family: var(--font-heading); font-weight: 700; }
.fc-floating-phone { background: var(--earth); color: #fff; }
.fc-floating-contact, .fc-floating-reserve { background: var(--green); color: #fff; }
.fc-floating-contact:hover, .fc-floating-reserve:hover { background: var(--fc-btn-bg-hover); }

/* ---------- ボタン：緑のピル。ホバーで濃緑 ---------- */
.btn-menu-more, .btn-recruit-link, .btn-job-apply, .btn-submit-contact, .btn-nab-back, .fc-block-btn,
.link-button-btn, .btn-news-style-more, .btn-news-style-more-full, .btn-spot-link, .fc-btn, .concept-btn, .btn-concept-more {
  border-radius: 999px;
  letter-spacing: 0.06em;
  font-family: var(--font-heading);
  font-weight: 700;
  background: var(--fc-btn-bg);
  color: var(--fc-btn-fg);
  border: 1px solid var(--fc-btn-border);
  box-shadow: none;
}
.btn-menu-more:hover, .btn-recruit-link:hover, .btn-job-apply:hover, .btn-submit-contact:hover, .btn-nab-back:hover,
.fc-block-btn:hover, .link-button-btn:hover, .btn-news-style-more:hover, .btn-news-style-more-full:hover, .btn-spot-link:hover,
.fc-btn:hover, .concept-btn:hover, .btn-concept-more:hover {
  background: var(--fc-btn-bg-hover); color: var(--fc-btn-fg-hover); border-color: var(--fc-btn-bg-hover);
  box-shadow: 0 8px 22px rgba(11, 122, 107, 0.25);
}
.fc-block-btn-outline, .link-button-btn-outline { background: transparent; color: var(--green); }

/* ---------- カード・写真：角丸 ---------- */
.feature-card, .pickup-item-card, .menu-item-card, .image-grid-item, .store-info-image, .news-card, .staff-card,
.mi-img-box, .pickup-img-box, .free-text-container, .concept-img-wrapper, .concept-img-wrapper img, .contact-form-wrap,
.job-card, .spot-item-card, .gmap-frame-wrap, .instagram-feed-item {
  border-radius: var(--radius);
  overflow: hidden;
}
.feature-card, .news-card, .job-card, .menu-item-card { border: 1px solid var(--line); box-shadow: var(--shadow-base); background: var(--bg-paper); }
.feature-card-num { color: var(--gold); font-family: var(--font-en); }
.section-header::after, .menu-section-header::after, .contact-section-header::after, .news-section-header::after { background: var(--gold) !important; }
.mi-price, .price-tag, .news-date { color: var(--earth); font-family: var(--font-en); font-weight: 700; }

/* ---------- 帯・テーブル ---------- */
.keyword-strip--dark { background: var(--green-deep); }
.keyword-strip-item { color: var(--text-on-dark-muted); font-family: var(--font-en); }
.store-info-table { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); }
.store-info-table th { background: var(--green-soft); color: var(--green-deep); font-family: var(--font-heading); }
.store-info-table td { background: var(--bg-paper); color: var(--text-main); }
.news-bar-section, .news-section, .store-info-section, .contact-form-section, .gmap-section, .concept-section, .feature-cards-section, .menu-grid-section { background: var(--bg-base); }

/* ---------- フッター ---------- */
.global-footer { background: var(--green-deep); color: var(--text-on-dark-muted); }
.footer-nav-wrap { background: var(--bg-dark-deep); border-top: 0; }
.global-footer .footer-nav-link { color: var(--text-on-dark-muted); border-color: rgba(250, 246, 238, 0.12) !important; font-family: var(--font-heading); font-size: 13px; }
.global-footer .footer-nav-link:hover { color: var(--gold-light); }
.footer-brand h2 { color: #fff; font-size: 24px; letter-spacing: 0.06em; }
.footer-table th { color: var(--gold-light); font-family: var(--font-heading); }
.footer-table td { color: var(--text-on-dark-muted); }
.footer-tel strong { color: #fff; font-family: var(--font-en); }
.footer-copy-text, .footer-copy { background: var(--bg-dark-deep); color: rgba(250, 246, 238, 0.6); font-family: var(--font-en); font-size: 11px; letter-spacing: 0.12em; }
.global-footer .gmap-wrap { border-radius: var(--radius); }

/* =========================================================
   断片（custom_html）用コンポーネント  .cf-*
   ========================================================= */
.cf-section { padding: 88px 20px; }
.cf-section--warm { background: var(--bg-warm); }
.cf-section--green { background: var(--green-deep); color: var(--text-on-dark); }
.cf-section--green .cf-title, .cf-section--green .cf-lead, .cf-section--green h2, .cf-section--green h3, .cf-section--green p { color: var(--text-on-dark); }
.cf-section--green .cf-eyebrow { color: var(--gold-light); }
.cf-inner { max-width: 1160px; margin: 0 auto; }
.cf-inner--narrow { max-width: 860px; }
.cf-head { text-align: center; margin-bottom: 44px; }
.cf-head--left { text-align: left; }
.cf-eyebrow { display: block; font-family: var(--font-en); font-size: 13px; font-weight: 700; letter-spacing: 0.26em; color: var(--green); margin: 0 0 10px; }
.cf-title { font-family: var(--font-heading); font-size: clamp(1.6rem, 3.2vw, 2.3rem); font-weight: 700; line-height: 1.5; letter-spacing: 0.06em; color: var(--ink); margin: 0; }
.cf-title::after { content: ""; display: block; width: 44px; height: 4px; border-radius: 4px; background: var(--gold); margin: 18px auto 0; }
.cf-head--left .cf-title::after { margin-left: 0; }
.cf-lead { font-size: 15.5px; line-height: 2; color: var(--text-sub); margin: 22px auto 0; max-width: 760px; }
.cf-lead--left { text-align: left; margin-left: 0; }
.cf-text { font-size: 15px; line-height: 2; color: var(--text-sub); }
.cf-text + .cf-text { margin-top: 1em; }
.cf-note { font-size: 12.5px; color: var(--text-muted); line-height: 1.8; }
.cf-btn-row { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 36px; }
.cf-btn-row--left { justify-content: flex-start; }
.cf-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 34px;
  border-radius: 999px; font-family: var(--font-heading); font-weight: 700; font-size: 15px; letter-spacing: 0.06em; text-decoration: none;
  background: var(--fc-btn-bg); color: #fff; border: 1px solid var(--fc-btn-bg); transition: .25s;
}
.cf-btn:hover { background: var(--fc-btn-bg-hover); box-shadow: 0 8px 22px rgba(11,122,107,.25); transform: translateY(-1px); }
.cf-btn--outline { background: transparent; color: var(--green); }
.cf-btn--outline:hover { background: var(--green); color: #fff; }
.cf-btn--gold { background: var(--gold); color: var(--ink); border-color: var(--gold); }
.cf-btn--gold:hover { background: var(--gold-light); color: var(--ink); box-shadow: 0 8px 22px rgba(216,164,59,.3); }
.cf-btn--white { background: #fff; color: var(--green-deep); border-color: #fff; }
.cf-btn--white:hover { background: var(--bg-warm); color: var(--green-deep); }
.cf-btn--tel { font-family: var(--font-en); font-size: 18px; letter-spacing: 0.04em; }

/* ヒーロー（TOP） */
.cf-hero { position: relative; min-height: min(86svh, 780px); max-height: 900px; display: flex; align-items: center; overflow: hidden; background: var(--green-deep); }
.cf-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.cf-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,70,64,.72) 0%, rgba(0,70,64,.35) 55%, rgba(0,70,64,.05) 100%); }
.cf-hero__inner { position: relative; z-index: 2; width: 100%; max-width: 1160px; margin: 0 auto; padding: 120px 20px 80px; color: #fff; }
.cf-hero__eyebrow { display: inline-block; font-family: var(--font-en); font-size: 13px; letter-spacing: 0.3em; font-weight: 700; color: var(--gold-light); margin-bottom: 18px; }
.cf-hero__catch { font-family: var(--font-heading); font-size: clamp(2rem, 5vw, 3.6rem); font-weight: 700; line-height: 1.45; letter-spacing: 0.06em; margin: 0; text-shadow: 0 4px 30px rgba(0,0,0,.35); color: #fff; }
.cf-hero__sub { font-size: clamp(14px, 1.5vw, 17px); line-height: 2; margin: 22px 0 0; max-width: 560px; color: rgba(255,255,255,.92); }
.cf-hero .cf-btn-row { justify-content: flex-start; }
.cf-hero__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.cf-hero__tags span { font-size: 12.5px; font-weight: 700; padding: 6px 14px; border-radius: 999px; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.35); backdrop-filter: blur(4px); }

/* 3つの柱 */
.cf-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.cf-pillar { display: flex; flex-direction: column; background: var(--bg-paper); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-base); border: 1px solid var(--line); text-decoration: none; color: inherit; transition: .3s; }
.cf-pillar:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(80,60,30,.16); }
.cf-pillar__img { aspect-ratio: 4 / 3; overflow: hidden; }
.cf-pillar__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.cf-pillar:hover .cf-pillar__img img { transform: scale(1.05); }
.cf-pillar__body { padding: 24px 24px 26px; flex: 1; display: flex; flex-direction: column; }
.cf-pillar__num { font-family: var(--font-en); font-size: 12px; letter-spacing: .24em; color: var(--gold); font-weight: 700; }
.cf-pillar__title { font-family: var(--font-heading); font-size: 20px; font-weight: 700; margin: 6px 0 10px; color: var(--ink); }
.cf-pillar__text { font-size: 14px; line-height: 1.9; color: var(--text-sub); flex: 1; }
.cf-pillar__more { margin-top: 16px; font-family: var(--font-heading); font-weight: 700; font-size: 13.5px; color: var(--green); }
.cf-pillar__more::after { content: " →"; }

/* 曳き馬 対比（場内 / 外周） */
.cf-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.cf-compare__card { background: var(--bg-paper); border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); box-shadow: var(--shadow-base); display: flex; flex-direction: column; }
.cf-compare__img { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.cf-compare__img img { width: 100%; height: 100%; object-fit: cover; }
.cf-compare__badge { position: absolute; top: 16px; left: 16px; background: var(--gold); color: var(--ink); font-family: var(--font-heading); font-weight: 700; font-size: 13px; padding: 7px 14px; border-radius: 999px; }
.cf-compare__badge--green { background: var(--green); color: #fff; }
.cf-compare__body { padding: 26px 26px 28px; flex: 1; display: flex; flex-direction: column; }
.cf-compare__title { font-family: var(--font-heading); font-size: 22px; font-weight: 700; margin: 0 0 6px; color: var(--ink); }
.cf-compare__sub { font-family: var(--font-en); font-size: 12px; letter-spacing: .2em; color: var(--green); font-weight: 700; }
.cf-compare__text { font-size: 14.5px; line-height: 1.9; color: var(--text-sub); margin: 14px 0 18px; }
.cf-spec { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.cf-spec li { display: flex; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.cf-spec li span:first-child { flex: 0 0 74px; font-weight: 700; color: var(--green-deep); font-family: var(--font-heading); }
.cf-spec li span:last-child { color: var(--text-main); }
.cf-spec .cf-price { font-family: var(--font-en); font-weight: 700; color: var(--earth); font-size: 16px; }
.cf-compare__foot { margin-top: auto; padding-top: 18px; }

/* 写真＋文章の左右分割 */
.cf-split { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.cf-split--rev .cf-split__img { order: 2; }
.cf-split__img { position: relative; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 3; box-shadow: var(--shadow-base); }
.cf-split__img img { width: 100%; height: 100%; object-fit: cover; }
.cf-split__img::before { content: ""; position: absolute; inset: auto -18px -18px auto; width: 120px; height: 120px; border-radius: 50%; background: var(--gold); opacity: .18; z-index: -1; }
.cf-split__body .cf-title::after { margin-left: 0; }

/* 数字 */
.cf-numbers { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.cf-number { text-align: center; background: rgba(255,255,255,.08); border: 1px solid rgba(250,246,238,.18); border-radius: var(--radius); padding: 28px 12px 24px; }
.cf-number__label { font-family: var(--font-en); font-size: 11.5px; letter-spacing: .22em; color: var(--gold-light); font-weight: 700; }
.cf-number__val { font-family: var(--font-en); font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 700; color: #fff; line-height: 1.1; margin: 10px 0 6px; }
.cf-number__val small { font-family: var(--font-heading); font-size: 14px; margin-left: 4px; }
.cf-number__desc { font-size: 13px; color: var(--text-on-dark-muted); }

/* 馬カード（牧場の仲間たち） */
.cf-horses { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.cf-horse { background: var(--bg-paper); border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); box-shadow: var(--shadow-base); position: relative; }
.cf-horse__img { aspect-ratio: 3 / 4; overflow: hidden; background: var(--earth-soft); }
.cf-horse__img img { width: 100%; height: 100%; object-fit: cover; }
.cf-horse__body { padding: 16px 16px 18px; }
.cf-horse__name { font-family: var(--font-heading); font-weight: 700; font-size: 18px; margin: 0; color: var(--ink); }
.cf-horse__name small { font-family: var(--font-en); font-size: 11px; letter-spacing: .14em; color: var(--green); margin-left: 6px; }
.cf-horse__meta { font-size: 12.5px; color: var(--text-muted); margin: 4px 0 8px; }
.cf-horse__role { font-size: 13px; line-height: 1.7; color: var(--text-sub); }
.cf-horse__tag { position: absolute; top: 12px; left: 12px; background: var(--vermilion); color: #fff; font-size: 11.5px; font-weight: 700; padding: 5px 10px; border-radius: 999px; }
.cf-horse__tag--green { background: var(--green); }

/* 料金表 */
.cf-table-wrap { overflow-x: auto; border-radius: var(--radius); border: 1px solid var(--line); background: var(--bg-paper); box-shadow: var(--shadow-base); }
.cf-table { width: 100%; border-collapse: collapse; font-size: 14.5px; min-width: 560px; }
.cf-table th, .cf-table td { padding: 15px 18px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; line-height: 1.7; }
.cf-table thead th { background: var(--green-soft); color: var(--green-deep); font-family: var(--font-heading); font-weight: 700; font-size: 13.5px; }
.cf-table tbody th { font-family: var(--font-heading); font-weight: 700; color: var(--ink); width: 34%; }
.cf-table tr:last-child th, .cf-table tr:last-child td { border-bottom: 0; }
.cf-table .cf-price { font-family: var(--font-en); font-weight: 700; color: var(--earth); font-size: 16px; white-space: nowrap; }
.cf-table small { display: block; font-weight: 400; font-size: 12.5px; color: var(--text-muted); margin-top: 2px; }
.cf-table--compact th, .cf-table--compact td { padding: 11px 14px; font-size: 13.5px; white-space: nowrap; }
.cf-table--compact td:last-child, .cf-table--compact td:nth-child(2) { white-space: normal; min-width: 9em; }

/* ステップ */
.cf-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; counter-reset: step; }
.cf-step { background: var(--bg-paper); border-radius: var(--radius); border: 1px solid var(--line); padding: 26px 22px 24px; position: relative; box-shadow: var(--shadow-base); }
.cf-step__num { font-family: var(--font-en); font-size: 12px; letter-spacing: .22em; color: var(--gold); font-weight: 700; }
.cf-step__title { font-family: var(--font-heading); font-size: 18px; font-weight: 700; margin: 6px 0 10px; color: var(--ink); }
.cf-step__text { font-size: 13.5px; line-height: 1.85; color: var(--text-sub); }
.cf-step:not(:last-child)::after { content: "▶"; position: absolute; right: -16px; top: 50%; transform: translateY(-50%); color: var(--gold); font-size: 12px; }

/* 効果カード / 特徴 */
.cf-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.cf-feature { background: var(--bg-paper); border-radius: var(--radius); border: 1px solid var(--line); padding: 30px 26px; box-shadow: var(--shadow-base); }
.cf-feature__icon { width: 54px; height: 54px; border-radius: 50%; background: var(--green-soft); color: var(--green); display: inline-flex; align-items: center; justify-content: center; font-size: 22px; margin-bottom: 16px; }
.cf-feature__title { font-family: var(--font-heading); font-size: 19px; font-weight: 700; margin: 0 0 10px; color: var(--ink); }
.cf-feature__text { font-size: 14px; line-height: 1.9; color: var(--text-sub); }
.cf-feature ul { margin: 10px 0 0; padding-left: 1.2em; font-size: 13.5px; line-height: 1.9; color: var(--text-sub); }

/* 注意書き・箇条書き */
.cf-notes { background: var(--bg-paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px 30px; }
.cf-notes ul { margin: 0; padding-left: 1.3em; font-size: 14px; line-height: 2; color: var(--text-sub); }
.cf-notes li::marker { color: var(--gold); }

/* お客様の声 */
.cf-voice { background: var(--bg-paper); border-radius: var(--radius); border: 1px solid var(--line); padding: 32px 34px; position: relative; box-shadow: var(--shadow-base); }
.cf-voice::before { content: "“"; position: absolute; top: 8px; left: 18px; font-family: Georgia, serif; font-size: 72px; color: var(--gold); opacity: .5; line-height: 1; }
.cf-voice__text { font-size: 15px; line-height: 2; color: var(--text-main); margin: 0 0 12px; padding-left: 8px; }
.cf-voice__who { font-size: 13px; color: var(--text-muted); text-align: right; }

/* CTA 帯 */
.cf-cta { background: var(--green-deep); color: #fff; border-radius: var(--radius); padding: 48px 32px; text-align: center; }
.cf-cta__title { font-family: var(--font-heading); font-size: clamp(1.4rem, 2.6vw, 1.9rem); font-weight: 700; margin: 0 0 10px; color: #fff; }
.cf-cta__text { font-size: 14.5px; line-height: 1.9; color: var(--text-on-dark-muted); margin: 0; }
.cf-cta .cf-btn-row { margin-top: 26px; }

/* 情報（営業時間・電話） */
.cf-info { display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: start; }
.cf-info__box { background: var(--bg-paper); border-radius: var(--radius); border: 1px solid var(--line); padding: 30px 32px; box-shadow: var(--shadow-base); }
.cf-info__box h3 { font-family: var(--font-heading); font-size: 18px; margin: 0 0 14px; color: var(--green-deep); }
.cf-dl { margin: 0; }
.cf-dl div { display: flex; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: 14.5px; line-height: 1.7; }
.cf-dl div:last-child { border-bottom: 0; }
.cf-dl dt { flex: 0 0 96px; font-family: var(--font-heading); font-weight: 700; color: var(--green-deep); margin: 0; }
.cf-dl dd { margin: 0; color: var(--text-main); }
.cf-tel { font-family: var(--font-en); font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 700; color: var(--green-deep); text-decoration: none; letter-spacing: .02em; }
.cf-tel small { display: block; font-family: var(--font-sans); font-size: 12.5px; color: var(--text-muted); font-weight: 400; letter-spacing: 0; }
.cf-alert { background: #FFF6E5; border: 1px solid #F1D9A6; border-radius: 10px; padding: 14px 18px; font-size: 13.5px; line-height: 1.8; color: #6B4E12; }

/* 堆肥（商品） */
.cf-product { display: grid; grid-template-columns: 320px 1fr; gap: 36px; align-items: center; background: var(--bg-paper); border-radius: var(--radius); border: 1px solid var(--line); padding: 30px; box-shadow: var(--shadow-base); }
.cf-product__img { border-radius: 10px; overflow: hidden; aspect-ratio: 1 / 1; background: var(--earth-soft); }
.cf-product__img img { width: 100%; height: 100%; object-fit: cover; }
.cf-product__name { font-family: var(--font-heading); font-size: 22px; font-weight: 700; margin: 0 0 6px; color: var(--ink); }
.cf-product__price { font-family: var(--font-en); font-size: 30px; font-weight: 700; color: var(--earth); }
.cf-product__price small { font-family: var(--font-sans); font-size: 13px; color: var(--text-muted); font-weight: 400; margin-left: 6px; }

/* ---------- レスポンシブ ---------- */
@media (max-width: 1024px) {
  .cf-numbers { grid-template-columns: repeat(2, 1fr); }
  .cf-horses { grid-template-columns: repeat(3, 1fr); }
  .cf-steps { grid-template-columns: repeat(2, 1fr); }
  .cf-step:not(:last-child)::after { display: none; }
}
@media (max-width: 768px) {
  .cf-section { padding: 60px 16px; }
  .cf-hero { min-height: min(74svh, 640px); }
  .cf-hero__img { object-position: 78% center; }  /* スマホで馬の顔が切れないように右寄せ */
  .cf-hero__inner { padding: 110px 16px 60px; }
  .cf-hero::after { background: linear-gradient(180deg, rgba(0,70,64,.25) 0%, rgba(0,70,64,.65) 100%); }
  .cf-pillars, .cf-compare, .cf-split, .cf-features, .cf-info { grid-template-columns: 1fr; }
  .cf-split { gap: 28px; }
  .cf-split--rev .cf-split__img { order: 0; }
  .cf-horses { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .cf-horse__body { padding: 12px; }
  .cf-horse__name { font-size: 16px; }
  .cf-steps { grid-template-columns: 1fr; }
  .cf-product { grid-template-columns: 1fr; padding: 20px; }
  .cf-product__img { max-width: 280px; margin: 0 auto; }
  .cf-table { min-width: 0; }
  .cf-table th, .cf-table td { display: block; width: auto; }
  .cf-table thead { display: none; }
  .cf-table tbody th { padding-bottom: 4px; border-bottom: 0; background: var(--green-soft); }
  .cf-table tbody td { padding-top: 8px; }
  .cf-table tbody td + td { padding-top: 0; }
  /* 会員表など列が多い表は積まずに横スクロール（列名が失われるため） */
  .cf-table--compact { min-width: 640px; }
  .cf-table--compact th, .cf-table--compact td { display: table-cell; width: auto; }
  .cf-table--compact thead { display: table-header-group; }
  .cf-table--compact th { white-space: nowrap; }
  .cf-table--compact tbody th { background: transparent; border-bottom: 1px solid var(--line); padding: 11px 14px; }
  .cf-table--compact tbody td { padding: 11px 14px; white-space: nowrap; }
  .cf-dl div { flex-direction: column; gap: 2px; }
  .cf-dl dt { flex: none; }
  .cf-cta { padding: 36px 20px; }
  .cf-btn-row .cf-btn { width: 100%; }
}

/* ---------- v1.1 追加：楽学感遊・馬塾紹介・会員 ---------- */
.cf-rakugaku { text-align: center; padding: 56px 20px; background: var(--bg-paper); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.cf-rakugaku img { width: min(520px, 86vw); height: auto; }
.cf-rakugaku p { margin: 14px 0 0; font-family: var(--font-heading); font-weight: 700; font-size: 15px; letter-spacing: .12em; color: var(--text-sub); }
.cf-four { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 36px; text-align: left; }
.cf-four__item { background: var(--bg-paper); border-radius: var(--radius); border: 1px solid var(--line); padding: 24px 20px; box-shadow: var(--shadow-base); border-top: 5px solid var(--c, var(--green)); }
.cf-four__kanji { font-family: var(--font-heading); font-size: 34px; font-weight: 700; color: var(--c, var(--green)); line-height: 1; }
.cf-four__kanji small { font-size: 13px; margin-left: 6px; color: var(--text-sub); }
.cf-four__text { font-size: 13.5px; line-height: 1.85; color: var(--text-sub); margin: 12px 0 0; }
.cf-banner { display: grid; grid-template-columns: 300px 1fr; gap: 0; background: var(--bg-paper); border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); box-shadow: var(--shadow-base); }
.cf-banner__img img { width: 100%; height: 100%; object-fit: cover; min-height: 220px; }
.cf-banner__body { padding: 30px 34px; }
.cf-banner__title { font-family: var(--font-heading); font-size: 22px; font-weight: 700; margin: 4px 0 10px; color: var(--ink); }
.cf-pill-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.cf-pill-list li { font-size: 12.5px; font-weight: 700; padding: 6px 14px; border-radius: 999px; background: var(--green-soft); color: var(--green-deep); }
@media (max-width: 1024px) { .cf-four { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) { .cf-four { grid-template-columns: 1fr 1fr; gap: 12px; } .cf-banner { grid-template-columns: 1fr; } .cf-banner__body { padding: 22px 20px; } }

/* ---------- v1.2 追加：ページ内目次（乗馬メニュー・料金＝体験＋会員の2部構成） ---------- */
html { scroll-behavior: smooth; }
.cf-section[id] { scroll-margin-top: 90px; }
.cf-anchors { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; max-width: 860px; margin: -34px auto 0; padding: 0 20px; position: relative; z-index: 3; }
.cf-anchors__item { display: block; background: var(--bg-paper); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-base); padding: 16px 22px; text-decoration: none; font-family: var(--font-heading); font-weight: 700; font-size: 17px; color: var(--green-deep); transition: .25s; }
.cf-anchors__item span { display: block; font-size: 12px; color: var(--text-muted); font-weight: 500; margin-bottom: 2px; }
.cf-anchors__item::after { content: " ↓"; color: var(--gold); }
.cf-anchors__item:hover { transform: translateY(-2px); border-color: var(--green); }
@media (max-width: 768px) { .cf-anchors { gap: 8px; padding: 0 12px; margin-top: -24px; } .cf-anchors__item { padding: 12px 14px; font-size: 14.5px; } }

/* ---------- v1.3（2026-09-19）ボタン配色をコードで固定 ----------
   正本は header.php で「ボタン配色」（site_settings）を body プレフィックス＋!important で注入する（既定は黄 #F1C232）。
   この案件は管理画面で色を変えない運用なので、詳細度を1段上げた html body ＋ !important でここから上書きする。
   ★管理画面の「ボタン配色」を変えても効かなくなる★ 色を変えるときはこのブロックの値を直す。 */
html body .btn-header-reserve, html body .course-list-reserve, html body .course-pickup-reserve, html body .slf-reserve-btn, html body .btn-submit-contact, html body .btn-recruit-link, html body .btn-job-apply, html body .btn-seat-more, html body .btn-ugc-more, html body .btn-spot-link, html body .btn-course-pickup-more, html body .btn-menu-more, html body .fc-floating-reserve, html body .btn-combo-reserve, html body .link-button-btn-primary, html body .fc-block-btn-primary, html body .fc-instagram-embed-action a { background: var(--green) !important; color: #fff !important; border-color: var(--green) !important; }
html body .btn-header-reserve:hover, html body .course-list-reserve:hover, html body .course-pickup-reserve:hover, html body .slf-reserve-btn:hover, html body .btn-submit-contact:hover, html body .btn-recruit-link:hover, html body .btn-job-apply:hover, html body .btn-seat-more:hover, html body .btn-ugc-more:hover, html body .btn-spot-link:hover, html body .btn-course-pickup-more:hover, html body .btn-menu-more:hover, html body .fc-floating-reserve:hover, html body .btn-combo-reserve:hover, html body .link-button-btn-primary:hover, html body .fc-block-btn-primary:hover, html body .fc-instagram-embed-action a:hover { background: var(--green-deep) !important; color: #fff !important; border-color: var(--green-deep) !important; }
html body .btn-nab-back, html body .btn-news-style-more, html body .btn-news-style-more-full, html body .link-button-btn-outline, html body .fc-block-btn-outline { background: transparent !important; color: var(--green) !important; border-color: var(--green) !important; }
html body .btn-nab-back:hover, html body .btn-news-style-more:hover, html body .btn-news-style-more-full:hover, html body .link-button-btn-outline:hover, html body .fc-block-btn-outline:hover { background: var(--green) !important; color: #fff !important; border-color: var(--green) !important; }
html body .btn-submit-contact { border-radius: 999px; }

/* TOP：お知らせ一覧の既定見出し「NEWS & TOPICS」を隠す（直前の custom_html「イベント情報・お知らせ」が見出しを担当）。
   news.php では custom_html が前に無いので影響しない。ブロックのタイトルを空にしても既定文に戻る仕様のため CSS で対応。 */
.custom-html-wrapper ~ .news-list-grid-section .news-section-header { display: none; }
.custom-html-wrapper ~ .news-list-grid-section { padding-top: 36px; }

/* =========================================================
   v1.4（2026-09-19）楽学感遊の世界観：切り抜き文字・イラスト・草の帯
   素材：/image/logo/kanji_{raku,gaku,kan,yu}.png ／ /image/illust/*.png（顧客提供）
   ========================================================= */
.cf-section { position: relative; overflow: hidden; }
.cf-inner { position: relative; z-index: 2; }

/* 見出しの上に置く「楽・学・感・遊」の切り抜き（英字ラベルの代わり） */
.cf-kanji { display: block; height: 104px; width: auto; margin: 0 auto 14px; }
.cf-head--left .cf-kanji { margin-left: -6px; }
.cf-kanji--sm { height: 72px; margin-bottom: 8px; }

/* イラスト（装飾）。section の四隅に絶対配置。文字にかぶらないよう z-index は inner より下 */
.cf-deco { position: absolute; z-index: 1; width: 150px; height: auto; pointer-events: none; user-select: none; }
.cf-deco--bl { left: max(12px, calc(50% - 680px)); bottom: 0; }
.cf-deco--br { right: max(12px, calc(50% - 680px)); bottom: 0; }
.cf-deco--tl { left: max(12px, calc(50% - 680px)); top: 36px; }
.cf-deco--tr { right: max(12px, calc(50% - 680px)); top: 36px; }
.cf-deco--sm { width: 96px; }
.cf-deco--lg { width: 210px; }
.cf-deco--tree { width: 120px; opacity: .95; }
/* 草の帯：section の下端に敷く（イラストの足もとになる） */
.cf-section--grass { padding-bottom: 120px; }
.cf-section--grass::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 46px; z-index: 1;
  background: url(/image/illust/grass.png) repeat-x left bottom / auto 46px; }
.cf-section--grass .cf-deco--bl, .cf-section--grass .cf-deco--br { bottom: 14px; }
/* ゆっくり歩く（控えめな動き。動きを減らす設定の端末では止める） */
@keyframes cf-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.cf-deco--bob { animation: cf-bob 3.6s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .cf-deco--bob { animation: none; } }

/* ヒーロー下端の草 */
.cf-hero__grass { position: absolute; left: 0; right: 0; bottom: -2px; height: 54px; z-index: 3;
  background: url(/image/illust/grass.png) repeat-x left bottom / auto 54px; }
.cf-title br.sp-only { display: none; }
.cf-hero__horse { position: absolute; right: 6%; bottom: 20px; width: 170px; z-index: 3; }

/* コンセプト 4 枚：切り抜き文字＋イラスト＋ひとこと。カード全体がリンク */
.cf-world { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.cf-world__card { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; text-decoration: none; color: inherit;
  background: var(--bg-paper); border-radius: 26px; padding: 26px 18px 0; border: 2px solid var(--c); box-shadow: 0 8px 0 var(--c); transition: .25s; overflow: hidden; }
.cf-world__card:hover { transform: translateY(4px); box-shadow: 0 4px 0 var(--c); }
.cf-world__kanji { height: 150px; width: auto; max-width: 100%; object-fit: contain; }
.cf-world__text { font-family: var(--font-heading); font-weight: 700; font-size: 15px; line-height: 1.7; color: var(--ink); margin: 12px 0 6px; }
.cf-world__more { font-family: var(--font-heading); font-weight: 700; font-size: 13px; color: var(--c); }
.cf-world__more::after { content: " →"; }
.cf-world__illust { height: 104px; width: auto; margin-top: 12px; align-self: center; }
.cf-world__card::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 22px; background: url(/image/illust/grass.png) repeat-x left bottom / auto 22px; }

/* なかまたち（小動物のならび） */
.cf-friends { display: flex; justify-content: center; align-items: flex-end; gap: clamp(10px, 3vw, 34px); margin: 8px 0 30px; }
.cf-friends img { height: clamp(70px, 11vw, 120px); width: auto; }

/* CTA に馬のイラスト */
.cf-cta { position: relative; overflow: hidden; }
.cf-cta::after { content: ""; position: absolute; right: 18px; bottom: 0; width: 120px; height: 120px; opacity: .95;
  background: url(/image/illust/horse_run_flip.png) no-repeat right bottom / contain; pointer-events: none; }
.cf-cta > * { position: relative; z-index: 1; }

/* フッターの上に草と木（全ページ共通・貼り直し不要） */
.global-footer { position: relative; margin-top: 70px; }
.global-footer::before { content: ""; position: absolute; left: 0; right: 0; top: -120px; height: 122px; pointer-events: none;
  background:
    url(/image/illust/horse_stand.png) no-repeat left max(24px, calc(50% - 600px)) bottom 12px / auto 96px,
    url(/image/illust/tree_round.png) no-repeat right max(24px, calc(50% - 560px)) bottom 8px / auto 112px,
    url(/image/illust/tree_young.png) no-repeat right max(130px, calc(50% - 450px)) bottom 8px / auto 84px,
    url(/image/illust/grass.png) repeat-x left bottom / auto 40px; }

@media (max-width: 1024px) { .cf-world { grid-template-columns: repeat(2, 1fr); } .cf-deco { width: 110px; } .cf-deco--lg { width: 150px; } }
@media (max-width: 768px) {
  .cf-kanji { height: 84px; } .cf-kanji--sm { height: 60px; }
  .cf-deco { width: 78px; } .cf-deco--lg { width: 104px; } .cf-deco--sm { width: 60px; } .cf-deco--tree { width: 70px; }
  .cf-deco--tl, .cf-deco--tr { top: 14px; opacity: .9; }
  .cf-deco--hide-sp { display: none; }
  .cf-section--grass { padding-bottom: 96px; }
  .cf-hero__horse { width: 84px; right: 4%; bottom: 10px; }
  .cf-hero__inner { padding-bottom: 104px; }
  .cf-title br.sp-only { display: inline; }
  .cf-hero__grass { height: 38px; background-size: auto 38px; }
  .cf-world { gap: 12px; } .cf-world__card { padding: 16px 10px 0; border-radius: 20px; }
  .cf-world__kanji { height: 96px; } .cf-world__text { font-size: 13px; } .cf-world__text br { display: none; } .cf-world__illust { height: 70px; }
  .cf-cta::after { width: 78px; height: 78px; right: 8px; opacity: .6; }
  .global-footer::before { top: -84px; height: 86px;
    background:
      url(/image/illust/horse_stand.png) no-repeat left 16px bottom 8px / auto 64px,
      url(/image/illust/tree_round.png) no-repeat right 16px bottom 6px / auto 76px,
      url(/image/illust/grass.png) repeat-x left bottom / auto 28px; }
}

/* ---------- v1.5（2026-09-19）ページ内目次の崩れ修正＋作り込み ----------
   原因：blocks.css の「.custom-html-inner > :first-child { margin-top: 0 }」（詳細度 0,2,0）が
   .cf-anchors の margin-top:-34px（0,1,0）を打ち消し、ヒーローに重ならず素のカードが並んでいた。
   → 同じ詳細度以上のセレクタで指定し直す。 */
.custom-html-inner > .cf-anchors, .cf-anchors { margin: calc(var(--ov, 46px) * -1) auto 0; }
/* ヒーローの暗幕（z-index つき）より前面に出す。wrapper は fade-up の transform で重なり順の枠を作るため、wrapper 側に z-index が要る */
.custom-html-wrapper:has(> .custom-html-inner > .cf-anchors) { position: relative; z-index: 5; }
.cf-anchors { max-width: 900px; gap: 18px; padding: 0 20px 8px; }
.cf-anchors__item { position: relative; display: flex; align-items: center; gap: 16px; padding: 16px 56px 16px 20px; border: 2px solid var(--c, var(--green)); border-radius: 22px;
  box-shadow: 0 6px 0 var(--c, var(--green)); font-size: 18px; line-height: 1.4; color: var(--ink); }
.cf-anchors__item:hover { transform: translateY(3px); box-shadow: 0 3px 0 var(--c, var(--green)); border-color: var(--c, var(--green)); }
.cf-anchors__item img { height: 62px; width: auto; flex: 0 0 auto; }
.cf-anchors__item span { font-size: 12.5px; color: var(--text-sub); font-weight: 700; margin-bottom: 2px; }
.cf-anchors__item::after { content: "↓"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border-radius: 50%;
  background: var(--c, var(--green)); color: #fff; font-size: 15px; display: flex; align-items: center; justify-content: center; font-family: var(--font-en); }
.cf-anchors__item:nth-child(1) { --c: var(--c-raku); }
.cf-anchors__item:nth-child(2) { --c: var(--c-gaku); }
@media (max-width: 768px) {
  .custom-html-inner > .cf-anchors, .cf-anchors { margin-top: calc(var(--ov, 30px) * -1); gap: 10px; padding: 0 12px 6px; grid-template-columns: 1fr; }
  .cf-anchors__item { padding: 12px 50px 12px 14px; font-size: 16px; border-radius: 18px; gap: 12px; }
  .cf-anchors__item img { height: 48px; }
}

/* ---------- v1.5 ヘッダーのロゴが中間幅で潰れる件 ----------
   横長ロゴ（縦横比 15.6:1）は高さ 30px で幅 468px。ロゴ 468＋ナビ 583＋ボタン 198＋間 56＋左右余白 68 ＝ 約 1370px 必要。
   正本はロゴ列が auto で縮む作りのため、1024px では高さ 8px まで潰れていた。
   → ロゴは縮ませず、1380px 未満は正本の 992px 以下と同じハンバーガー表示に切り替える。 */
.header-logo { flex: 0 0 auto; min-width: 0; }
/* ★ロゴの <img> は正本が inline style（max-height:45px; width:auto）を付けるので、寸法は !important で指定する★ */
.global-header .header-logo img { height: 30px !important; max-height: none !important; width: auto !important; max-width: none !important; }
.global-header.is-scrolled .header-logo img { height: 26px !important; }
@media (max-width: 1379px) {
  .global-header { display: flex; }
  .desktop-nav { display: none; }
  .header-btns { margin-left: auto; }
  .menu-trigger { display: inline-flex; align-items: center; justify-content: center; line-height: 1; margin-left: 12px; }
}
@media (max-width: 992px) { .header-btns { display: none; } .menu-trigger { margin-left: auto; } }
@media (max-width: 768px) {
  .global-header .header-logo img, .global-header.is-scrolled .header-logo img { height: auto !important; width: min(300px, calc(100vw - 110px)) !important; }
}

/* ---------- v1.6（2026-09-19）目次ブロックの背景の段差をなくす ----------
   目次カードはヒーローに --ov ぶん食い込ませている（意図的：ページの入口として目立たせる）。
   食い込みをやめたいときは --ov を 0px にするだけでよい（PC・スマホの2か所）。
   カードの下半分の背景が body のクリーム色になり、次のベージュのセクションと色が分かれて帯に見えていたため、
   wrapper の背景を「上 --ov は透明（ヒーローが見える）／その下は次のセクションと同じベージュ」にする。
   ★wrapper には正本が #sec_xxx.custom-html-wrapper { background: transparent !important }（詳細度 1,1,0）を出すので、
     :is(#id, .class) で詳細度を ID 相当に引き上げて勝たせる（#fc-none は実在しないダミー）★
   次のブロックをベージュ以外（.cf-section--warm 以外）に替えたら、下の var(--bg-warm) も合わせること。 */
:is(#fc-none, .custom-html-wrapper):has(> .custom-html-inner > .cf-anchors) {
  --ov: 46px;
  background: linear-gradient(180deg, transparent 0, transparent var(--ov), var(--bg-warm) var(--ov)) !important;
}
@media (max-width: 768px) {
  :is(#fc-none, .custom-html-wrapper):has(> .custom-html-inner > .cf-anchors) { --ov: 30px; }
}

/* =========================================================
   v1.7（2026-09-19）TOP ヒーローのスライド／下層ヒーローの作り直し
   ========================================================= */
/* --- TOP：写真 4 枚のクロスフェード（CSS のみ・24 秒で一巡・ゆっくり拡大）。
       <div class="cf-hero__slides"> の中に <img> を 4 枚。1 枚目は最初から表示。 --- */
.cf-hero__slides { position: absolute; inset: 0; z-index: 0; }
.cf-hero__slides img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 28%; opacity: 0;
  animation: cf-slide 24s infinite; will-change: opacity, transform; }
.cf-hero__slides img:nth-child(1) { animation-delay: 0s; }
.cf-hero__slides img:nth-child(2) { animation-delay: 6s; }
.cf-hero__slides img:nth-child(3) { animation-delay: 12s; }
.cf-hero__slides img:nth-child(4) { animation-delay: 18s; }
@keyframes cf-slide {
  0%   { opacity: 0; transform: scale(1.0); }
  5%   { opacity: 1; }
  25%  { opacity: 1; }
  31%  { opacity: 0; transform: scale(1.06); }
  100% { opacity: 0; transform: scale(1.06); }
}
/* 1 枚目は読み込み直後から見せる（0〜5% のフェードインを待たせない） */
.cf-hero__slides img:nth-child(1) { animation-name: cf-slide-first; }
@keyframes cf-slide-first {
  0%   { opacity: 1; transform: scale(1.0); }
  25%  { opacity: 1; }
  31%  { opacity: 0; transform: scale(1.06); }
  95%  { opacity: 0; transform: scale(1.0); }
  100% { opacity: 1; transform: scale(1.0); }
}
.cf-hero::after { z-index: 1; }
.cf-hero__dots { position: absolute; left: 50%; bottom: 66px; transform: translateX(-50%); z-index: 4; display: flex; gap: 8px; }
.cf-hero__dots i { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.45); animation: cf-dot 24s infinite; }
.cf-hero__dots i:nth-child(2) { animation-delay: 6s; } .cf-hero__dots i:nth-child(3) { animation-delay: 12s; } .cf-hero__dots i:nth-child(4) { animation-delay: 18s; }
@keyframes cf-dot { 0%,25% { background: #fff; transform: scale(1.35); } 31%,100% { background: rgba(255,255,255,.45); transform: scale(1); } }
@media (prefers-reduced-motion: reduce) {
  .cf-hero__slides img, .cf-hero__dots i { animation: none; } .cf-hero__slides img:nth-child(1) { opacity: 1; }
}
@media (max-width: 768px) { .cf-hero__slides img { object-position: 70% center; } .cf-hero__dots { bottom: 46px; } }

/* --- 下層ページのヒーロー：小さな写真を全面に引き伸ばさない。
       左＝ロゴの深緑の地に見出し／右＝写真を「高さぴったり」で置き、左端を緑へ溶かす。下端に草。
       600px の仮写真でも粗く見えず、横長の写真に差し替えても成立する。 --- */
.page-hero-wrapper {
  min-height: 340px; padding: 128px 20px 80px;
  background-color: var(--green-deep);
  /* 写真は右半分だけに敷く（幅＝画面の半分・最低 620px。16:9 でも高さ 340px を覆える）。全面に引き伸ばさない */
  background-size: max(50%, 620px) auto; background-position: right 30%; background-repeat: no-repeat;
}
.page-hero-wrapper::after {
  /* 左＝緑のベタ → 写真の左端（右から max(50%,620px)）で溶かす */
  background: linear-gradient(90deg, var(--green-deep) 0%, var(--green-deep) calc(100% - max(50%, 620px) + 2px), rgba(0,102,94,.55) calc(100% - max(50%, 620px) + 170px), rgba(0,102,94,.08) 100%) !important;
}
.ph-overlay {
  background: url(/image/illust/grass.png) repeat-x left bottom / auto 40px,
              url(/image/illust/horse_run.png) no-repeat left max(20px, calc(50% - 40px)) bottom 22px / auto 74px !important;
  z-index: 3;
}
.ph-container { z-index: 4; }
.ph-title { font-size: clamp(1.7rem, 3.4vw, 2.6rem); letter-spacing: .1em; text-shadow: none; position: relative; padding-left: 22px; }
.ph-title::before { content: ""; position: absolute; left: 0; top: .18em; bottom: .18em; width: 7px; border-radius: 7px; background: var(--gold); }
.ph-desc { text-shadow: none; padding-left: 22px; }
@media (max-width: 768px) {
  .page-hero-wrapper { min-height: 230px; padding: 96px 16px 62px; background-size: cover; background-position: center 35%; }
  .page-hero-wrapper::after { background: linear-gradient(90deg, var(--green-deep) 0%, rgba(0,102,94,.86) 38%, rgba(0,102,94,.18) 100%) !important; }
  .ph-overlay { background: url(/image/illust/grass.png) repeat-x left bottom / auto 28px, url(/image/illust/horse_run.png) no-repeat right 16px bottom 14px / auto 46px !important; }
}

/* =========================================================
   v1.8（2026-09-19）ヘッダーぶんの見切れ／スマホの表・フローティングボタン
   ========================================================= */
/* --- 固定ヘッダー（PC 82px・992px 以下 68px）の下からヒーローを始める。
       以前はヒーローが画面最上部から始まり、写真の上 82px がヘッダーの裏に隠れていた。
       ※ .custom-html-inner > :first-child {margin-top:0}（正本）に負けないよう同じ詳細度で書く --- */
:root { --header-h: 82px; }
@media (max-width: 992px) { :root { --header-h: 68px; } }
.custom-html-inner > .cf-hero, .cf-hero { margin-top: var(--header-h); min-height: min(calc(86svh - var(--header-h)), 720px); }
.cf-hero__inner { padding-top: 72px; }
.page-hero-wrapper { margin-top: var(--header-h); min-height: 280px; padding: 56px 20px 84px; }
@media (max-width: 768px) {
  .custom-html-inner > .cf-hero, .cf-hero { min-height: min(calc(74svh - var(--header-h)), 580px); }
  .cf-hero__inner { padding-top: 48px; }
  .page-hero-wrapper { min-height: 190px; padding: 40px 16px 64px; }
}

/* --- スマホの料金表：1 行＝1 枚のカード。名前は緑の帯で全幅、料金は右下に大きく。
       （PC 用の tbody th {width:34%} が残って名前の帯が細くなっていた） --- */
@media (max-width: 768px) {
  .cf-table-wrap { border: 0; background: transparent; box-shadow: none; overflow: visible; }
  .cf-table, .cf-table tbody { display: block; width: 100%; min-width: 0; }
  .cf-table tbody tr { display: block; background: var(--bg-paper); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; box-shadow: var(--shadow-base); margin-bottom: 14px; }
  .cf-table tbody th, .cf-table tbody td { display: block; width: 100% !important; box-sizing: border-box; border-bottom: 0; white-space: normal !important; min-width: 0 !important; }
  .cf-table tbody th { background: var(--green-soft); color: var(--green-deep); padding: 11px 16px; font-size: 15.5px; }
  .cf-table tbody th small { display: inline; margin-left: 4px; color: var(--green); }
  .cf-table tbody td { padding: 10px 16px 0; font-size: 14px; }
  .cf-table tbody td:last-child { padding-bottom: 14px; }
  .cf-table:not(.cf-table--compact) tbody td:last-child { text-align: right; padding-top: 6px; }
  .cf-table .cf-price { font-size: 19px; }

  /* 会員表（6 列）：横スクロールをやめ、セルの前に列名を出して縦に並べる */
  .cf-table--compact { min-width: 0 !important; }
  .cf-table--compact thead { display: none !important; }
  .cf-table--compact tbody td { display: flex !important; gap: 12px; padding: 9px 16px 0 !important; border-top: 0; font-size: 14px; }
  .cf-table--compact tbody th + td { padding-top: 12px !important; }
  .cf-table--compact tbody td::before { flex: 0 0 4.5em; font-family: var(--font-heading); font-weight: 700; font-size: 12.5px; color: var(--green-deep); padding-top: 1px; }
  .cf-table--compact tbody td:nth-child(2)::before { content: "入会金"; }
  .cf-table--compact tbody td:nth-child(3)::before { content: "年会費"; }
  .cf-table--compact tbody td:nth-child(4)::before { content: "騎乗料"; }
  .cf-table--compact tbody td:nth-child(5)::before { content: "指導料"; }
  .cf-table--compact tbody td:nth-child(6)::before { content: "対象"; }
  .cf-table--compact tbody td:last-child { padding-bottom: 14px !important; }

  /* フローティングボタン：PC 用（右端に縦・左だけ角丸）の形がスマホの下部バーに残っていた */
  .fc-floating-action { border-radius: 12px !important; }
}

/* ---------- v2.0（2026-10-06）TOP ヒーロー直下の休業日・営業時間の帯＋最新お知らせ 1 行（latest_news_bar） ---------- */
.cf-notice { background: var(--bg-paper); border-bottom: 1px solid var(--line); }
.cf-notice__inner { max-width: 1160px; margin: 0 auto; padding: 18px 20px; display: grid; grid-template-columns: 1.3fr 1fr; gap: 14px 32px; }
.cf-notice__item { display: flex; align-items: flex-start; gap: 12px; }
.cf-notice__label { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px; background: var(--green-soft); color: var(--green-deep); font-family: var(--font-heading); font-weight: 700; font-size: 13px; white-space: nowrap; }
.cf-notice__item--closed .cf-notice__label { background: #FDEAD7; color: #9A4A12; }
.cf-notice__text { margin: 4px 0 0; font-size: 14px; line-height: 1.7; color: var(--text-main); }
.cf-notice__text a { color: var(--green); font-weight: 700; }
/* latest_news_bar（正本）を帯の直下に置いたときの見た目 */
.news-bar-section { padding: 14px 20px !important; background: var(--bg-warm) !important; border-bottom: 1px solid var(--line); }
.news-bar-container { max-width: 1160px; margin: 0 auto; display: flex; align-items: center; gap: 20px; }
.news-bar-head { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.news-bar-eyebrow { display: none !important; }
.news-bar-label { margin: 0 !important; padding: 5px 12px !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; border-radius: 999px !important; background: var(--green) !important; color: #fff !important; font-family: var(--font-heading); font-weight: 700; font-size: 13px !important; line-height: 1.4 !important; display: inline-block !important; }
.news-bar-list { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.news-bar-link { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--text-main); font-size: 14px; }
.news-bar-link .news-date { font-family: var(--font-en); font-weight: 700; color: var(--earth); font-size: 12.5px; flex: 0 0 auto; }
.news-bar-link .news-title { margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.news-bar-link .news-arrow { color: var(--green); font-size: 11px; }
.news-bar-link:hover .news-title { color: var(--green); }
@media (max-width: 768px) {
  .cf-notice__inner { grid-template-columns: 1fr; gap: 10px; padding: 14px 16px; }
  .cf-notice__text { font-size: 13px; }
  .news-bar-container { flex-direction: column; align-items: flex-start; gap: 8px; }
  .news-bar-link .news-title { white-space: normal; }
}
