/*
Theme Name: いきいきライフ協会成田 メイン
Theme URI: https://ikiikilifenarita.jp
Template: twentytwentyfive
Description: 一般社団法人いきいきライフ協会成田 コーポレートサイト（Twenty Twenty-Five 子テーマ／朱印モチーフデザイン／標準ブロック構成版）
Version: 3.0.1
Author: いきいきライフ協会成田
Text Domain: ikiikilife-narita-main
*/

:root{
	--ikl-paper:#F1F3EC;
	--ikl-paper-raised:#FFFFFF;
	--ikl-ink:#20261D;
	--ikl-ink-soft:#4B5245;
	--ikl-green:#2F4A3C;
	--ikl-green-deep:#1B2E24;
	--ikl-green-tint:#E3E9DE;
	--ikl-seal:#A83E2C;
	--ikl-seal-soft:#F3DFD8;
	--ikl-gold:#AD8A4E;
	--ikl-line: rgba(32,38,29,0.14);
	--ikl-shadow: 0 18px 40px rgba(27,46,36,0.10);
	--ikl-mincho: "Shippori Mincho", "Hiragino Mincho ProN", serif;
	--ikl-gothic: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
}

html{ scroll-behavior:smooth; }
body{ -webkit-font-smoothing:antialiased; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

/* ===== 共通：見出し・エンファシス ===== */

.ikl-eyebrow{
	display:flex; align-items:center; gap:12px;
	font-family:var(--ikl-gothic);
	font-size:0.82rem; font-weight:700; letter-spacing:0.14em;
	color:var(--ikl-seal); margin-bottom:18px !important;
}
.ikl-eyebrow::before{ content:""; width:28px; height:1px; background:var(--ikl-seal); flex:none; }
.ikl-eyebrow.is-center{ justify-content:center; }
.ikl-eyebrow.is-gold{ color:var(--ikl-gold); }
.ikl-eyebrow.is-gold::before{ background:var(--ikl-gold); }

.ikl-accent{ color:var(--ikl-seal); }

/* ===== ヘッダー ===== */

.ikl-header{
	position:sticky; top:0; z-index:50;
	background:rgba(241,243,236,0.88);
	backdrop-filter:blur(8px);
	border-bottom:1px solid var(--ikl-line);
}
.ikl-header-inner{
	display:flex; align-items:center; justify-content:space-between;
	padding:18px 0; gap:20px;
}
.ikl-brand{
	display:flex; align-items:center; gap:12px;
	font-family:var(--ikl-mincho); font-weight:700; font-size:1.05rem;
	color:var(--ikl-green-deep); text-decoration:none; white-space:nowrap;
}
.ikl-brand .ikl-mark{
	width:34px; height:34px; border-radius:50%;
	border:1.4px solid var(--ikl-seal);
	display:flex; align-items:center; justify-content:center;
	color:var(--ikl-seal); font-family:var(--ikl-mincho); font-size:0.85rem; font-weight:800;
	flex:none;
}
.ikl-header-right{ display:flex; align-items:center; gap:28px; flex:none; }
.ikl-header-navrow{ padding:0 0 14px; }
.ikl-header-nav{
	display:flex; flex-wrap:wrap; gap:12px 32px;
	font-size:0.92rem; font-family:var(--ikl-gothic);
}
.ikl-header-nav a{ color:var(--ikl-ink-soft); text-decoration:none; white-space:nowrap; }
.ikl-header-nav a:hover{ color:var(--ikl-seal); }
.ikl-header-phone{
	display:inline-flex; align-items:center; gap:7px;
	font-family:var(--ikl-mincho); font-size:1rem; font-weight:700;
	color:var(--ikl-seal); text-decoration:none; white-space:nowrap;
	font-variant-numeric:tabular-nums;
}
.ikl-header-phone svg{ width:16px; height:16px; flex:none; }
.ikl-header-phone:hover{ color:var(--ikl-green-deep); }
.ikl-header-cta{
	display:inline-flex; align-items:center; gap:8px;
	padding:10px 22px; border-radius:2px;
	background:var(--ikl-green-deep); color:#F6F3EA !important;
	font-family:var(--ikl-gothic); font-size:0.88rem; font-weight:700; text-decoration:none;
	white-space:nowrap;
}
@media (max-width:900px){
	.ikl-header-navrow{ display:none; }
	.ikl-header-right{ gap:16px; }
}
@media (max-width:480px){
	.ikl-header-cta{ display:none; }
	.ikl-brand{ font-size:0.9rem; }
	.ikl-header-phone{ font-size:0.9rem; }
}

/* ===== ヒーロー：印影図形（画像ブロック） ===== */

.ikl-seal-figure{ aspect-ratio:1/1; max-width:420px; margin:0 auto !important; }
.ikl-seal-figure img{ width:100%; height:100%; display:block; object-fit:contain; }
@media (max-width:900px){ .ikl-seal-figure{ max-width:260px; } }

/* ===== こんなご不安はありませんか：罫線グリッド ===== */

.ikl-concerns-list{
	margin-top:56px;
	display:grid; grid-template-columns:repeat(3,1fr);
	border-top:1px solid var(--ikl-line);
}
.ikl-concerns-list div{ padding:32px 28px 32px 0; border-bottom:1px solid var(--ikl-line); }
.ikl-concerns-list div:not(:last-child){ border-right:1px solid var(--ikl-line); padding-right:28px; }
.ikl-concerns-list .ikl-num-kanji{
	display:block; font-family:var(--ikl-mincho); color:var(--ikl-gold);
	font-size:1.1rem; margin-bottom:14px;
}
.ikl-concerns-list p{ font-size:1.02rem; color:var(--ikl-ink); margin:0; }
@media (max-width:860px){
	.ikl-concerns-list{ grid-template-columns:1fr; }
	.ikl-concerns-list div{ border-right:none !important; padding:24px 0 !important; }
}

/* ===== 3つのサポート：額装パネル ===== */

.ikl-panels{ margin-top:56px; display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.ikl-panel{
	background:var(--ikl-paper-raised); border:1px solid var(--ikl-line);
	padding:40px 32px; position:relative;
}
.ikl-panel::before, .ikl-panel::after{ content:""; position:absolute; width:18px; height:18px; border:1px solid var(--ikl-gold); }
.ikl-panel::before{ top:10px; left:10px; border-right:none; border-bottom:none; }
.ikl-panel::after{ bottom:10px; right:10px; border-left:none; border-top:none; }
.ikl-panel .ikl-phase{ font-family:var(--ikl-gothic); font-size:0.8rem; letter-spacing:0.1em; color:var(--ikl-seal); font-weight:700; }
.ikl-panel h3{ font-family:var(--ikl-mincho); font-size:1.35rem; margin:14px 0 0; color:var(--ikl-green-deep); font-weight:700; }
.ikl-panel ul{ list-style:none; padding:0; margin:22px 0 0; display:grid; gap:10px; font-family:var(--ikl-gothic); }
.ikl-panel li{ font-size:0.95rem; color:var(--ikl-ink-soft); padding-left:18px; position:relative; }
.ikl-panel li::before{ content:"—"; position:absolute; left:0; color:var(--ikl-gold); }
.ikl-panel .ikl-note{ margin-top:22px; font-size:0.88rem; color:var(--ikl-ink-soft); border-top:1px solid var(--ikl-line); padding-top:18px; font-family:var(--ikl-gothic); }
@media (max-width:900px){ .ikl-panels{ grid-template-columns:1fr; } }

/* ===== 数字ストリップ ===== */

.ikl-stats-row{
	display:grid; grid-template-columns:repeat(4,1fr);
	border-top:1px solid var(--ikl-ink); border-bottom:1px solid var(--ikl-ink);
}
.ikl-stats-row div{ padding:34px 24px; border-left:1px solid var(--ikl-line); text-align:center; }
.ikl-stats-row div:first-child{ border-left:none; }
.ikl-stats-row .ikl-figure{ font-family:var(--ikl-mincho); font-size:2.5rem; color:var(--ikl-seal); font-variant-numeric:tabular-nums; }
.ikl-stats-row .ikl-label{ margin-top:8px; font-size:0.86rem; color:var(--ikl-ink-soft); font-family:var(--ikl-gothic); }
@media (max-width:760px){ .ikl-stats-row{ grid-template-columns:1fr 1fr; } .ikl-stats-row div:nth-child(3){ border-left:none; } }

/* ===== 選ばれる理由：行リスト ===== */

.ikl-reason-rows{ display:flex; flex-direction:column; }
.ikl-reason-row{ display:grid; grid-template-columns:64px 1fr; gap:24px; padding:26px 0; border-top:1px solid var(--ikl-line); }
.ikl-reason-row:last-child{ border-bottom:1px solid var(--ikl-line); }
.ikl-reason-row .ikl-mk{ font-family:var(--ikl-mincho); color:var(--ikl-gold); font-size:1.4rem; }
.ikl-reason-row h3{ font-family:var(--ikl-gothic); font-weight:700; font-size:1.05rem; color:var(--ikl-ink); margin:0; }
.ikl-reason-row p{ margin-top:8px; font-size:0.92rem; color:var(--ikl-ink-soft); }

/* ===== プランカード ===== */

.ikl-plan-card{
	border:1px solid rgba(243,239,227,0.25) !important;
	padding:36px 32px !important;
}
.ikl-plan-card h3{ color:#F3EFE3 !important; font-size:1.3rem; }
.ikl-plan-card p{ color:rgba(243,239,227,0.75) !important; font-size:0.95rem; }
.ikl-plan-link{
	margin-top:10px; display:inline-block; font-family:var(--ikl-gothic);
	font-size:0.86rem; font-weight:700; color:var(--ikl-gold) !important;
	text-decoration:none; border-bottom:1px solid var(--ikl-gold); padding-bottom:2px;
}

/* ===== 電話番号（明朝） ===== */

.ikl-phone{ font-family:var(--ikl-mincho); font-size:1.8rem; color:var(--ikl-seal); }
.ikl-phone a{ color:inherit; text-decoration:none; }
.ikl-phone-note{ display:block; font-family:var(--ikl-gothic); font-size:0.85rem; color:var(--ikl-ink-soft); margin-top:6px !important; font-weight:400; }

/* ===== ボタン ===== */

.wp-block-button__link{
	padding:0.95em 2em !important; font-weight:700; border-radius:2px !important;
	transition:transform 0.2s ease, box-shadow 0.2s ease;
}
.wp-block-button__link:hover{ transform:translateY(-2px); box-shadow:0 12px 26px rgba(168,62,44,0.22); }
.is-style-outline .wp-block-button__link{
	border:1.4px solid var(--ikl-ink) !important; color:var(--ikl-ink) !important; background:transparent !important;
}
.is-style-outline .wp-block-button__link:hover{ background:var(--ikl-ink) !important; color:var(--ikl-paper) !important; }
.is-style-outline.ikl-btn-onwhite .wp-block-button__link{ border-color:#fff !important; color:#fff !important; }
.is-style-outline.ikl-btn-onwhite .wp-block-button__link:hover{ background:#fff !important; color:var(--ikl-green-deep) !important; }

/* ===== レイアウト共通 ===== */

.ikl-wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }
#service, #reason, #plan{ scroll-margin-top:90px; }

/* ===== カスタムボタン（wp:html セクション用） ===== */

.ikl-btn{
	display:inline-flex; align-items:center; gap:10px;
	padding:15px 30px; border-radius:2px;
	font-family:var(--ikl-gothic); font-weight:700; font-size:0.95rem; text-decoration:none;
	transition:transform .25s ease, box-shadow .25s ease;
}
.ikl-btn-primary{ background:var(--ikl-seal); color:#FBF3EE; }
.ikl-btn-primary:hover{ transform:translateY(-2px); box-shadow:0 12px 26px rgba(168,62,44,0.28); }
.ikl-btn-ghost{ border:1.4px solid var(--ikl-ink); color:var(--ikl-ink); background:transparent; }
.ikl-btn-ghost:hover{ background:var(--ikl-ink); color:var(--ikl-paper); }
.ikl-btn-onwhite.ikl-btn-ghost{ border-color:#fff; color:#fff; }
.ikl-btn-onwhite.ikl-btn-ghost:hover{ background:#fff; color:var(--ikl-green-deep); }

/* ===== ヒーロー：セクションレイアウト ===== */

.ikl-hero{ padding:96px 0 80px; position:relative; overflow:hidden; }
.ikl-hero-grid{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:64px; align-items:center; }
.ikl-hero h1{
	font-family:var(--ikl-mincho); font-weight:700; color:var(--ikl-green-deep);
	text-wrap:balance; margin:0; font-size:clamp(2.4rem,4vw,3.6rem); line-height:1.55; letter-spacing:0.01em;
}
.ikl-hero h1 em{ font-style:normal; color:var(--ikl-seal); }
.ikl-hero-lede{ margin-top:28px; max-width:46ch; font-size:1.05rem; color:var(--ikl-ink-soft); }
.ikl-hero-actions{ margin-top:40px; display:flex; gap:16px; flex-wrap:wrap; }
@media (max-width:900px){
	.ikl-hero{ padding:64px 0 56px; }
	.ikl-hero-grid{ grid-template-columns:1fr; gap:48px; }
}

/* ===== こんなご不安：セクションレイアウト ===== */

.ikl-concerns{ padding:88px 0; border-top:1px solid var(--ikl-line); }
.ikl-concerns-head{ max-width:640px; }
.ikl-concerns-head h2{ font-size:clamp(1.7rem,2.6vw,2.3rem); margin-top:6px; }

/* ===== 3つのサポート：セクションレイアウト ===== */

.ikl-supports{ padding:96px 0; background:var(--ikl-green-tint); }
.ikl-supports-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap; }
.ikl-supports-head h2{ font-size:clamp(1.7rem,2.6vw,2.3rem); margin-top:6px; }
.ikl-supports-head p{ max-width:34ch; color:var(--ikl-ink-soft); font-size:0.95rem; }

/* ===== 数字ストリップ：セクションレイアウト ===== */

.ikl-stats{ padding:88px 0; }

/* ===== 選ばれる理由：セクションレイアウト ===== */

.ikl-reasons{ padding:0 0 96px; }
.ikl-reasons-inner{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:64px; }
.ikl-reasons-copy h2{ font-size:clamp(1.7rem,2.6vw,2.3rem); }
.ikl-reasons-copy p{ margin-top:20px; color:var(--ikl-ink-soft); font-size:0.95rem; max-width:32ch; }
@media (max-width:900px){ .ikl-reasons-inner{ grid-template-columns:1fr; } }

/* ===== プラン：セクションレイアウト ===== */

.ikl-plans{ padding:96px 0; background:var(--ikl-green-deep); color:#F3EFE3; }
.ikl-plans .ikl-eyebrow{ color:var(--ikl-gold); }
.ikl-plans .ikl-eyebrow::before{ background:var(--ikl-gold); }
.ikl-plans h2{ color:#F3EFE3; font-size:clamp(1.7rem,2.6vw,2.3rem); }
.ikl-plan-cards{ margin-top:52px; display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.ikl-plan-card p{ margin-top:14px; }
.ikl-plan-card .ikl-plan-link{ margin-top:24px !important; }
@media (max-width:760px){ .ikl-plan-cards{ grid-template-columns:1fr; } }

/* ===== 最終CTA：セクションレイアウト ===== */

.ikl-cta-final{ padding:100px 0; text-align:center; }
.ikl-cta-final h2{ font-size:clamp(1.8rem,3vw,2.5rem); }
.ikl-cta-final .ikl-btn{ margin-top:32px; }

@media (max-width:640px){
	.ikl-wrap{ padding:0 20px; }
	.ikl-concerns, .ikl-supports, .ikl-stats, .ikl-plans, .ikl-cta-final{ padding-top:64px; padding-bottom:64px; }
}

/* ===== 下層ページ共通：ページヘッダー ===== */

.ikl-page-hero{ padding:72px 0 64px; border-bottom:1px solid var(--ikl-line); }
.ikl-page-hero h1{
	font-family:var(--ikl-mincho); font-weight:700; color:var(--ikl-green-deep);
	text-wrap:balance; margin:0; font-size:clamp(2rem,3.4vw,2.8rem); line-height:1.55;
}
.ikl-page-hero .ikl-hero-lede{ margin-top:22px; max-width:56ch; }
.ikl-page-hero .ikl-contact-quick{
	margin-top:36px; display:flex; align-items:baseline; gap:28px; flex-wrap:wrap;
}
@media (max-width:640px){ .ikl-page-hero{ padding:56px 0 48px; } }

/* ===== 下層ページ共通：セクション ===== */

.ikl-section{ padding:80px 0; }
.ikl-section-narrow{ max-width:760px; }
@media (max-width:640px){ .ikl-section{ padding:56px 0; } }

/* ===== お問い合わせフォーム ===== */

.ikl-form-panel{
	background:var(--ikl-paper-raised); border:1px solid var(--ikl-line);
	padding:48px 44px; position:relative; max-width:760px; margin:0 auto;
}
.ikl-form-panel::before, .ikl-form-panel::after{ content:""; position:absolute; width:22px; height:22px; border:1px solid var(--ikl-gold); }
.ikl-form-panel::before{ top:12px; left:12px; border-right:none; border-bottom:none; }
.ikl-form-panel::after{ bottom:12px; right:12px; border-left:none; border-top:none; }
@media (max-width:640px){ .ikl-form-panel{ padding:36px 24px; } }

.ikl-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px 24px; }
.ikl-field{ display:flex; flex-direction:column; gap:8px; }
.ikl-field-wide{ grid-column:1 / -1; }
@media (max-width:640px){ .ikl-form-grid{ grid-template-columns:1fr; } }

.ikl-field label{
	font-family:var(--ikl-gothic); font-size:0.88rem; font-weight:700; color:var(--ikl-ink);
}
.ikl-required{
	display:inline-block; margin-left:8px; padding:2px 8px; border-radius:2px;
	background:var(--ikl-seal-soft); color:var(--ikl-seal); font-size:0.72rem; font-weight:700;
	vertical-align:middle;
}

.ikl-form-panel input[type="text"],
.ikl-form-panel input[type="tel"],
.ikl-form-panel input[type="email"],
.ikl-form-panel select,
.ikl-form-panel textarea{
	width:100%; box-sizing:border-box;
	font-family:var(--ikl-gothic); font-size:0.95rem; color:var(--ikl-ink);
	background:var(--ikl-paper); border:1px solid var(--ikl-line); border-radius:2px;
	padding:12px 14px; line-height:1.6;
	transition:border-color .2s ease;
}
.ikl-form-panel textarea{ resize:vertical; min-height:140px; }
.ikl-form-panel select{ appearance:none; background-image:linear-gradient(45deg, transparent 50%, var(--ikl-ink-soft) 50%), linear-gradient(135deg, var(--ikl-ink-soft) 50%, transparent 50%); background-position:calc(100% - 20px) center, calc(100% - 15px) center; background-size:5px 5px, 5px 5px; background-repeat:no-repeat; }
.ikl-form-panel input:focus,
.ikl-form-panel select:focus,
.ikl-form-panel textarea:focus{ outline:none; border-color:var(--ikl-seal); }

.ikl-form-panel .wpcf7-not-valid-tip{ margin-top:6px; font-size:0.8rem; color:var(--ikl-seal); font-family:var(--ikl-gothic); }
.ikl-form-panel .wpcf7-form-control-wrap{ display:block; }
.ikl-form-panel form.invalid .wpcf7-response-output{
	border-color:var(--ikl-seal) !important; color:var(--ikl-seal); border-radius:2px;
	font-family:var(--ikl-gothic); font-size:0.9rem; padding:14px 18px !important;
}
.ikl-form-panel .wpcf7-response-output{
	border:1px solid var(--ikl-line) !important; margin:28px 0 0 !important;
	font-family:var(--ikl-gothic); font-size:0.9rem; color:var(--ikl-ink-soft); padding:14px 18px !important; border-radius:2px;
}
.ikl-form-panel form.sent .wpcf7-response-output{
	border-color:var(--ikl-green) !important; color:var(--ikl-green); background:var(--ikl-green-tint);
}

.ikl-form-submit{ margin-top:36px; text-align:center; }
.ikl-form-panel input[type="submit"]{
	display:inline-flex; align-items:center; gap:10px;
	padding:15px 40px; border-radius:2px; border:none;
	background:var(--ikl-seal); color:#FBF3EE;
	font-family:var(--ikl-gothic); font-weight:700; font-size:0.95rem; cursor:pointer;
	transition:transform .25s ease, box-shadow .25s ease;
}
.ikl-form-panel input[type="submit"]:hover{ transform:translateY(-2px); box-shadow:0 12px 26px rgba(168,62,44,0.28); }
.ikl-form-panel input[type="submit"]:disabled{ opacity:0.6; cursor:progress; transform:none; box-shadow:none; }
.ikl-form-panel .wpcf7-spinner{ display:block; margin:14px auto 0; }

/* ===== フッター ===== */

.ikl-footer{ border-top:1px solid var(--ikl-line); font-size:0.85rem; color:var(--ikl-ink-soft); padding:40px 0; }

/* ===== 標準ブロック互換：レイアウトの保険 =====
   グループ／カラムブロックは初期状態で「is-layout-flow」等のクラスが自動付与され、
   直下の要素に margin-block-start が入る場合があります。
   グリッド／フレックスを指定しているコンテナでは打ち消しておきます。 */

.ikl-hero-grid > *,
.ikl-concerns-list > *,
.ikl-panels > *,
.ikl-stats-row > *,
.ikl-reason-rows > *,
.ikl-reason-row > *,
.ikl-plan-cards > *,
.ikl-header-inner > *,
.ikl-header-right > *,
.ikl-header-nav > *,
.ikl-form-grid > *,
.ikl-reasons-inner > *,
.ikl-supports-head > *,
.ikl-concerns-head > *,
.ikl-page-hero .ikl-contact-quick > *{
	margin-block-start:0 !important;
	margin-block-end:0 !important;
}

.ikl-hero-grid{ display:grid !important; }
.ikl-concerns-list{ display:grid !important; }
.ikl-panels{ display:grid !important; }
.ikl-stats-row{ display:grid !important; }
.ikl-plan-cards{ display:grid !important; }
.ikl-reason-row{ display:grid !important; }
.ikl-reasons-inner{ display:grid !important; }
.ikl-form-grid{ display:grid !important; }
.ikl-header-inner{ display:flex !important; }
.ikl-header-right{ display:flex !important; }
.ikl-header-nav{ display:flex !important; }
.ikl-supports-head{ display:flex !important; }
.ikl-hero-actions{ display:flex !important; }

/* コアの見出し／段落ブロックは既定で margin が付くため、パネルやカード内は詰めます */
.ikl-panel > *, .ikl-plan-card > *{ margin-block-start:0; margin-block-end:0; }
.ikl-panel h3 + *, .ikl-plan-card h3 + *{ margin-block-start:14px; }

/* コアのリストブロック（3つのサポート内の箇条書き） */
.ikl-panel .wp-block-list{ list-style:none; padding:0; margin:22px 0 0; display:grid; gap:10px; font-family:var(--ikl-gothic); }
.ikl-panel .wp-block-list li{ font-size:0.95rem; color:var(--ikl-ink-soft); padding-left:18px; position:relative; }
.ikl-panel .wp-block-list li::before{ content:"—"; position:absolute; left:0; color:var(--ikl-gold); }

/* ===== スクロール表示アニメーション ===== */

.ikl-reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.ikl-reveal.is-visible{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){
	.ikl-reveal{ opacity:1; transform:none; transition:none; }
}
