/*
Theme Name: Saho
Theme URI: https://kuruma-touroku.jp/
Author: Legal Gate
Description: さほ行政書士事務所（kuruma-touroku.jp）のオリジナルテーマ。Lightning Pro・VK Blocks Pro を使っていた旧サイトのデザインを、WordPress 標準ブロックで再現。ツール → 初期ページ作成 でページ・メニュー・お問い合わせフォームを作る。
Version: 1.0.1
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: saho
*/

/* ---------------------------------------------------------------- base */
:root {
	--key: #efb192;
	--key-dark: #ef9c73;
	--key-pale: #fbefe9;
	--text: #333;
	--text-sub: #666;
	--brown: #665550;
	--line: #ddd;
	--btn: #465055;
	--font-body: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック Medium", "Yu Gothic Medium", YuGothic, "Noto Sans JP", Meiryo, sans-serif;
	--font-round: fot-tsukubrdgothic-std, "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "BIZ UDPGothic", sans-serif;
	--font-nav: "Noto Sans JP", sans-serif;
	--container: 1140px;
	--nav-h: 50px;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	background: #fff;
	color: var(--text);
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.8;
	letter-spacing: .05em;
	-webkit-text-size-adjust: 100%;
}

img { max-width: 100%; height: auto; vertical-align: bottom; }
a { color: #337ab7; }
a:hover { color: var(--key-dark); }
iframe { max-width: 100%; }

.container {
	width: 100%;
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 16px;
}

.icon { width: 1.1em; height: 1.1em; fill: currentColor; vertical-align: -.15em; margin-right: .35em; }

.screen-reader-text, .skip-link:not(:focus) {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 1000; background: #fff; padding: 8px 16px; }

/* ---------------------------------------------------------------- header top */
.header-top {
	background: #f9f9f9;
	color: var(--text-sub);
	font-size: 12px;
	line-height: 1.5;
}
.header-top__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; }
.header-top__catch { margin: 0; }
.header-top__right { display: flex; align-items: center; gap: 20px; flex-shrink: 0; }
.header-top__menu { display: flex; gap: 16px; margin: 0; padding: 0; list-style: none; }
.header-top__menu a, .header-top__tel { color: var(--text-sub); text-decoration: none; }
.header-top__menu a:hover, .header-top__tel:hover { color: var(--key-dark); }
.header-top__contact {
	display: inline-block;
	padding: 8px 16px;
	background: var(--key);
	color: #fff;
	font-size: 14px;
	text-decoration: none;
	border-radius: 0 0 4px 4px;
}
.header-top__contact:hover { background: var(--key-dark); color: #fff; }

/* ---------------------------------------------------------------- header */
.site-header { position: relative; background: #fff; z-index: 50; }
.site-header__inner { display: flex; align-items: center; justify-content: center; padding: 22px 16px 18px; }
.site-logo { margin: 0; line-height: 1; }
.site-logo a { display: inline-block; }
.site-logo__img { width: auto; max-height: 70px; }

.menu-toggle { display: none; }

.global-nav { background: #fff; border-bottom: 1px solid #eee; }
.global-nav__menu { display: flex; justify-content: center; margin: 0; padding: 0; list-style: none; }
.global-nav__menu > li { position: relative; }
.global-nav__menu > li > a {
	display: block;
	padding: 13px 2.1em 12px;
	color: var(--text);
	font-family: var(--font-nav);
	font-size: 15px;
	font-weight: 500;
	line-height: 24px;
	text-decoration: none;
	border-bottom: 3px solid transparent;
}
.global-nav__menu > li > a:hover,
.global-nav__menu > li.current-menu-item > a,
.global-nav__menu > li.current-menu-ancestor > a,
.global-nav__menu > li.current-page-ancestor > a,
.global-nav__menu > li.current_page_item > a,
.global-nav__menu > li.current_page_ancestor > a { border-bottom-color: var(--key); }
.global-nav__menu :is(.sub-menu, .children) {
	position: absolute;
	top: 100%;
	left: 50%;
	min-width: 280px;
	margin: 0;
	padding: 0;
	list-style: none;
	background: #fff;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .12);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, 6px);
	transition: opacity .2s, transform .2s, visibility .2s;
}
.global-nav__menu li:hover > :is(.sub-menu, .children),
.global-nav__menu li:focus-within > :is(.sub-menu, .children) { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.global-nav__menu :is(.sub-menu, .children) a {
	display: block;
	padding: 12px 20px;
	color: var(--text);
	font-family: var(--font-nav);
	font-size: 14px;
	text-decoration: none;
	border-bottom: 1px solid #f0f0f0;
}
.global-nav__menu :is(.sub-menu, .children) a:hover { background: var(--key-pale); }
.global-nav__sp { display: none; }

/* PC: the menu stays at the top while scrolling */
@media (min-width: 768px) {
	body.is-nav-fixed .site-header { padding-bottom: var(--nav-h); }
	body.is-nav-fixed .global-nav {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
	}
	body.admin-bar.is-nav-fixed .global-nav { top: 32px; }
}

/* ---------------------------------------------------------------- slider */
/* 画像の上部は余白（旧サイトではヘッダーが重なっていた部分）なので、ヘッダーの下に潜り込ませる */
.slider { position: relative; display: grid; overflow: hidden; margin-top: -11.5vw; background: #f9f9f9; }
.slider__item { grid-area: 1 / 1; opacity: 0; transition: opacity 1s ease; }
.slider__item.is-active { opacity: 1; }
.slider__item img { display: block; width: 100%; height: auto; }
.slider__nav {
	position: absolute;
	top: 50%;
	width: 44px;
	height: 44px;
	margin-top: -22px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .55);
	cursor: pointer;
}
.slider__nav svg { width: 28px; height: 28px; fill: #555; vertical-align: middle; }
.slider__nav--prev { left: 16px; }
.slider__nav--next { right: 16px; }
.slider__nav:hover { background: rgba(255, 255, 255, .85); }

/* ---------------------------------------------------------------- breadcrumb */
.breadcrumb { border-bottom: 1px solid #eee; font-size: 12px; color: var(--text-sub); }
.breadcrumb ol { display: flex; flex-wrap: wrap; margin: 0 auto; padding-top: 10px; padding-bottom: 10px; list-style: none; }
.breadcrumb li + li::before { content: "/"; margin: 0 .7em; color: #aaa; }
.breadcrumb a { color: var(--text-sub); text-decoration: none; }
.breadcrumb a:hover { color: var(--key-dark); }

/* ---------------------------------------------------------------- content */
.site-main { padding: 50px 0 0; }
.is-front .site-main { padding-top: 30px; }
.entry-content > * { margin-top: 0; margin-bottom: 1.4em; }
.entry-content > *:last-child { margin-bottom: 0; }
.entry-content p { margin: 0 0 1.2em; }

.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4 {
	font-family: var(--font-round);
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .1em;
	color: var(--text);
}
.entry-content h2 { margin: 2.6em 0 1em; padding-bottom: .4em; font-size: 2rem; border-bottom: 1px solid #ccc; }
.entry-content h3 { margin: 2em 0 .8em; font-size: 1.5rem; }
.entry-content h4 { margin: 1.6em 0 .6em; font-size: 1.2rem; }

/* 左右に線（旧 VK 見出し both_ends） */
.entry-content .is-style-saho-both-ends {
	display: flex;
	align-items: center;
	gap: 1em;
	margin: 0 0 1.2em;
	padding: 0;
	border: 0;
	font-size: 2.2rem;
	line-height: 48px;
	text-align: center;
}
.entry-content .is-style-saho-both-ends::before,
.entry-content .is-style-saho-both-ends::after { content: ""; flex: 1; height: 1px; background: var(--text); }

/* 下線（旧 dotted_bottomborder_black） */
.entry-content .is-style-saho-dotted { border-bottom: 1px dotted var(--text); font-size: 2rem; line-height: 48px; }

/* 背景つき（旧 background_fill_lightgray） */
.entry-content .is-style-saho-fill {
	padding: .5em .8em;
	border: 0;
	border-left: 4px solid var(--key);
	background: #f5f5f5;
	font-size: 1.6rem;
	line-height: 1.5;
}

/* トップ・事務所案内のあいさつ */
.entry-content .saho-catch {
	width: 16em;
	max-width: 100%;
	margin: 0 auto 2%;
	padding: 0 0 0 1%;
	border: 0;
	font-size: 1.7rem;
	line-height: 48px;
	letter-spacing: .4em;
}
.entry-content .saho-vertical {
	margin: 0 auto 2em;
	writing-mode: vertical-rl;
	font-family: var(--font-round);
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 48px;
	letter-spacing: .4em;
	background: url("assets/img/mark.png") no-repeat center / contain;
	background-color: rgba(255, 255, 255, .1);
	background-blend-mode: lighten;
}
.entry-content .saho-name {
	margin: 0 auto;
	writing-mode: vertical-rl;
	font-family: var(--font-round);
	font-size: 2rem;
	font-weight: 700;
	line-height: 48px;
	letter-spacing: .4em;
}
.entry-content .saho-name-en { margin-bottom: .2em; color: #cf2e2e; }
.entry-content .saho-lead {
	margin-bottom: 1em;
	font-family: var(--font-round);
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 36px;
	letter-spacing: .2em;
}
.entry-content .saho-strong {
	font-family: var(--font-round);
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.8;
}
.entry-content .saho-profile-title { margin: 1.6em 0 .2em; font-size: 1.5rem; line-height: 36px; }
.entry-content .saho-profile-title + p { margin-bottom: .5em; }

/* ボタン（白地・角丸・線） */
.entry-content .wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link {
	padding: .25em 2.2em;
	border: 2px solid var(--btn);
	border-radius: 40px;
	background: #fff;
	color: var(--btn);
	font-family: var(--font-round);
	font-size: 1rem;
	font-weight: 700;
	line-height: 48px;
	letter-spacing: .2em;
	text-decoration: none;
	transition: background .2s, color .2s;
}
.entry-content .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--btn); color: #fff; }
.entry-content .wp-block-button__link { white-space: normal; word-break: break-word; }
.entry-content > .wp-block-buttons .wp-block-button__link { font-size: 1.2rem; }

/* サービス紹介（画像は丸く切り抜く） */
.entry-content .saho-pr { grid-template-columns: 50% 1fr; margin-bottom: 0; }
.entry-content .saho-pr.has-media-on-the-right { grid-template-columns: 1fr 50%; }
.entry-content .saho-pr .wp-block-media-text__media { text-align: center; }
.entry-content .saho-pr .wp-block-media-text__media img {
	width: 360px;
	max-width: 100%;
	height: auto;
	aspect-ratio: 1;
	border-radius: 50%;
	object-fit: cover;
}
.entry-content .saho-pr.has-media-on-the-right .wp-block-media-text__media img { width: 400px; }
.entry-content .saho-pr .wp-block-media-text__content { padding: 0 6%; }
.entry-content .saho-pr .saho-pr__title { margin: 0 0 .6em; padding: 0; border: 0; font-size: 1.9rem; line-height: 48px; }

/* 丸い写真 */
.entry-content .wp-block-image.is-style-rounded img { width: 520px; max-width: 100%; }

/* メリット（線で囲んだリスト） */
.entry-content .saho-check {
	margin: 2em 0;
	padding: 1.5em 1.5em;
	list-style: none;
	border: 3px solid var(--key);
	border-radius: 8px;
	color: #000;
}
.entry-content .saho-check li {
	margin: .5em 0;
	font-family: var(--font-round);
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 30px;
	letter-spacing: .1em;
}
.entry-content .saho-check li::before { content: "・"; }

/* よくある質問 */
.entry-content .saho-faq { margin: 0 0 1em; padding: 0 0 1em; border-bottom: 1px solid var(--line); }
.entry-content .saho-faq__q {
	position: relative;
	margin: 0 0 .6em;
	padding: .3em 0 .3em 2.2em;
	font-family: var(--font-round);
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 30px;
}
.entry-content .saho-faq__a { position: relative; padding-left: 2.2em; }
.entry-content .saho-faq__q::before,
.entry-content .saho-faq__a::before {
	position: absolute;
	left: 0;
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 1.2rem;
}
.entry-content .saho-faq__q::before { content: "Q"; top: .3em; color: #e8573e; }
.entry-content .saho-faq__a::before { content: "A"; top: 0; color: #337ab7; line-height: 1.8; }
.entry-content .saho-faq__a > *:last-child { margin-bottom: 0; }

/* 注意事項（タイトルつきの枠） */
.entry-content .saho-box {
	position: relative;
	margin: 2.4em 0 1.6em;
	padding: 1.4em 1.4em 1em;
	border: 2px solid var(--text);
	border-radius: 8px;
}
.entry-content .saho-box__title {
	position: absolute;
	top: 0;
	left: -2px;
	margin: 0;
	padding: .35em 1em;
	transform: translateY(-100%);
	border-radius: 6px 6px 0 0;
	background: var(--text);
	color: #fff;
	font-size: .9rem;
	line-height: 1.4;
	letter-spacing: .05em;
}
.entry-content .saho-box > *:last-child { margin-bottom: 0; }

/* 手続きの流れ */
.entry-content .saho-steps { counter-reset: step; margin: 2em 0; }
.entry-content .saho-step {
	position: relative;
	min-height: 90px;
	padding: 0 0 2em 100px;
	counter-increment: step;
}
.entry-content .saho-step::before {
	content: "STEP\A" counter(step);
	white-space: pre;
	position: absolute;
	top: 0;
	left: 0;
	width: 64px;
	height: 64px;
	padding-top: 12px;
	border-radius: 50%;
	background: var(--key);
	color: #fff;
	font-family: var(--font-body);
	font-size: .7rem;
	line-height: 1.3;
	text-align: center;
	letter-spacing: .05em;
	z-index: 1;
}
.entry-content .saho-step::after {
	content: "";
	position: absolute;
	top: 64px;
	bottom: 0;
	left: 31px;
	border-left: 2px dotted #ccc;
}
.entry-content .saho-step:last-child::after { display: none; }
.entry-content .saho-step__title {
	margin: 0 0 .6em;
	padding-bottom: .3em;
	border-bottom: 1px solid #ccc;
	font-size: 1.5rem;
	line-height: 38px;
}
.entry-content .saho-step > *:last-child { margin-bottom: 0; }

/* 開閉パネル（料金表など） */
.entry-content .saho-accordion { margin: 1.5em 0; border-bottom: 1px solid var(--line); }
.entry-content .saho-accordion summary {
	position: relative;
	padding: .5em 0 .5em 1.6em;
	font-size: .9rem;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}
.entry-content .saho-accordion summary::-webkit-details-marker { display: none; }
.entry-content .saho-accordion summary::before {
	content: "";
	position: absolute;
	top: 50%;
	left: .2em;
	width: .5em;
	height: .5em;
	margin-top: -.35em;
	border-right: 2px solid var(--text);
	border-bottom: 2px solid var(--text);
	transform: rotate(-45deg);
	transition: transform .2s;
}
.entry-content .saho-accordion[open] summary::before { transform: rotate(45deg); }
.entry-content .saho-accordion > *:not(summary) { margin-top: 1em; }

/* 表（しま模様・線） */
.entry-content .wp-block-table { overflow-x: auto; }
.entry-content .wp-block-table table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.entry-content .wp-block-table td, .entry-content .wp-block-table th { padding: .7em 1em; border: 1px solid #dee2e6; text-align: left; vertical-align: top; }
.entry-content .wp-block-table.is-style-stripes { border-bottom: 0; }
.entry-content .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: rgba(0, 0, 0, .05); }
.entry-content .wp-block-table.is-style-stripes tbody tr:nth-child(even) { background: #fff; }

/* アクセス（文章と地図） */
.entry-content .saho-access { align-items: flex-start; gap: 2em; }
.entry-content .saho-access-title {
	margin: 0 0 .8em;
	padding-bottom: .3em;
	border-bottom: 1px solid #ccc;
	font-size: 1.5rem;
	line-height: 38px;
	text-align: center;
}
.entry-content .saho-map iframe { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; border: 0; }

.entry-content .wp-block-list { padding-left: 1.6em; }
.entry-content .wp-block-list li { margin-bottom: .4em; }
.sitemap { padding-left: 1.4em; line-height: 2.2; }
.sitemap ul { padding-left: 1.4em; }

/* お問い合わせフォーム（Contact Form 7） */
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 select, .wpcf7 textarea {
	width: 100%;
	padding: .6em .8em;
	border: 1px solid #ccc;
	border-radius: 4px;
	font: inherit;
	letter-spacing: normal;
}
.wpcf7 textarea { min-height: 12em; }
.wpcf7 input[type="submit"] {
	display: block;
	width: 100%;
	padding: .9em 1em;
	border: 0;
	border-radius: 4px;
	background: var(--key-dark);
	color: #fff;
	font-family: var(--font-round);
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: .2em;
	cursor: pointer;
}
.wpcf7 input[type="submit"]:hover { background: var(--key); }
.wpcf7 .text-danger { color: #cf2e2e; }

/* ---------------------------------------------------------------- CTA */
.cta { max-width: var(--container); margin: 80px auto 0; padding: 0 16px; }
.cta__inner {
	padding: 1.6em 2em 2em;
	border: 1px solid #ead9d1;
	border-radius: 4px;
	background: var(--key-pale);
	text-align: center;
	color: var(--brown);
}
.cta__text { margin: 0 0 .2em; font-size: .9rem; }
.cta__tel { margin: 0; font-size: 1.8rem; font-weight: 700; line-height: 1.4; }
.cta__tel a { color: var(--key-dark); text-decoration: none; }
.cta__hours { margin: 0 0 1em; font-size: .85rem; }
.cta__button { margin: 0; }
.cta__button a {
	display: block;
	padding: .8em 1em;
	border-radius: 4px;
	background: var(--key-dark);
	color: #fff;
	font-size: 1.1rem;
	text-decoration: none;
}
.cta__button a:hover { background: var(--key); }

/* ---------------------------------------------------------------- footer */
.site-footer {
	margin-top: 80px;
	background: #f4d5c6 var(--footer-bg) center / cover no-repeat;
	color: var(--brown);
}
.footer-menu { border-bottom: 1px solid rgba(102, 85, 80, .2); }
.footer-menu__list { display: flex; flex-wrap: wrap; margin: 0; padding: 12px 0; list-style: none; font-size: 12px; }
.footer-menu__list li + li { border-left: 1px solid rgba(102, 85, 80, .35); }
.footer-menu__list a { display: block; padding: 0 1em; color: var(--brown); text-decoration: none; }
.footer-menu__list li:first-child a { padding-left: 0; }
.footer-main { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding-top: 40px; padding-bottom: 40px; }
.footer-profile p { margin: 0; }
.footer-profile__logo img { width: 310px; max-width: 100%; }
.footer-profile__address { margin: 1em 0 !important; font-size: .9rem; line-height: 1.8; }
.footer-profile__label { font-family: var(--font-round); font-size: 1.05rem; font-weight: 700; line-height: 30px; }
.footer-profile__tel { margin-bottom: 1em !important; font-family: var(--font-round); font-size: 1.4rem; font-weight: 700; line-height: 30px; }
.footer-profile__tel a { color: var(--brown); text-decoration: none; }
.footer-profile__mail a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin-top: 1em;
	border-radius: 50%;
	background: var(--brown);
}
.footer-profile__mail svg { width: 20px; height: 20px; fill: #fff; }
.footer-map iframe { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; border: 0; }
.copyright { margin: 0; padding: 30px 16px; font-size: 12px; text-align: center; }

.page-top {
	position: fixed;
	right: 16px;
	bottom: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: rgba(51, 51, 51, .85);
	border-radius: 2px;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s, visibility .3s;
	z-index: 60;
}
.page-top.is-visible { opacity: 1; visibility: visible; }
.page-top svg { width: 24px; height: 24px; fill: #fff; }

.post-list { padding: 0; list-style: none; }
.post-list li { display: flex; gap: 1.5em; padding: .8em 0; border-bottom: 1px solid var(--line); }
.post-list time { color: var(--text-sub); flex-shrink: 0; }

/* ---------------------------------------------------------------- tablet / mobile */
@media (max-width: 991px) {
	.global-nav__menu > li > a { padding-left: 1.1em; padding-right: 1.1em; }
	.entry-content .saho-pr .wp-block-media-text__media img,
	.entry-content .saho-pr.has-media-on-the-right .wp-block-media-text__media img { width: 300px; }
}

@media (max-width: 767px) {
	body { font-size: 15px; }
	.header-top { display: none; }

	.site-header__inner { justify-content: space-between; padding: 12px 16px; }
	.site-logo__img { max-height: 50px; }

	.menu-toggle {
		display: block;
		position: relative;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 0;
		background: transparent;
		cursor: pointer;
		z-index: 110;
	}
	.menu-toggle__bar, .menu-toggle__bar::before, .menu-toggle__bar::after {
		position: absolute;
		left: 10px;
		width: 24px;
		height: 2px;
		background: var(--text);
		transition: transform .25s, background .25s;
	}
	.menu-toggle__bar { top: 21px; }
	.menu-toggle__bar::before, .menu-toggle__bar::after { content: ""; left: 0; }
	.menu-toggle__bar::before { top: -8px; }
	.menu-toggle__bar::after { top: 8px; }
	.is-menu-open .menu-toggle__bar { background: transparent; }
	.is-menu-open .menu-toggle__bar::before { transform: translateY(8px) rotate(45deg); }
	.is-menu-open .menu-toggle__bar::after { transform: translateY(-8px) rotate(-45deg); }

	.global-nav {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		width: min(320px, 85vw);
		padding: 70px 0 30px;
		overflow-y: auto;
		border: 0;
		box-shadow: -4px 0 16px rgba(0, 0, 0, .15);
		transform: translateX(105%);
		transition: transform .3s;
		z-index: 100;
	}
	.is-menu-open .global-nav { transform: none; }
	.global-nav__menu { display: block; }
	.global-nav__menu > li > a { padding: 14px 4px; border-bottom: 1px solid #eee; }
	.global-nav__menu > li > a:hover,
	.global-nav__menu > li.current-menu-item > a { border-bottom-color: #eee; color: var(--key-dark); }
	.global-nav__menu :is(.sub-menu, .children) { position: static; min-width: 0; opacity: 1; visibility: visible; transform: none; box-shadow: none; }
	.global-nav__menu :is(.sub-menu, .children) a { padding: 12px 4px 12px 1.2em; font-size: 13px; }
	.global-nav__sp { display: block; margin-top: 24px; text-align: center; }
	.global-nav__tel { display: block; margin-bottom: 12px; color: var(--brown); font-family: var(--font-round); font-size: 1.3rem; font-weight: 700; text-decoration: none; }
	.global-nav__contact { display: block; padding: 12px; border-radius: 4px; background: var(--key); color: #fff; text-decoration: none; }
	body.admin-bar .global-nav { top: 46px; }

	.slider { margin-top: -19vw; }
	.slider__nav { width: 36px; height: 36px; margin-top: -18px; }
	.entry-content .wp-block-button.is-style-outline .wp-block-button__link { padding: .6em 1.6em; line-height: 1.6; letter-spacing: .1em; }
	.entry-content > .wp-block-buttons .wp-block-button__link { font-size: 1.05rem; }

	.site-main { padding-top: 30px; }
	.entry-content h2 { font-size: 1.6rem; }
	.entry-content .is-style-saho-both-ends { font-size: 1.6rem; line-height: 1.5; letter-spacing: .02em; gap: .6em; }
	.entry-content .is-style-saho-dotted { font-size: 1.5rem; line-height: 1.5; letter-spacing: .03em; }
	.entry-content .is-style-saho-fill { font-size: 1.3rem; }
	.entry-content .saho-catch { width: 90%; margin-bottom: 8%; padding-left: 5%; font-size: 1.4rem; line-height: 1.6; letter-spacing: .2em; }
	.entry-content .saho-vertical {
		width: 84%;
		writing-mode: horizontal-tb;
		font-size: 1.1rem;
		line-height: 1.8;
		letter-spacing: .01em;
		background-color: rgba(255, 255, 255, .3);
	}
	.entry-content .saho-name { writing-mode: horizontal-tb; font-size: 1.6rem; line-height: 1.6; }
	.entry-content .saho-lead { margin-left: 0; font-size: 1.15rem; line-height: 1.7; letter-spacing: 0; }
	.entry-content .saho-pr, .entry-content .saho-pr.has-media-on-the-right { grid-template-columns: 100% !important; }
	.entry-content .saho-pr .wp-block-media-text__media img,
	.entry-content .saho-pr.has-media-on-the-right .wp-block-media-text__media img { width: 250px; }
	.entry-content .saho-pr .wp-block-media-text__content { padding: 1.2em 0 0; }
	.entry-content .saho-pr .saho-pr__title { font-size: 1.5rem; line-height: 1.5; letter-spacing: .05em; }
	.entry-content .saho-check li, .entry-content .saho-faq__q { font-size: 1.1rem; line-height: 1.6; letter-spacing: .03em; }
	.entry-content .saho-step { padding-left: 76px; }
	.entry-content .saho-step::before { width: 56px; height: 56px; padding-top: 9px; }
	.entry-content .saho-step::after { top: 56px; left: 27px; }
	.entry-content .saho-step__title, .entry-content .saho-access-title { font-size: 1.25rem; line-height: 1.5; }

	.cta { margin-top: 50px; }
	.cta__inner { padding: 1.2em 1em 1.4em; }
	.cta__tel { font-size: 1.5rem; }

	.site-footer { margin-top: 50px; }
	.footer-main { grid-template-columns: 1fr; gap: 24px; padding-top: 30px; padding-bottom: 20px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.slider__item, .global-nav, .page-top, .global-nav__menu :is(.sub-menu, .children) { transition: none; }
}
