/*
Theme Name: Minato Dental
Theme URI: https://example.com/
Author: 株式会社かねさわ
Description: 横浜の歯科医院向けオリジナルテーマ。自費診療メニュー(品書き風料金表)・カスタム投稿タイプ(お知らせ/コラム)・年別アーカイブ・SEO内部対策・スマホ追従フッター対応。
Version: 1.3.2
Requires PHP: 7.4
Text Domain: minato-dental
*/

/* =====================================================
   デザイントークン
   ===================================================== */
:root {
	/* 色: 白磁 × 深藍 × 金茶 */
	--c-base:   #f6f4ef;  /* 背景: 生成りがかった白磁 */
	--c-white:  #ffffff;
	--c-ink:    #223240;  /* 見出し: 藍墨 */
	--c-text:   #3c4a55;  /* 本文 */
	--c-navy:   #1c3d5a;  /* メイン: 深藍 */
	--c-navy-d: #132b40;  /* 深藍(濃) */
	--c-mist:   #e9eef1;  /* 淡い青灰 */
	--c-gold:   #a8894b;  /* アクセント: 金茶(自費・プレミアム) */
	--c-gold-l: #c9b382;
	--c-line:   #d8d2c4;  /* 罫線 */

	/* 書体 */
	--f-min:  "Shippori Mincho B1", "Hiragino Mincho ProN", serif;
	--f-goth: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", sans-serif;

	/* レイアウト */
	--w-wide:  1680px;  /* ヘッダー・ヒーロー用(広め) */
	--w-inner: 1120px;  /* コンテンツ */
	--header-h: 92px;
	--ease: cubic-bezier(.22,.65,.3,1);
}

/* =====================================================
   リセット・ベース
   ===================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--f-goth);
	font-size: 16px;
	line-height: 1.9;
	letter-spacing: .04em;
	color: var(--c-text);
	background: var(--c-base);
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--c-navy); text-decoration: none; transition: color .3s, opacity .3s; }
a:hover { opacity: .75; }
ul, ol { margin: 0; padding: 0; }
h1, h2, h3, h4 { margin: 0; font-family: var(--f-min); font-weight: 600; color: var(--c-ink); line-height: 1.5; }
p { margin: 0 0 1em; }
table { border-collapse: collapse; width: 100%; }
figure { margin: 0; }
:focus-visible { outline: 2px solid var(--c-gold); outline-offset: 3px; }

.skip-link {
	position: absolute; left: -9999px; top: 0;
	background: var(--c-navy); color: #fff; padding: .6em 1.2em; z-index: 999;
}
.skip-link:focus { left: 0; }

/* =====================================================
   リビール(スクロールで出現)
   ===================================================== */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); transition-delay: var(--rd, 0s); }
.reveal.is-visible { opacity: 1; transform: none; }

/* =====================================================
   ボタン・リンク
   ===================================================== */
