/* =====================================================
   hanawo front-page renewal styles
   themes/hanawo/css/front-renewal.css
===================================================== */

/* ---- 継承ガード（テーマ既存CSSの影響を遮断） ---- */
.fp-hero, .fp-section{ text-align:left; }
.fp-section *{ box-sizing:border-box; }

/* ---- hero ---- */
.fp-hero{
	position:relative; min-height:100vh; min-height:100svh;
	display:flex; align-items:center;
	padding:0 8vw;
	background:
		radial-gradient(60% 50% at 82% 18%, rgba(242,212,220,.55) 0%, rgba(242,212,220,0) 70%),
		radial-gradient(55% 60% at 12% 85%, rgba(156,211,224,.5) 0%, rgba(156,211,224,0) 70%),
		#F7FAFB;
	overflow:hidden;
}
.fp-hero__inner{ position:relative; z-index:2; max-width:1100px; margin:0 auto; width:100%; }
.fp-hero__eyebrow{
	font-family:'Jost',sans-serif; font-size:13px; letter-spacing:.34em;
	color:#4CB0C9; margin:0 0 28px;
	display:flex; align-items:center; gap:14px;
}
.fp-hero__eyebrow::before{ content:""; width:44px; height:1px; background:#4CB0C9; }
.fp-hero__title{
	font-family:'Zen Old Mincho',serif; font-weight:600;
	font-size:clamp(40px,7vw,84px);
	line-height:1.5; letter-spacing:.08em; color:#2B3A3F; margin:0;
	text-align:left;
}
.fp-hero__title .l{ display:block; opacity:0; transform:translateY(26px); animation:fpRise .9s cubic-bezier(.22,.8,.3,1) forwards; }
.fp-hero__title .l:nth-child(2){ animation-delay:.18s; padding-left:.8em; }
.fp-hero__title .l:nth-child(3){ animation-delay:.36s; padding-left:1.6em; }
.fp-hero__title .k{ color:#4CB0C9; }
@keyframes fpRise{ to{ opacity:1; transform:none; } }
.fp-hero__lead{
	margin:36px 0 0; max-width:40em; color:#5B6C71;
	font-size:15px; line-height:2.2; letter-spacing:.04em;
	opacity:0; animation:fpFade 1s ease .8s forwards;
	text-align:left;
}
@keyframes fpFade{ to{ opacity:1; } }
.fp-hero__scroll{
	position:absolute; left:8vw; bottom:34px; margin:0;
	font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.3em; color:#5B6C71;
	display:flex; align-items:center; gap:12px;
}
.fp-hero__scroll::after{
	content:""; width:1px; height:52px; background:#5B6C71;
	animation:fpDrip 2.2s ease-in-out infinite; transform-origin:top;
}
@keyframes fpDrip{ 0%{transform:scaleY(0)} 45%{transform:scaleY(1)} 100%{transform:scaleY(1);opacity:0} }

/* 花びら */
.fp-petal{
	position:absolute; border-radius:60% 40% 55% 45%/55% 60% 40% 45%; pointer-events:none; z-index:1;
	background:linear-gradient(135deg, rgba(242,212,220,.9), rgba(242,212,220,.25));
	animation:fpFloat 14s ease-in-out infinite;
}
.fp-petal:nth-of-type(1){ width:26px; height:22px; top:22%; right:18%; }
.fp-petal:nth-of-type(2){ width:16px; height:14px; top:38%; right:30%; animation-delay:3s; opacity:.7; }
.fp-petal:nth-of-type(3){ width:20px; height:17px; top:64%; right:12%; animation-delay:6s; opacity:.5; }
@keyframes fpFloat{ 0%,100%{transform:translate(0,0) rotate(0)} 50%{transform:translate(-26px,30px) rotate(40deg)} }

/* 案a：背景写真＋淡いオーバーレイ */
.fp-hero__bg{ position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; }
.fp-hero--a .fp-hero__bg::after{
	content:""; position:absolute; inset:0;
	background:linear-gradient(180deg, rgba(247,250,251,.82) 0%, rgba(247,250,251,.66) 45%, rgba(247,250,251,.88) 100%);
}
.fp-hero--a .fp-petal{ display:none; }

/* 案d：写真フル＋白文字 */
.fp-hero--d .fp-hero__bg::after{
	content:""; position:absolute; inset:0;
	background:linear-gradient(180deg, rgba(43,58,63,.28) 0%, rgba(43,58,63,.06) 42%, rgba(43,58,63,.34) 100%);
}
.fp-hero--d .fp-petal{ display:none; }
.fp-hero--d .fp-hero__eyebrow{ color:#fff; }
.fp-hero--d .fp-hero__eyebrow::before{ background:#fff; }
.fp-hero--d .fp-hero__title{ color:#fff; text-shadow:0 2px 24px rgba(43,58,63,.45); }
.fp-hero--d .fp-hero__title .k{ color:#fff; }
.fp-hero--d .fp-hero__lead{ color:rgba(255,255,255,.92); text-shadow:0 1px 14px rgba(43,58,63,.4); }
.fp-hero--d .fp-hero__scroll{ color:rgba(255,255,255,.85); }
.fp-hero--d .fp-hero__scroll::after{ background:rgba(255,255,255,.85); }

/* ---- つなぐ糸 ---- */
.fp-thread-wrap{ position:relative; }
.fp-thread{
	position:absolute; left:50%; top:0; bottom:0; width:2px;
	background:linear-gradient(180deg,#F2D4DC 0%,#9CD3E0 55%,#4CB0C9 100%);
	transform:translateX(-50%); opacity:.55;
}
.fp-knot{
	position:relative; z-index:2;
	width:14px; height:14px; border-radius:50%;
	background:#fff; border:2px solid #4CB0C9;
	margin:0 auto 46px;
}

/* ---- セクション共通 ---- */
.fp-section{ padding:130px 8vw; position:relative; }
.fp-inner{ max-width:1100px; margin:0 auto; position:relative; z-index:2; }
.fp-label{
	font-family:'Jost',sans-serif; font-size:13px; letter-spacing:.3em; color:#4CB0C9;
	display:flex; align-items:center; gap:14px; margin:0 0 22px;
}
.fp-label::before{ content:""; width:36px; height:1px; background:#4CB0C9; }
.fp-label--center{ justify-content:center; }
.fp-label--center::after{ content:""; width:36px; height:1px; background:#4CB0C9; }
.fp-title{
	font-family:'Zen Old Mincho',serif; font-weight:600;
	font-size:clamp(26px,3.4vw,40px); line-height:1.7; letter-spacing:.06em;
	color:#2B3A3F; margin:0 0 34px;
	text-align:left;
}
.fp-title--center{ text-align:center; }
.fp-text{ font-size:15px; line-height:2.2; letter-spacing:.04em; color:#5B6C71; margin:0 0 1.4em; text-align:left; }
.fp-text strong{ color:#2B3A3F; }

/* 出現アニメ */
.reveal{ opacity:0; transform:translateY(30px); transition:opacity .9s ease, transform .9s cubic-bezier(.22,.8,.3,1); }
.reveal.is-view{ opacity:1; transform:none; }

/* ---- concept ---- */
.fp-concept{ background:#F7FAFB; }
.fp-concept__grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.fp-concept__visual{ position:relative; border-radius:18px; overflow:hidden; box-shadow:0 20px 50px rgba(43,58,63,.08); }
.fp-concept__visual img{ width:100%; aspect-ratio:4/5; object-fit:cover; display:block; }
.fp-concept__visual.is-missing{
	aspect-ratio:4/5;
	background:
		radial-gradient(70% 60% at 70% 25%, rgba(242,212,220,.8), rgba(242,212,220,0) 70%),
		linear-gradient(160deg,#DDEBEF 0%,#EAF3F5 60%,#F5EAEE 100%);
	display:flex; align-items:center; justify-content:center;
}
.fp-photo-note{ display:none; font-family:'Jost',sans-serif; font-size:12px; letter-spacing:.15em; color:#5B6C71; }
.fp-concept__visual.is-missing .fp-photo-note{ display:block; }

/* ---- service ---- */
.fp-service{ background:#E7EFF1; border-radius:48px 48px 0 0; }
.fp-svc-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:26px; margin-top:20px; }
.fp-svc-card{
	background:#fff; border-radius:16px; padding:38px 36px 34px;
	transition:transform .35s ease, box-shadow .35s ease;
	position:relative; overflow:hidden;
	text-align:left;
}
.fp-svc-card::before{
	content:""; position:absolute; left:0; top:0; width:100%; height:3px;
	background:linear-gradient(90deg,#F2D4DC,#4CB0C9);
	transform:scaleX(0); transform-origin:left; transition:transform .45s ease;
}
.fp-svc-card:hover{ transform:translateY(-6px); box-shadow:0 18px 40px rgba(43,58,63,.1); }
.fp-svc-card:hover::before{ transform:scaleX(1); }
.fp-svc-card__en{ font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.26em; color:#4CB0C9; margin:0 0 12px; }
.fp-svc-card__ttl{ font-size:19px; font-weight:700; margin:0 0 12px; line-height:1.7; color:#2B3A3F; }
.fp-svc-card__txt{ font-size:13.5px; color:#5B6C71; line-height:2; margin:0; }

/* ---- case ---- */
.fp-case{ background:#F7FAFB; }
.fp-case__head{ display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:20px; margin-bottom:44px; }
.fp-more{
	font-family:'Jost',sans-serif; font-size:13px; letter-spacing:.18em;
	display:inline-flex; align-items:center; gap:10px; color:#2B3A3F;
}
.fp-more__arrow{
	width:38px; height:38px; border-radius:50%; border:1px solid #4CB0C9;
	display:inline-flex; align-items:center; justify-content:center; color:#4CB0C9;
	transition:background .3s ease, color .3s ease, transform .3s ease;
}
.fp-more:hover .fp-more__arrow{ background:#4CB0C9; color:#fff; transform:translateX(4px); }
.fp-case__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.fp-case__grid .case-card{ border-radius:16px; text-align:left; }

/* ---- flow ---- */
.fp-flow{ background:#E7EFF1; }
.fp-flow-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; counter-reset:fpstep; }
.fp-flow-item{
	background:#fff; border-radius:16px; padding:40px 32px 34px; position:relative;
	text-align:left;
}
.fp-flow-item::before{
	counter-increment:fpstep; content:"0" counter(fpstep);
	font-family:'Jost',sans-serif; font-size:40px; font-weight:500; color:#4CB0C9;
	opacity:.28; position:absolute; top:18px; right:24px; letter-spacing:.05em;
}
.fp-flow-item__ttl{ font-size:18px; font-weight:700; margin:0 0 12px; color:#2B3A3F; }
.fp-flow-item__txt{ font-size:13.5px; color:#5B6C71; line-height:2; margin:0; }

/* ---- profile ---- */
.fp-profile{ background:#F7FAFB; }
.fp-profile__grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.fp-profile__info{
	margin:0; background:#fff; border-radius:16px; padding:14px 28px;
	box-shadow:0 4px 18px rgba(43,58,63,.05);
	text-align:left;
}
.fp-profile__row{ display:flex; gap:20px; padding:16px 0; border-bottom:1px solid #E7EFF1; }
.fp-profile__row:last-child{ border-bottom:none; }
.fp-profile__row dt{ width:6em; flex-shrink:0; font-size:13px; color:#4CB0C9; font-weight:700; letter-spacing:.1em; padding-top:2px; }
.fp-profile__row dd{ margin:0; font-size:14px; color:#2B3A3F; line-height:1.9; text-align:left; }

/* ---- contact ---- */
.fp-contact{ background:#E7EFF1; text-align:center; }
.fp-contact .fp-title{ text-align:center; }
.fp-contact__msg{ color:#5B6C71; font-size:15px; line-height:2.2; max-width:36em; margin:0 auto 44px; text-align:center; }
.fp-btns{ display:flex; justify-content:center; gap:22px; flex-wrap:wrap; }
.fp-btn{
	display:inline-flex; align-items:center; justify-content:center; gap:10px;
	min-width:230px; padding:17px 40px; border-radius:999px;
	font-size:15px; font-weight:700; letter-spacing:.1em;
	transition:transform .3s ease, box-shadow .3s ease, background .3s ease, color .3s ease;
}
.fp-btn--main{ background:#4CB0C9; color:#fff; }
.fp-btn--main:hover{ transform:translateY(-3px); box-shadow:0 12px 26px rgba(76,176,201,.4); color:#fff; }
.fp-btn--sub{ background:#fff; color:#4CB0C9; border:1px solid #4CB0C9; }
.fp-btn--sub:hover{ background:#4CB0C9; color:#fff; transform:translateY(-3px); }

/* ---- responsive ---- */
@media(max-width:900px){
	.fp-section{ padding:90px 7vw; }
	.fp-concept__grid,
	.fp-profile__grid{ grid-template-columns:1fr; gap:44px; }
	.fp-svc-grid,
	.fp-case__grid,
	.fp-flow-grid{ grid-template-columns:1fr; }
	.fp-concept__visual img{ aspect-ratio:16/10; }
}
@media(prefers-reduced-motion:reduce){
	.fp-hero__title .l, .fp-hero__lead, .fp-petal, .fp-hero__scroll::after{ animation:none !important; opacity:1 !important; transform:none !important; }
	.reveal{ opacity:1; transform:none; transition:none; }
}

/* =====================================================
   下層ページ（事例：一覧・個別・カテゴリ）新トーン
===================================================== */

/* --- 下層の下地・固定ヘッダー対策 --- */
body.single-case,
body.post-type-archive-case,
body.tax-case_category{ background:#F7FAFB; }
body.page:not(.home){ padding-top:90px; } /* 固定ヘッダー化に伴う通常ページ（contact等）の頭隠れ防止。フロントページ（固定ページ指定時もbody.pageが付くため）は除外 */
body.admin-bar .header{ top:32px; } /* ログイン中のWP管理バーの下にヘッダーを配置（一般訪問者には無関係） */
@media (max-width:782px){ body.admin-bar .header{ top:0; } } /* モバイルの管理バーはスクロールで消えるため補正しない（最上部で管理バーと重なるのはログイン中のみの許容仕様） */

/* --- 下層共通ページヘッダー --- */
.page-header{
	position:relative;
	background:#E7EFF1;
	padding:150px 8vw 72px;
	border-radius:0 0 36px 36px;
	overflow:hidden;
	text-align:left;
}
.page-header--photo{ background-size:cover; background-position:center; }
.page-header--photo::before{
	content:""; position:absolute; inset:0;
	background:linear-gradient(90deg,
		rgba(231,239,241,.96) 0%,
		rgba(231,239,241,.9) 36%,
		rgba(231,239,241,.62) 72%,
		rgba(231,239,241,.48) 100%);
}
@media(max-width:900px){
	.page-header--photo::before{
		background:rgba(231,239,241,.85);
	}
}
.page-header__inner{ position:relative; z-index:1; max-width:1100px; margin:0 auto; }
.page-header__label{
	font-family:'Jost',sans-serif; font-size:13px; letter-spacing:.3em; color:#4CB0C9;
	display:flex; align-items:center; gap:14px; margin:0 0 18px;
}
.page-header__label::before{ content:""; width:36px; height:1px; background:#4CB0C9; }
.page-header__title{
	font-family:'Zen Old Mincho',serif; font-weight:600;
	font-size:clamp(26px,3.6vw,42px); line-height:1.7; letter-spacing:.06em;
	color:#2B3A3F; margin:0 0 16px;
}
.page-header__lead{
	font-size:14.5px; line-height:2.1; letter-spacing:.03em;
	color:#5B6C71; max-width:42em; margin:0;
}

/* --- 一覧レイアウト --- */
.case-archive__inner{ padding:64px 8vw 110px; }
.case-archive__inner > *{ max-width:1100px; margin-left:auto; margin-right:auto; }

/* フィルタ（ピル型） */
.case-filter{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:44px; }
.case-filter__item{
	padding:9px 22px; border-radius:999px;
	background:#fff; color:#5B6C71;
	font-size:13px; letter-spacing:.06em;
	border:1px solid rgba(43,58,63,.12);
	transition:all .3s ease;
}
.case-filter__item:hover{ border-color:#4CB0C9; color:#4CB0C9; }
.case-filter__item.is-active{ background:#4CB0C9; border-color:#4CB0C9; color:#fff; }

/* カードグリッド */
.case-archive__list{
	display:grid; grid-template-columns:repeat(3,1fr); gap:28px;
	list-style:none; padding:0; margin:0 auto;
}

/* --- 事例カード（TOP・一覧・関連 共通の完全定義） --- */
.case-card{
	display:block; background:#fff; border-radius:16px; overflow:hidden;
	box-shadow:0 6px 24px rgba(43,58,63,.06);
	transition:transform .35s ease, box-shadow .35s ease;
	text-align:left;
}
.case-card:hover{ transform:translateY(-6px); box-shadow:0 18px 40px rgba(43,58,63,.12); }
.case-card__thumb{
	aspect-ratio:16/10; position:relative; overflow:hidden;
	display:flex; align-items:center; justify-content:center;
	background:
		radial-gradient(70% 60% at 70% 25%, rgba(242,212,220,.7), rgba(242,212,220,0) 70%),
		linear-gradient(160deg,#DDEBEF 0%,#EAF3F5 60%,#F5EAEE 100%);
}
.case-card__img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.case-card:hover .case-card__img{ transform:scale(1.04); }

/* ---- アイキャッチ未設定時の代替表示 ----
   「CASE」ラベル＋hanawoロゴ＋グラデの飾り線を中央に重ねる。
   さらに:has()対応ブラウザでは、背景にふわっとした円の装飾を追加 */
.case-card__noimg{
	display:flex; flex-direction:column; align-items:center; gap:9px;
	font-family:'Jost',sans-serif; font-size:17px; font-weight:500;
	letter-spacing:.32em; text-indent:.32em; color:#6FA3B0;
}
.case-card__noimg::before{
	content:"CASE"; font-size:10px; font-weight:600;
	letter-spacing:.4em; text-indent:.4em; color:#AFC9D1;
}
.case-card__noimg::after{
	content:""; width:34px; height:2px; border-radius:2px;
	background:linear-gradient(90deg,#F2D4DC,#4CB0C9);
	opacity:.85;
}
/* 背景のやわらかい円（花びらのニュアンス）。:has()未対応ブラウザでは出ないだけで崩れない */
.case-card__thumb:has(.case-card__noimg)::before,
.case-card__thumb:has(.case-card__noimg)::after{
	content:""; position:absolute; border-radius:50%; pointer-events:none;
}
.case-card__thumb:has(.case-card__noimg)::before{
	width:120px; height:120px; right:-30px; top:-38px;
	background:radial-gradient(circle, rgba(242,212,220,.55), rgba(242,212,220,0) 70%);
}
.case-card__thumb:has(.case-card__noimg)::after{
	width:90px; height:90px; left:-22px; bottom:-30px;
	background:radial-gradient(circle, rgba(76,176,201,.18), rgba(76,176,201,0) 70%);
}
.case-card__body{ padding:20px 22px 22px; }
.case-card__label{
	display:inline-block; font-size:11px; letter-spacing:.08em;
	color:#4CB0C9; background:rgba(76,176,201,.1);
	padding:4px 12px; border-radius:999px; margin:0 0 10px;
}
.case-card__title{ font-size:15px; font-weight:700; line-height:1.8; color:#2B3A3F; margin:0 0 8px; }
.case-card__client{ font-size:12.5px; color:#5B6C71; margin:0; }

/* ページ送り */
.case-pagination{ margin-top:56px; text-align:center; }
.case-pagination .nav-links{ display:inline-flex; align-items:center; gap:4px; }
.page-numbers{
	display:inline-flex; align-items:center; justify-content:center;
	min-width:40px; height:40px; padding:0 8px;
	border-radius:50%;
	font-family:'Jost',sans-serif; font-size:14px;
	color:#2B3A3F; border:1px solid transparent;
	transition:all .3s ease;
}
.page-numbers.current{ background:#4CB0C9; color:#fff; }
.page-numbers:not(.current):hover{ border-color:#4CB0C9; color:#4CB0C9; }

.case-archive__empty{ text-align:center; color:#5B6C71; padding:60px 0; }

/* --- CTA（一覧・個別 共通） --- */
.case-cta{
	background:#E7EFF1; text-align:center;
	padding:90px 8vw 100px; margin-top:40px;
}
.case-cta__label{
	font-family:'Jost',sans-serif; font-size:13px; letter-spacing:.3em; color:#4CB0C9;
	display:flex; align-items:center; justify-content:center; gap:14px; margin:0 0 20px;
}
.case-cta__label::before,
.case-cta__label::after{ content:""; width:36px; height:1px; background:#4CB0C9; }
.case-cta__title{
	font-family:'Zen Old Mincho',serif; font-weight:600;
	font-size:clamp(22px,3vw,32px); line-height:1.8; letter-spacing:.06em;
	color:#2B3A3F; margin:0 0 16px;
}
.case-cta__lead{ color:#5B6C71; font-size:14.5px; line-height:2.1; margin:0 0 40px; }

/* --- 個別ページ --- */
.case-single{
	max-width:820px; margin:0 auto;
	padding:150px 6vw 70px;
	text-align:left;
}

/* パンくず */
.case-breadcrumb{
	font-size:12px; color:#8A9AA0; letter-spacing:.04em;
	display:flex; flex-wrap:wrap; align-items:center; gap:8px;
	margin-bottom:36px;
}
.case-breadcrumb a{ color:inherit; transition:color .3s ease; }
.case-breadcrumb a:hover{ color:#4CB0C9; }
.case-breadcrumb__sep{ opacity:.55; }
.case-breadcrumb__current{ color:#5B6C71; }

/* タイトルブロック */
.case-head{ margin-bottom:36px; }
.case-service-label{
	display:inline-block; font-size:12px; letter-spacing:.08em;
	color:#4CB0C9; background:rgba(76,176,201,.1);
	padding:6px 16px; border-radius:999px;
}
.case-title{
	font-family:'Zen Old Mincho',serif; font-weight:600;
	font-size:clamp(25px,3.8vw,38px); line-height:1.85; letter-spacing:.05em;
	color:#2B3A3F; margin:16px 0 14px;
}
.case-client{ font-size:14px; color:#5B6C71; margin:0 0 16px; }
.case-tags{ display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0; }
.case-tags__item a{
	display:inline-block; font-size:12px; color:#4CB0C9;
	background:#fff; border:1px solid rgba(76,176,201,.35);
	padding:4px 13px; border-radius:999px;
	transition:all .3s ease;
}
.case-tags__item a:hover{ background:#4CB0C9; color:#fff; border-color:#4CB0C9; }

/* ヒーロー画像（角丸・大きく） */
.case-hero{
	margin:0 0 56px; border-radius:24px; overflow:hidden;
	box-shadow:0 24px 60px rgba(43,58,63,.12);
}
.case-hero__img{ width:100%; aspect-ratio:2/1; object-fit:cover; display:block; }

/* 本文ブロック */
.case-block{ margin:0 0 48px; }
.case-block__title{
	font-family:'Zen Old Mincho',serif; font-weight:600;
	font-size:20px; letter-spacing:.08em; color:#2B3A3F;
	display:flex; align-items:center; gap:14px;
	margin:0 0 18px;
}
.case-block__title::before{
	content:""; width:26px; height:2px; border-radius:2px;
	background:linear-gradient(90deg,#F2D4DC,#4CB0C9);
}
.case-block__text{
	font-size:15px; line-height:2.2; letter-spacing:.03em;
	color:#3E4E53; margin:0;
}

/* 成果ボックス */
.case-numbers{
	position:relative; overflow:hidden;
	background:#fff; border-radius:20px;
	padding:38px 34px 30px; margin:0 0 48px;
	text-align:center;
	box-shadow:0 14px 40px rgba(43,58,63,.08);
}
.case-numbers::before{
	content:""; position:absolute; top:0; left:0; width:100%; height:3px;
	background:linear-gradient(90deg,#F2D4DC,#4CB0C9);
}
.case-numbers__label{
	display:inline-block;
	font-family:'Jost',sans-serif; font-size:12px; letter-spacing:.3em;
	color:#4CB0C9; font-weight:600; margin:0 0 14px;
}
.case-numbers__text{
	font-size:25px; font-weight:700; line-height:1.9;
	color:#2B3A3F; margin:0 0 10px;
}
.case-numbers__period{ font-size:13px; color:#5B6C71; }
.case-period{ font-size:13px; color:#5B6C71; margin:0 0 48px; }

/* お客様の声 */
.case-voice{
	position:relative;
	background:#fff; border-radius:20px;
	padding:36px 38px 30px; margin:0 0 48px;
	box-shadow:0 14px 40px rgba(43,58,63,.06);
}
.case-voice::before{
	content:"\201C";
	font-family:'Zen Old Mincho',serif; font-size:64px; line-height:1;
	color:rgba(76,176,201,.25);
	position:absolute; top:8px; left:20px;
}
.case-voice__text{
	position:relative; font-size:15px; line-height:2.2;
	color:#3E4E53; margin:0 0 12px;
}
.case-voice__by{ display:block; text-align:right; font-size:12.5px; color:#5B6C71; }

/* 関連事例 */
.case-related{ max-width:1100px; margin:0 auto; padding:10px 6vw 90px; }
.case-related__title{
	font-family:'Zen Old Mincho',serif; font-weight:600;
	font-size:22px; letter-spacing:.08em; color:#2B3A3F;
	display:flex; align-items:center; gap:14px;
	margin:0 0 28px;
}
.case-related__title::before{
	content:""; width:26px; height:2px; border-radius:2px;
	background:linear-gradient(90deg,#F2D4DC,#4CB0C9);
}
.case-related__list{
	display:grid; grid-template-columns:repeat(3,1fr); gap:26px;
	list-style:none; padding:0; margin:0;
}

/* --- レスポンシブ --- */
@media(max-width:900px){
	.page-header{ padding:130px 7vw 54px; border-radius:0 0 24px 24px; }
	.case-archive__inner{ padding:48px 7vw 80px; }
	.case-archive__list,
	.case-related__list{ grid-template-columns:1fr; }
	.case-single{ padding:130px 7vw 56px; }
	.case-hero__img{ aspect-ratio:16/10; }
	.case-hero{ border-radius:18px; margin-bottom:44px; }
	.case-numbers__text{ font-size:21px; }
	.case-cta{ padding:70px 7vw 80px; }
}

/* =====================================================
   タグ導線・FAQ・CTA補助リンク
===================================================== */

/* --- タグで探すバー（一覧ページ） --- */
.case-filter{ margin-bottom:16px; }
.case-tagbar{
	display:flex; flex-wrap:wrap; align-items:center; gap:8px;
	margin-bottom:40px;
}
.case-tagbar__label{
	font-size:12px; color:#8A9AA0; letter-spacing:.08em; margin-right:4px;
}
.case-tagbar__item{
	display:inline-block; font-size:12px; color:#4CB0C9;
	background:#fff; border:1px solid rgba(76,176,201,.3);
	padding:3px 12px; border-radius:999px;
	transition:all .3s ease;
}
.case-tagbar__item:hover{ background:rgba(76,176,201,.08); }
.case-tagbar__item.is-active{ background:#4CB0C9; color:#fff; border-color:#4CB0C9; }

/* タグ絞り込み中の表示 */
.case-tag-notice{
	font-size:13.5px; color:#5B6C71; margin-bottom:36px;
}
.case-tag-notice strong{ color:#2B3A3F; }
.case-tag-notice a{ color:#4CB0C9; text-decoration:underline; margin-left:8px; }
.case-tag-notice a:hover{ opacity:.75; }

/* --- CTA下のFAQリンク --- */
.case-cta__faq{ margin:24px 0 0; font-size:13px; }
.case-cta__faq a{
	color:#5B6C71; text-decoration:underline; text-underline-offset:4px;
	transition:color .3s ease;
}
.case-cta__faq a:hover{ color:#4CB0C9; }

/* --- FAQページ --- */
body.page-template-page-faq{ padding-top:0; } /* page-headerが余白を持つため打ち消し */
.faq-page{ background:#F7FAFB; text-align:left; }
.faq-inner{ max-width:820px; margin:0 auto; padding:60px 6vw 90px; }
.faq-item{
	background:#fff; border-radius:16px;
	box-shadow:0 6px 24px rgba(43,58,63,.05);
	margin-bottom:14px; overflow:hidden;
}
.faq-item__q{
	display:flex; align-items:flex-start; gap:14px;
	padding:22px 60px 22px 26px;
	cursor:pointer; list-style:none; position:relative;
	font-size:15px; font-weight:700; color:#2B3A3F; line-height:1.9;
	transition:color .3s ease;
}
.faq-item__q::-webkit-details-marker{ display:none; }
.faq-item__q:hover{ color:#4CB0C9; }
.faq-item__mark{
	font-family:'Jost',sans-serif; font-weight:600; color:#4CB0C9;
	flex-shrink:0;
}
.faq-item__q::after{
	content:"＋";
	position:absolute; right:24px; top:22px;
	color:#4CB0C9; font-weight:400;
	transition:transform .3s ease;
}
.faq-item[open] .faq-item__q::after{ content:"－"; }
.faq-item__a{
	padding:0 26px 24px 56px;
	font-size:14.5px; line-height:2.1; color:#5B6C71;
}
.faq-item__a p{ margin:0; }
.faq-item__a a{ color:#4CB0C9; text-decoration:underline; text-underline-offset:3px; }
@media(max-width:900px){
	.faq-inner{ padding:44px 7vw 70px; }
	.faq-item__q{ padding:20px 52px 20px 20px; }
	.faq-item__a{ padding:0 20px 22px 46px; }
}

/* =====================================================
   サービスページ（一覧・個別）
===================================================== */
body.page-template-page-service,
body.page-template-page-service-sns{ padding-top:0; background:#F7FAFB; }
.service-page{ text-align:left; }

/* 背景リズム用 */
.bg-mist{ background:#F7FAFB; }
.bg-pale{ background:#E7EFF1; }

/* 読み物用の狭コンテナ */
.svc-narrow{ max-width:760px; margin:0 auto; }

/* --- 一覧：交互レイアウト --- */
.svc-list{
	max-width:1100px; margin:0 auto;
	padding:70px 6vw 10px;
	display:flex; flex-direction:column; gap:72px;
}
.svc-row{
	display:grid; grid-template-columns:1fr 1fr;
	gap:56px; align-items:center;
}
.svc-row:nth-child(even) .svc-row__visual{ order:2; }
.svc-row__visual{
	position:relative; border-radius:20px; overflow:hidden;
	box-shadow:0 20px 50px rgba(43,58,63,.1);
}
.svc-row__visual img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.svc-row__visual.is-missing{
	aspect-ratio:4/3;
	display:flex; align-items:center; justify-content:center;
	background:
		radial-gradient(70% 60% at 70% 25%, rgba(242,212,220,.7), rgba(242,212,220,0) 70%),
		linear-gradient(160deg,#DDEBEF 0%,#EAF3F5 60%,#F5EAEE 100%);
}
.svc-row__noimg{ display:none; font-family:'Jost',sans-serif; font-size:14px; letter-spacing:.3em; color:#8FB6C0; }
.svc-row__visual.is-missing .svc-row__noimg{ display:block; }
.svc-row__en{
	font-family:'Jost',sans-serif; font-size:12px; letter-spacing:.28em; color:#4CB0C9;
	display:flex; align-items:center; gap:12px; margin:0 0 14px;
}
.svc-row__en::before{ content:""; width:30px; height:1px; background:#4CB0C9; }
.svc-row__name{
	font-family:'Zen Old Mincho',serif; font-weight:600;
	font-size:clamp(22px,2.6vw,30px); line-height:1.7; letter-spacing:.05em;
	color:#2B3A3F; margin:0 0 16px;
}
.svc-row__copy{ font-size:14.5px; line-height:2.1; color:#5B6C71; margin:0 0 18px; }
.svc-row__tags{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:22px; }
.svc-row__tags-label{ font-size:12px; color:#8A9AA0; letter-spacing:.06em; margin-right:2px; }
.svc-row__tag{
	display:inline-block; font-size:12px; color:#4CB0C9;
	background:#fff; border:1px solid rgba(76,176,201,.3);
	padding:4px 13px; border-radius:999px;
}
.svc-row__soon{
	display:inline-block; font-size:12px; letter-spacing:.1em;
	color:#8A9AA0; background:#EEF3F5;
	padding:7px 18px; border-radius:999px;
}

/* --- 救済ブロック --- */
.svc-rescue{
	max-width:1100px; margin:80px auto 0;
	padding:64px 8%;
	border-radius:28px; text-align:center;
	background:
		radial-gradient(60% 80% at 15% 20%, rgba(242,212,220,.45), rgba(242,212,220,0) 70%),
		radial-gradient(60% 80% at 85% 80%, rgba(156,211,224,.45), rgba(156,211,224,0) 70%),
		#fff;
	box-shadow:0 14px 44px rgba(43,58,63,.07);
}
.svc-rescue__title{
	font-family:'Zen Old Mincho',serif; font-weight:600;
	font-size:clamp(21px,2.8vw,30px); letter-spacing:.06em; line-height:1.8;
	color:#2B3A3F; margin:0 0 16px;
}
.svc-rescue__text{ font-size:14.5px; line-height:2.2; color:#5B6C71; margin:0 0 34px; }

/* --- 料金の考え方（一覧） --- */
.svc-price__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.svc-price__item{
	background:#fff; border-radius:16px; padding:30px 26px;
	box-shadow:0 6px 24px rgba(43,58,63,.05);
	position:relative; overflow:hidden;
}
.svc-price__item::before{
	content:""; position:absolute; top:0; left:0; width:100%; height:3px;
	background:linear-gradient(90deg,#F2D4DC,#4CB0C9);
}
.svc-price__ttl{ font-size:15px; font-weight:700; color:#2B3A3F; margin:0 0 10px; line-height:1.8; }
.svc-price__txt{ font-size:13px; color:#5B6C71; line-height:2; margin:0; }

/* --- 個別：お悩みチェック --- */
.svc-worry{
	list-style:none; margin:0; padding:30px 32px 14px;
	background:#fff; border-radius:20px;
	box-shadow:0 14px 40px rgba(43,58,63,.06);
}
.svc-worry__item{
	position:relative; padding:0 0 18px 36px;
	font-size:15px; line-height:2; color:#3E4E53;
}
.svc-worry__item::before{
	content:"✓";
	position:absolute; left:4px; top:1px;
	color:#4CB0C9; font-weight:700;
}

/* --- 個別：希望への転換 --- */
.svc-pivot{ text-align:center; padding:96px 8vw; position:relative; background:#F7FAFB; }
.svc-pivot::before{
	content:""; position:absolute; left:50%; top:0; transform:translateX(-50%);
	width:2px; height:44px;
	background:linear-gradient(180deg,#F2D4DC,#4CB0C9);
}
.svc-pivot__text{
	font-family:'Zen Old Mincho',serif; font-weight:600;
	font-size:clamp(22px,3.4vw,36px); line-height:2; letter-spacing:.06em;
	color:#2B3A3F; margin:0 0 22px;
}
.svc-pivot__text .k{ color:#4CB0C9; }
.svc-pivot__sub{ font-size:14px; line-height:2.2; color:#5B6C71; margin:0; }

/* --- 個別：サポート内容カード --- */
.svc-offer__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.svc-offer-card{
	background:#fff; border-radius:16px; padding:34px 32px 30px;
	position:relative; overflow:hidden;
}
.svc-offer-card--main{
	grid-column:1 / -1;
	background:linear-gradient(120deg, rgba(242,212,220,.25), rgba(255,255,255,1) 45%, rgba(156,211,224,.25));
	box-shadow:0 14px 40px rgba(43,58,63,.08);
}
.svc-offer-card--main::before{
	content:""; position:absolute; top:0; left:0; width:100%; height:3px;
	background:linear-gradient(90deg,#F2D4DC,#4CB0C9);
}
.svc-offer-card__badge{
	display:inline-block; font-size:11px; letter-spacing:.14em; font-weight:700;
	color:#fff; background:#4CB0C9;
	padding:4px 14px; border-radius:999px; margin:0 0 14px;
}
.svc-offer-card__ttl{ font-size:17px; font-weight:700; color:#2B3A3F; margin:0 0 10px; line-height:1.8; }
.svc-offer-card__txt{ font-size:13.5px; color:#5B6C71; line-height:2.1; margin:0; }

/* --- 個別：数字注記 --- */
.svc-note{ font-size:12.5px; color:#8A9AA0; line-height:1.9; margin:14px 0 0; text-align:center; }

/* --- レスポンシブ --- */
@media(max-width:900px){
	.svc-list{ gap:56px; padding-top:48px; }
	.svc-row{ grid-template-columns:1fr; gap:24px; }
	.svc-row:nth-child(even) .svc-row__visual{ order:0; }
	.svc-rescue{ margin:56px 6vw 0; padding:44px 7vw; }
	.svc-price__grid{ grid-template-columns:1fr; }
	.svc-offer__grid{ grid-template-columns:1fr; }
	.svc-pivot{ padding:72px 7vw; }
}

/* TOPサービスセクション：一覧ページへの導線 */
.fp-svc-more{ margin-top:36px; text-align:center; }
.fp-svc-more .fp-more{ justify-content:center; }

/* =====================================================
   【復元】チャット渡し分の統合（ボタン・ヘッダー・カード・CF7）
===================================================== */

/* --- ボタン：ホバーでグラデ＋矢印（main / sub 共通） --- */
.fp-btn--main,
.fp-btn--sub{
	position:relative; overflow:hidden; z-index:0;
}
.fp-btn--main::before,
.fp-btn--sub::before{
	content:""; position:absolute; inset:0; z-index:-1;
	background:linear-gradient(100deg, #F2D4DC 0%, #4CB0C9 55%, #3DA0B8 100%);
	opacity:0; transition:opacity .45s ease;
}
.fp-btn--main:hover::before,
.fp-btn--sub:hover::before{ opacity:1; }
.fp-btn--sub:hover{ color:#fff; border-color:transparent; }
.fp-btn--main::after,
.fp-btn--sub::after{
	content:"→";
	display:inline-block;
	max-width:0; margin-left:0; opacity:0; overflow:hidden;
	transition:max-width .35s ease, margin-left .35s ease, opacity .3s ease;
}
.fp-btn--main:hover::after,
.fp-btn--sub:hover::after{
	max-width:1.5em; margin-left:10px; opacity:1;
}

/* --- ヘッダー：トップは透明スタートを強制（追加CSS等の上書き対策） --- */
.header.header--top:not(.is-scrolled){
	background: transparent !important;
	box-shadow: none !important;
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
}

/* --- 事例カード：行数制限で「…」省略＋高さ揃え --- */
.case-card__title{
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	overflow:hidden;
}
.case-card__client{
	display:-webkit-box;
	-webkit-line-clamp:1;
	-webkit-box-orient:vertical;
	overflow:hidden;
}
.case-archive__item,
.case-related__item{ display:flex; }
.case-archive__item .case-card,
.case-related__item .case-card{ width:100%; }

/* --- CF7チェックボックスをピル型に（本番でフォームに入る） --- */
.contact-form-wrap .wpcf7-checkbox{ display:flex; flex-wrap:wrap; gap:10px; margin-top:8px; }
.contact-form-wrap .wpcf7-checkbox .wpcf7-list-item{ margin:0; }
.contact-form-wrap .wpcf7-checkbox label{
	display:flex; align-items:center; gap:8px; margin:0;
	font-weight:400; font-size:13.5px; color:#2B3A3F;
	background:#FBFDFE; border:1px solid rgba(43,58,63,.18);
	border-radius:999px; padding:8px 16px; cursor:pointer;
	transition:all .3s ease;
}
.contact-form-wrap .wpcf7-checkbox input[type="checkbox"]{ accent-color:#4CB0C9; }
.contact-form-wrap .wpcf7-checkbox label:has(input:checked){
	border-color:#4CB0C9; background:rgba(76,176,201,.08);
}

/* =====================================================
   SNS個別：他のサービスへの導線
===================================================== */
.svc-others__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.svc-other-card{
	display:block; background:#fff; border-radius:16px;
	padding:26px 24px 24px; position:relative;
	transition:transform .35s ease, box-shadow .35s ease;
}
a.svc-other-card:hover{ transform:translateY(-5px); box-shadow:0 16px 36px rgba(43,58,63,.1); }
.svc-other-card__en{
	font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.24em;
	color:#4CB0C9; margin:0 0 10px;
}
.svc-other-card__name{ font-size:15px; font-weight:700; color:#2B3A3F; margin:0 0 8px; line-height:1.8; }
.svc-other-card__copy{ font-size:12.5px; color:#5B6C71; line-height:1.9; margin:0 0 12px; }
.svc-other-card__more{ font-family:'Jost',sans-serif; font-size:12px; letter-spacing:.12em; color:#4CB0C9; }
.svc-other-card__soon{
	display:inline-block; font-size:11px; letter-spacing:.08em;
	color:#8A9AA0; background:#EEF3F5;
	padding:4px 12px; border-radius:999px;
}
@media(max-width:900px){
	.svc-others__grid{ grid-template-columns:1fr; }
}

/* サービス個別ページ（seminar/meo/web）の固定ヘッダー余白打ち消し */
body.page-template-page-service-seminar,
body.page-template-page-service-meo,
body.page-template-page-service-web{ padding-top:0; background:#F7FAFB; }

/* =====================================================
   【復元2】ヘッダー白帯ベース＋ヒーロースライドショー
===================================================== */

/* --- ヘッダー：スクロールで白帯（全ページ共通） --- */
.header{
	position: fixed; top: 0; left: 0; width: 100%; z-index: 1000;
	transition: background-color .4s ease, box-shadow .4s ease;
}
/* トップ：透明スタート */
.header--top{ background: transparent; }
/* 下層は最初から、トップはスクロール後に白帯 */
.header--solid,
.header.is-scrolled{
	background: rgba(255,255,255,.92);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	box-shadow: 0 2px 20px rgba(43,58,63,.08);
}
/* ヘッダーナビ：フッターとトーン統一（旧common.cssの#333/600を上書き） */
.header-navi-list a{ color:#5B6C71; font-weight:500; }

/* 案d（写真フル）：トップ表示中は文字を白に、スクロールで通常色に戻る */
.header--light:not(.is-scrolled) .header-logo a,
.header--light:not(.is-scrolled) .header-navi-list a{ color: #fff; }
.header--light:not(.is-scrolled) .header-navi-list a::after{ background-color: #fff; }

/* --- ヒーロー：フェードスライドショー --- */
.fp-hero__slide{
	position:absolute; inset:0;
	background-size:cover; background-position:center;
	opacity:0; transition:opacity 2s ease;
}
.fp-hero__slide.is-active{ opacity:1; }
/* オーバーレイをスライドの上に */
.fp-hero--a .fp-hero__bg::after,
.fp-hero--d .fp-hero__bg::after{ z-index:2; position:absolute; }
@media(prefers-reduced-motion:reduce){
	.fp-hero__slide{ transition:none; }
}

/* ヒーロー：PC/SP画像の出し分け（img/に -sp 付き画像があればスマホで自動切替） */
.fp-hero__slide{ background-image:var(--hero-pc); }
@media(max-width:768px){
	.fp-hero__slide{ background-image:var(--hero-sp, var(--hero-pc)); }
}

/* =====================================================
   シンプルページ（プライバシーポリシー等・エディタ本文の整形）
===================================================== */
body.page-template-page-simple{ padding-top:0; background:#F7FAFB; }
.simple-page{ text-align:left; }
.simple-content{
	max-width:760px; margin:0 auto;
	padding:56px 6vw 100px;
}
.simple-content h2{
	font-family:'Zen Old Mincho',serif; font-weight:600;
	font-size:19px; letter-spacing:.06em; line-height:1.8;
	color:#2B3A3F;
	display:flex; align-items:center; gap:14px;
	margin:52px 0 16px;
}
.simple-content h2::before{
	content:""; width:22px; height:2px; border-radius:2px; flex-shrink:0;
	background:linear-gradient(90deg,#F2D4DC,#4CB0C9);
}
.simple-content h2:first-child{ margin-top:0; }
.simple-content h3{
	font-size:15.5px; font-weight:700; color:#2B3A3F;
	margin:32px 0 12px;
}
.simple-content p{
	font-size:14.5px; line-height:2.1; letter-spacing:.03em;
	color:#3E4E53; margin:0 0 1.4em;
}
.simple-content ul,
.simple-content ol{
	margin:0 0 1.6em; padding-left:1.6em;
	font-size:14.5px; line-height:2.1; color:#3E4E53;
}
.simple-content li{ margin-bottom:.4em; }
.simple-content ul li::marker{ color:#4CB0C9; }
.simple-content a{
	color:#4CB0C9; text-decoration:underline; text-underline-offset:3px;
	transition:opacity .3s ease;
}
.simple-content a:hover{ opacity:.75; }
.simple-content strong{ color:#2B3A3F; }
.simple-content hr{
	border:none; height:1px; background:#DDE7EA; margin:44px 0;
}
@media(max-width:900px){
	.simple-content{ padding:44px 7vw 80px; }
}

/* =====================================================
   お知らせ（News）：TOPリスト・一覧・個別
===================================================== */
body.blog,
body.single-post{ background:#F7FAFB; }

/* --- 共通リスト --- */
.news-list{ list-style:none; margin:0; padding:0; }
.news-list__item{ border-bottom:1px solid #E1EAED; }
.news-list__item:first-child{ border-top:1px solid #E1EAED; }
.news-list__link{
	display:flex; align-items:baseline; gap:16px; flex-wrap:wrap;
	padding:20px 8px;
	transition:background .3s ease;
}
.news-list__link:hover{ background:rgba(76,176,201,.05); }
.news-list__link:hover .news-list__title{ color:#4CB0C9; }
.news-list__date{
	font-family:'Jost',sans-serif; font-size:13px; letter-spacing:.08em;
	color:#8A9AA0; flex-shrink:0;
}
.news-list__cat{
	display:inline-block; font-size:11px; letter-spacing:.06em;
	color:#4CB0C9; background:rgba(76,176,201,.1);
	padding:3px 12px; border-radius:999px; flex-shrink:0;
}
.news-list__title{
	font-size:14.5px; color:#2B3A3F; line-height:1.9;
	transition:color .3s ease;
}

/* --- 一覧ページ --- */
.news-archive{ text-align:left; }
.news-archive__inner{ max-width:820px; margin:0 auto; padding:56px 6vw 90px; }

/* --- 個別記事 --- */
.news-single{
	max-width:760px; margin:0 auto;
	padding:150px 6vw 60px;
	text-align:left;
}
.news-single__head{ margin-bottom:32px; }
.news-single__meta{ display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.news-single__date{
	font-family:'Jost',sans-serif; font-size:13.5px; letter-spacing:.08em;
	color:#8A9AA0;
}
.news-single__title{
	font-family:'Zen Old Mincho',serif; font-weight:600;
	font-size:clamp(23px,3.4vw,32px); line-height:1.85; letter-spacing:.05em;
	color:#2B3A3F; margin:0;
}
.news-single__hero{ margin-bottom:44px; }
.news-single .simple-content{ padding:0; max-width:none; }
.news-single__foot{
	margin-top:52px; padding-top:26px;
	border-top:1px solid #E1EAED;
	font-size:13.5px;
}
.news-single__foot a{ color:#4CB0C9; transition:opacity .3s ease; }
.news-single__foot a:hover{ opacity:.75; }
@media(max-width:900px){
	.news-archive__inner{ padding:44px 7vw 70px; }
	.news-single{ padding:130px 7vw 50px; }
	.news-list__link{ padding:16px 4px; }
}

/* =====================================================
   ヒーロー：お知らせバー（案B・最新1件のみ）
===================================================== */
.fp-news-bar{
	position:absolute; left:50%; bottom:26px; transform:translateX(-50%);
	z-index:3;
	width:min(720px, 88%);
	display:flex; align-items:center; gap:14px;
	padding:12px 24px;
	background:rgba(255,255,255,.92);
	-webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
	border-radius:999px;
	box-shadow:0 10px 30px rgba(43,58,63,.12);
	transition:transform .3s ease, box-shadow .3s ease;
}
.fp-news-bar:hover{ transform:translate(-50%,-3px); box-shadow:0 16px 38px rgba(43,58,63,.18); }
.fp-news-bar__tag{
	font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.24em; color:#fff;
	background:linear-gradient(100deg,#F2D4DC,#4CB0C9);
	padding:4px 14px; border-radius:999px; flex-shrink:0;
}
.fp-news-bar__date{
	font-family:'Jost',sans-serif; font-size:13px; letter-spacing:.08em;
	color:#8A9AA0; flex-shrink:0;
}
.fp-news-bar__title{
	font-size:13.5px; color:#2B3A3F; flex:1; min-width:0;
	overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
	transition:color .3s ease;
}
.fp-news-bar:hover .fp-news-bar__title{ color:#4CB0C9; }
.fp-news-bar__arrow{ color:#4CB0C9; font-family:'Jost',sans-serif; flex-shrink:0; }

/* SCROLLインジケーターとの共存：狭い画面ではSCROLLを非表示 */
@media(max-width:1100px){
	.fp-hero.has-news .fp-hero__scroll{ display:none; }
}
@media(max-width:600px){
	.fp-news-bar{ gap:10px; padding:11px 18px; bottom:18px; }
	.fp-news-bar__date{ display:none; }
}

/* =====================================================
   お知らせ個別・案B（帯＋白カード＋導線）
===================================================== */
.news-single-b{ text-align:left; }
.nsb-crumb{ margin-bottom:22px; }
.nsb-meta{ display:flex; align-items:center; gap:12px; margin:0 0 10px; }
.nsb-title{
	font-family:'Zen Old Mincho',serif; font-weight:600;
	font-size:clamp(22px,3vw,30px); line-height:1.85; letter-spacing:.05em;
	color:#2B3A3F; margin:0;
}
.nsb-inner{
	max-width:760px; margin:-18px auto 0;
	padding:0 6vw 44px;
	position:relative; z-index:2;
}
.nsb-hero{ margin-bottom:20px; }
.nsb-body{
	background:#fff; border-radius:20px;
	padding:40px 42px;
	box-shadow:0 14px 40px rgba(43,58,63,.06);
}
.nsb-body .simple-content{ padding:0; max-width:none; }

/* 前後の記事ナビ */
.nsb-nav{
	display:flex; align-items:center; justify-content:space-between; gap:14px;
	margin-top:26px; font-size:13px;
}
.nsb-nav a{ color:#5B6C71; transition:color .3s ease; }
.nsb-nav a:hover{ color:#4CB0C9; }
.nsb-nav__prev,
.nsb-nav__next{
	display:flex; align-items:center; gap:8px; max-width:38%;
}
.nsb-nav__label{ color:#4CB0C9; font-family:'Jost',sans-serif; flex-shrink:0; }
.nsb-nav__t{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nsb-nav__spacer{ width:38%; }
.nsb-nav__all{
	flex-shrink:0;
	border:1px solid rgba(76,176,201,.35); border-radius:999px;
	padding:7px 22px; font-size:12.5px; color:#4CB0C9 !important;
	transition:all .3s ease;
}
.nsb-nav__all:hover{ background:#4CB0C9; color:#fff !important; }

/* あわせてどうぞ */
.nsb-links{
	margin-top:30px; padding-top:24px;
	border-top:1px solid #E1EAED;
	display:flex; align-items:center; flex-wrap:wrap; gap:10px;
}
.nsb-links__label{ font-size:12px; color:#8A9AA0; letter-spacing:.06em; margin-right:4px; }
.nsb-links__pill{
	display:inline-block; font-size:12.5px; color:#4CB0C9;
	background:#fff; border:1px solid rgba(76,176,201,.3);
	padding:6px 16px; border-radius:999px;
	transition:all .3s ease;
}
.nsb-links__pill:hover{ background:#4CB0C9; color:#fff; border-color:#4CB0C9; }

@media(max-width:700px){
	.nsb-body{ padding:28px 22px; }
	.nsb-nav__t{ display:none; }
	.nsb-nav__prev::after{ content:"前の記事"; font-size:12.5px; }
	.nsb-nav__next::before{ content:"次の記事"; font-size:12.5px; }
}

/* =====================================================
   【復元3】お問い合わせページ 新トーン
===================================================== */
body.page-template-page-contact{ padding-top:0; background:#F7FAFB; }
.contact-page{ text-align:left; }
.contact-inner2{ max-width:760px; margin:0 auto; padding:56px 6vw 20px; }

/* 安心材料3点 */
.contact-notes{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; list-style:none; margin:0 0 44px; padding:0; }
.contact-notes__item{ background:#fff; border-radius:16px; padding:20px 18px; box-shadow:0 6px 24px rgba(43,58,63,.05); }
.contact-notes__item strong{ display:block; font-size:14px; color:#2B3A3F; margin-bottom:6px; }
.contact-notes__item strong::before{ content:"✓"; color:#4CB0C9; margin-right:8px; font-weight:700; }
.contact-notes__item span{ font-size:12.5px; color:#5B6C71; line-height:1.9; }

/* フォーム（CF7を要素ベースで新トーン化） */
.contact-form-wrap{
	background:#fff; border-radius:20px; padding:40px 36px;
	box-shadow:0 14px 40px rgba(43,58,63,.06); margin-bottom:48px;
}
.contact-form-wrap label{ display:block; font-size:14px; font-weight:700; color:#2B3A3F; margin-bottom:22px; }
.contact-form-wrap input[type="text"],
.contact-form-wrap input[type="email"],
.contact-form-wrap input[type="tel"],
.contact-form-wrap select,
.contact-form-wrap textarea{
	display:block; width:100%; margin-top:8px; box-sizing:border-box;
	padding:13px 16px; font-size:15px;
	border:1px solid rgba(43,58,63,.18); border-radius:12px;
	background:#FBFDFE; color:#2B3A3F;
	transition:border-color .3s ease, box-shadow .3s ease;
}
.contact-form-wrap input:focus,
.contact-form-wrap select:focus,
.contact-form-wrap textarea:focus{
	border-color:#4CB0C9; box-shadow:0 0 0 3px rgba(76,176,201,.15); outline:none;
}
.contact-form-wrap textarea{ min-height:170px; }
.contact-form-wrap input[type="submit"]{
	display:block; margin:8px auto 0; min-width:240px;
	padding:17px 44px; border:none; border-radius:999px; cursor:pointer;
	background:#4CB0C9; color:#fff; font-size:15px; font-weight:700; letter-spacing:.1em;
	transition:transform .3s ease, box-shadow .3s ease;
}
.contact-form-wrap input[type="submit"]:hover{
	transform:translateY(-3px); box-shadow:0 12px 26px rgba(76,176,201,.4);
}
.contact-form-wrap .wpcf7-not-valid-tip{ font-size:12px; color:#E36A7E; margin-top:6px; font-weight:400; }

/* LINEボタン（公式アカウント開設後に使用） */
.contact-line{ text-align:center; margin-bottom:48px; }
.contact-line__text{ font-size:13.5px; color:#5B6C71; margin:0 0 14px; }
.fp-btn--line{ background:#06C755; color:#fff; }
.fp-btn--line:hover{ transform:translateY(-3px); box-shadow:0 12px 26px rgba(6,199,85,.35); color:#fff; }

/* 送信後の流れ */
.contact-flow{ margin-bottom:36px; }
.contact-flow__title{
	font-family:'Zen Old Mincho',serif; font-weight:600;
	font-size:20px; letter-spacing:.08em; color:#2B3A3F;
	display:flex; align-items:center; gap:14px; margin:0 0 22px;
}
.contact-flow__title::before{ content:""; width:26px; height:2px; border-radius:2px; background:linear-gradient(90deg,#F2D4DC,#4CB0C9); }
.contact-flow__list{ list-style:none; margin:0; padding:0; counter-reset:cstep; }
.contact-flow__list li{ position:relative; padding:0 0 24px 52px; counter-increment:cstep; }
.contact-flow__list li::before{
	content:counter(cstep);
	position:absolute; left:0; top:0; width:34px; height:34px; border-radius:50%;
	background:#fff; border:1px solid #4CB0C9; color:#4CB0C9;
	font-family:'Jost',sans-serif; font-size:14px;
	display:flex; align-items:center; justify-content:center;
}
.contact-flow__list li::after{
	content:""; position:absolute; left:17px; top:38px; bottom:2px; width:1px;
	background:rgba(76,176,201,.3);
}
.contact-flow__list li:last-child::after{ display:none; }
.contact-flow__list li strong{ display:block; font-size:15px; color:#2B3A3F; margin-bottom:4px; }
.contact-flow__list li span{ font-size:13.5px; color:#5B6C71; line-height:2; }

.contact-faq-link{ font-size:13.5px; color:#5B6C71; text-align:center; margin:0; padding-bottom:70px; }
.contact-faq-link a{ color:#4CB0C9; text-decoration:underline; text-underline-offset:3px; }

@media(max-width:900px){
	.contact-notes{ grid-template-columns:1fr; }
	.contact-form-wrap{ padding:28px 20px; }
}

/* =====================================================
   お知らせ一覧：カード型（本文ちょい見せ）
===================================================== */
.news-cards{ display:flex; flex-direction:column; gap:16px; }
.news-card{
	display:block; background:#fff; border-radius:16px;
	padding:24px 28px;
	box-shadow:0 6px 24px rgba(43,58,63,.05);
	transition:transform .3s ease, box-shadow .3s ease;
}
.news-card:hover{ transform:translateY(-4px); box-shadow:0 14px 34px rgba(43,58,63,.1); }
.news-card:hover .news-card__t{ color:#4CB0C9; }
.news-card__meta{ display:flex; align-items:center; gap:12px; margin-bottom:8px; }
.news-card__t{
	font-size:15.5px; font-weight:700; line-height:1.8;
	color:#2B3A3F; margin:0 0 6px;
	transition:color .3s ease;
}
.news-card__ex{ font-size:12.5px; color:#5B6C71; line-height:1.9; margin:0; }
.news-card__more{
	font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.16em;
	color:#4CB0C9; display:inline-block; margin-top:10px;
}
@media(max-width:700px){ .news-card{ padding:20px 18px; } }

/* =====================================================
   FAQ：セクション分け＋ページ内ジャンプ
===================================================== */
.faq-nav{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 40px; }
.faq-nav__pill{
	display:inline-block; font-size:13px; color:#4CB0C9;
	background:#fff; border:1px solid rgba(76,176,201,.3);
	padding:8px 20px; border-radius:999px;
	transition:all .3s ease;
}
.faq-nav__pill:hover{ background:#4CB0C9; color:#fff; border-color:#4CB0C9; }
.faq-section{ scroll-margin-top:110px; margin-bottom:48px; }
.faq-section__title{
	font-family:'Zen Old Mincho',serif; font-weight:600;
	font-size:20px; letter-spacing:.08em; color:#2B3A3F;
	display:flex; align-items:center; gap:14px;
	margin:0 0 20px;
}
.faq-section__title::before{
	content:""; width:26px; height:2px; border-radius:2px;
	background:linear-gradient(90deg,#F2D4DC,#4CB0C9); flex-shrink:0;
}

/* ============================================================
   フローティング診断CTAボタン（v5：診断ハブ2択メニュー版）
   タップで Instagram診断 / サイト診断 の2択が上に展開。
   表示ON/OFFは functions.php の HANAWO_SHOW_SHINDAN_FLOAT で制御
   ============================================================ */
.fp-float-hub{
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 900;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
  opacity: 0;
  transform: translateY(16px);
  pointer-events: none;
  transition: opacity .35s ease, transform .35s ease;
}
.fp-float-hub.is-visible{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* ---- メインボタン ---- */
.fp-float-shindan {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 20px 10px 10px;
  border: none;
  border-radius: 999px;
  background: linear-gradient(90deg, #F2D4DC, #4CB0C9);
  color: #fff;
  text-align: left;
  cursor: pointer;
  font-family: 'Jost', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', sans-serif;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.45;
  box-shadow: 0 8px 24px rgba(76, 176, 201, 0.4);
  transition: transform .25s ease, box-shadow .25s ease;
}
.fp-float-shindan:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(76, 176, 201, 0.5);
}
.fp-float-shindan__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(255,255,255,0.26);
  flex-shrink: 0;
}
.fp-float-shindan__icon svg { width: 23px; height: 23px; display: block; }
.fp-float-shindan__text { white-space: nowrap; }
.fp-float-shindan__close {
  position: absolute;
  top: -6px;
  right: -6px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #fff;
  color: #4CB0C9;
  border: 1px solid #E4DFD8;
  font-size: 11px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(43,58,63,0.18);
}
.fp-float-shindan__close:hover { background: #4CB0C9; color: #fff; }

/* ---- 2択メニュー（ボタンの上に展開） ---- */
.fp-float-menu{
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: opacity .3s ease, transform .3s ease;
}
.fp-float-hub.is-open .fp-float-menu{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.fp-float-menu__item{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 11px 20px 11px 12px;
  border-radius: 999px;
  font-family: 'Jost', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(43,58,63,0.14);
  transition: transform .25s ease, box-shadow .25s ease;
}
.fp-float-menu__item:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(43,58,63,0.2);
}
.fp-float-menu__icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(255,255,255,0.26);
  flex-shrink: 0;
}
.fp-float-menu__icon svg{ width: 17px; height: 17px; display:block; }
/* メインボタンと同じ「グラデ地×白抜き文字」。Instagram＝ピンク系／サイト＝ブルー系（各ツールのヒーロー色対応） */
.fp-float-menu__item--insta{
  background: linear-gradient(90deg, #F2CBDC, #D9769B);
  color: #fff;
  box-shadow: 0 6px 18px rgba(217, 118, 155, 0.35);
}
.fp-float-menu__item--site{
  background: linear-gradient(90deg, #ABDEEC, #3E9FBC);
  color: #fff;
  box-shadow: 0 6px 18px rgba(62, 159, 188, 0.35);
}
.fp-float-menu__item--insta:hover{ box-shadow: 0 10px 24px rgba(222, 139, 163, 0.45); }
.fp-float-menu__item--site:hover{ box-shadow: 0 10px 24px rgba(76, 176, 201, 0.45); }

@media (max-width: 480px) {
  .fp-float-hub{ right: 14px; bottom: 16px; }
  .fp-float-shindan{
    gap: 10px;
    padding: 8px 17px 8px 8px;
    font-size: 12.5px;
  }
  .fp-float-shindan__icon { width: 38px; height: 38px; }
  .fp-float-shindan__icon svg { width: 21px; height: 21px; }
  .fp-float-menu__item{ font-size: 12.5px; padding: 10px 18px 10px 11px; }
}

@media (prefers-reduced-motion: reduce) {
  .fp-float-hub, .fp-float-menu { transition: opacity .2s ease; transform: none; }
  .fp-float-shindan:hover, .fp-float-menu__item:hover { transform: none; }
}

/* ============================================================
   プロフィール：代表の肩書きリスト
   ============================================================ */
.fp-profile__cred{
	list-style:none; margin:12px 0 0; padding:0;
	display:flex; flex-direction:column; gap:7px;
}
.fp-profile__cred li{
	position:relative; padding-left:16px;
	font-size:12.5px; line-height:1.7; color:#5B6C71;
}
.fp-profile__cred li::before{
	content:""; position:absolute; left:0; top:.62em;
	width:8px; height:2px; border-radius:2px;
	background:linear-gradient(90deg,#F2D4DC,#4CB0C9);
}

/* ============================================================
   お問い合わせフォーム（CF7新マークアップ用）
   ============================================================ */
.cf7-form{ max-width:560px; margin:0 auto; }
.cf7-field{ margin-bottom:26px; }
/* CF7がフォームタグを自動で<p>に包むため、そのマージンを打ち消す */
.contact-form-wrap p{ margin:0 !important; }
.contact-form-wrap br{ display:none !important; }
.contact-form-wrap .wpcf7-form-control-wrap{ display:block; }
.cf7-form p{ margin:0 !important; }
.cf7-form br{ display:none !important; }
.cf7-label{
	display:flex; align-items:center; gap:12px;
	font-size:14px; font-weight:600; color:#2B3A3F;
	margin-bottom:8px;
}
.cf7-req, .cf7-opt{
	font-size:10px; font-weight:600; letter-spacing:.08em;
	padding:2.5px 9px; border-radius:999px;
}
.cf7-req{ background:#FBE9EE; color:#C25B72; }
.cf7-opt{ background:#F0F4F5; color:#8A9AA0; }

.cf7-form input[type="text"],
.cf7-form input[type="email"],
.cf7-form input[type="tel"],
.cf7-form textarea{
	width:100%; box-sizing:border-box;
	padding:13px 16px;
	border:1px solid #D8E2E6; border-radius:10px;
	background:#FBFDFD; font-size:15px; color:#2B3A3F;
	transition:border-color .25s ease, box-shadow .25s ease;
	-webkit-appearance:none; appearance:none;
}
.cf7-form textarea{ min-height:170px; resize:vertical; }
.cf7-form input:focus, .cf7-form textarea:focus{
	outline:none; border-color:#4CB0C9;
	box-shadow:0 0 0 3px rgba(76,176,201,.14);
}
.cf7-form ::placeholder{ color:#B4C2C7; }

/* ラジオボタン：ピル型の選択UI */
.cf7-radio .wpcf7-radio{
	display:flex; flex-wrap:wrap; gap:10px;
}
.cf7-radio .wpcf7-list-item{ margin:0; }
.cf7-radio .wpcf7-list-item label{
	display:inline-flex; align-items:center; cursor:pointer;
}
.cf7-radio input[type="radio"]{
	position:absolute; opacity:0; width:0; height:0;
}
.cf7-radio .wpcf7-list-item-label{
	display:inline-block; padding:9px 18px;
	border:1.5px solid #D8E2E6; border-radius:999px;
	font-size:13px; color:#5B6C71; background:#fff;
	transition:all .25s ease;
}
.cf7-radio input[type="radio"]:checked + .wpcf7-list-item-label{
	border-color:#4CB0C9; background:rgba(76,176,201,.08);
	color:#2B8CA3; font-weight:600;
}
.cf7-radio input[type="radio"]:focus-visible + .wpcf7-list-item-label{
	box-shadow:0 0 0 3px rgba(76,176,201,.2);
}

/* 送信ボタン */
.cf7-submit{ text-align:center; margin:36px 0 8px; }
.cf7-submit input[type="submit"]{
	display:inline-block; padding:16px 64px;
	border:none; border-radius:999px; cursor:pointer;
	background:linear-gradient(90deg,#F2D4DC,#4CB0C9);
	color:#fff; font-size:15px; font-weight:700; letter-spacing:.08em;
	box-shadow:0 8px 24px rgba(76,176,201,.35);
	transition:transform .25s ease, box-shadow .25s ease;
	-webkit-appearance:none; appearance:none;
}
.cf7-submit input[type="submit"]:hover{
	transform:translateY(-2px);
	box-shadow:0 12px 30px rgba(76,176,201,.45);
}
.cf7-submit .wpcf7-spinner{ display:block; margin:10px auto 0; }

/* 注意書きブロック */
.cf7-note{
	margin-top:40px; padding:22px 24px;
	background:#F2F6F7; border-radius:12px;
}
.cf7-note__title{ font-size:14px; font-weight:700; color:#2B3A3F; margin:0 0 10px; }
.cf7-note p{ font-size:12.5px; line-height:1.9; color:#5B6C71; margin:0 0 10px; }
.cf7-note p:last-child{ margin-bottom:0; }
.cf7-note a{ color:#3B93A8; }
.cf7-note__small{ font-size:11px !important; color:#8A9AA0 !important; }

/* CF7のバリデーションメッセージを馴染ませる */
.cf7-form .wpcf7-not-valid-tip{
	display:block; margin-top:6px;
	font-size:12px; color:#D46A7E;
}
/* 送信結果メッセージ（[response]タグで送信ボタン直下に表示） */
.cf7-response .wpcf7-response-output,
.cf7-form .wpcf7-response-output{
	margin:18px 0 0 !important; padding:15px 20px;
	border:1.5px solid #4CB0C9 !important; border-radius:12px;
	background:rgba(76,176,201,.06);
	font-size:14px; font-weight:600; color:#2B3A3F;
	text-align:center;
}
/* 未入力エラー時は色をローズ系に */
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.failed .wpcf7-response-output{
	border-color:#D98CA0 !important;
	background:rgba(212,106,126,.06);
	color:#B5556B;
}

@media (max-width:600px){
	.cf7-radio .wpcf7-radio{ flex-direction:column; gap:8px; }
	.cf7-radio .wpcf7-list-item-label{ display:block; text-align:center; }
	.cf7-submit input[type="submit"]{ width:100%; padding:16px 20px; }
}

/* ============================================================
   フッター刷新（旧.footerを置き換え。クラス名を新設し
   common.cssの旧スタイルの影響を受けない構造）
   ============================================================ */
.hnw-footer{
	position:relative;
	background:linear-gradient(180deg, #F7FAFB 0%, #EAF3F5 100%);
	padding:52px 28px 26px;
	margin-top:0;
}
.hnw-footer::before{
	content:""; position:absolute; top:0; left:0; width:100%; height:3px;
	background:linear-gradient(90deg, #F2D4DC, #4CB0C9);
}
.hnw-footer__inner{
	max-width:1100px; margin:0 auto;
	display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
	gap:22px;
}
.hnw-footer__logo{ margin:0; }
.hnw-footer__logo a{
	font-family:'Jost',sans-serif; font-size:22px; font-weight:600;
	letter-spacing:.06em; color:#2B3A3F; text-decoration:none;
}
.hnw-footer__nav{
	list-style:none; margin:0; padding:0;
	display:flex; flex-wrap:wrap; align-items:center;
	gap:10px 26px;
}
.hnw-footer__nav a{
	font-family:'Jost',sans-serif; font-size:12px; font-weight:500;
	letter-spacing:.12em; color:#5B6C71; text-decoration:none;
	transition:color .25s ease;
}
.hnw-footer__nav a:hover{ color:#3B93A8; }
.hnw-footer__copy{
	display:block; width:100%; margin-top:8px;
	text-align:center;
	font-family:'Jost',sans-serif; font-size:10.5px; letter-spacing:.08em;
	color:#A3B2B8;
}

@media (max-width:700px){
	.hnw-footer{ padding:36px 22px 20px; }
	.hnw-footer__inner{
		flex-direction:column; align-items:center; gap:20px;
	}
	.hnw-footer__logo a{ font-size:19px; }
	.hnw-footer__nav{
		justify-content:center;
		gap:12px 20px;
		max-width:320px;
	}
	.hnw-footer__copy{ margin-top:2px; font-size:9.5px; }
}

/* ============================================================
   結び目（fp-knot）の改善：
   ①背景色のあるセクションでも「糸の結び目」と読めるよう、
     丸の上下に短い糸を常時表示
   ②スマホでは周囲の余白を圧縮
   ============================================================ */
.fp-knot{ margin:0 auto 38px; }
.fp-knot::before,
.fp-knot::after{
	content:""; position:absolute; left:50%; transform:translateX(-50%);
	width:2px; pointer-events:none;
}
.fp-knot::before{
	bottom:100%; height:36px;
	background:linear-gradient(180deg, rgba(156,211,224,0), #9CD3E0);
}
.fp-knot::after{
	top:100%; height:20px;
	background:linear-gradient(180deg, #9CD3E0, rgba(156,211,224,0));
}

@media (max-width:600px){
	.fp-section{ padding:78px 7vw; }
	.fp-knot{ width:12px; height:12px; margin:0 auto 28px; }
	.fp-knot::before{ height:26px; }
	.fp-knot::after{ height:14px; }
}

/* ============================================================
   スマホナビゲーション刷新 v2（front-renewal.css追記）
   ・ハンバーガー→✕変形＋タップ時のスケール
   ・右からのドロワー／ブラー背景／リンクの順次出現
   ・serviceはアコーディオン（初期は畳む・detailsタグ）
   ・MENU見出し・診断リンク・ドロワー内フッター
   ※ header.php のドロワー部分のマークアップ更新とセット
   ============================================================ */
@media (max-width: 900px) {

	body:has(#nav-input:checked){ overflow:hidden; }

	/* ---- ハンバーガーボタン ---- */
	#nav-open{
		position:fixed; top:16px; right:18px; z-index:1200;
		width:48px; height:48px; border-radius:50%;
		display:flex; align-items:center; justify-content:center;
		background:rgba(255,255,255,.92);
		box-shadow:0 4px 16px rgba(43,58,63,.14);
		cursor:pointer;
		transition:background .3s ease, transform .2s ease, box-shadow .3s ease;
	}
	#nav-open:active{ transform:scale(.92); }
	.header--light:not(.is-scrolled) #nav-open{ background:rgba(255,255,255,.22); }
	#nav-open .bar-1,#nav-open .bar-2,#nav-open .bar-3{
		position:absolute; left:15px; width:18px; height:2px; border-radius:2px;
		background:#2B3A3F;
		transition:transform .35s cubic-bezier(.65,0,.35,1), opacity .25s ease, top .35s ease, width .35s ease;
	}
	.header--light:not(.is-scrolled) #nav-open .bar-1,
	.header--light:not(.is-scrolled) #nav-open .bar-2,
	.header--light:not(.is-scrolled) #nav-open .bar-3{ background:#fff; }
	#nav-open .bar-1{ top:18px; }
	#nav-open .bar-2{ top:24px; width:13px; } /* 2本目だけ少し短く＝今風の非対称 */
	#nav-open .bar-3{ top:30px; }
	#nav-open:hover .bar-2{ width:18px; }

	#nav-input:checked ~ #nav-open{ background:#fff; }
	#nav-input:checked ~ #nav-open .bar-1{ top:24px; transform:rotate(45deg); background:#2B3A3F; }
	#nav-input:checked ~ #nav-open .bar-2{ opacity:0; }
	#nav-input:checked ~ #nav-open .bar-3{ top:24px; transform:rotate(-45deg); background:#2B3A3F; }

	/* ---- 背景オーバーレイ ---- */
	#nav-close{
		position:fixed; inset:0; z-index:1090;
		background:rgba(43,58,63,.3);
		-webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
		opacity:0; pointer-events:none;
		transition:opacity .4s ease;
	}
	#nav-input:checked ~ #nav-close{ opacity:1; pointer-events:auto; }

	/* ---- ドロワー本体 ---- */
	#nav-content{
		position:fixed; top:0; right:0; height:100%;
		width:min(80vw, 350px); z-index:1100;
		background:linear-gradient(165deg, #FBF9F7 0%, #F5EAEE 55%, #EAF3F5 100%);
		box-shadow:-10px 0 40px rgba(43,58,63,.18);
		transform:translateX(100%);
		transition:transform .45s cubic-bezier(.65,0,.35,1);
		display:flex; flex-direction:column;
		padding:84px 34px 28px 40px;
		overflow-y:auto;
	}
	#nav-input:checked ~ #nav-content{ transform:translateX(0); }

	/* ドロワー右下にうっすら花びら円 */
	#nav-content::after{
		content:""; position:absolute; right:-46px; bottom:-40px;
		width:190px; height:190px; border-radius:50%; pointer-events:none;
		background:radial-gradient(circle, rgba(242,212,220,.5), rgba(242,212,220,0) 70%);
	}

	.spnav__eyebrow{
		font-family:'Jost',sans-serif; font-size:10px; letter-spacing:.42em;
		color:#4CB0C9; margin:0 0 26px;
		opacity:0; transition:opacity .4s ease .1s;
	}
	#nav-input:checked ~ #nav-content .spnav__eyebrow{ opacity:1; }

	#nav-content .sp-header-navi{
		list-style:none !important;
		display:block !important;           /* 旧CSSのflex均等配置を無効化 */
		height:auto !important;
		margin:0 !important; padding:0 !important;
		text-align:left !important;
		flex:1 1 auto;
	}
	#nav-content .sp-header-navi__list{
		margin:0 !important; padding:0 !important;
		text-align:left !important;
		height:auto !important; line-height:1.6 !important;
		opacity:0; transform:translateX(14px);
		transition:opacity .4s ease, transform .4s ease;
	}
	#nav-input:checked ~ #nav-content .sp-header-navi__list{ opacity:1; transform:translateX(0); }
	#nav-input:checked ~ #nav-content .sp-header-navi__list:nth-child(1){ transition-delay:.1s; }
	#nav-input:checked ~ #nav-content .sp-header-navi__list:nth-child(2){ transition-delay:.15s; }
	#nav-input:checked ~ #nav-content .sp-header-navi__list:nth-child(3){ transition-delay:.2s; }
	#nav-input:checked ~ #nav-content .sp-header-navi__list:nth-child(4){ transition-delay:.25s; }
	#nav-input:checked ~ #nav-content .sp-header-navi__list:nth-child(5){ transition-delay:.3s; }
	#nav-input:checked ~ #nav-content .sp-header-navi__list:nth-child(6){ transition-delay:.35s; }
	#nav-input:checked ~ #nav-content .sp-header-navi__list:nth-child(7){ transition-delay:.4s; }
	#nav-input:checked ~ #nav-content .sp-header-navi__list:nth-child(8){ transition-delay:.45s; }
	#nav-input:checked ~ #nav-content .sp-header-navi__list:nth-child(9){ transition-delay:.5s; }

	#nav-content .sp-header-navi__list + .sp-header-navi__list{ margin-top:22px !important; }
	#nav-content .sp-header-navi__list a{
		display:inline-flex; align-items:baseline; gap:10px;
		font-family:'Jost','Zen Old Mincho',serif;
		font-size:15px; letter-spacing:.08em; font-weight:500;
		color:#2B3A3F !important; text-decoration:none;
	}
	#nav-content .sp-header-navi__list > a::before{
		content:""; display:inline-block; width:18px; height:2px; border-radius:2px;
		background:linear-gradient(90deg,#F2D4DC,#4CB0C9);
	}

	/* ---- service アコーディオン（初期は畳む） ---- */
	.spnav-acc{ }
	.spnav-acc summary{
		display:inline-flex; align-items:baseline; gap:10px;
		font-family:'Jost','Zen Old Mincho',serif;
		font-size:15px; letter-spacing:.08em; font-weight:500;
		color:#2B3A3F; cursor:pointer; list-style:none;
	}
	.spnav-acc summary::-webkit-details-marker{ display:none; }
	.spnav-acc summary::before{
		content:""; display:inline-block; width:18px; height:2px; border-radius:2px;
		background:linear-gradient(90deg,#F2D4DC,#4CB0C9);
	}
	/* ＋アイコン（開くと×に回転） */
	.spnav-acc summary::after{
		content:"＋"; font-size:12px; color:#4CB0C9; margin-left:6px;
		display:inline-block;
		transition:transform .3s ease;
	}
	.spnav-acc[open] summary::after{ transform:rotate(45deg); }

	.spnav-sub{
		list-style:none; margin:14px 0 4px; padding:0 0 0 26px;
		display:flex; flex-direction:column; gap:13px;
		border-left:1px solid rgba(76,176,201,.25);
	}
	.spnav-sub a{
		display:block;
		font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;
		font-size:12.5px; letter-spacing:.02em; font-weight:500; line-height:1.5;
		color:#5B6C71 !important; text-decoration:none;
	}
	.spnav-sub a::before{ display:none !important; }

	/* ---- 診断リンク（ゴーストピル） ---- */
	.spnav-shindan a{
		display:inline-flex !important; align-items:center; gap:8px;
		padding:9px 18px; border-radius:999px;
		border:1.5px solid #4CB0C9; color:#3B93A8 !important;
		font-size:12.5px !important; font-weight:600;
		background:rgba(255,255,255,.6);
	}
	.spnav-shindan a::before{ display:none !important; }

	/* ---- contact（メインボタン） ---- */
	.spnav-contact a{
		display:inline-flex !important; align-items:center; gap:8px;
		padding:12px 26px; border-radius:999px;
		background:linear-gradient(90deg,#F2D4DC,#4CB0C9); color:#fff !important;
		font-weight:600; box-shadow:0 6px 18px rgba(76,176,201,.3);
	}
	.spnav-contact a::before{ display:none !important; }

	/* ---- ドロワー内フッター ---- */
	.spnav__foot{
		margin-top:30px; padding-top:18px;
		border-top:1px solid rgba(43,58,63,.1);
		opacity:0; transition:opacity .4s ease .55s;
	}
	#nav-input:checked ~ #nav-content .spnav__foot{ opacity:1; }
	.spnav__foot a{
		font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.12em;
		color:#8A9AA0 !important; text-decoration:none;
	}
	.spnav__foot .spnav__copy{
		display:block; margin-top:8px;
		font-family:'Jost',sans-serif; font-size:10px; letter-spacing:.06em; color:#AFBCC1;
	}
}

/* ============================================================
   SNSページ：かんたん診断への導線バナー
   ============================================================ */
.svc-shindan-banner{
	position:relative; overflow:hidden;
	background:#fff; border-radius:20px;
	padding:36px 32px 34px; text-align:center;
	box-shadow:0 14px 36px rgba(43,58,63,.08);
}
.svc-shindan-banner::before{
	content:""; position:absolute; inset:0 auto auto 0; width:100%; height:4px;
	background:linear-gradient(90deg,#F2D4DC,#4CB0C9);
}
.svc-shindan-banner::after{
	content:""; position:absolute; right:-38px; top:-34px;
	width:150px; height:150px; border-radius:50%; pointer-events:none;
	background:radial-gradient(circle, rgba(242,212,220,.45), rgba(242,212,220,0) 70%);
}
.svc-shindan-banner__label{
	font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.34em;
	color:#4CB0C9; margin:0 0 14px;
}
.svc-shindan-banner__ttl{
	font-family:'Zen Old Mincho',serif; font-size:21px; font-weight:600;
	color:#2B3A3F; line-height:1.7; margin:0 0 12px;
}
.svc-shindan-banner__txt{
	font-size:13.5px; color:#5B6C71; line-height:2; margin:0 0 24px;
}
@media (max-width:600px){
	.svc-shindan-banner{ padding:30px 22px 28px; }
	.svc-shindan-banner__ttl{ font-size:18px; }
}

/* SP幅のみ有効な改行（診断バナー等で使用） */
.sp-only{ display:none; }
@media (max-width:600px){ .sp-only{ display:inline; } }