/*
Theme Name: Clover
Theme URI: https://869clover.com/
Author: はりきゅう整体クローバー治療院
Description: はりきゅう整体クローバー治療院のためのオリジナルテーマ。ブロックエディターで文章・写真・料金を自由に編集できます。
Version: 2.19.1
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: clover
*/

/* ---------- 基本 ---------- */
:root{
	--cl-teal:#009EAF; --cl-teal-deep:#007C8A; --cl-teal-tint:#E3F4F6;
	--cl-orange:#E06A00; --cl-yellow:#FFD23F; --cl-yellow-tint:#FFF2CF;
	--cl-ink:#1F1F1F; --cl-muted:#474A45; --cl-line:#DADDD5; --cl-base:#F8F8F4;
	--cl-en:'Jost','Zen Kaku Gothic New',sans-serif;
}
body{ -webkit-font-smoothing:antialiased; }
img{ height:auto; }
.cl-main{ margin-top:0; }
.cl-main > .wp-block-post-content > *{ margin-block-start:0; }

/* ---------- セクション ---------- */
.cl-sec{ padding-top:112px; padding-bottom:112px; margin-block-start:0 !important; }
.cl-sec.is-tight{ padding-top:40px; padding-bottom:40px; }
.cl-sec.is-top{ padding-top:32px; padding-bottom:96px; }
.cl-sec.is-white{ background:#FFFFFF; }
.cl-sec.is-tint{ background:var(--cl-teal-tint); }
.cl-sec.is-teal{ background:var(--cl-teal); color:#FFFFFF; }
@media (max-width:767px){
	.cl-sec{ padding-top:72px; padding-bottom:72px; }
	.cl-sec.is-top{ padding-top:24px; padding-bottom:64px; }
}

/* ---------- 見出し（英字＋日本語） ---------- */
.cl-label{ display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 16px; margin:0; }
.cl-label .en{ font-family:var(--cl-en); font-size:30px; font-weight:400; letter-spacing:.06em; line-height:1.15; border-left:3px solid var(--cl-teal); padding-left:14px; }
.cl-label .ja{ font-size:15px; font-weight:500; color:var(--cl-muted); }
.cl-label.is-stack{ flex-direction:column; align-items:flex-start; }
h1.cl-label .en{ font-size:40px; }
.cl-lead{ font-size:26px; font-weight:500; line-height:1.7; }
@media (max-width:767px){ .cl-lead{ font-size:22px; } h1.cl-label .en{ font-size:32px; } }

/* 白抜き（ターコイズの帯に白文字） */
.cl-ko{ background:rgba(0,158,175,.92); color:#FFFFFF; display:inline-block; padding:14px 32px; font-weight:700; letter-spacing:.18em; line-height:1.3; }
p.cl-ko{ width:fit-content; }
.cl-ko-big{ font-family:var(--cl-en); font-size:64px; font-weight:500; letter-spacing:.06em; line-height:1; margin:0; }
@media (max-width:767px){ .cl-ko-big{ font-size:44px; } }

/* マーカー */
.cl-mark, mark.cl-mark{ background:linear-gradient(transparent 64%, rgba(255,210,63,.95) 64%); color:inherit; padding:0 4px; }

/* 英字の小ラベル・番号・価格 */
.cl-en{ font-family:var(--cl-en); letter-spacing:.1em; }
.cl-eyebrow{ font-family:var(--cl-en); font-size:13px; letter-spacing:.14em; color:var(--cl-teal-deep); margin:0; }
.cl-price{ font-family:var(--cl-en); color:var(--cl-orange); font-weight:500; font-size:44px; line-height:1.2; }
.cl-price small{ font-family:'Zen Kaku Gothic New',sans-serif; font-size:18px; color:var(--cl-ink); }
.cl-muted{ color:var(--cl-muted); }
.cl-small{ font-size:14px; }
.cl-tag{ display:inline-block; font-family:var(--cl-en); font-size:12px; letter-spacing:.12em; border:1px solid var(--cl-ink); border-radius:999px; padding:1px 12px; width:fit-content; margin:0; }

/* ---------- 線で区切る一覧 ---------- */
.cl-lines{ list-style:none; padding:0 !important; margin:0; border-top:1px solid var(--cl-line); }
.cl-lines > li{ border-bottom:1px solid var(--cl-line); padding:20px 0; margin:0; }
ol.cl-lines{ counter-reset:cl; }
ol.cl-lines > li{ counter-increment:cl; display:flex; gap:20px; }
ol.cl-lines > li::before{ content:counter(cl, decimal-leading-zero); font-family:var(--cl-en); font-size:14px; color:var(--cl-teal-deep); padding-top:3px; flex-shrink:0; }
ol.cl-lines.is-step > li::before{ content:"STEP " counter(cl); min-width:4.2em; font-weight:500; }
.cl-sec.is-tint .cl-lines, .cl-sec.is-tint .cl-lines > li{ border-color:#BFD9DD; }

/* 定義リスト風（住所など） */
.cl-dl{ border-top:1px solid var(--cl-line); }
.cl-dl > .wp-block-group{ border-bottom:1px solid var(--cl-line); padding:14px 0; gap:16px; flex-wrap:nowrap !important; align-items:baseline; }
.cl-dl > .wp-block-group > p:first-child{ color:#63665F; min-width:6.5em; margin:0; }
.cl-dl > .wp-block-group > p{ margin:0; }

/* ---------- ボタン ---------- */
.wp-block-button.is-style-cl-outline .wp-block-button__link{ background:transparent; color:var(--cl-ink); border:1px solid var(--cl-ink); font-weight:500; }
.wp-block-button.is-style-cl-outline .wp-block-button__link:hover{ background:var(--cl-ink); color:#FFFFFF; }
.wp-block-button.is-style-cl-white .wp-block-button__link{ background:#FFFFFF; color:var(--cl-teal-deep); }
.wp-block-button.is-style-cl-white-outline .wp-block-button__link{ background:transparent; color:#FFFFFF; border:1px solid #FFFFFF; font-weight:500; }
.cl-textlink a, a.cl-textlink{ color:var(--cl-ink); text-decoration:none; border-bottom:1px solid var(--cl-ink); padding-bottom:2px; font-size:14px; }

/* ---------- ヘッダー ---------- */
.cl-header{ background:var(--cl-base); border-bottom:1px solid var(--cl-line); }
.cl-header-inner{ padding:18px 0; gap:12px 32px; }
.cl-logo{ gap:0 !important; }
.cl-logo p{ margin:0; line-height:1.2; }
.cl-logo .cl-logo-en{ font-family:var(--cl-en); font-size:34px; letter-spacing:.02em; }
.cl-logo .cl-logo-en a{ color:inherit; text-decoration:none; }
.cl-logo .cl-logo-en .dot{ color:var(--cl-orange); }
.cl-logo .cl-logo-ja{ font-size:11px; letter-spacing:.2em; color:var(--cl-muted); }
.cl-nav{ font-size:14px; gap:6px 28px; }
.cl-nav a{ text-decoration:none; }
.cl-header .wp-block-navigation-item__content{ color:var(--cl-ink); }
.wp-block-navigation__responsive-container.is-menu-open{ background:rgba(0,158,175,.97) !important; color:#FFFFFF !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{ font-size:24px; font-weight:500; color:#FFFFFF !important; }
.cl-header-cta .wp-block-button__link{ padding:10px 22px; font-size:14px; }
@media (max-width:781px){ .cl-header-cta{ display:none !important; } }
/* トップページ：写真の上に重ねるヘッダー */
.cl-header-overlay{ position:absolute; top:0; left:0; right:0; z-index:20; background:transparent; border:0; color:#FFFFFF; }
.cl-header-overlay .cl-logo .cl-logo-ja{ color:#FFFFFF; }
.cl-header-overlay .cl-logo .cl-logo-en .dot{ color:var(--cl-yellow); }
.cl-header-overlay .wp-block-navigation-item__content{ color:#FFFFFF; }
.cl-header-overlay .wp-block-navigation__responsive-container-open{ color:#FFFFFF; }
.cl-front-wrap{ position:relative; }

/* ---------- メインビジュアル ---------- */
.cl-hero{ position:relative; min-height:720px; display:flex; align-items:flex-end; padding:140px 0 64px !important; overflow:hidden; background:#6E9CA3; margin-block-start:0 !important; }
.cl-hero > .cl-hero-img{ position:absolute; inset:0; margin:0 !important; max-width:none !important; width:100%; height:100%; }
.cl-hero > .cl-hero-img img{ width:100%; height:100%; object-fit:cover; }
.cl-hero-panel{ position:relative; background:rgba(0,158,175,.85); color:#FFFFFF; max-width:620px !important; padding:48px 44px; margin-left:0 !important; }
.cl-hero-panel h1{ font-size:50px; font-weight:500; line-height:1.5; letter-spacing:.08em; margin:0; }
.cl-hero-panel h1 .nw{ display:inline-block; white-space:nowrap; }
.cl-hero-panel .cl-eyebrow{ color:#FFFFFF; letter-spacing:.3em; font-family:inherit; font-size:14px; }
@media (max-width:767px){
	.cl-hero{ min-height:640px; padding:110px 0 32px !important; }
	.cl-hero-panel{ padding:32px 24px; }
	.cl-hero-panel h1{ font-size:30px; }
}

/* 直近の空き（細い帯） */
.cl-strip{ background:var(--cl-teal-tint); padding:14px 0 !important; margin-block-start:0 !important; }
.cl-strip p{ margin:0; }
.cl-strip .wp-block-group{ gap:4px 20px; }

/* ---------- 写真枠 ---------- */
.cl-photo img{ width:100%; object-fit:cover; display:block; }
.cl-photo.is-4x5 img{ aspect-ratio:4/5; } .cl-photo.is-4x3 img{ aspect-ratio:4/3; }
.cl-photo.is-16x10 img{ aspect-ratio:16/10; } .cl-photo.is-16x9 img{ aspect-ratio:16/9; } .cl-photo.is-3x4 img{ aspect-ratio:3/4; }
.cl-photo{ margin:0 !important; }

/* ---------- 3つの約束（線画アイコン） ---------- */
.cl-promise{ border-top:1px solid var(--cl-line); }
.cl-promise > .wp-block-group{ border-bottom:1px solid var(--cl-line); padding:36px 0; gap:20px 40px; align-items:flex-start !important; }
.cl-sec.is-tint .cl-promise, .cl-sec.is-tint .cl-promise > .wp-block-group{ border-color:#BFD9DD; }
.cl-promise .cl-icon{ width:88px; flex-shrink:0; margin:0 !important; }
.cl-promise h3{ font-family:var(--cl-en); font-size:20px; letter-spacing:.08em; margin:0; }
.cl-promise .cl-sub{ font-size:13px; color:var(--cl-teal-deep); margin:4px 0 6px; }

/* ---------- メニューカード ---------- */
.cl-cards{ gap:40px 32px !important; }
.cl-card{ display:flex; flex-direction:column; gap:12px; }
.cl-card h3{ font-size:20px; margin:0; }
.cl-card p{ margin:0; }

/* ---------- 料金 ---------- */
.cl-pricelist{ background:#FFFFFF; padding:28px 32px; }
.cl-pricerow{ border-bottom:1px solid var(--cl-line); padding:18px 0; gap:4px 24px; align-items:baseline !important; }
.cl-pricerow:last-child{ border-bottom:0; }
.cl-pricerow p{ margin:0; }
.cl-pricerow .name{ font-size:17px; font-weight:700; }
.cl-pricerow .yen{ font-family:var(--cl-en); font-size:24px; font-weight:500; white-space:nowrap; }
.cl-pricerow .yen small{ font-size:14px; color:#63665F; margin-right:12px; font-family:'Zen Kaku Gothic New',sans-serif; }
.cl-badge{ font-size:12px; color:#FFFFFF; background:var(--cl-teal-deep); border-radius:999px; padding:1px 10px; margin-left:6px; vertical-align:2px; font-weight:500; }
.cl-highlight{ background:#FFFFFF; border:2px solid var(--cl-teal-deep); padding:28px 32px; }

/* ---------- よくある質問（開閉） ---------- */
.cl-faq{ border-top:1px solid var(--cl-line); }
.cl-faq .wp-block-details{ border-bottom:1px solid var(--cl-line); padding:20px 0; margin:0; }
.cl-faq summary{ font-weight:700; cursor:pointer; list-style:none; display:flex; gap:12px; }
.cl-faq summary::-webkit-details-marker{ display:none; }
.cl-faq summary::before{ content:"Q"; font-family:var(--cl-en); color:var(--cl-teal-deep); }
.cl-faq .wp-block-details p{ font-size:15px; color:var(--cl-muted); margin:10px 0 0 24px; }

/* ---------- 予約状況の表 ---------- */
.cl-yoyaku table{ border-collapse:collapse; background:#FFFFFF; font-size:15px; }
.cl-yoyaku th, .cl-yoyaku td{ border:0; border-bottom:1px solid var(--cl-line); padding:12px 14px; text-align:left; }
.cl-yoyaku thead th{ background:var(--cl-teal-tint); font-weight:700; border-bottom:0; }
.cl-yoyaku mark{ background:var(--cl-yellow-tint); color:#8A4B00; font-weight:700; padding:2px 8px; }

/* ---------- 予約エリア ---------- */
.cl-reserve-card{ background:#FFFFFF; color:var(--cl-ink); padding:36px; }
.cl-reserve-card .wp-block-button, .cl-reserve-card .wp-block-button__link{ width:100%; }
.cl-qr{ width:110px; margin:0 !important; }

/* ---------- コラム ---------- */
.cl-chips{ gap:10px !important; }
.cl-chips .wp-block-categories, .cl-cats{ list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:10px; }
.cl-cats li a{ display:inline-block; border:1px solid var(--cl-ink); border-radius:999px; padding:6px 18px; font-size:14px; color:var(--cl-ink); text-decoration:none; }
.cl-cats li.current-cat a{ background:var(--cl-teal-deep); border-color:var(--cl-teal-deep); color:#FFFFFF; }
.cl-postgrid .wp-block-post{ display:flex; flex-direction:column; gap:10px; }
.cl-postgrid .wp-block-post-featured-image img{ aspect-ratio:16/10; object-fit:cover; }
.cl-postgrid .wp-block-post-title{ font-size:18px; line-height:1.7; margin:0; }
.cl-postgrid .wp-block-post-title a{ color:var(--cl-ink); text-decoration:none; }
.cl-meta{ gap:12px !important; font-size:13px; color:#63665F; }
.cl-meta .wp-block-post-terms a{ border:1px solid var(--cl-ink); border-radius:999px; padding:0 12px; color:var(--cl-ink); text-decoration:none; }
.cl-meta .wp-block-post-date{ font-family:var(--cl-en); }
.cl-news .wp-block-post-template{ border-top:1px solid var(--cl-line); padding:0; margin:0; }
.cl-news .wp-block-post{ border-bottom:1px solid var(--cl-line); padding:18px 0; margin:0 !important; }
.cl-news .wp-block-post > .wp-block-group{ gap:4px 28px; align-items:baseline; }
.cl-news .wp-block-post-date{ font-family:var(--cl-en); font-size:14px; color:#63665F; min-width:6.5em; }
.cl-news .wp-block-post-title{ font-size:16px; font-weight:400; margin:0; }
.cl-news .wp-block-post-title a{ color:var(--cl-ink); text-decoration:none; }
.cl-article .wp-block-post-content h2{ font-size:24px; border-left:3px solid var(--cl-teal); padding-left:14px; margin-top:48px; }
.cl-article .wp-block-post-content h3{ font-size:19px; font-weight:700; margin-top:32px; }
.cl-article .wp-block-post-content ul{ background:var(--cl-teal-tint); padding:20px 24px 20px 44px; }
.cl-author{ border-top:1px solid var(--cl-line); border-bottom:1px solid var(--cl-line); padding:24px 0; gap:20px !important; }
.cl-author .wp-block-image img{ border-radius:999px; width:72px; height:72px; object-fit:cover; }
.wp-block-query-pagination{ gap:8px; font-family:var(--cl-en); }

/* ---------- フッター ---------- */
.cl-footer{ border-top:1px solid var(--cl-line); padding-top:48px; padding-bottom:48px; }
.cl-footer p{ margin:0; }
.cl-footer .cl-footnav{ gap:6px 24px; font-size:13px; }
.cl-footer .cl-footnav a{ color:var(--cl-muted); text-decoration:none; }

/* スマホ下部の予約バー */
.cl-mobbar{ display:none !important; }
@media (max-width:767px){
	.cl-mobbar{ display:flex !important; position:fixed; left:0; right:0; bottom:0; z-index:50; background:#FFFFFF; border-top:1px solid var(--cl-line); padding:10px 12px !important; gap:10px !important; margin:0 !important; }
	.cl-mobbar .wp-block-button:first-child{ flex:1 1 auto; }
	.cl-mobbar .wp-block-button:first-child .wp-block-button__link{ width:100%; }
	.cl-mobbar .wp-block-button__link{ padding:12px 18px; }
	body{ padding-bottom:76px; }
}

/* ---------- 調整 ---------- */
.cl-hero-panel{ margin-left:max(0px, calc((100% - 1120px) / 2)) !important; }
p.cl-ko{ font-size:56px; }
@media (max-width:767px){ p.cl-ko{ font-size:40px; padding:10px 22px; } }
.cl-promise > .wp-block-group{ flex-wrap:nowrap !important; }
.cl-promise > .wp-block-group > .wp-block-group{ flex:1 1 360px; min-width:0; }
@media (max-width:600px){ .cl-promise > .wp-block-group{ flex-wrap:wrap !important; } }
.cl-card h3 a{ color:var(--cl-ink); text-decoration:none; }
.cl-card h3 a:hover{ color:var(--cl-teal-deep); }
.cl-strip{ padding-left:24px !important; padding-right:24px !important; }
.cl-sec.is-top > p:first-child{ margin-bottom:12px; }
.cl-yoyaku thead{ border-bottom:0 !important; }
.cl-sec.is-teal.is-tight{ background:var(--cl-teal-deep); }

/* ---------- お客さまの声 ---------- */
.cl-rating{ font-size:15px; font-weight:500; }
.cl-voices{ gap:24px !important; }
.cl-voice{ background:#FFFFFF; border-top:3px solid var(--cl-teal); padding:26px 26px 22px; height:100%; box-sizing:border-box; }
.cl-sec.is-white .cl-voice{ background:var(--cl-base); }
.cl-voice p{ margin:0; }
.cl-voice > * + *{ margin-top:10px !important; }
.cl-voice-src{ font-size:12px; border:1px solid var(--cl-ink); border-radius:999px; padding:0 10px; }
.cl-voice-date{ font-size:13px; color:#63665F; }
.cl-stars{ color:#E8A400; letter-spacing:.1em; margin-right:8px; }
.cl-stars .off{ color:var(--cl-line); }
.cl-voice-text{ font-size:15px; line-height:1.9; }
.cl-voice-text::before{ content:"“"; font-family:var(--cl-en); color:var(--cl-teal); font-size:28px; line-height:0; vertical-align:-10px; margin-right:4px; }

/* ---------- 1.2.1 スマホ表示の調整 ---------- */
ol.cl-lines > li{ display:block; position:relative; padding-left:2.4em; }
ol.cl-lines > li::before{ position:absolute; left:0; top:23px; padding-top:0; }
ol.cl-lines.is-step > li{ padding-left:5.2em; }
a[href^="tel:"]{ white-space:nowrap; }
.cl-sec.is-tight p > a:not(.cl-textlink){ text-decoration:none; }
.cl-hero::before{ content:""; position:absolute; left:0; right:0; top:0; height:200px; background:linear-gradient(rgba(0,0,0,.38), rgba(0,0,0,0)); z-index:1; pointer-events:none; }
.cl-hero-panel{ z-index:2; }

/* ---------- 1.3.1 予約状況の表：列の幅を固定 ---------- */
.cl-yoyaku table{ table-layout:fixed !important; width:100% !important; }
.cl-yoyaku th:first-child, .cl-yoyaku td:first-child{ width:40%; }
.cl-yoyaku th:last-child, .cl-yoyaku td:last-child{ width:60%; }
@media (max-width:600px){ .cl-yoyaku th:first-child, .cl-yoyaku td:first-child{ width:45%; } .cl-yoyaku th:last-child, .cl-yoyaku td:last-child{ width:55%; } }

/* =========================================================
   Clover 2.0 — 写真を主役にした、厚みのあるデザイン
   ========================================================= */
:root{
	--cl-paper:#F3F1EC;
	--cl-grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
	--cl-ease:cubic-bezier(.22,.61,.36,1);
}
body{ background:var(--cl-paper) var(--cl-grain); font-size:16px; }
.cl-sec{ padding-top:136px; padding-bottom:136px; }
.cl-sec.is-white{ background:#FFFFFF; }
.cl-sec.is-tint{ background:#E6F3F4 var(--cl-grain); }
@media (max-width:767px){ .cl-sec{ padding-top:80px; padding-bottom:80px; } }

/* ---- 見出し：大きな英字＋小さな日本語 ---- */
.cl-label{ flex-direction:column; align-items:flex-start; gap:10px; }
.cl-label .en{ font-size:clamp(40px, 5.4vw, 72px); font-weight:300; letter-spacing:.04em; line-height:1; border-left:0; padding-left:0; color:var(--cl-ink); }
.cl-label .ja{ font-size:14px; font-weight:500; color:var(--cl-teal-deep); letter-spacing:.14em; display:flex; align-items:center; gap:10px; }
.cl-label .ja::before{ content:""; width:28px; height:1px; background:var(--cl-teal); }
h1.cl-label .en{ font-size:clamp(44px, 6vw, 84px); }
.cl-lead{ font-size:clamp(22px, 2.4vw, 30px); font-weight:500; line-height:1.75; }
h2, h3{ font-weight:500; }

/* ---- メインビジュアル：画面いっぱいの写真 ---- */
.cl-hero{ min-height:100vh; min-height:100svh; padding:0 !important; align-items:flex-end; background:#6E9CA3; }
.cl-hero > .cl-hero-img img{ transform:scale(1.04); animation:cl-zoom 14s var(--cl-ease) forwards; }
@keyframes cl-zoom{ to{ transform:scale(1); } }
.cl-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,0) 28%, rgba(0,0,0,0) 55%, rgba(0,40,46,.45) 100%); z-index:1; pointer-events:none; }
.cl-hero::before{ display:none; }
.cl-hero-panel{ z-index:2; background:rgba(0,158,175,.82); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); max-width:680px !important; padding:56px 56px 52px; margin:0 0 72px max(24px, calc((100% - 1120px) / 2)) !important; box-shadow:0 30px 60px -30px rgba(0,40,46,.55); }
.cl-hero-panel h1{ font-size:clamp(32px, 4.4vw, 58px); font-weight:700; letter-spacing:.06em; line-height:1.45; }
.cl-hero-panel .cl-eyebrow{ font-size:13px; letter-spacing:.32em; opacity:.95; }
.cl-hero-panel .cl-eyebrow::before{ content:""; display:inline-block; width:28px; height:1px; background:#FFFFFF; vertical-align:middle; margin-right:12px; }
.cl-hero-panel p:not(.cl-eyebrow){ font-size:16px; }
@media (max-width:767px){
	.cl-hero{ min-height:88svh; }
	.cl-hero-panel{ margin:0 16px 24px !important; padding:30px 24px 28px; }
	.cl-hero-panel h1{ font-size:30px; }
}

/* ---- 直近の空き（帯） ---- */
.cl-strip{ background:var(--cl-teal-deep); color:#FFFFFF; padding:16px 24px !important; }
.cl-strip .cl-eyebrow{ color:#BFEFF4; }
.cl-strip a{ color:#FFFFFF; }

/* ---- 写真：大きく、角を少しだけ丸く ---- */
.cl-photo{ overflow:hidden; border-radius:4px; }
.cl-photo img{ transition:transform .9s var(--cl-ease); }
.cl-photo:hover img{ transform:scale(1.04); }
.wp-block-columns:has(.cl-photo.is-4x5), .wp-block-columns:has(.cl-photo.is-4x3){ gap:clamp(40px, 6vw, 96px) !important; }
.cl-photo.is-4x5 img{ aspect-ratio:4/5; min-height:420px; }
@media (min-width:782px){
	/* 写真の列を広げて、画面の端まで伸ばす */
	.cl-sec > .wp-block-columns > .wp-block-column:has(> .cl-photo.is-4x5:only-child),
	.cl-sec > .wp-block-columns > .wp-block-column:has(> .cl-photo.is-4x3:only-child){ flex-basis:54% !important; flex-grow:0 !important; }
}

/* ---- 白抜き「美健同源」 ---- */
p.cl-ko{ font-size:clamp(40px, 5vw, 68px); padding:16px 36px; box-shadow:14px 14px 0 rgba(255,210,63,.9); margin-bottom:12px !important; }

/* ---- 線の一覧：少し太く、番号を大きく ---- */
.cl-lines{ border-top:1px solid #CFD3C9; }
.cl-lines > li{ border-bottom:1px solid #CFD3C9; padding:24px 0 24px 3.2em; font-size:16px; }
ol.cl-lines > li::before{ font-size:20px; font-weight:400; color:var(--cl-teal); top:22px; }
ol.cl-lines.is-step > li{ padding-left:6.2em; }
ol.cl-lines.is-step > li::before{ font-size:15px; font-weight:600; top:26px; }

/* ---- 3つの約束：3枚のカードに ---- */
.cl-promise{ display:grid !important; grid-template-columns:repeat(3, minmax(0,1fr)); gap:24px; border-top:0 !important; }
.cl-promise > .wp-block-group{ flex-direction:column !important; flex-wrap:nowrap !important; align-items:flex-start !important; background:#FFFFFF; border:0 !important; padding:44px 36px 40px !important; border-radius:4px; box-shadow:0 18px 40px -28px rgba(0,60,66,.35); gap:22px !important; }
.cl-promise > .wp-block-group > .wp-block-group{ flex:none !important; }
.cl-promise .cl-icon{ width:72px; }
.cl-promise h3{ font-size:22px; letter-spacing:.06em; }
.cl-promise .cl-sub{ font-size:14px; font-weight:700; margin:8px 0 10px; }
@media (max-width:900px){ .cl-promise{ grid-template-columns:1fr; } }

/* ---- メニューカード ---- */
.cl-cards{ gap:48px 32px !important; }
.cl-card{ gap:14px; }
.cl-card .cl-photo img{ aspect-ratio:4/5 !important; }
.cl-card h3{ font-size:24px; }
.cl-card h3 a::after{ content:" ›"; color:var(--cl-teal); }
.cl-tag{ background:var(--cl-teal-deep); color:#FFFFFF; border-color:var(--cl-teal-deep); }

/* ---- お客さまの声 ---- */
.cl-voice{ border-top:0; border-radius:4px; padding:34px 30px 28px; box-shadow:0 18px 40px -28px rgba(0,60,66,.35); position:relative; }
.cl-voice::before{ content:"“"; position:absolute; top:-18px; right:24px; font-family:var(--cl-en); font-size:96px; line-height:1; color:var(--cl-teal); opacity:.25; }
.cl-voice-text{ font-size:16px; }
.cl-voice-text::before{ display:none; }
.cl-rating{ font-size:16px; }

/* ---- 料金・強調ボックス ---- */
.cl-pricelist{ border-radius:4px; box-shadow:0 18px 40px -30px rgba(0,60,66,.35); padding:20px 40px; }
.cl-pricerow .name{ font-size:18px; }
.cl-pricerow .yen{ font-size:28px; }
.cl-highlight{ border-radius:4px; border-width:0 0 0 6px; border-color:var(--cl-teal); box-shadow:0 18px 40px -30px rgba(0,60,66,.35); padding:36px 40px; }
.cl-price{ font-size:52px; }

/* ---- ボタン ---- */
.wp-block-button__link{ padding:18px 40px !important; font-size:16px; transition:transform .3s var(--cl-ease), box-shadow .3s var(--cl-ease), background .3s; box-shadow:0 12px 24px -14px rgba(0,80,90,.7); }
.wp-block-button__link:hover{ transform:translateY(-2px); }
.wp-block-button:not([class*="is-style-cl-outline"]):not(.is-style-cl-white-outline) .wp-block-button__link::after{ content:"›"; margin-left:12px; font-weight:400; }
.is-style-cl-outline .wp-block-button__link, .is-style-cl-white-outline .wp-block-button__link{ box-shadow:none; }
.cl-header-cta .wp-block-button__link, .cl-mobbar .wp-block-button__link{ padding:11px 24px !important; }
.cl-header-cta .wp-block-button__link::after, .cl-mobbar .wp-block-button__link::after{ display:none; }

/* ---- ヘッダー ---- */
.cl-header{ background:rgba(243,241,236,.92); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); position:sticky; top:0; z-index:40; border-bottom:1px solid rgba(0,0,0,.06); }
.cl-header-overlay{ position:absolute; background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; border:0; }
.cl-logo .cl-logo-en{ font-size:38px; font-weight:400; }
.cl-nav{ font-size:14px; font-weight:500; }

/* ---- 予約エリア ---- */
.cl-sec.is-teal{ background:var(--cl-teal) var(--cl-grain); }
.cl-ko-big{ font-size:clamp(56px, 9vw, 128px); font-weight:300; letter-spacing:.02em; }
.cl-reserve-card{ border-radius:4px; box-shadow:0 30px 60px -30px rgba(0,40,46,.6); padding:44px; }

/* ---- フッター：深いターコイズで締める ---- */
.cl-footer{ background:#0B4B53; color:#D9EEF0; border-top:0; padding-top:72px; padding-bottom:56px; }
.cl-footer .cl-muted, .cl-footer p{ color:#BFDADD; }
.cl-footer .cl-logo .cl-logo-en a, .cl-footer .cl-logo .cl-logo-ja{ color:#FFFFFF; }
.cl-footer .cl-logo .cl-logo-en .dot{ color:var(--cl-yellow); }
.cl-footer .cl-footnav a{ color:#D9EEF0; }
.cl-footer .cl-footnav a:hover{ color:#FFFFFF; }

/* ---- コラム・お知らせ ---- */
.cl-postgrid .wp-block-post-featured-image{ overflow:hidden; border-radius:4px; }
.cl-postgrid .wp-block-post-featured-image img{ transition:transform .9s var(--cl-ease); }
.cl-postgrid .wp-block-post:hover .wp-block-post-featured-image img{ transform:scale(1.04); }
.cl-news .wp-block-post{ padding:22px 0; }

/* ---- FAQ ---- */
.cl-faq .wp-block-details{ padding:24px 0; }
.cl-faq summary{ font-size:17px; }
.cl-faq summary::after{ content:"+"; margin-left:auto; font-family:var(--cl-en); font-size:22px; color:var(--cl-teal); line-height:1; }
.cl-faq details[open] summary::after{ content:"−"; }

/* ---- スクロールで、ふわっと表示（対応ブラウザのみ） ---- */
@supports (animation-timeline: view()){
	@media (prefers-reduced-motion: no-preference){
		.cl-sec > *, .cl-promise > *, .cl-voices > *, .cl-cards > *{ animation:cl-fade linear both; animation-timeline:view(); animation-range:entry 0% entry 40%; }
		@keyframes cl-fade{ from{ opacity:0; transform:translateY(28px); } to{ opacity:1; transform:none; } }
	}
}

/* =========================================================
   2.1 メインビジュアル：写真いっぱい＋英字のキャッチ
   ========================================================= */
.cl-hero{ align-items:center !important; justify-content:center; }
.cl-hero::after{ background:linear-gradient(180deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,.22) 35%, rgba(0,0,0,.22) 65%, rgba(0,0,0,.5) 100%) !important; }
.cl-hero-panel{ background:transparent !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; box-shadow:none !important; max-width:980px !important; width:100%; margin:0 auto !important; padding:120px 24px 110px !important; align-items:center !important; text-align:center !important; text-shadow:0 2px 24px rgba(0,0,0,.35); }
.cl-hero-panel > *{ margin-left:auto !important; margin-right:auto !important; }
.cl-hero-panel .cl-eyebrow{ display:flex; align-items:center; justify-content:center; gap:16px; font-size:13px; letter-spacing:.36em; }
.cl-hero-panel .cl-eyebrow::before, .cl-hero-panel .cl-eyebrow::after{ content:""; display:block; width:40px; height:1px; background:rgba(255,255,255,.85); margin:0; }
.cl-hero-en{ font-family:'Cormorant Garamond', 'Times New Roman', serif; font-style:italic; font-weight:300; font-size:clamp(52px, 8.4vw, 128px); line-height:1; letter-spacing:.01em; color:#FFFFFF; margin:8px 0 0 !important; }
.cl-hero-panel h1{ font-size:clamp(22px, 2.6vw, 34px) !important; font-weight:500 !important; letter-spacing:.22em !important; line-height:1.8 !important; margin-top:6px !important; }
.cl-hero-panel h1 .cl-mark, .cl-hero-panel h1 mark{ background:linear-gradient(transparent 78%, rgba(255,210,63,.9) 78%); padding:0 2px; }
.cl-hero-panel p:not(.cl-eyebrow):not(.cl-hero-en){ font-size:15px; letter-spacing:.12em; opacity:.95; }
.cl-hero-panel .wp-block-buttons{ justify-content:center !important; margin-top:18px !important; }
.cl-hero-panel .is-style-cl-white .wp-block-button__link{ background:#FFFFFF; color:var(--cl-teal-deep); }
/* スクロールの合図 */
.cl-hero::before{ display:block !important; content:"SCROLL"; position:absolute; left:50%; bottom:0; transform:translateX(-50%); z-index:3; height:auto; padding-bottom:76px; background:none; font-family:var(--cl-en); font-size:11px; letter-spacing:.3em; color:#FFFFFF; }
.cl-hero > .cl-hero-img::after{ content:""; }
.cl-front-wrap .cl-hero .cl-hero-panel ~ *{ }
@keyframes cl-scroll{ 0%{ transform:scaleY(0); transform-origin:top; } 50%{ transform:scaleY(1); transform-origin:top; } 51%{ transform-origin:bottom; } 100%{ transform:scaleY(0); transform-origin:bottom; } }
.cl-hero-panel::after{ content:""; position:absolute; left:50%; bottom:-120px; width:1px; height:60px; background:#FFFFFF; animation:cl-scroll 2.4s ease-in-out infinite; }
.cl-hero-panel{ position:relative; }
@media (max-width:767px){
	.cl-hero{ min-height:100svh; }
	.cl-hero-panel{ padding:110px 20px 120px !important; }
	.cl-hero-en{ font-size:clamp(44px, 13vw, 64px); }
	.cl-hero-panel h1{ font-size:20px !important; letter-spacing:.14em !important; }
	.cl-hero-panel .wp-block-buttons{ flex-direction:column; align-items:center; }
	.cl-hero-panel::after{ bottom:-90px; height:44px; }
	.cl-hero::before{ padding-bottom:50px; }
}
.cl-hero-panel p.cl-hero-en{ font-family:'Cormorant Garamond', 'Times New Roman', serif; font-style:italic; font-weight:300; font-size:clamp(52px, 8.4vw, 128px); line-height:1.05; letter-spacing:.01em; opacity:1; }
.cl-hero::before{ top:auto !important; right:auto !important; width:auto !important; height:auto !important; left:50% !important; bottom:24px !important; padding-bottom:0 !important; }
.cl-hero-panel::after{ bottom:-96px; }
@media (max-width:767px){ .cl-hero-panel p.cl-hero-en{ font-size:clamp(44px, 13vw, 64px); } .cl-hero::before{ bottom:96px !important; } .cl-hero-panel::after{ bottom:-70px; height:36px; } }
.cl-hero-panel p.cl-hero-en{ font-size:clamp(52px, 7vw, 104px); }
@media (min-width:768px){ .cl-hero-panel p.cl-hero-en{ white-space:nowrap; } }
.cl-hero-panel::after{ display:none !important; }
.cl-hero::before{ bottom:20px !important; padding-bottom:46px !important; background:linear-gradient(#FFFFFF,#FFFFFF) center bottom / 1px 36px no-repeat !important; }
@media (max-width:767px){ .cl-hero::before{ bottom:92px !important; padding-bottom:34px !important; background-size:1px 26px !important; } }

/* ---------- 2.2 調整 ---------- */
/* トップ：英字キャッチと「初回9,800円で予約する」は表示しない */
.cl-hero-panel p.cl-hero-en, .cl-hero-panel .wp-block-button.is-style-cl-white{ display:none !important; }
/* 3つの約束：3枚の箱の大きさと位置をそろえる */
.cl-promise{ align-items:stretch !important; }
.cl-promise > .wp-block-group{ margin:0 !important; height:100%; box-sizing:border-box; justify-content:flex-start !important; }
.cl-promise > .wp-block-group > *{ margin:0 !important; }
/* 英字をなくした分、日本語のキャッチを主役の大きさに */
.cl-hero-panel h1{ font-size:clamp(30px, 4.2vw, 58px) !important; letter-spacing:.14em !important; line-height:1.6 !important; margin-top:14px !important; }
.cl-hero-panel h1 .cl-mark, .cl-hero-panel h1 mark{ background:linear-gradient(transparent 80%, rgba(255,210,63,.95) 80%); }
@media (max-width:767px){ .cl-hero-panel h1{ font-size:30px !important; letter-spacing:.1em !important; } }

/* ---------- 2.3 写真＋文章の段：文章にゆとりを ---------- */
@media (min-width:782px){
	.cl-sec > .wp-block-columns:has(> .wp-block-column > .cl-photo:only-child){ gap:72px !important; }
	.cl-sec > .wp-block-columns > .wp-block-column:has(> .cl-photo.is-4x5:only-child),
	.cl-sec > .wp-block-columns > .wp-block-column:has(> .cl-photo.is-4x3:only-child){ flex-basis:48% !important; }
	.cl-sec > .wp-block-columns:has(> .wp-block-column > .cl-photo:only-child) > .wp-block-column:not(:has(> .cl-photo:only-child)){ box-sizing:border-box; max-width:540px; padding-top:32px; padding-bottom:32px; }
	/* 写真が左のとき → 文章の右側に余白 / 写真が右のとき → 文章の左側に余白 */
	.cl-sec > .wp-block-columns:has(> .wp-block-column:first-child > .cl-photo:only-child) > .wp-block-column:last-child{ padding-right:48px; }
	.cl-sec > .wp-block-columns:has(> .wp-block-column:last-child > .cl-photo:only-child) > .wp-block-column:first-child{ padding-left:48px; margin-left:auto; }
	.cl-sec > .wp-block-columns:has(> .wp-block-column > .cl-photo:only-child) p{ line-height:2.1; }
}
@media (max-width:781px){
	/* スマホ：写真は画面の端まで、文章は内側にゆとりを */
	.cl-sec > .wp-block-columns:has(> .wp-block-column > .cl-photo:only-child) > .wp-block-column:not(:has(> .cl-photo:only-child)){ padding:8px 10px 0; }
	.cl-sec > .wp-block-columns:has(> .wp-block-column > .cl-photo:only-child) p{ line-height:2.05; }
	.cl-photo.is-4x5 img{ min-height:0; aspect-ratio:4/4.4; }
}

/* =========================================================
   2.4 左右のずれを解消：写真も文章も同じ枠にそろえる
   ========================================================= */
html, body{ overflow-x:hidden; }
.cl-sec > .wp-block-columns > .wp-block-column > .cl-photo:only-child{
	margin-left:0 !important; margin-right:0 !important; width:100% !important; max-width:100% !important; border-radius:4px !important;
}
@media (min-width:782px){
	.cl-sec > .wp-block-columns:has(> .wp-block-column > .cl-photo:only-child){ gap:64px !important; align-items:center !important; }
	.cl-sec > .wp-block-columns > .wp-block-column:has(> .cl-photo:only-child){ flex-basis:50% !important; flex-grow:0 !important; }
	.cl-sec > .wp-block-columns:has(> .wp-block-column > .cl-photo:only-child) > .wp-block-column:not(:has(> .cl-photo:only-child)){
		flex-basis:auto !important; flex-grow:1 !important; max-width:none !important; margin-left:0 !important;
		padding:24px 16px !important;
	}
}
@media (max-width:781px){
	.cl-sec > .wp-block-columns:has(> .wp-block-column > .cl-photo:only-child){ gap:32px !important; }
	.cl-sec > .wp-block-columns:has(> .wp-block-column > .cl-photo:only-child) > .wp-block-column:not(:has(> .cl-photo:only-child)){ padding:0 4px !important; }
}

/* 編集画面でも、表示と同じように各段を全幅で見せる */
.editor-styles-wrapper .is-root-container > .cl-sec,
.editor-styles-wrapper .is-root-container > .cl-hero,
.editor-styles-wrapper .is-root-container > .cl-strip,
.editor-styles-wrapper .is-root-container > .wp-block-block{ max-width:none !important; margin-left:0 !important; margin-right:0 !important; }
.editor-styles-wrapper .cl-hero{ min-height:640px; }
@media (min-width:782px){ .cl-sec > .wp-block-columns:has(> .wp-block-column > .cl-photo:only-child) > .wp-block-column:not(:has(> .cl-photo:only-child)){ padding:24px 0 !important; } }
@media (max-width:781px){ .cl-sec > .wp-block-columns:has(> .wp-block-column > .cl-photo:only-child) > .wp-block-column:not(:has(> .cl-photo:only-child)){ padding:0 !important; } }
/* 編集画面：写真と文章を半分ずつ、左右に余白を */
.editor-styles-wrapper .is-root-container > .cl-sec, .editor-styles-wrapper .is-root-container > .cl-strip{ padding-left:max(24px, calc((100% - 1120px) / 2)) !important; padding-right:max(24px, calc((100% - 1120px) / 2)) !important; }
.editor-styles-wrapper .cl-sec{ padding-left:max(24px, calc((100% - 1120px) / 2)) !important; padding-right:max(24px, calc((100% - 1120px) / 2)) !important; }
.editor-styles-wrapper .wp-block-block > .cl-sec, .editor-styles-wrapper .wp-block-block > .cl-strip{ max-width:none !important; }
.editor-styles-wrapper.editor-styles-wrapper .cl-sec > .wp-block-columns:has(> .wp-block-column > .cl-photo:only-child) > .wp-block-column.wp-block-column.wp-block-column{ flex:0 0 calc(50% - 32px) !important; width:calc(50% - 32px) !important; max-width:none !important; }
.editor-styles-wrapper .cl-sec > .wp-block-columns:has(> .wp-block-column > .cl-photo:only-child){ gap:64px !important; flex-wrap:nowrap !important; }
.editor-styles-wrapper .cl-sec .wp-block-column > .cl-photo{ margin-left:0 !important; margin-right:0 !important; width:100% !important; max-width:100% !important; transform:none !important; left:auto !important; right:auto !important; }
/* 写真と文章は半分ずつ（PC） */
@media (min-width:782px){
	body .cl-sec > .wp-block-columns:has(> .wp-block-column > .cl-photo:only-child) > .wp-block-column.wp-block-column.wp-block-column{ flex:0 0 calc(50% - 32px) !important; width:calc(50% - 32px) !important; max-width:none !important; }
	body .cl-sec > .wp-block-columns:has(> .wp-block-column > .cl-photo:only-child){ flex-wrap:nowrap !important; }
}

/* ===== 2.5 動き：英字見出し・写真のパン・トップ ===== */
/* 英字見出しが1文字ずつ浮かび上がる */
.cl-motion .cl-label .en .cl-char{ display:inline-block; opacity:0; transform:translateY(.45em); filter:blur(6px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1), filter .9s ease; }
.cl-motion .cl-label.is-in .en .cl-char{ opacity:1; transform:none; filter:none; }
.cl-motion .cl-label .ja{ opacity:0; transform:translateX(-12px); transition:opacity .8s ease .5s, transform .8s cubic-bezier(.2,.7,.2,1) .5s; }
.cl-motion .cl-label .ja::before{ transform:scaleX(0); transform-origin:left; transition:transform .8s cubic-bezier(.2,.7,.2,1) .6s; }
.cl-motion .cl-label.is-in .ja{ opacity:1; transform:none; }
.cl-motion .cl-label.is-in .ja::before{ transform:scaleX(1); }
.cl-motion .cl-sec > .cl-label, .cl-motion .cl-sec > .wp-block-group:has(> .cl-label), .cl-motion .cl-sec > .wp-block-columns .cl-label{ animation:none !important; }

/* 写真のパン（枠は固定、写真だけゆっくり動く） */
.cl-motion .cl-sec .cl-photo img, .cl-motion .cl-strip .cl-photo img{ transform:translate3d(0, var(--cl-py, 0%), 0) scale(1.14); transition:none; will-change:transform; }
.cl-motion .cl-sec .cl-photo:hover img, .cl-motion .cl-strip .cl-photo:hover img{ transform:translate3d(0, var(--cl-py, 0%), 0) scale(1.14); }

/* トップ画像：ゆっくり寄りながら、スクロールで奥へ */
.cl-motion .cl-hero > .cl-hero-img{ transform:translate3d(0, var(--cl-hy, 0px), 0); will-change:transform; }
.cl-motion .cl-hero > .cl-hero-img img{ transform:scale(1.12); animation:cl-zoom2 12s cubic-bezier(.25,.6,.3,1) forwards; }
@keyframes cl-zoom2{ to{ transform:scale(1.02); } }
/* トップの文字：順番にふわっと */
.cl-motion .cl-hero-panel > *{ opacity:0; transform:translateY(18px); animation:cl-rise 1.2s cubic-bezier(.2,.7,.2,1) forwards; }
.cl-motion .cl-hero-panel > *:nth-child(1){ animation-delay:.3s; }
.cl-motion .cl-hero-panel > *:nth-child(2){ animation-delay:.6s; }
.cl-motion .cl-hero-panel > *:nth-child(3){ animation-delay:.95s; }
.cl-motion .cl-hero-panel > *:nth-child(4){ animation-delay:1.25s; }
.cl-motion .cl-hero-panel > *:nth-child(n+5){ animation-delay:1.5s; }
@keyframes cl-rise{ to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){ .cl-motion *{ animation:none !important; transition:none !important; } }

/* ===== 2.5.1 見出し＋リストの段：見出しを左に寄せて、リストとの距離を詰める ===== */
@media (min-width:782px){
	.cl-sec > .wp-block-columns:has(> .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines){ gap:72px !important; align-items:flex-start !important; flex-wrap:nowrap !important; }
	.cl-sec > .wp-block-columns:has(> .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines) > .wp-block-column:first-child{ flex:0 0 320px !important; max-width:320px !important; position:sticky; top:110px; }
	.cl-sec > .wp-block-columns:has(> .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines) > .wp-block-column:last-child{ flex:1 1 0 !important; min-width:0; }
	.cl-sec > .wp-block-columns:has(> .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines) > .wp-block-column:first-child h2{ margin-top:-6px; }
}
.cl-sec > .wp-block-columns:has(> .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines) > .wp-block-column:first-child h2{ font-size:clamp(26px, 2.6vw, 34px); line-height:1.7; letter-spacing:.08em; }
.cl-sec > .wp-block-columns:has(> .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines) > .wp-block-column:first-child h2::after{ content:""; display:block; width:48px; height:2px; background:var(--cl-teal, #009EAF); margin-top:24px; }
@media (max-width:781px){
	.cl-sec > .wp-block-columns:has(> .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines){ gap:28px !important; }
	.cl-sec > .wp-block-columns:has(> .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines) > .wp-block-column:first-child h2::after{ margin-top:18px; }
}

/* ===== 2.6 トップページの背景にメリハリを ===== */
/* お知らせ：白でさっぱり、少しコンパクトに */
:is(.home, .editor-styles-wrapper) .cl-sec:has(.cl-news){ background:#FFFFFF !important; padding-top:96px; padding-bottom:96px; }
/* こんな気持ち：やわらかいクリーム色＋淡い光 */
:is(.home, .editor-styles-wrapper) .cl-sec:has(> .wp-block-columns > .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines){ position:relative; overflow:clip; background:linear-gradient(160deg, #FFF8EA 0%, #FDF3E1 55%, #F9F0E2 100%) !important; }
:is(.home, .editor-styles-wrapper) .cl-sec:has(> .wp-block-columns > .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines)::before{ content:""; position:absolute; width:min(560px, 80vw); aspect-ratio:1; right:-140px; top:-180px; border-radius:50%; background:radial-gradient(circle, rgba(255,210,63,.28) 0%, rgba(255,210,63,0) 68%); pointer-events:none; }
:is(.home, .editor-styles-wrapper) .cl-sec:has(> .wp-block-columns > .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines)::after{ content:""; position:absolute; width:min(420px, 70vw); aspect-ratio:1; left:-160px; bottom:-200px; border-radius:50%; background:radial-gradient(circle, rgba(0,158,175,.13) 0%, rgba(0,158,175,0) 68%); pointer-events:none; }
:is(.home, .editor-styles-wrapper) .cl-sec:has(> .wp-block-columns > .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines) > *{ position:relative; z-index:1; }
:is(.home, .editor-styles-wrapper) .cl-sec:has(> .wp-block-columns > .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines) .cl-lines, :is(.home, .editor-styles-wrapper) .cl-sec:has(> .wp-block-columns > .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines) .cl-lines > li{ border-color:rgba(120,90,40,.16) !important; }
/* お客さまの声：明るいイエロー、カードは白で浮かせる */
:is(.home, .editor-styles-wrapper) .cl-sec:has(> .cl-voices){ position:relative; overflow:clip; background:#FFF1CC var(--cl-grain) !important; }
:is(.home, .editor-styles-wrapper) .cl-sec:has(> .cl-voices)::before{ content:"VOICE"; position:absolute; right:-0.04em; bottom:-0.22em; font-family:var(--cl-en, 'Jost', sans-serif); font-weight:300; font-size:clamp(120px, 20vw, 300px); line-height:1; letter-spacing:.02em; color:rgba(255,255,255,.55); pointer-events:none; }
:is(.home, .editor-styles-wrapper) .cl-sec:has(> .cl-voices) > *{ position:relative; z-index:1; }
:is(.home, .editor-styles-wrapper) .cl-sec:has(> .cl-voices) .cl-voice{ background:#FFFFFF !important; border-top-color:var(--cl-orange, #E06A00); border-radius:4px; box-shadow:0 18px 40px -24px rgba(120,80,0,.35); }
/* メニュー：紙の色のまま（声との差で区切る） */

/* ===== 2.7 直近の空き：トップ写真に重なる白いカードで目立たせる ===== */
.cl-strip{ position:relative; z-index:5; background:transparent !important; color:var(--cl-ink); padding:0 24px !important; margin-top:-64px !important; }
.cl-strip > .wp-block-group{ position:relative; max-width:1120px !important; margin:0 auto !important; box-sizing:border-box; background:#FFFFFF; border-radius:6px; padding:22px 28px 22px 32px; box-shadow:0 24px 50px -22px rgba(0,60,68,.45); display:flex; flex-wrap:wrap; align-items:center; gap:10px 28px !important; overflow:hidden; }
.cl-strip > .wp-block-group::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:6px; background:linear-gradient(180deg, var(--cl-teal) 0%, var(--cl-teal) 60%, var(--cl-yellow) 60%); }
/* RESERVATION ＋ 点滅するランプ */
.cl-strip .cl-eyebrow{ display:inline-flex; align-items:center; gap:10px; color:var(--cl-teal-deep) !important; font-family:var(--cl-en); font-size:12px !important; letter-spacing:.28em; font-weight:500; padding-right:28px; border-right:1px solid var(--cl-line); }
.cl-strip .cl-eyebrow::before{ content:""; width:9px; height:9px; border-radius:50%; background:#2FBF71; box-shadow:0 0 0 0 rgba(47,191,113,.6); animation:cl-live 2s ease-out infinite; flex:none; }
@keyframes cl-live{ 0%{ box-shadow:0 0 0 0 rgba(47,191,113,.55); } 80%,100%{ box-shadow:0 0 0 10px rgba(47,191,113,0); } }
/* 直近の空き 日付を大きく */
.cl-strip p:not(.cl-eyebrow):not(.cl-small){ font-size:14px; letter-spacing:.12em; color:var(--cl-muted); display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 14px; }
.cl-strip p strong{ font-family:var(--cl-en), var(--wp--preset--font-family--gothic); font-size:clamp(22px, 2.4vw, 30px); font-weight:500; letter-spacing:.06em; color:var(--cl-ink); background:linear-gradient(transparent 68%, rgba(255,210,63,.75) 68%); padding:0 4px; line-height:1.3; }
/* 予約状況を見る → ボタンに */
.cl-strip .cl-small{ margin-left:auto !important; }
.cl-strip .cl-small a{ display:inline-flex; align-items:center; gap:10px; background:var(--cl-teal-deep); color:#FFFFFF !important; text-decoration:none !important; font-size:14px; font-weight:700; letter-spacing:.08em; padding:12px 24px; border-radius:999px; transition:background .3s, transform .3s; white-space:nowrap; }
.cl-strip .cl-small a:hover{ background:#00606B; transform:translateX(3px); }
.cl-hero::before{ padding-bottom:110px !important; }
.cl-hero-panel::after{ bottom:-150px; }
@media (max-width:781px){
	.cl-strip{ margin-top:-40px !important; padding:0 16px !important; }
	.cl-strip > .wp-block-group{ padding:20px 20px 20px 24px; gap:10px 16px !important; flex-direction:column; align-items:flex-start; }
	.cl-strip .cl-eyebrow{ border-right:0; padding-right:0; }
	.cl-strip .cl-small{ margin-left:0 !important; width:100%; }
	.cl-strip .cl-small a{ width:100%; justify-content:center; box-sizing:border-box; }
	.cl-hero::before{ padding-bottom:80px !important; }
}
.editor-styles-wrapper .cl-strip{ margin-top:0 !important; padding:24px !important; background:var(--cl-teal-tint) !important; }
@media (prefers-reduced-motion: reduce){ .cl-strip .cl-eyebrow::before{ animation:none; } }
.cl-strip{ background:linear-gradient(transparent 64px, #FFFFFF 64px) !important; }
@media (max-width:781px){ .cl-strip{ background:linear-gradient(transparent 40px, #FFFFFF 40px) !important; } }
.editor-styles-wrapper .cl-strip{ background:var(--cl-teal-tint) !important; }
/* 編集画面ではSCROLLの表示を出さない（ボタンと重なるため） */
.editor-styles-wrapper .cl-hero::before, .editor-styles-wrapper .cl-hero-panel::after{ display:none !important; }

/* ===== 2.8 お客さまの笑顔ギャラリー ===== */
.cl-smile-lead{ font-size:clamp(18px, 1.8vw, 22px); letter-spacing:.12em; margin-top:28px !important; }
.cl-smile-sec .cl-small{ margin-top:20px !important; }
/* コラージュ：大小の写真を組み合わせて並べる */
.wp-block-gallery.is-style-cl-collage{ display:grid !important; grid-template-columns:repeat(4, 1fr); grid-auto-rows:clamp(150px, 15vw, 210px); grid-auto-flow:dense; gap:14px !important; margin-top:40px !important; }
.wp-block-gallery.is-style-cl-collage > figure.wp-block-image{ width:auto !important; max-width:none !important; margin:0 !important; height:100%; border-radius:6px; overflow:hidden; position:relative; }
.wp-block-gallery.is-style-cl-collage > figure.wp-block-image img{ width:100% !important; height:100% !important; object-fit:cover; display:block; transition:transform 1s cubic-bezier(.2,.7,.2,1); }
.wp-block-gallery.is-style-cl-collage > figure.wp-block-image:hover img{ transform:scale(1.05); }
.wp-block-gallery.is-style-cl-collage > figure:nth-child(6n+1){ grid-column:span 2; grid-row:span 2; }
.wp-block-gallery.is-style-cl-collage > figure:nth-child(6n+4), .wp-block-gallery.is-style-cl-collage > figure:nth-child(6n+5){ grid-row:span 2; }
.wp-block-gallery.is-style-cl-collage > figure:nth-child(6n+6){ grid-column:span 2; }
.wp-block-gallery.is-style-cl-collage figcaption{ position:absolute; left:0; right:0; bottom:0; margin:0 !important; padding:28px 14px 10px !important; background:linear-gradient(transparent, rgba(0,40,46,.55)) !important; color:#FFFFFF; font-size:12px; letter-spacing:.08em; text-align:left; }
@media (max-width:781px){
	.wp-block-gallery.is-style-cl-collage{ grid-template-columns:repeat(2, 1fr); grid-auto-rows:42vw; gap:8px !important; }
	.wp-block-gallery.is-style-cl-collage > figure:nth-child(6n+1){ grid-column:span 2; grid-row:span 1; }
	.wp-block-gallery.is-style-cl-collage > figure:nth-child(6n+4), .wp-block-gallery.is-style-cl-collage > figure:nth-child(6n+5){ grid-row:span 2; }
	.wp-block-gallery.is-style-cl-collage > figure:nth-child(6n+6){ grid-column:span 2; }
}
/* 表示されたとき、1枚ずつふわっと */
.cl-motion .wp-block-gallery.is-style-cl-collage > figure{ opacity:0; transform:translateY(24px); transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.cl-motion .wp-block-gallery.is-style-cl-collage.is-in > figure{ opacity:1; transform:none; }
/* 流れる帯：写真がゆっくり横に流れ続ける */
.wp-block-gallery.is-style-cl-marquee{ display:flex !important; flex-wrap:nowrap !important; gap:16px !important; margin-top:40px !important; overflow-x:auto; padding-bottom:4px; }
.wp-block-gallery.is-style-cl-marquee > figure.wp-block-image{ flex:0 0 auto !important; width:clamp(200px, 22vw, 300px) !important; aspect-ratio:4/5; margin:0 !important; border-radius:6px; overflow:hidden; }
.wp-block-gallery.is-style-cl-marquee > figure.wp-block-image img{ width:100% !important; height:100% !important; object-fit:cover; }
.wp-block-gallery.is-style-cl-marquee > figure:nth-child(even){ margin-top:36px !important; }
.cl-marquee-on.wp-block-gallery.is-style-cl-marquee{ overflow:visible; width:max-content !important; max-width:none !important; animation:cl-marquee var(--cl-marquee-s, 60s) linear infinite; }
.cl-marquee-wrap{ overflow:hidden; margin-top:40px; -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%); mask-image:linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%); }
.cl-marquee-wrap > .wp-block-gallery{ margin-top:0 !important; }
.cl-marquee-wrap:hover .cl-marquee-on{ animation-play-state:paused; }
@keyframes cl-marquee{ to{ transform:translateX(-50%); } }
@media (max-width:781px){ .wp-block-gallery.is-style-cl-marquee > figure.wp-block-image{ width:44vw !important; } .wp-block-gallery.is-style-cl-marquee > figure:nth-child(even){ margin-top:20px !important; } }

/* ===== 2.9.1 ページ上部：背景に写真を敷けるように（グループの「背景画像」で設定） ===== */
.cl-sec.is-top[style*="background-image"]{ position:relative; isolation:isolate; overflow:hidden; background-size:cover !important; background-position:center !important; background-repeat:no-repeat !important; padding-top:48px !important; padding-bottom:110px !important; }
/* 文字が読みやすいよう、左は紙の色を濃く・右へ向かって写真が透けて見える */
.cl-sec.is-top[style*="background-image"]::before{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg, rgba(248,248,244,.95) 0%, rgba(248,248,244,.86) 42%, rgba(248,248,244,.45) 75%, rgba(248,248,244,.25) 100%), linear-gradient(0deg, rgba(248,248,244,.9) 0%, rgba(248,248,244,0) 22%); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); }
/* 手前の写真は白いフチと影で、背景から浮かせる */
.cl-sec.is-top[style*="background-image"] .wp-block-column > .cl-photo, .cl-sec.is-top[style*="background-image"] .wp-block-column > .wp-block-image:not(.cl-photo), .cl-sec.is-top[style*="background-image"] .wp-block-column > .wp-block-gallery{ box-shadow:0 30px 60px -28px rgba(0,50,56,.45); }
.cl-sec.is-top[style*="background-image"] .cl-highlight{ background:rgba(255,255,255,.96); }
@media (max-width:781px){
	.cl-sec.is-top[style*="background-image"]{ padding-top:28px !important; padding-bottom:64px !important; }
	.cl-sec.is-top[style*="background-image"]::before{ background:linear-gradient(180deg, rgba(248,248,244,.7) 0%, rgba(248,248,244,.9) 40%, rgba(248,248,244,.95) 100%); }
}

/* ===== 2.9.2 どの段でも、背景写真の上に文字が読みやすいベールを ===== */
.cl-sec:not(.is-top)[style*="background-image"], .cl-strip[style*="background-image"]{ position:relative; isolation:isolate; overflow:hidden; background-size:cover !important; background-position:center !important; background-repeat:no-repeat !important; }
.cl-sec:not(.is-top)[style*="background-image"]::before{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(180deg, rgba(248,248,244,.9) 0%, rgba(248,248,244,.8) 50%, rgba(248,248,244,.9) 100%); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
/* ターコイズの段に写真を敷いた場合は、ターコイズのベール（白い文字のまま） */
.cl-sec.is-teal[style*="background-image"]::before{ background:linear-gradient(180deg, rgba(0,124,138,.88) 0%, rgba(0,124,138,.78) 50%, rgba(0,124,138,.9) 100%) !important; }
/* 文字に白いにじみを付けて、さらに読みやすく */
.cl-sec:not(.is-teal)[style*="background-image"] :is(p, li, h2, h3, h4){ text-shadow:0 0 12px rgba(248,248,244,.9); }
/* 「こんな〜ませんか？」の見出しが途中で折り返さないよう、幅と文字サイズを調整 */
@media (min-width:782px){
	.cl-sec > .wp-block-columns:has(> .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines) > .wp-block-column:first-child{ flex:0 0 380px !important; max-width:380px !important; }
}
.cl-sec > .wp-block-columns:has(> .wp-block-column:first-child > h2.wp-block-heading:only-child):has(.cl-lines) > .wp-block-column:first-child h2{ font-size:clamp(22px, 2.2vw, 30px) !important; word-break:keep-all; overflow-wrap:anywhere; }

/* ===== 2.10 院長の想い（手紙＋写真＋3つの章） ===== */
.cl-message{ --cl-mincho:'Shippori Mincho', 'Hiragino Mincho ProN', 'Yu Mincho', 'YuMincho', serif; position:relative; overflow:clip; background:linear-gradient(180deg, #F8F8F4 0%, #FBF6EC 100%) !important; }
.cl-message::before{ content:"MESSAGE"; position:absolute; top:40px; right:-0.04em; font-family:var(--cl-en); font-weight:300; font-size:clamp(90px, 15vw, 230px); line-height:1; letter-spacing:.02em; color:rgba(0,158,175,.07); pointer-events:none; z-index:0; }
.cl-message > *{ position:relative; z-index:1; }
/* 上：写真と大きな一文 */
.cl-message-head{ gap:clamp(32px, 6vw, 88px) !important; align-items:center !important; }
.cl-msg-photo{ position:relative; margin:0 !important; }
.cl-msg-photo::after{ content:""; position:absolute; inset:18px -18px -18px 18px; border:1px solid var(--cl-teal); border-radius:4px; z-index:-1; }
.cl-msg-photo img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:4px; display:block; box-shadow:0 30px 60px -32px rgba(0,50,56,.5); }
.cl-msg-eyebrow{ font-family:var(--cl-en); font-size:13px; letter-spacing:.32em; color:var(--cl-teal-deep); display:flex; align-items:center; gap:14px; margin:0 !important; }
.cl-msg-eyebrow span{ font-family:var(--wp--preset--font-family--gothic); letter-spacing:.16em; color:var(--cl-muted); font-size:13px; display:flex; align-items:center; gap:14px; }
.cl-msg-eyebrow span::before{ content:""; width:32px; height:1px; background:var(--cl-teal); }
h2.cl-msg-lead{ font-family:var(--cl-mincho) !important; font-weight:500 !important; font-size:clamp(24px, 2.8vw, 40px) !important; line-height:1.7 !important; letter-spacing:.06em !important; margin:22px 0 0 !important; color:var(--cl-ink); }
.cl-msg-intro{ font-family:var(--cl-mincho); font-size:16px; line-height:2.1; letter-spacing:.1em; color:var(--cl-muted); margin-top:22px !important; }
/* 下：手紙のカード */
.cl-letter{ max-width:880px !important; margin:clamp(56px, 8vw, 96px) auto 0 !important; background:#FFFDF8 var(--cl-grain); border-radius:6px; padding:clamp(40px, 6vw, 80px) clamp(24px, 7vw, 96px) clamp(36px, 5vw, 64px); box-shadow:0 40px 80px -48px rgba(70,50,10,.45), 0 0 0 1px rgba(120,90,40,.08); position:relative; }
.cl-letter::before{ content:""; position:absolute; top:-14px; left:50%; width:120px; height:28px; transform:translateX(-50%) rotate(-2deg); background:rgba(255,210,63,.55); border-radius:2px; }
.cl-chapter + .cl-chapter{ margin-top:clamp(40px, 5vw, 64px) !important; padding-top:clamp(40px, 5vw, 64px); border-top:1px dashed rgba(0,124,138,.25); }
.cl-chapter-num{ font-family:var(--cl-en); font-size:clamp(34px, 3.6vw, 48px); font-weight:300; color:var(--cl-teal); line-height:1; display:flex; align-items:baseline; gap:16px; margin:0 !important; }
.cl-chapter-num span{ font-family:var(--wp--preset--font-family--gothic); font-size:13px; letter-spacing:.24em; color:var(--cl-orange, #E06A00); font-weight:500; }
h3.cl-chapter-title{ font-family:var(--cl-mincho) !important; font-weight:600 !important; font-size:clamp(18px, 2.1vw, 26px) !important; letter-spacing:.08em; line-height:1.7 !important; margin:16px 0 0 !important; }
.cl-chapter p:not(.cl-chapter-num){ font-family:var(--cl-mincho); font-size:16px; line-height:2.3; letter-spacing:.06em; margin-top:16px !important; color:#2F302C; }
/* 署名 */
.cl-sign{ margin-top:clamp(40px, 5vw, 64px) !important; text-align:right; }
.cl-sign-role{ font-size:13px; letter-spacing:.14em; color:var(--cl-muted); margin:0 !important; }
.cl-sign-name{ font-family:'Klee One', var(--cl-mincho); font-weight:600; font-size:clamp(28px, 3vw, 38px); letter-spacing:.14em; margin:6px 0 0 !important; color:var(--cl-ink); display:inline-block; background:linear-gradient(transparent 72%, rgba(255,210,63,.6) 72%); padding:0 6px; }
@media (max-width:781px){
	.cl-message-head{ flex-direction:column; }
	.cl-message-head > .wp-block-column{ flex-basis:100% !important; }
	.cl-message-head > .wp-block-column:first-child{ max-width:78%; }
	.cl-msg-photo::after{ inset:12px -12px -12px 12px; }
	.cl-letter{ margin-left:-8px !important; margin-right:-8px !important; }
	.cl-sign{ text-align:left; }
}
/* 章がスクロールで1つずつ現れる */
.cl-motion .cl-chapter, .cl-motion .cl-sign{ opacity:0; transform:translateY(28px); transition:opacity 1s ease, transform 1s cubic-bezier(.2,.7,.2,1); }
.cl-motion .cl-chapter.is-in, .cl-motion .cl-sign.is-in{ opacity:1; transform:none; }
.cl-motion .cl-letter, .cl-motion .cl-message-head{ animation:none !important; }

/* ===== 2.11 ダイエット：ほかの方法との比較表 ===== */
.cl-compare-lead{ font-size:16px; line-height:2; letter-spacing:.06em; margin-top:28px !important; }
.wp-block-table.cl-compare{ margin-top:36px !important; overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:8px; background:#FFFFFF; box-shadow:0 30px 60px -40px rgba(0,50,56,.4); }
.wp-block-table.cl-compare table{ width:100%; min-width:760px; border-collapse:separate; border-spacing:0; table-layout:fixed; }
.wp-block-table.cl-compare th, .wp-block-table.cl-compare td{ border:0 !important; border-bottom:1px solid var(--cl-line) !important; padding:18px 18px !important; font-size:14px; line-height:1.75; vertical-align:middle; text-align:center; color:var(--cl-ink); }
.wp-block-table.cl-compare th:first-child, .wp-block-table.cl-compare td:first-child{ width:22%; text-align:left; font-weight:700; font-size:13px; letter-spacing:.06em; color:var(--cl-muted); background:#FBFBF8; position:sticky; left:0; z-index:1; }
.wp-block-table.cl-compare thead th{ font-size:14px; font-weight:700; letter-spacing:.06em; padding:24px 14px !important; background:#F3F4F0; border-bottom:0 !important; }
.wp-block-table.cl-compare thead th:first-child{ background:#F3F4F0; }
.wp-block-table.cl-compare small{ font-size:12px; color:var(--cl-muted); }
/* クローバーの列をターコイズで強調 */
.wp-block-table.cl-compare th:last-child, .wp-block-table.cl-compare td:last-child{ background:rgba(0,158,175,.07); box-shadow:inset 2px 0 0 var(--cl-teal), inset -2px 0 0 var(--cl-teal); }
.wp-block-table.cl-compare thead th:last-child{ background:var(--cl-teal); color:#FFFFFF; position:relative; }
.wp-block-table.cl-compare thead th:last-child::before{ content:"CLOVER"; display:block; font-family:var(--cl-en); font-size:11px; letter-spacing:.3em; color:var(--cl-yellow); margin-bottom:4px; font-weight:500; }
.wp-block-table.cl-compare tbody tr:last-child td{ border-bottom:0 !important; padding-top:24px !important; padding-bottom:24px !important; font-size:15px; }
.wp-block-table.cl-compare tbody tr:last-child td:last-child{ box-shadow:inset 2px 0 0 var(--cl-teal), inset -2px 0 0 var(--cl-teal), inset 0 -2px 0 var(--cl-teal); }
.wp-block-table.cl-compare tbody tr:last-child td:last-child strong{ color:var(--cl-orange, #E06A00); font-size:22px; font-family:var(--cl-en); letter-spacing:.02em; }
.wp-block-table.cl-compare td:last-child strong{ color:var(--cl-teal-deep); }
.cl-compare-note{ margin-top:18px !important; line-height:1.9; }
@media (max-width:781px){
	.wp-block-table.cl-compare table{ min-width:640px; }
	.wp-block-table.cl-compare th, .wp-block-table.cl-compare td{ padding:14px 12px !important; font-size:13px; }
	.wp-block-table.cl-compare th:first-child, .wp-block-table.cl-compare td:first-child{ width:110px; }
	.wp-block-table.cl-compare::after{ content:""; }
	.cl-compare-sec .wp-block-table.cl-compare{ margin-left:-8px !important; margin-right:-8px !important; }
}
.cl-compare-sec .cl-compare-lead + .wp-block-table::before{ content:none; }
@media (max-width:781px){ .cl-compare-lead::after{ content:"→ 表は横にスクロールできます"; display:block; font-size:12px; color:var(--cl-teal-deep); letter-spacing:.08em; margin-top:10px; } }
/* スマホ：横スクロールなしで3つ全部が見えるように、文字を小さく詰める */
@media (max-width:781px){
	.cl-compare-lead::after{ content:none !important; }
	.wp-block-table.cl-compare{ overflow:visible; }
	.wp-block-table.cl-compare table{ min-width:0 !important; }
	.wp-block-table.cl-compare th, .wp-block-table.cl-compare td{ padding:12px 5px !important; font-size:11.5px !important; line-height:1.6; letter-spacing:0; word-break:break-all; }
	.wp-block-table.cl-compare th:first-child, .wp-block-table.cl-compare td:first-child{ width:21%; padding-left:8px !important; font-size:11px !important; position:static; }
	.wp-block-table.cl-compare thead th{ padding:16px 4px !important; font-size:11.5px !important; }
	.wp-block-table.cl-compare thead th:last-child::before{ font-size:9px; letter-spacing:.2em; }
	.wp-block-table.cl-compare small{ font-size:10px; display:block; }
	.wp-block-table.cl-compare tbody tr:last-child td{ font-size:12px !important; }
	.wp-block-table.cl-compare tbody tr:last-child td:last-child strong{ font-size:16px; }
}

/* ===== 2.14 料金表の小見出し（セットメニュー／単品メニュー） ===== */
.cl-pricelist > .cl-price-cat{ display:flex; align-items:center; gap:14px; margin:28px 0 4px !important; font-size:13px; font-weight:700; letter-spacing:.2em; color:var(--cl-teal-deep); }
.cl-pricelist > .cl-price-cat::after{ content:""; flex:1; height:1px; background:linear-gradient(90deg, var(--cl-teal), transparent); opacity:.5; }
.cl-pricelist > .cl-price-cat:first-child{ margin-top:12px !important; }
.cl-pricelist > .cl-price-cat + .cl-pricerow{ padding-top:10px; }
.cl-pricelist > .cl-pricerow:has(+ .cl-price-cat){ border-bottom:0; }

/* ===== 2.16 お客さまの笑顔（ひとこと説明付き） ===== */
.cl-stories-sec{ position:relative; overflow:clip; }
.cl-smilecards{ display:grid !important; grid-template-columns:repeat(3, 1fr); gap:56px 36px; margin-top:48px !important; padding-bottom:56px; }
.cl-smilecards > .cl-smilecard{ margin:0 !important; position:relative; }
.cl-smilecards > .cl-smilecard:nth-child(3n+2){ transform:translateY(56px); }
.cl-smilecard > .wp-block-image{ margin:0 !important; border-radius:6px; overflow:hidden; position:relative; box-shadow:0 26px 50px -30px rgba(0,50,56,.45); }
.cl-smilecard > .wp-block-image img{ width:100%; aspect-ratio:4/5; object-fit:cover; display:block; transition:transform 1.1s cubic-bezier(.2,.7,.2,1); }
.cl-smilecard:hover > .wp-block-image img{ transform:scale(1.05); }
/* 写真の左上に小さな番号 */
.cl-smilecards{ counter-reset:cl-smile; }
.cl-smilecard{ counter-increment:cl-smile; }
.cl-smilecard > .wp-block-image::after{ content:counter(cl-smile, decimal-leading-zero); position:absolute; top:14px; left:16px; font-family:var(--cl-en); font-size:13px; letter-spacing:.2em; color:#FFFFFF; text-shadow:0 1px 8px rgba(0,0,0,.35); }
.cl-smilecard > .cl-smile-tag{ display:inline-block; margin:20px 0 0 !important; font-size:11px; font-weight:700; letter-spacing:.12em; color:var(--cl-teal-deep); background:rgba(0,158,175,.1); padding:4px 12px; border-radius:999px; }
.cl-smilecard > .cl-smile-text{ font-family:'Shippori Mincho', 'Hiragino Mincho ProN', 'Yu Mincho', serif; font-size:16px; line-height:2; letter-spacing:.06em; margin:14px 0 0 !important; color:var(--cl-ink); position:relative; padding-left:22px; }
.cl-smilecard > .cl-smile-text::before{ content:"“"; position:absolute; left:0; top:-10px; font-family:var(--cl-en); font-size:36px; line-height:1; color:var(--cl-yellow); }
.cl-smilecard > .cl-smile-who{ margin:12px 0 0 !important; padding-left:22px; font-size:12px; letter-spacing:.14em; color:var(--cl-muted); display:flex; align-items:center; gap:10px; }
.cl-smilecard > .cl-smile-who::before{ content:""; width:20px; height:1px; background:var(--cl-muted); opacity:.6; }
.cl-stories-sec > .cl-small{ margin-top:24px !important; }
/* スマホ：横にスワイプして見るカルーセル */
@media (max-width:781px){
	.cl-smilecards{ grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:78%; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding:4px 24px 24px; margin-left:-24px !important; margin-right:-24px !important; scrollbar-width:none; }
	.cl-smilecards::-webkit-scrollbar{ display:none; }
	.cl-smilecards > .cl-smilecard{ scroll-snap-align:center; }
	.cl-smilecards > .cl-smilecard:nth-child(3n+2){ transform:none; }
	.cl-stories-sec .cl-smile-lead::after{ content:"→ 横にスワイプしてご覧ください"; display:block; margin-top:10px; font-size:12px; color:var(--cl-teal-deep); letter-spacing:.08em; font-family:var(--wp--preset--font-family--gothic); }
}
/* 表示されたとき、1枚ずつふわっと */
@media (min-width:782px){
	.cl-motion .cl-smilecards > .cl-smilecard{ opacity:0; translate:0 28px; transition:opacity 1s ease, translate 1s cubic-bezier(.2,.7,.2,1); }
	.cl-motion .cl-smilecards.is-in > .cl-smilecard{ opacity:1; translate:0 0; }
}
/* 編集画面ではずらさず、編集しやすく */
.editor-styles-wrapper .cl-smilecards > .cl-smilecard:nth-child(3n+2){ transform:none; }

/* ===== 2.17 施術例（3枚のカード） ===== */
.cl-cases-lead{ font-size:16px; line-height:2; letter-spacing:.06em; margin-top:28px !important; }
.cl-casecards{ display:grid !important; grid-template-columns:repeat(3, 1fr); gap:32px; margin-top:44px !important; align-items:stretch; }
.cl-casecards > .cl-casecard{ margin:0 !important; background:#FFFFFF; border-radius:8px; overflow:hidden; box-shadow:0 30px 60px -40px rgba(0,50,56,.45); display:flex; flex-direction:column; transition:transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s; }
.cl-casecards > .cl-casecard:hover{ transform:translateY(-6px); box-shadow:0 40px 70px -40px rgba(0,50,56,.55); }
.cl-casecard > .cl-case-photo{ margin:0 !important; overflow:hidden; }
.cl-casecard > .cl-case-photo img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; transition:transform 1.1s cubic-bezier(.2,.7,.2,1); }
.cl-casecard:hover > .cl-case-photo img{ transform:scale(1.05); }
.cl-casecard > .cl-case-body{ margin:0 !important; padding:26px 26px 28px; display:flex; flex-direction:column; flex:1; }
.cl-case-body > *{ margin:0 !important; }
.cl-case-no{ font-family:var(--cl-en); font-size:12px; letter-spacing:.3em; color:var(--cl-teal-deep); display:flex; align-items:baseline; gap:8px; }
.cl-case-no span{ font-size:30px; font-weight:300; letter-spacing:.04em; color:var(--cl-teal); line-height:1; }
h3.cl-case-title{ font-family:'Shippori Mincho', 'Hiragino Mincho ProN', 'Yu Mincho', serif !important; font-weight:600 !important; font-size:18px !important; line-height:1.7 !important; letter-spacing:.06em; margin-top:12px !important; margin-bottom:18px !important; }
.cl-case-row{ display:flex; gap:12px; align-items:baseline; font-size:13.5px; line-height:1.8; padding:9px 0; border-top:1px solid var(--cl-line); }
.cl-case-row .k{ flex:0 0 52px; font-size:11px; font-weight:700; letter-spacing:.12em; color:var(--cl-teal-deep); }
.cl-case-row .v{ flex:1; color:var(--cl-ink); }
.cl-case-row + .cl-case-comment{ margin-top:16px !important; }
.cl-case-comment{ margin-top:auto !important; background:#FFF8E6; border-left:3px solid var(--cl-yellow); border-radius:0 4px 4px 0; padding:14px 16px; font-size:13px; line-height:1.9; color:#3B3C38; }
.cl-case-comment strong{ display:block; font-size:11px; letter-spacing:.16em; color:var(--cl-orange, #E06A00); margin-bottom:4px; }
.cl-cases-sec > .cl-small{ margin-top:28px !important; }
@media (max-width:1000px) and (min-width:782px){ .cl-casecards{ gap:20px; } .cl-casecard > .cl-case-body{ padding:22px 20px 24px; } }
/* スマホ：横にスワイプ */
@media (max-width:781px){
	.cl-casecards{ grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:84%; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding:4px 24px 28px; margin-left:-24px !important; margin-right:-24px !important; scrollbar-width:none; }
	.cl-casecards::-webkit-scrollbar{ display:none; }
	.cl-casecards > .cl-casecard{ scroll-snap-align:center; }
	.cl-casecards > .cl-casecard:hover{ transform:none; }
	.cl-cases-lead::after{ content:"→ 横にスワイプしてご覧ください"; display:block; margin-top:10px; font-size:12px; color:var(--cl-teal-deep); letter-spacing:.08em; }
}
@media (min-width:782px){
	.cl-motion .cl-casecards > .cl-casecard{ opacity:0; translate:0 28px; transition:opacity 1s ease, translate 1s cubic-bezier(.2,.7,.2,1), transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s; }
	.cl-motion .cl-casecards.is-in > .cl-casecard{ opacity:1; translate:0 0; }
}
/* 院長よりの箱を、3枚とも下端でそろえる */
.cl-case-body > .cl-case-comment{ margin-top:auto !important; }
.cl-case-body > .cl-case-row:has(+ .cl-case-comment){ margin-bottom:16px !important; }
/* 小見出しの線：編集画面でも必ず表示されるよう、はっきりした線に */
.cl-pricelist > .cl-price-cat::after,
.editor-styles-wrapper .cl-pricelist > .cl-price-cat::after{ content:"" !important; display:block !important; flex:1 1 auto !important; min-width:40px; height:1px !important; background:linear-gradient(90deg, rgba(0,158,175,.55), rgba(0,158,175,.08)) !important; opacity:1 !important; }
/* 小見出しの線：画面を縮小表示しても消えないよう、背景ではなく「罫線」で描く */
.cl-pricelist > .cl-price-cat::after,
.editor-styles-wrapper .cl-pricelist > .cl-price-cat::after{ height:0 !important; background:none !important; border:0; border-top:1px solid rgba(0,158,175,.5); border-image:linear-gradient(90deg, rgba(0,158,175,.6), rgba(0,158,175,.12)) 1; align-self:center; }

/* ===== 2.18 ギャラリー（横3枚） ===== */
.wp-block-gallery:is(.is-style-cl-trio, .is-style-cl-trio-wide){ display:grid !important; grid-template-columns:repeat(3, 1fr); gap:24px !important; margin-top:40px !important; }
.wp-block-gallery:is(.is-style-cl-trio, .is-style-cl-trio-wide) > figure.wp-block-image{ width:auto !important; max-width:none !important; margin:0 !important; position:relative; border-radius:8px; overflow:hidden; box-shadow:0 26px 50px -32px rgba(0,50,56,.45); }
.wp-block-gallery:is(.is-style-cl-trio, .is-style-cl-trio-wide) > figure.wp-block-image img{ width:100% !important; height:auto !important; aspect-ratio:4/5; object-fit:cover; display:block; transition:transform 1.1s cubic-bezier(.2,.7,.2,1); }
.wp-block-gallery:is(.is-style-cl-trio, .is-style-cl-trio-wide) > figure.wp-block-image:hover img{ transform:scale(1.05); }
/* 写真の上の説明（キャプション） */
.wp-block-gallery:is(.is-style-cl-trio, .is-style-cl-trio-wide) > figure figcaption{ position:absolute !important; left:0; right:0; bottom:0; top:auto !important; max-height:none !important; overflow:visible !important; margin:0 !important; padding:56px 20px 18px !important; background:linear-gradient(transparent, rgba(0,40,46,.62)) !important; color:#FFFFFF !important; font-size:13px !important; line-height:1.7; letter-spacing:.06em; text-align:left !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; }
/* スマホ：横にスワイプ */
@media (max-width:781px){
	.wp-block-gallery:is(.is-style-cl-trio, .is-style-cl-trio-wide){ grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:80%; gap:14px !important; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding:4px 24px 20px; margin-left:-24px !important; margin-right:-24px !important; scrollbar-width:none; }
	.wp-block-gallery:is(.is-style-cl-trio, .is-style-cl-trio-wide)::-webkit-scrollbar{ display:none; }
	.wp-block-gallery:is(.is-style-cl-trio, .is-style-cl-trio-wide) > figure{ scroll-snap-align:center; }
}
/* 表示されたとき、1枚ずつふわっと */
@media (min-width:782px){
	.cl-motion .wp-block-gallery:is(.is-style-cl-trio, .is-style-cl-trio-wide) > figure{ opacity:0; translate:0 24px; transition:opacity .9s ease, translate .9s cubic-bezier(.2,.7,.2,1); }
	.cl-motion .wp-block-gallery:is(.is-style-cl-trio, .is-style-cl-trio-wide).is-in > figure{ opacity:1; translate:0 0; }
}

/* 横長の写真用：写真の形を横長（3:2）に */
.wp-block-gallery.is-style-cl-trio-wide > figure.wp-block-image img{ aspect-ratio:3/2 !important; }

/* ===== 2.19 コラム（一覧・記事・書くための部品） ===== */
/* 一覧の上部 */
.cl-colhero{ position:relative; overflow:clip; }
.cl-colhero::after{ content:"COLUMN"; position:absolute; right:-0.04em; bottom:-0.2em; font-family:var(--cl-en); font-weight:300; font-size:clamp(90px, 15vw, 220px); line-height:1; color:rgba(0,158,175,.06); pointer-events:none; }
.cl-colhero > *{ position:relative; z-index:1; }
.cl-colhero-lead{ font-size:16px; line-height:2; letter-spacing:.06em; margin-top:22px !important; max-width:640px; }
.cl-colhero-en{ font-family:var(--cl-en); font-size:13px; letter-spacing:.32em; color:var(--cl-teal-deep); margin-top:18px !important; }
.cl-colhero-title{ font-family:'Shippori Mincho', 'Hiragino Mincho ProN', 'Yu Mincho', serif; font-weight:500; font-size:clamp(28px, 3.2vw, 42px) !important; letter-spacing:.08em; margin-top:6px !important; }
/* カテゴリーのボタン */
.cl-colhero .cl-cats{ margin-top:30px !important; gap:10px; }
.cl-colhero .cl-cats li a{ border:1px solid rgba(0,124,138,.35); background:#FFFFFF; color:var(--cl-teal-deep); font-size:13px; letter-spacing:.08em; padding:7px 18px; transition:background .3s, color .3s, border-color .3s; }
.cl-colhero .cl-cats li a:hover{ background:var(--cl-teal-tint); border-color:var(--cl-teal); }
.cl-colhero .cl-cats li.current-cat a{ background:var(--cl-teal-deep); border-color:var(--cl-teal-deep); color:#FFFFFF; }

/* 記事カード */
.cl-colgrid .wp-block-post-template{ gap:32px !important; }
.cl-colgrid .wp-block-post{ display:block !important; }
.cl-colcard{ position:relative; height:100%; display:flex; flex-direction:column; background:#FFFFFF; border-radius:8px; overflow:hidden; box-shadow:0 26px 50px -36px rgba(0,50,56,.45); transition:transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s; margin:0 !important; }
.cl-colcard:hover{ transform:translateY(-5px); box-shadow:0 36px 60px -36px rgba(0,50,56,.55); }
.cl-colcard > .wp-block-post-featured-image{ margin:0 !important; border-radius:0 !important; overflow:hidden; }
.cl-colcard > .wp-block-post-featured-image img{ width:100%; aspect-ratio:16/10; object-fit:cover; display:block; transition:transform 1s cubic-bezier(.2,.7,.2,1); }
.cl-colcard:hover > .wp-block-post-featured-image img{ transform:scale(1.05); }
/* アイキャッチ画像がない記事は、ブランドカラーの模様を表示 */
.cl-colcard:not(:has(> .wp-block-post-featured-image))::before{ content:"COLUMN"; display:flex; align-items:center; justify-content:center; aspect-ratio:16/10; font-family:var(--cl-en); font-size:22px; font-weight:300; letter-spacing:.4em; color:rgba(255,255,255,.9); background:radial-gradient(circle at 80% 20%, rgba(255,210,63,.55) 0, rgba(255,210,63,0) 45%), linear-gradient(135deg, #00A8B8 0%, #007C8A 100%); }
.cl-colcard-body{ margin:0 !important; padding:22px 24px 24px; display:flex; flex-direction:column; flex:1; }
.cl-colcard-body > *{ margin:0 !important; }
.cl-colcard .cl-meta{ gap:10px !important; align-items:center; }
.cl-colcard .cl-meta .wp-block-post-terms a, .cl-article .cl-meta .wp-block-post-terms a{ position:relative; z-index:2; border:0; background:rgba(0,158,175,.1); color:var(--cl-teal-deep); font-size:11px; font-weight:700; letter-spacing:.1em; padding:3px 12px; border-radius:999px; }
.cl-colcard .cl-meta .wp-block-post-date{ font-size:12px; letter-spacing:.08em; color:var(--cl-muted); }
.cl-colcard .wp-block-post-title{ font-size:17px !important; line-height:1.75 !important; letter-spacing:.04em; margin-top:12px !important; font-weight:700; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.cl-colcard .wp-block-post-title a{ color:var(--cl-ink); text-decoration:none; }
/* カード全体をクリックできるように */
.cl-colcard .wp-block-post-title a::after{ content:""; position:absolute; inset:0; z-index:1; }
.cl-colcard .wp-block-post-excerpt{ margin-top:10px !important; font-size:13px; line-height:1.9; color:var(--cl-muted); }
.cl-colcard .wp-block-post-excerpt__excerpt{ margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.cl-colcard .wp-block-post-excerpt__more-text{ display:none; }
.cl-colcard-more{ margin-top:auto !important; padding-top:16px; font-family:var(--cl-en); font-size:11px; letter-spacing:.3em; color:var(--cl-teal-deep); display:flex; align-items:center; gap:10px; }
.cl-colcard-more::after{ content:""; width:28px; height:0; border-top:1px solid var(--cl-teal); transition:width .4s cubic-bezier(.2,.7,.2,1); }
.cl-colcard:hover .cl-colcard-more::after{ width:48px; }
/* いちばん新しい記事は大きく（PC） */
@media (min-width:782px){
	.cl-colgrid:not(.is-plain) .wp-block-post-template > .wp-block-post:first-child{ grid-column:1 / -1; }
	.cl-colgrid:not(.is-plain) .wp-block-post:first-child .cl-colcard{ flex-direction:row; }
	.cl-colgrid:not(.is-plain) .wp-block-post:first-child .cl-colcard > .wp-block-post-featured-image, .cl-colgrid:not(.is-plain) .wp-block-post:first-child .cl-colcard::before{ flex:0 0 56%; }
	.cl-colgrid:not(.is-plain) .wp-block-post:first-child .cl-colcard > .wp-block-post-featured-image img{ height:100%; }
	.cl-colgrid:not(.is-plain) .wp-block-post:first-child .cl-colcard-body{ padding:40px 44px; justify-content:center; }
	.cl-colgrid:not(.is-plain) .wp-block-post:first-child .wp-block-post-title{ font-family:'Shippori Mincho', 'Hiragino Mincho ProN', 'Yu Mincho', serif; font-weight:600; font-size:24px !important; line-height:1.65 !important; }
	.cl-colgrid:not(.is-plain) .wp-block-post:first-child .cl-colcard-body::before{ content:"PICK UP"; font-family:var(--cl-en); font-size:11px; letter-spacing:.34em; color:var(--cl-orange, #E06A00); margin-bottom:14px; }
	.cl-colgrid:not(.is-plain) .wp-block-post:first-child .wp-block-post-excerpt__excerpt{ -webkit-line-clamp:3; }
}
/* スマホ：1列 */
@media (max-width:781px){
	.cl-colgrid .wp-block-post-template{ grid-template-columns:1fr !important; gap:22px !important; }
	.cl-colcard-body{ padding:18px 20px 20px; }
}
/* ページ送り */
.cl-pager{ margin-top:56px !important; gap:8px !important; }
.cl-pager .page-numbers, .cl-pager .wp-block-query-pagination-previous, .cl-pager .wp-block-query-pagination-next{ display:inline-flex; align-items:center; justify-content:center; min-width:44px; height:44px; padding:0 14px; border-radius:999px; border:1px solid var(--cl-line); background:#FFFFFF; color:var(--cl-ink); text-decoration:none; font-size:14px; }
.cl-pager .page-numbers.current{ background:var(--cl-teal-deep); border-color:var(--cl-teal-deep); color:#FFFFFF; }
.cl-pager .page-numbers.dots{ border:0; background:none; }

/* 記事ページ */
.cl-article-head{ margin-top:28px !important; }
.cl-article .cl-meta{ gap:12px !important; align-items:center; }
.cl-article .cl-meta .wp-block-post-date{ font-size:13px; letter-spacing:.08em; color:var(--cl-muted); }
.cl-article-title, .cl-article h1.wp-block-post-title{ font-family:'Shippori Mincho', 'Hiragino Mincho ProN', 'Yu Mincho', serif !important; font-weight:600 !important; font-size:clamp(24px, 3vw, 34px) !important; line-height:1.6 !important; letter-spacing:.06em; margin-top:16px !important; }
.cl-article-eyecatch{ margin-top:32px !important; border-radius:10px; overflow:hidden; box-shadow:0 30px 60px -40px rgba(0,50,56,.5); }
.cl-article-eyecatch img{ width:100%; display:block; object-fit:cover; }
.cl-article-body{ margin-top:40px !important; }
.cl-article .cl-article-body p{ font-size:16px; line-height:2.15; letter-spacing:.05em; }
.cl-article .cl-article-body h2{ font-size:22px !important; line-height:1.6; letter-spacing:.06em; margin-top:64px !important; margin-bottom:20px !important; padding:18px 22px 18px 24px; background:var(--cl-teal-tint); border-left:4px solid var(--cl-teal); border-radius:0 6px 6px 0; }
.cl-article .cl-article-body h3{ font-size:18px !important; font-weight:700; letter-spacing:.06em; margin-top:40px !important; padding-bottom:10px; border-bottom:2px dotted rgba(0,158,175,.45); }
.cl-article .cl-article-body h4{ font-size:16px !important; font-weight:700; margin-top:28px !important; padding-left:16px; position:relative; }
.cl-article .cl-article-body h4::before{ content:""; position:absolute; left:0; top:.55em; width:8px; height:8px; border-radius:50%; background:var(--cl-yellow); }
.cl-article .cl-article-body ul:not(.cl-point-list), .cl-article .cl-article-body ol{ background:#FFFFFF; border:1px solid var(--cl-line); border-radius:8px; padding:20px 24px 20px 46px; line-height:2; }
.cl-article .cl-article-body ul:not(.cl-point-list) li::marker{ color:var(--cl-teal); }
.cl-article .cl-article-body ol li::marker{ color:var(--cl-teal-deep); font-family:var(--cl-en); font-weight:500; }
.cl-article .cl-article-body blockquote, .cl-article .cl-article-body .wp-block-quote{ background:#FFF8E6; border-left:3px solid var(--cl-yellow); border-radius:0 6px 6px 0; padding:18px 22px; margin:28px 0; }
.cl-article .cl-article-body .wp-block-image img{ border-radius:8px; }
.cl-article .cl-article-body .wp-block-image figcaption{ font-size:12px; color:var(--cl-muted); text-align:center; }
.cl-article .cl-article-body a:not(.wp-element-button){ color:var(--cl-teal-deep); text-decoration:underline; text-decoration-color:rgba(0,158,175,.4); text-underline-offset:4px; }
.cl-article .cl-article-body mark{ background:linear-gradient(transparent 60%, rgba(255,210,63,.6) 60%); padding:0 2px; color:inherit; }
/* 書いた人 */
.cl-author{ margin-top:64px !important; border:0 !important; background:#FFFFFF; border-radius:10px; padding:26px 28px !important; box-shadow:0 24px 50px -40px rgba(0,50,56,.45); gap:22px !important; align-items:center !important; }
.cl-author .wp-block-image{ margin:0 !important; flex:none; }
.cl-author .wp-block-image img{ width:84px !important; height:84px !important; border-radius:50%; object-fit:cover; box-shadow:0 0 0 4px #FFFFFF, 0 0 0 5px rgba(0,158,175,.35); }
.cl-author-label{ font-family:var(--cl-en); font-size:11px; letter-spacing:.24em; color:var(--cl-teal-deep); margin:0 !important; }
.cl-author-name{ font-size:18px; font-weight:700; letter-spacing:.1em; margin:0 !important; display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; }
.cl-author-name span{ font-size:12px; font-weight:400; letter-spacing:.06em; color:var(--cl-muted); }
/* 前後の記事 */
.cl-postnav{ display:grid !important; grid-template-columns:1fr 1fr; gap:16px; margin-top:28px !important; }
.cl-postnav > div{ margin:0 !important; }
.cl-postnav a{ display:block; height:100%; box-sizing:border-box; background:#FFFFFF; border:1px solid var(--cl-line); border-radius:8px; padding:16px 20px; font-size:14px; line-height:1.7; color:var(--cl-ink); text-decoration:none; transition:border-color .3s, transform .3s; }
.cl-postnav a:hover{ border-color:var(--cl-teal); transform:translateY(-2px); }
.cl-postnav .post-navigation-link__label{ display:block; font-size:11px; letter-spacing:.16em; color:var(--cl-teal-deep); margin-bottom:4px; }
.cl-postnav-next{ text-align:right; grid-column:2; }
@media (max-width:781px){ .cl-postnav{ grid-template-columns:1fr; } .cl-postnav-next{ grid-column:auto; } .cl-author{ flex-direction:column; text-align:center; } .cl-author-name{ justify-content:center; } }
.cl-related .cl-colgrid{ margin-top:36px !important; }
.cl-related-more{ margin-top:32px !important; text-align:right; }

/* --- コラムを書くための部品 --- */
/* POINT（この記事のポイント） */
.cl-point{ background:#FFFFFF; border:2px solid var(--cl-teal); border-radius:10px; padding:30px 28px 22px !important; margin:40px 0 !important; position:relative; }
.cl-point > .cl-point-label{ position:absolute; top:-14px; left:22px; margin:0 !important; background:var(--cl-teal); color:#FFFFFF; font-family:var(--cl-en); font-size:12px; letter-spacing:.24em; padding:4px 16px; border-radius:999px; }
.cl-point .cl-point-list{ list-style:none; margin:0 !important; padding:0 !important; background:none !important; border:0 !important; }
.cl-point .cl-point-list li{ position:relative; padding:8px 0 8px 32px; border-bottom:1px dashed var(--cl-line); line-height:1.9; }
.cl-point .cl-point-list li:last-child{ border-bottom:0; }
.cl-point .cl-point-list li::before{ content:""; position:absolute; left:2px; top:15px; width:16px; height:9px; border-left:2px solid var(--cl-teal); border-bottom:2px solid var(--cl-teal); transform:rotate(-45deg); }
/* 院長のひとこと（ふきだし） */
.cl-talk{ display:flex !important; gap:18px !important; align-items:flex-start !important; margin:36px 0 !important; }
.cl-talk > .wp-block-image{ flex:0 0 64px; margin:0 !important; text-align:center; }
.cl-talk > .wp-block-image img{ width:64px !important; height:64px !important; border-radius:50%; object-fit:cover; box-shadow:0 0 0 3px #FFFFFF, 0 0 0 4px rgba(0,158,175,.35); }
.cl-talk > .wp-block-image figcaption{ font-size:11px; color:var(--cl-muted); margin-top:6px; }
.cl-talk > .cl-talk-text{ flex:1; position:relative; background:var(--cl-teal-tint); border-radius:12px; padding:16px 20px; margin:0 !important; font-size:15px; line-height:2; }
.cl-talk > .cl-talk-text::before{ content:""; position:absolute; left:-9px; top:22px; border:9px solid transparent; border-left:0; border-right-color:var(--cl-teal-tint); }
/* まとめ */
.cl-summary{ background:#FFF8E6; border-radius:10px; padding:28px 28px 24px !important; margin:48px 0 !important; }
.cl-summary > .cl-summary-label{ font-family:var(--cl-en); font-size:12px; letter-spacing:.3em; color:var(--cl-orange, #E06A00); margin:0 0 8px !important; display:flex; align-items:center; gap:12px; }
.cl-summary > .cl-summary-label::after{ content:""; flex:1; border-top:1px solid rgba(224,106,0,.3); }
.cl-summary > p:not(.cl-summary-label){ margin-top:8px !important; }
.cl-colhero > .cl-colhero-lead{ margin-left:0 !important; }
/* 予約の段の「RESERVE」が途中で折り返さないように */
.cl-ko-big{ font-size:clamp(40px, 6vw, 92px) !important; white-space:nowrap; }
/* コラム一覧：説明文の位置を見出しとそろえる／記事がないときの「カテゴリーなし」を隠す */
.cl-colhero > .cl-colhero-lead{ max-width:var(--wp--style--global--content-size, 1120px) !important; margin-left:auto !important; margin-right:auto !important; }
.cl-cats .cat-item-none{ display:none !important; }
.cl-colgrid .wp-block-query-no-results{ background:#FFFFFF; border-radius:10px; padding:48px 24px; text-align:center; box-shadow:0 24px 50px -40px rgba(0,50,56,.45); }