.btn-reserve {
	display: inline-block;
	background: var(--c-gold);
	color: #fff;
	font-weight: 700;
	letter-spacing: .1em;
	padding: .85em 2em;
	border: 1px solid var(--c-gold);
	transition: background .3s, color .3s;
	text-align: center;
}
.btn-reserve:hover { background: #fff; color: var(--c-gold); opacity: 1; }
.btn-reserve--wide { display: block; }
.btn-reserve--large { padding: 1.1em 3.2em; font-size: 1.05rem; }

.btn-outline {
	display: inline-block;
	border: 1px solid currentColor;
	color: var(--c-navy);
	padding: 1.05em 2.6em;
	letter-spacing: .1em;
	font-weight: 500;
}

.link-more {
	position: relative;
	display: inline-block;
	font-family: var(--f-min);
	letter-spacing: .14em;
	color: var(--c-ink);
	padding: .4em 3.4em .4em 0;
}
.link-more::after {
	content: "";
	position: absolute; right: 0; top: 50%;
	width: 2.6em; height: 1px;
	background: var(--c-gold);
	transition: width .35s var(--ease);
}
.link-more:hover::after { width: 3.4em; }
.link-more--light { color: #fff; }

/* =====================================================
   ヘッダー(PCは横幅広め)
   ===================================================== */
.site-header {
	position: fixed; top: 0; left: 0; right: 0;
	z-index: 100;
	transition: background .4s, box-shadow 0s;
}
.site-header.is-scrolled { background: rgba(246, 244, 239, .94); backdrop-filter: blur(8px); border-bottom: 1px solid var(--c-line); }
.site-header__inner {
	max-width: var(--w-wide);
	margin: 0 auto;
	padding: 0 40px;
	height: var(--header-h);
	display: flex; align-items: center; gap: 32px;
}
.site-header__brand { margin-right: auto; }
.site-header__logo { display: block; line-height: 1.3; }
.site-header__logo-en { display: block; font-size: .68rem; letter-spacing: .34em; color: var(--c-gold); font-family: var(--f-min); }
.site-header__logo-ja { display: block; font-family: var(--f-min); font-weight: 600; font-size: 1.3rem; color: var(--c-ink); letter-spacing: .1em; }

.global-nav__list { display: flex; gap: 2px; list-style: none; }
.global-nav__list a {
	display: block;
	padding: .6em 1em;
	font-size: .92rem;
	letter-spacing: .08em;
	color: var(--c-ink);
	position: relative;
	white-space: nowrap;
}
.global-nav__list a::after {
	content: "";
	position: absolute; left: 1em; right: 1em; bottom: .25em;
	height: 1px; background: var(--c-gold);
	transform: scaleX(0); transform-origin: left;
	transition: transform .3s var(--ease);
}
.global-nav__list a:hover { opacity: 1; }
.global-nav__list a:hover::after { transform: scaleX(1); }

.site-header__cta { display: flex; align-items: center; gap: 20px; }
.header-tel { text-align: right; line-height: 1.4; }
.header-tel__num { display: block; font-family: var(--f-min); font-size: 1.25rem; font-weight: 700; color: var(--c-ink); letter-spacing: .06em; }
.header-tel__note { display: block; font-size: .68rem; color: var(--c-text); }

/* ハンバーガー(MENU/CLOSEラベル付き) */
.drawer-toggle {
	display: none;
	width: 56px; height: 56px;
	background: var(--c-navy);
	border: 0; cursor: pointer;
	position: relative; z-index: 210;
}
.drawer-toggle__line {
	position: absolute; left: 16px; right: 16px; height: 2px;
	background: #fff;
	transition: transform .35s var(--ease), opacity .3s;
}
.drawer-toggle__line:nth-child(1) { top: 15px; }
.drawer-toggle__line:nth-child(2) { top: 21px; }
.drawer-toggle__line:nth-child(3) { top: 27px; }
.drawer-toggle.is-open .drawer-toggle__line:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.drawer-toggle.is-open .drawer-toggle__line:nth-child(2) { opacity: 0; }
.drawer-toggle.is-open .drawer-toggle__line:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.drawer-toggle__label {
	position: absolute; left: 0; right: 0; bottom: 7px;
	font-size: 8px; letter-spacing: .18em;
	color: #fff; text-align: center;
	font-family: var(--f-goth);
}
.drawer-toggle__label::before { content: "MENU"; }
.drawer-toggle.is-open .drawer-toggle__label::before { content: "CLOSE"; }

/* ドロワーを開いてもハンバーガー(×)が最前面に残るようにする */
body.is-drawer-open .site-header { z-index: 300; background: transparent; border-bottom-color: transparent; backdrop-filter: none; }
body.is-drawer-open .site-header__brand { opacity: 0; pointer-events: none; transition: opacity .3s; }

/* ドロワー(モバイル) */
.drawer {
	position: fixed; inset: 0 0 0 auto;
	width: min(84vw, 360px);
	background: var(--c-navy-d);
	color: #fff;
	z-index: 200;
	transform: translateX(100%);
	transition: transform .45s var(--ease);
	overflow-y: auto;
	display: none;
}
.drawer.is-open { transform: translateX(0); }
.drawer__inner { padding: 84px 32px 48px; }
.drawer__close {
	position: absolute; top: 20px; left: 28px;
	background: none; border: 1px solid rgba(255,255,255,.4);
	color: #fff;
	font: inherit; font-size: .78rem; letter-spacing: .14em;
	padding: .5em 1.2em;
	cursor: pointer;
}
.drawer__brand { font-family: var(--f-min); letter-spacing: .12em; color: var(--c-gold-l); margin-bottom: 1.6em; }
/* ドロワー内のメニュー(フォールバックのul含めどのクラスでも白文字で表示) */
.drawer__nav ul { list-style: none; display: block; gap: 0; }
.drawer__nav li {
	border-bottom: 1px solid rgba(255,255,255,.14);
	opacity: 0; transform: translateX(18px);
	transition: opacity .5s var(--ease), transform .5s var(--ease);
}
.drawer.is-open .drawer__nav li { opacity: 1; transform: none; }
.drawer.is-open .drawer__nav li:nth-child(1) { transition-delay: .08s; }
.drawer.is-open .drawer__nav li:nth-child(2) { transition-delay: .13s; }
.drawer.is-open .drawer__nav li:nth-child(3) { transition-delay: .18s; }
.drawer.is-open .drawer__nav li:nth-child(4) { transition-delay: .23s; }
.drawer.is-open .drawer__nav li:nth-child(5) { transition-delay: .28s; }
.drawer.is-open .drawer__nav li:nth-child(6) { transition-delay: .33s; }
.drawer.is-open .drawer__nav li:nth-child(7) { transition-delay: .38s; }
.drawer.is-open .drawer__nav li:nth-child(8) { transition-delay: .43s; }
.drawer__nav a {
	display: block;
	color: #fff !important;
	padding: 1em 0 !important;
	letter-spacing: .1em;
	font-size: 1rem;
}
.drawer__nav a::after { display: none; }
.drawer__contact { margin-top: 2.2em; }
.drawer__tel { display: block; font-family: var(--f-min); font-size: 1.5rem; color: #fff; letter-spacing: .06em; margin-bottom: .3em; }
.drawer__hours { font-size: .8rem; opacity: .85; margin-bottom: 1.4em; }
.drawer-overlay {
	position: fixed; inset: 0;
	background: rgba(20, 32, 44, .5);
	z-index: 150;
}
body.is-drawer-open { overflow: hidden; }

/* =====================================================
   ヒーロー(ファーストビュー)
   ===================================================== */
.hero {
	position: relative;
	min-height: min(92vh, 940px);
	display: flex;
	align-items: center;
	overflow: hidden;
}
.hero__media, .hero__media picture { position: absolute; inset: 0; }
.hero__media img {
	width: 100%; height: 100%;
	object-fit: cover;
}
/* 静止画の動き: ゆっくりズームイン(hero--motion-zoom の時だけ) */
.hero--motion-zoom .hero__media img {
	transform: scale(1.06);
	transition: transform 2.6s var(--ease);
}
.hero--motion-zoom.is-loaded .hero__media img { transform: scale(1); }
/* 静止画の動き: なし(hero--motion-none)は何もしない */
.hero__placeholder {
	position: absolute; inset: 0;
	background:
		radial-gradient(120% 90% at 82% 18%, #dfe8ec 0%, transparent 55%),
		linear-gradient(160deg, #eef2f4 0%, #cfdbe2 55%, #9db4c2 100%);
}
.hero__scrim {
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(19, 43, 64, .55) 0%, rgba(19, 43, 64, .18) 45%, rgba(19, 43, 64, 0) 70%);
	z-index: 1;
	pointer-events: none;
}

/* スライドショー(slick) */
.hero__media--slider {
	z-index: 0;
	width: 100%;
	isolation: isolate;  /* スライドのz-indexがヒーロー外の重ね順に影響しないよう隔離 */
}
/* 【重要】slick.css の .slick-slider{position:relative} 対策。
   スライダーが通常フローに戻るとflexでキャッチコピーと横並びになり
   コピーが押し出されて消えるため、2クラス指定(詳細度で必ず勝つ)で
   絶対配置を強制する */
.hero .hero__media--slider,
.hero__media--slider.slick-slider,
.hero__media--slider.slick-initialized {
	position: absolute;
	inset: 0;
	margin: 0;
}
.hero__media--slider,
.hero__media--slider .slick-list,
.hero__media--slider .slick-track,
.hero-slide,
.hero-slide picture { height: 100%; }
.hero__media--slider .slick-list { width: 100%; overflow: hidden; }
.hero__media--slider .slick-slide { min-height: 1px; }
.hero-slide img {
	width: 100%; height: 100%;
	object-fit: cover;
	transform: none;
}

/* --- slickの幅計算バグ(track幅が16777216pxに膨張する既知の不具合)対策 ---
   フェード系エフェクトではスライドを重ねて表示するだけなので、
   トラック幅とスライド幅をCSSで100%に固定してしまえば
   slickの幅計算が暴走してもレイアウトが壊れない */
.hero--effect-fade .slick-track,
.hero--effect-kenburns .slick-track {
	width: 100% !important;
	transform: none !important;
}
.hero--effect-fade .slick-slide,
.hero--effect-kenburns .slick-slide {
	width: 100% !important;
}
/* 横スライドの時はslickの計算に任せる(transformで動くため固定しない) */
.hero--effect-slide .slick-slide { height: 100%; }
/* スライドの動き: フェード+ズーム(hero--effect-kenburns)の時だけズームする
   fade / slide の時は slick の切替のみ */
.hero--effect-kenburns .slick-slide.slick-active img {
	animation: heroZoom 6.5s var(--ease) forwards;
}
@keyframes heroZoom {
	from { transform: scale(1.06); }
	to   { transform: scale(1); }
}
.hero .slick-dots {
	position: absolute; z-index: 14;
	right: 40px; bottom: 92px;
	display: flex !important; gap: 10px;
	list-style: none; margin: 0; padding: 0;
}
.hero .slick-dots li button {
	display: block;
	width: 36px; height: 2px;
	padding: 0; border: 0;
	background: rgba(255,255,255,.4);
	text-indent: -9999px; overflow: hidden;
	cursor: pointer;
	transition: background .3s;
}
.hero .slick-dots li.slick-active button { background: #fff; }

.hero__copy {
	position: relative; z-index: 10;
	width: 100%;
	max-width: var(--w-wide);
	margin: 0 auto;
	padding: 0 40px;
}
/* 縦書きキャッチ(このサイトの顔) */
.hero__catch {
	writing-mode: vertical-rl;
	font-family: var(--f-min);
	font-size: clamp(2rem, 3.6vw, 3.4rem);
	font-weight: 600;
	color: #fff;
	letter-spacing: .28em;
	line-height: 1.9;
	height: clamp(340px, 52vh, 560px);
	text-shadow: 0 2px 24px rgba(19, 43, 64, .45);
}
.hero__catch-line {
	display: inline-block;
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 1.2s var(--ease), transform 1.2s var(--ease);
	transition-delay: var(--d, 0s);
}
.js-hero.is-loaded .hero__catch-line { opacity: 1; transform: none; }
.hero__sub {
	color: #fff;
	margin-top: 1.6em;
	letter-spacing: .12em;
	font-size: clamp(.85rem, 1.1vw, 1rem);
	text-shadow: 0 1px 14px rgba(19, 43, 64, .5);
	opacity: 0;
	transition: opacity 1.4s var(--ease) .9s;
}
.js-hero.is-loaded .hero__sub { opacity: 1; }

/* 診療時間の帯 */
.hero__strip {
	position: absolute; left: 0; right: 0; bottom: 0;
	z-index: 12;
	background: rgba(246, 244, 239, .92);
	backdrop-filter: blur(6px);
	border-top: 1px solid var(--c-line);
}
.hero__strip dl {
	max-width: var(--w-wide);
	margin: 0 auto;
	padding: 16px 40px;
	display: flex; flex-wrap: wrap; gap: 8px 48px;
}
.hero__strip div { display: flex; align-items: baseline; gap: 14px; }
.hero__strip dt {
	font-family: var(--f-min);
	font-size: .78rem;
	letter-spacing: .2em;
	color: var(--c-gold);
	white-space: nowrap;
}
.hero__strip dd { margin: 0; font-size: .9rem; color: var(--c-ink); }

.hero__scroll {
	position: absolute; right: 40px; bottom: 110px;
	z-index: 12;
	writing-mode: vertical-rl;
	font-size: .68rem; letter-spacing: .4em;
	color: #fff;
	padding-bottom: 60px;
}
.hero__scroll::after {
	content: "";
	position: absolute; left: 50%; bottom: 0;
	width: 1px; height: 52px;
	background: rgba(255,255,255,.8);
	animation: scrollLine 2.2s var(--ease) infinite;
	transform-origin: top;
}
@keyframes scrollLine {
	0% { transform: scaleY(0); transform-origin: top; }
	45% { transform: scaleY(1); transform-origin: top; }
	55% { transform: scaleY(1); transform-origin: bottom; }
	100% { transform: scaleY(0); transform-origin: bottom; }
}

/* =====================================================
   セクション共通
   ===================================================== */
.section { padding: clamp(72px, 9vw, 130px) 0; }
.section__inner { max-width: var(--w-inner); margin: 0 auto; padding: 0 24px; }
.section__head { margin-bottom: clamp(36px, 5vw, 64px); }
.section__eyebrow {
	font-family: var(--f-min);
	font-size: .74rem;
	letter-spacing: .38em;
	color: var(--c-gold);
	margin-bottom: .9em;
}
.section__title {
	font-size: clamp(1.55rem, 2.6vw, 2.2rem);
	letter-spacing: .12em;
	position: relative;
	padding-bottom: .55em;
}
.section__title::after {
	content: "";
	position: absolute; left: 0; bottom: 0;
	width: 46px; height: 1px;
	background: var(--c-ink);
}
.section__title::before {
	content: "";
	position: absolute; left: 52px; bottom: -1.5px;
	width: 5px; height: 5px;
	background: var(--c-gold);
	transform: rotate(45deg);
}
.section__lead { margin-top: 1.6em; max-width: 42em; }
.section__more { margin-top: clamp(30px, 4vw, 48px); text-align: right; }
.section__head--onDark .section__title,
.section__head--onDark .section__lead { color: #fff; }
.section__head--onDark .section__title::after { background: rgba(255,255,255,.7); }

/* =====================================================
   お知らせ
   ===================================================== */
.news-list { list-style: none; border-top: 1px solid var(--c-line); }
.news-list__item { border-bottom: 1px solid var(--c-line); }
.news-list__item a {
	display: flex; align-items: center; flex-wrap: wrap; gap: 8px 22px;
	padding: 1.25em .4em;
	color: var(--c-ink);
	transition: background .3s;
}
.news-list__item a:hover { background: var(--c-mist); opacity: 1; }
.news-list__item time { font-family: var(--f-min); font-size: .88rem; letter-spacing: .1em; color: var(--c-text); }
.news-list__cat {
	font-size: .72rem;
	letter-spacing: .12em;
	color: var(--c-gold);
	border: 1px solid var(--c-gold-l);
	padding: .15em .9em;
	white-space: nowrap;
}
.news-list__title { flex: 1; min-width: 200px; }

/* =====================================================
   診療案内グリッド
   ===================================================== */
.section--service { background: var(--c-white); }
.service-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--c-line);
	border-left: 1px solid var(--c-line);
}
.service-item {
	border-right: 1px solid var(--c-line);
	border-bottom: 1px solid var(--c-line);
	padding: clamp(26px, 3vw, 42px);
	background: var(--c-white);
	transition: background .35s;
	display: block;
	color: inherit;
}
.service-item:hover { background: var(--c-base); opacity: 1; }
.service-item__title { font-size: 1.12rem; letter-spacing: .1em; margin-bottom: .8em; padding-left: .9em; position: relative; }
.service-item__title::before {
	content: "";
	position: absolute; left: 0; top: .32em;
	width: 3px; height: 1.1em;
	background: var(--c-gold);
}
.service-item__text { font-size: .92rem; margin: 0; }

/* アンカーで飛んだ時に固定ヘッダーに隠れないように */
[id] { scroll-margin-top: calc(var(--header-h) + 24px); }

/* 診療案内ページ: ジャンプナビ */
.service-jump { margin-bottom: clamp(36px, 5vw, 56px); border: 1px solid var(--c-line); background: var(--c-white); padding: clamp(18px, 2.5vw, 28px); }
.service-jump ul { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 0; }
.service-jump li { width: 25%; }
.service-jump a {
	display: block;
	position: relative;
	padding: .5em 1em .5em 1.4em;
	font-size: .9rem;
	color: var(--c-ink);
}
.service-jump a::before {
	content: "";
	position: absolute; left: .3em; top: 50%;
	width: 6px; height: 6px;
	border-right: 1px solid var(--c-gold);
	border-bottom: 1px solid var(--c-gold);
	transform: translateY(-70%) rotate(45deg);
}
.service-detail__num { font-family: var(--f-min); color: var(--c-gold); letter-spacing: .2em; font-size: .8rem; margin: 0 0 .4em; }
.service-detail__link { margin: 1.4em 0 0; text-align: right; }

/* 診療案内: 写真+テキストの2カラム(交互配置) */
.service-detail__item--media {
	display: grid;
	grid-template-columns: 320px 1fr;
	gap: clamp(24px, 3.5vw, 44px);
	align-items: start;
}
.service-detail__item--media:nth-child(even) { grid-template-columns: 1fr 320px; }
.service-detail__item--media:nth-child(even) .service-detail__photo { order: 2; }
.service-detail__photo {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 1px solid var(--c-line);
	background: var(--c-mist);
}
.service-detail__photo img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .8s var(--ease);
}
.service-detail__item--media:hover .service-detail__photo img { transform: scale(1.04); }
.service-detail__photo-empty {
	width: 100%; height: 100%;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--f-min); letter-spacing: .3em;
	color: var(--c-navy); opacity: .4; font-size: .78rem;
}
.service-detail__body p:last-child { margin-bottom: 0; }
@media (max-width: 767px) {
	.service-detail__item--media,
	.service-detail__item--media:nth-child(even) { grid-template-columns: 1fr; }
	.service-detail__item--media:nth-child(even) .service-detail__photo { order: 0; }
}

/* =====================================================
   自費診療メニュー(品書き風)
   ===================================================== */
.section--price {
	background:
		radial-gradient(90% 70% at 90% 0%, rgba(168, 137, 75, .16) 0%, transparent 55%),
		var(--c-navy-d);
}
.price-menu { border-top: 1px solid rgba(255,255,255,.22); }
.price-menu__row {
	display: flex; align-items: flex-end; gap: 18px;
	padding: 1.6em .2em;
	border-bottom: 1px solid rgba(255,255,255,.22);
}
.price-menu__name { max-width: 34em; }
.price-menu__name h3 { color: #fff; font-size: 1.08rem; letter-spacing: .12em; }
.price-menu__name p { color: rgba(255,255,255,.72); font-size: .84rem; margin: .5em 0 0; }
.price-menu__leader {
	flex: 1;
	border-bottom: 1px dotted rgba(255,255,255,.42);
	margin-bottom: .5em;
	min-width: 30px;
}
.price-menu__price {
	font-family: var(--f-min);
	color: var(--c-gold-l);
	font-size: 1.18rem;
	letter-spacing: .08em;
	white-space: nowrap;
	margin: 0;
}
.price-menu__note { color: rgba(255,255,255,.66); font-size: .8rem; margin-top: 1.6em; }

/* 料金ページ(明るい背景)バリエーション */
.price-menu--onLight { border-top-color: var(--c-line); }
.price-menu--onLight .price-menu__row { border-bottom-color: var(--c-line); }
.price-menu--onLight .price-menu__name h3 { color: var(--c-ink); }
.price-menu--onLight .price-menu__name p { color: var(--c-text); }
.price-menu--onLight .price-menu__leader { border-bottom-color: var(--c-gold-l); }
.price-menu--onLight .price-menu__price { color: var(--c-gold); }

.price-section { margin-bottom: clamp(48px, 6vw, 76px); }
.price-section__title {
	font-size: 1.3rem;
	letter-spacing: .14em;
	margin-bottom: 1.2em;
	padding-left: 1em;
	position: relative;
}
.price-section__title::before {
	content: "";
	position: absolute; left: 0; top: .28em;
	width: 4px; height: 1.2em;
	background: var(--c-gold);
}
.price-notes ul { list-style: none; }
.price-notes li { position: relative; padding-left: 1.4em; margin-bottom: .6em; }
.price-notes li::before { content: "※"; position: absolute; left: 0; color: var(--c-gold); }

/* =====================================================
   医院の特徴
   ===================================================== */
.about-points {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(28px, 4vw, 56px);
}
.about-point { border-top: 1px solid var(--c-ink); padding-top: 1.4em; }
.about-point__num {
	font-family: var(--f-min);
	color: var(--c-gold);
	letter-spacing: .18em;
	font-size: .82rem;
}
.about-point__title { font-size: 1.14rem; letter-spacing: .1em; margin: .6em 0 .8em; }
.about-point__text { font-size: .92rem; margin: 0; }

/* =====================================================
   記事カード
   ===================================================== */
.section--column { background: var(--c-white); }
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 3vw, 40px); }
.card-grid--archive { grid-template-columns: repeat(2, 1fr); }
.post-card { border: 1px solid var(--c-line); background: var(--c-white); transition: border-color .35s; }
.post-card:hover { border-color: var(--c-gold-l); }
.post-card__link { display: block; color: inherit; }
.post-card__link:hover { opacity: 1; }
.post-card__thumb { aspect-ratio: 3 / 2; overflow: hidden; background: var(--c-mist); position: relative; }
.post-card__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.post-card:hover .post-card__thumb img { transform: scale(1.05); }
.post-card__noimg {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--f-min);
	letter-spacing: .3em;
	color: var(--c-navy);
	opacity: .35;
	font-size: .8rem;
}
.post-card__body { padding: 20px 22px 24px; }
.post-card__meta { display: flex; align-items: center; gap: 14px; font-size: .78rem; margin-bottom: .7em; }
.post-card__meta time { font-family: var(--f-min); letter-spacing: .1em; color: var(--c-text); }
.post-card__cat { color: var(--c-gold); border: 1px solid var(--c-gold-l); padding: .1em .8em; font-size: .7rem; letter-spacing: .1em; }
.post-card__title { font-size: 1rem; letter-spacing: .06em; line-height: 1.7; }

/* =====================================================
   院内写真(内観・外観)
   ===================================================== */
.section--facility { background: var(--c-white); }
.facility-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);  /* 6枚 = 3列×2段 */
	gap: clamp(18px, 3vw, 36px);
}
@media (max-width: 1024px) {
	.service-jump li { width: 33.33%; }
}
.facility-item { margin: 0; }
.facility-item__photo {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 1px solid var(--c-line);
	background: var(--c-mist);
}
.facility-item__photo img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .8s var(--ease);
}
.facility-item:hover .facility-item__photo img { transform: scale(1.05); }
.facility-item__photo--empty {
	display: flex; align-items: center; justify-content: center;
	font-family: var(--f-min); letter-spacing: .3em;
	color: var(--c-navy); opacity: .4; font-size: .78rem;
}
.facility-item__cap {
	font-family: var(--f-min);
	font-size: .84rem;
	letter-spacing: .12em;
	color: var(--c-ink);
	margin-top: .8em;
	padding-left: 1em;
	position: relative;
}
.facility-item__cap::before {
	content: "";
	position: absolute; left: 0; top: .55em;
	width: 5px; height: 5px;
	background: var(--c-gold);
	transform: rotate(45deg);
}

/* =====================================================
   Instagram
   ===================================================== */
.instagram-feed { border: 1px solid var(--c-line); padding: clamp(16px, 2.5vw, 32px); background: var(--c-white); }

/* =====================================================
   アクセス
   ===================================================== */
.access-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(24px, 4vw, 56px); align-items: start; }
.access-grid__map { aspect-ratio: 4 / 3; border: 1px solid var(--c-line); background: var(--c-mist); }
.access-grid__map iframe { width: 100%; height: 100%; border: 0; }
.access-grid__map-placeholder {
	width: 100%; height: 100%;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
	font-family: var(--f-min); letter-spacing: .3em; color: var(--c-navy);
	text-align: center;
}
.access-grid__map-placeholder small { letter-spacing: .05em; font-family: var(--f-goth); opacity: .7; }
.info-table th {
	font-family: var(--f-min);
	font-weight: 600;
	text-align: left;
	color: var(--c-ink);
	letter-spacing: .12em;
	padding: 1em 1.2em 1em 0;
	border-bottom: 1px solid var(--c-line);
	white-space: nowrap;
	vertical-align: top;
	width: 7em;
}
.info-table td { padding: 1em 0; border-bottom: 1px solid var(--c-line); }
.info-table--wide th { width: 10em; }

.route-list { list-style: none; counter-reset: route; }
.route-list li {
	counter-increment: route;
	position: relative;
	padding: 0 0 1em 3em;
}
.route-list li::before {
	content: counter(route, decimal-leading-zero);
	position: absolute; left: 0; top: .1em;
	font-family: var(--f-min);
	color: var(--c-gold);
	letter-spacing: .1em;
}
.route-note { font-size: .85rem; color: var(--c-text); }

/* =====================================================
   CTA
   ===================================================== */
.cta-band {
	background: var(--c-navy);
	padding: clamp(60px, 8vw, 100px) 24px;
	text-align: center;
}
.cta-band__title { color: #fff; font-size: clamp(1.4rem, 2.4vw, 1.9rem); letter-spacing: .2em; margin-bottom: .8em; }
.cta-band__text { color: rgba(255,255,255,.85); margin-bottom: 2.2em; }
.cta-band__buttons { display: flex; justify-content: center; flex-wrap: wrap; gap: 18px; }
.cta-band__buttons .btn-outline { color: #fff; }
.cta-band--inpage { margin-top: clamp(48px, 6vw, 72px); }
.cta-band--inpage .cta-band__text { color: rgba(255,255,255,.9); }

/* =====================================================
   下層ページ共通
   ===================================================== */
.page-main { padding-top: var(--header-h); }
.page-hero {
	background:
		linear-gradient(90deg, rgba(28, 61, 90, .06), transparent 60%),
		var(--c-mist);
	border-bottom: 1px solid var(--c-line);
	padding: clamp(48px, 6vw, 88px) 24px;
}
.page-hero--slim { padding: clamp(36px, 4.5vw, 60px) 24px; }
.page-hero__inner { max-width: var(--w-inner); margin: 0 auto; }
.page-hero__eyebrow { font-family: var(--f-min); font-size: .74rem; letter-spacing: .38em; color: var(--c-gold); margin-bottom: .8em; }
.page-hero__title { font-size: clamp(1.5rem, 2.6vw, 2.1rem); letter-spacing: .14em; }
.page-hero__lead { margin: 1.4em 0 0; max-width: 44em; }

.page-body { max-width: var(--w-inner); margin: 0 auto; padding: clamp(40px, 5vw, 72px) 24px 110px; }
.page-body--narrow { max-width: 860px; }
/* 固定ページ内のセクション間はしっかり余白をとる */
.page-body > section + section,
.page-body > section + .cta-band--inpage { margin-top: clamp(56px, 7vw, 96px); }

/* パンくず */
.breadcrumb { margin-bottom: clamp(28px, 4vw, 44px); font-size: .78rem; }
.breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: .4em; }
.breadcrumb li + li::before { content: "/"; margin-right: .4em; color: var(--c-line); }
.breadcrumb a { color: var(--c-text); }
.breadcrumb [aria-current] { color: var(--c-ink); }

/* =====================================================
   2カラム(アーカイブ・記事)
   ===================================================== */
.layout-2col {
	max-width: var(--w-inner);
	margin: 0 auto;
	padding: clamp(40px, 5vw, 64px) 24px 110px;
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: clamp(36px, 5vw, 72px);
	align-items: start;
}
.layout-2col--single { padding-top: clamp(48px, 6vw, 72px); }

/* サイドバー */
.side-block { margin-bottom: 52px; }
.side-block__title {
	font-size: 1rem;
	letter-spacing: .14em;
	border-bottom: 1px solid var(--c-ink);
	padding-bottom: .7em;
	margin-bottom: 1em;
}
.side-block__title span {
	display: block;
	font-size: .64rem;
	letter-spacing: .34em;
	color: var(--c-gold);
	margin-bottom: .4em;
}
.side-cats { list-style: none; }
.side-cats li { border-bottom: 1px dotted var(--c-line); }
.side-cats a { display: flex; justify-content: space-between; align-items: center; padding: .8em .2em; color: var(--c-ink); font-size: .92rem; }
.side-cats__count { font-family: var(--f-min); font-size: .78rem; color: var(--c-gold); }

/* 年別アーカイブ */
.side-year { border-bottom: 1px dotted var(--c-line); padding: .4em 0 .8em; }
.side-year__label {
	font-family: var(--f-min);
	font-size: .98rem;
	letter-spacing: .12em;
	color: var(--c-ink);
	display: flex; align-items: center; justify-content: space-between;
	padding: .5em .2em;
}
.side-year__label span { font-size: .68rem; color: var(--c-gold); letter-spacing: .2em; font-family: var(--f-goth); }
details.side-year summary { cursor: pointer; list-style: none; }
details.side-year summary::-webkit-details-marker { display: none; }
.side-year__toggle { position: relative; width: 14px; height: 14px; }
.side-year__toggle::before, .side-year__toggle::after {
	content: "";
	position: absolute; top: 50%; left: 0;
	width: 14px; height: 1px;
	background: var(--c-gold);
	transition: transform .3s var(--ease);
}
.side-year__toggle::after { transform: rotate(90deg); }
details[open] .side-year__toggle::after { transform: rotate(0); }
.side-year__list { list-style: none; padding: .2em 0 0; }
.side-year__list li { margin-bottom: .1em; }
.side-year__list a {
	display: flex; gap: 12px; align-items: baseline;
	padding: .45em .2em;
	font-size: .86rem;
	color: var(--c-text);
	line-height: 1.6;
}
.side-year__list time { font-family: var(--f-min); font-size: .76rem; color: var(--c-gold); white-space: nowrap; letter-spacing: .06em; }
.side-year__more { margin: .6em 0 0; text-align: right; font-size: .8rem; }
.side-empty { font-size: .85rem; color: var(--c-text); }

/* =====================================================
   記事詳細
   ===================================================== */
.entry__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin-bottom: 1em; font-size: .84rem; }
.entry__meta time { font-family: var(--f-min); letter-spacing: .1em; }
.entry__cat { color: var(--c-gold); border: 1px solid var(--c-gold-l); padding: .12em .9em; font-size: .74rem; letter-spacing: .1em; }
.entry__title { font-size: clamp(1.4rem, 2.4vw, 1.85rem); letter-spacing: .08em; line-height: 1.7; margin-bottom: 1.2em; }
.entry__thumb { margin-bottom: 2.4em; border: 1px solid var(--c-line); }
.entry__thumb img { width: 100%; }

.entry__content h2 {
	font-size: 1.32rem;
	letter-spacing: .1em;
	margin: 2.4em 0 1em;
	padding: .5em 0 .5em .9em;
	border-left: 4px solid var(--c-gold);
	background: linear-gradient(90deg, var(--c-mist), transparent 80%);
}
.entry__content h3 {
	font-size: 1.12rem;
	margin: 2em 0 .8em;
	padding-bottom: .4em;
	border-bottom: 1px solid var(--c-line);
}
.entry__content ul, .entry__content ol { padding-left: 1.5em; margin: 0 0 1.5em; }
.entry__content li { margin-bottom: .4em; }
.entry__content img { margin: 1.5em 0; }
.entry__content blockquote {
	margin: 1.8em 0;
	padding: 1.2em 1.6em;
	border-left: 3px solid var(--c-gold-l);
	background: var(--c-white);
	color: var(--c-text);
}
.entry__content table th, .entry__content table td { border: 1px solid var(--c-line); padding: .7em 1em; }
.entry__content table th { background: var(--c-mist); font-weight: 500; }

/* 前後ナビ */
.post-nav {
	margin-top: clamp(48px, 6vw, 64px);
	border-top: 1px solid var(--c-line);
	padding-top: 1.6em;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 20px;
	align-items: center;
}
.post-nav a { font-size: .86rem; color: var(--c-ink); line-height: 1.6; }
.post-nav span { display: block; font-size: .68rem; letter-spacing: .24em; color: var(--c-gold); margin-bottom: .3em; font-family: var(--f-min); }
.post-nav__next { text-align: right; }
.post-nav__list {
	font-family: var(--f-min);
	letter-spacing: .16em;
	border: 1px solid var(--c-ink);
	padding: .7em 1.8em;
	white-space: nowrap;
}

/* ページャー */
.pagination { margin-top: clamp(40px, 5vw, 56px); }
.pagination .nav-links { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }
.pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; height: 44px;
	padding: 0 .9em;
	border: 1px solid var(--c-line);
	font-family: var(--f-min);
	color: var(--c-ink);
}
.pagination .page-numbers.current { background: var(--c-navy); border-color: var(--c-navy); color: #fff; }

.no-posts { padding: 2em 0; }

/* =====================================================
   お問い合わせ
   ===================================================== */
.contact-quick {
	display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
	margin-bottom: clamp(36px, 5vw, 56px);
}
.contact-quick__tel {
	border: 1px solid var(--c-line);
	background: var(--c-white);
	text-align: center;
	padding: 1.1em 1em;
	line-height: 1.5;
	color: var(--c-ink);
}
.contact-quick__tel span { display: block; font-size: .74rem; letter-spacing: .12em; color: var(--c-gold); }
.contact-quick__tel strong { font-family: var(--f-min); font-size: 1.4rem; letter-spacing: .06em; }
.contact-quick .btn-reserve { display: flex; align-items: center; justify-content: center; }

.contact-form { background: var(--c-white); border: 1px solid var(--c-line); padding: clamp(24px, 4vw, 48px); }
.contact-form .wpcf7 p { margin-bottom: 1.4em; }
.contact-form label { display: block; font-weight: 500; color: var(--c-ink); margin-bottom: .4em; }
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea {
	width: 100%;
	border: 1px solid var(--c-line);
	background: var(--c-base);
	padding: .9em 1em;
	font: inherit;
	color: var(--c-ink);
}
.contact-form input:focus, .contact-form textarea:focus { outline: 2px solid var(--c-gold); outline-offset: 0; border-color: transparent; }
.contact-form input[type="submit"] {
	display: block;
	width: min(320px, 100%);
	margin: 2em auto 0;
	background: var(--c-navy);
	color: #fff;
	border: 1px solid var(--c-navy);
	padding: 1.1em;
	font: inherit; font-weight: 700; letter-spacing: .18em;
	cursor: pointer;
	transition: background .3s, color .3s;
}
.contact-form input[type="submit"]:hover { background: #fff; color: var(--c-navy); }
.contact-form__note code { background: var(--c-mist); padding: .2em .5em; font-size: .85em; }

/* 医院紹介 */
.about-message__grid { display: grid; grid-template-columns: 300px 1fr; gap: clamp(24px, 4vw, 48px); align-items: start; }
.about-message__photo {
	aspect-ratio: 3 / 4;
	background: var(--c-mist);
	border: 1px solid var(--c-line);
	display: flex; align-items: center; justify-content: center;
	color: var(--c-navy); font-family: var(--f-min); letter-spacing: .2em; opacity: .8;
}
.about-message__sign { font-family: var(--f-min); text-align: right; letter-spacing: .18em; color: var(--c-ink); }
.about-message { margin-bottom: clamp(48px, 6vw, 76px); }

/* 診療案内(下層) */
.service-detail { display: grid; gap: clamp(28px, 4vw, 40px); }
.service-detail__item { background: var(--c-white); border: 1px solid var(--c-line); padding: clamp(24px, 3.5vw, 40px); }
.service-detail__title { font-size: 1.2rem; letter-spacing: .12em; margin-bottom: .7em; padding-left: .9em; position: relative; }
.service-detail__title::before { content: ""; position: absolute; left: 0; top: .3em; width: 3px; height: 1.1em; background: var(--c-gold); }
.service-detail__item p { margin: 0; }

/* =====================================================
   フッター(3カラム)
   ===================================================== */
.site-footer { background: var(--c-navy-d); color: rgba(255,255,255,.86); }
.site-footer__inner {
	max-width: var(--w-inner);
	margin: 0 auto;
	padding: clamp(56px, 7vw, 88px) 24px 48px;
	display: grid;
	grid-template-columns: 1.1fr 1.2fr .8fr;
	gap: clamp(32px, 5vw, 64px);
	align-items: start;
}
.site-footer__heading {
	font-size: .96rem;
	color: #fff;
	letter-spacing: .2em;
	border-bottom: 1px solid rgba(255,255,255,.24);
	padding-bottom: .7em;
	margin-bottom: 1.2em;
}
.site-footer__logo-en { font-family: var(--f-min); font-size: .66rem; letter-spacing: .36em; color: var(--c-gold-l); margin-bottom: .3em; }
.site-footer__name { font-family: var(--f-min); font-size: 1.25rem; color: #fff; letter-spacing: .14em; margin-bottom: .9em; }
.site-footer__address { font-size: .86rem; margin-bottom: 1.4em; }
.site-footer__tel {
	display: block;
	border: 1px solid rgba(255,255,255,.28);
	text-align: center;
	padding: .8em 1em;
	margin-bottom: 14px;
	color: #fff;
	line-height: 1.5;
}
.site-footer__tel span { display: block; font-size: .7rem; letter-spacing: .16em; color: var(--c-gold-l); }
.site-footer__tel strong { font-family: var(--f-min); font-size: 1.35rem; letter-spacing: .08em; }

/* 曜日別 診療時間表 */
.hours-table { font-size: .84rem; }
.hours-table th, .hours-table td {
	border: 1px solid rgba(255,255,255,.2);
	padding: .55em .3em;
	text-align: center;
	font-weight: 400;
}
.hours-table thead th { background: rgba(255,255,255,.08); color: #fff; letter-spacing: .06em; }
.hours-table__time { white-space: nowrap; font-family: var(--f-min); letter-spacing: .04em; color: #fff; padding-left: .7em; padding-right: .7em; }
.hours-table td { color: var(--c-gold-l); }
.hours-table td.is-closed { color: rgba(255,255,255,.35); }
.hours-table td.is-short { color: #fff; }
.site-footer__note { font-size: .76rem; color: rgba(255,255,255,.66); margin: .9em 0 0; }

.site-footer__list { list-style: none; }
.site-footer__list a { display: block; color: rgba(255,255,255,.88); font-size: .88rem; padding: .5em 0; letter-spacing: .08em; }
.site-footer__list a::after { display: none; }
.site-footer__sub { list-style: none; margin-top: 1.2em; border-top: 1px dotted rgba(255,255,255,.24); padding-top: 1em; }
.site-footer__sub a { display: inline-flex; align-items: center; gap: 6px; color: var(--c-gold-l); font-size: .82rem; padding: .4em 0; letter-spacing: .08em; }
.site-footer__copy { text-align: center; padding: 1.4em; margin: 0; border-top: 1px solid rgba(255,255,255,.12); font-size: .74rem; letter-spacing: .1em; }

/* ページトップへ */
.page-top {
	position: fixed; right: 24px; bottom: 24px;
	z-index: 80;
	width: 48px; height: 48px;
	background: var(--c-navy);
	color: #fff;
	border: 1px solid rgba(255,255,255,.25);
	cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	opacity: 0; transform: translateY(12px);
	pointer-events: none;
	transition: opacity .4s var(--ease), transform .4s var(--ease), background .3s;
}
.page-top.is-show { opacity: 1; transform: none; pointer-events: auto; }
.page-top:hover { background: var(--c-gold); }

/* =====================================================
   スマホ追従フッター(予約・電話)
   ===================================================== */
.sp-fixed-footer {
	display: none;
	position: fixed; left: 0; right: 0; bottom: 0;
	z-index: 90;
	border-top: 1px solid rgba(255,255,255,.2);
}
.sp-fixed-footer__item {
	flex: 1;
	display: flex; align-items: center; justify-content: center; gap: 8px;
	padding: 14px 8px calc(14px + env(safe-area-inset-bottom));
	color: #fff;
	font-size: .9rem;
	font-weight: 700;
	letter-spacing: .1em;
}
.sp-fixed-footer__item--tel { background: var(--c-navy); }
.sp-fixed-footer__item--reserve { background: var(--c-gold); }
.sp-fixed-footer__icon { display: inline-flex; }

/* =====================================================
   レスポンシブ
   ===================================================== */
/* ナビ表示中はv1.1と同じ見た目のまま。
   折り返しが起きる幅(〜1280px)になったらハンバーガーに切替 */
@media (max-width: 1280px) {
	.global-nav { display: none; }
	.drawer-toggle, .drawer { display: block; }
	.site-header__inner { padding: 0 20px 0 24px; height: 72px; gap: 16px; }
	:root { --header-h: 72px; }
	.header-tel { display: none; }
}

@media (max-width: 767px) {
	body { font-size: 15px; padding-bottom: 62px; /* 追従フッター分 */ }
	.site-header__cta { display: none; }
	.sp-fixed-footer { display: flex; }

	/* ヒーロー: 横書きに切り替え */
	.hero { min-height: 86svh; align-items: flex-end; }
	.hero__scrim { background: linear-gradient(0deg, rgba(19,43,64,.62) 0%, rgba(19,43,64,.15) 55%, rgba(19,43,64,.05) 100%); }
	.hero__copy { padding: 0 24px 150px; }
	.hero__catch {
		writing-mode: horizontal-tb;
		height: auto;
		font-size: clamp(1.7rem, 8vw, 2.2rem);
		line-height: 1.75;
		letter-spacing: .14em;
	}
	.hero__catch-line { display: block; }
	.hero__sub { font-size: .82rem; margin-top: 1.2em; }
	.hero__strip dl { padding: 12px 20px; gap: 4px 24px; flex-direction: column; }
	.hero__strip dd { font-size: .82rem; }
	.hero__scroll { display: none; }

	.service-grid { grid-template-columns: 1fr; }
	.about-points { grid-template-columns: 1fr; }
	.card-grid, .card-grid--archive { grid-template-columns: 1fr; }
	.access-grid { grid-template-columns: 1fr; }
	.about-message__grid { grid-template-columns: 1fr; }
	.about-message__photo { max-width: 260px; margin: 0 auto; }

	.price-menu__row { flex-wrap: wrap; align-items: baseline; gap: 6px 14px; padding: 1.3em 0; }
	.price-menu__name { flex: 1 1 100%; max-width: none; }
	.price-menu__leader { order: 2; }
	.price-menu__price { order: 3; }

	.layout-2col { grid-template-columns: 1fr; }
	.side { border-top: 1px solid var(--c-line); padding-top: 44px; }

	.post-nav { grid-template-columns: 1fr; text-align: center; }
	.post-nav__next { text-align: center; }
	.post-nav__list { justify-self: center; }

	.contact-quick { grid-template-columns: 1fr; }
	.site-footer__inner { grid-template-columns: 1fr; }
	.cta-band__buttons { flex-direction: column; align-items: center; }

	.facility-grid { grid-template-columns: repeat(2, 1fr); }
	.facility-item__cap { font-size: .76rem; }
	.service-jump li { width: 50%; }
	.hero .slick-dots { right: 20px; bottom: 128px; }
	.hours-table { font-size: .78rem; }
	.page-top { right: 14px; bottom: 76px; width: 42px; height: 42px; }
}

/* =====================================================
   アニメーション抑制設定への配慮
   ===================================================== */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
	.reveal { opacity: 1; transform: none; }
	.hero__catch-line, .hero__sub { opacity: 1; transform: none; }
	.hero__media img { transform: none; }
}

/* WordPress標準クラス */
.aligncenter { margin-left: auto; margin-right: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: .8rem; color: var(--c-text); text-align: center; margin-top: .5em; }
.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	position: absolute !important;
	width: 1px; height: 1px; overflow: hidden;
}
