@charset "UTF-8";

/* =========================================================
   Honoka Carefit Theme — main.css
   福祉系のやわらかい緑基調デザイン
   ========================================================= */

/* ---------- カスタムプロパティ ---------- */
:root {
	--color-main: #6FB158;
	--color-main-dark: #5A9A45;
	--color-sub: #A8D49B;
	--color-bg-soft: #EAF5E3;
	--color-cream: #FFF8E7;
	--color-text: #3A3A3A;
	--color-text-sub: #7A7A7A;
	--color-white: #FFFFFF;
	--color-border: #E2EBDB;
	--color-accent: #7DC4E8;

	--shadow-soft: 0 2px 12px rgba(0, 0, 0, 0.06);
	--shadow-card: 0 4px 18px rgba(0, 0, 0, 0.08);
	--radius-sm: 8px;
	--radius-md: 12px;
	--radius-lg: 16px;

	--font-base: "Noto Sans JP", "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN", sans-serif;

	--container-max: 1140px;
	--container-narrow: 880px;
}

/* ---------- リセット & 基本 ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--font-base);
	color: var(--color-text);
	background: var(--color-white);
	line-height: 1.8;
	letter-spacing: 0.05em;
	-webkit-font-smoothing: antialiased;
	/* Stickyフッター（コンテンツが少なくてもフッターを画面下に固定） */
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}
.site-main { flex: 1 0 auto; }
.site-footer { flex-shrink: 0; }
img { max-width: 100%; height: auto; vertical-align: middle; }
a { color: var(--color-main-dark); text-decoration: none; transition: color .2s ease, opacity .2s ease, transform .2s ease; }
a:hover { color: var(--color-main); }
ul, ol { padding: 0; margin: 0; list-style: none; }
h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 700; line-height: 1.5; }
p { margin: 0 0 1em; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0);
}

/* ---------- レイアウトユーティリティ ---------- */
.container {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 24px;
}
.container--narrow { max-width: var(--container-narrow); }

/* ---------- ヘッダー ---------- */
.site-header {
	background: var(--color-white);
	box-shadow: var(--shadow-soft);
	position: sticky;
	top: 0;
	z-index: 100;
}
.site-header__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 16px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.site-header__logo .custom-logo,
.site-header__default-logo { max-height: 88px; width: auto; display: block; }
.site-header__logo a { display: inline-flex; align-items: center; }
.site-header__title { font-size: 18px; font-weight: 700; color: var(--color-text); }
@media (max-width: 768px) {
	.site-header__logo .custom-logo,
	.site-header__default-logo { max-height: 56px; }
}

.site-header__nav { }
.site-header__menu {
	display: flex;
	gap: 32px;
	align-items: center;
}
.site-header__menu a {
	color: var(--color-text);
	font-weight: 500;
	font-size: 15px;
	padding: 8px 0;
	position: relative;
}
.site-header__menu a::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 0;
	height: 2px;
	background: var(--color-main);
	transition: width .25s ease, left .25s ease;
}
.site-header__menu a:hover::after { left: 0; width: 100%; }

/* 現在ページのメニュー項目に下線 */
.site-header__menu .current-menu-item > a::after,
.site-header__menu .current_page_item > a::after { left: 0; width: 100%; }

/* 「お問い合わせ」メニューをCTAピル化 */
.site-header__menu a[href*="/contact"] {
	background: var(--color-main);
	color: var(--color-white);
	padding: 10px 24px;
	border-radius: 999px;
	font-weight: 700;
	box-shadow: 0 3px 10px rgba(111, 177, 88, .35);
	transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.site-header__menu a[href*="/contact"]:hover {
	background: var(--color-main-dark);
	color: var(--color-white);
	transform: translateY(-2px);
	box-shadow: 0 5px 14px rgba(111, 177, 88, .45);
}
.site-header__menu a[href*="/contact"]::after { display: none; }

/* ハンバーガーボタン */
.site-header__toggle {
	display: none;
	background: none;
	border: 0;
	width: 40px;
	height: 40px;
	cursor: pointer;
	padding: 0;
	position: relative;
}
.site-header__toggle-bar {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--color-text);
	margin: 5px auto;
	border-radius: 2px;
	transition: transform .3s ease, opacity .3s ease;
}
.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar:nth-child(2) { opacity: 0; }
.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* ---------- ヒーロー ---------- */
.hero { width: 100%; }
.hero__image { width: 100%; height: auto; display: block; object-fit: cover; max-height: 600px; }

/* リファイン版：角丸＋キャッチコピーオーバーレイ */
.hero--refined { padding: 0 24px; max-width: 1280px; margin: 24px auto 0; }
.hero--refined .hero__wrap { position: relative; border-radius: 24px; overflow: hidden; box-shadow: var(--shadow-card); }
.hero--refined .hero__image { height: 420px; max-height: none; }
.hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(100deg, rgba(58, 58, 58, .45) 0%, rgba(58, 58, 58, .05) 60%);
	display: flex;
	align-items: center;
}
.hero__copy { color: var(--color-white); padding: 0 48px; max-width: 560px; }
.hero__title {
	font-size: clamp(22px, 3.4vw, 36px);
	color: var(--color-white);
	text-shadow: 0 2px 12px rgba(0, 0, 0, .3);
	margin: 0 0 12px;
	line-height: 1.5;
}
.hero__lead {
	font-size: clamp(13px, 1.6vw, 16px);
	text-shadow: 0 1px 8px rgba(0, 0, 0, .4);
	margin: 0;
}
@media (max-width: 768px) {
	.hero--refined { padding: 0 16px; margin-top: 16px; }
	.hero--refined .hero__image { height: 300px; }
	.hero__copy { padding: 0 24px; }
}

/* ---------- 波形セクション区切り ---------- */
.wave { display: block; width: 100%; height: 56px; }
@media (max-width: 600px) {
	.wave { height: 36px; }
}

/* ---------- カードナビ（3カラム） ---------- */
.card-nav { padding: 80px 0 60px; background: var(--color-white); }
.card-nav__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
.card-nav__item { background: var(--color-cream); border-radius: var(--radius-lg); padding: 24px; box-shadow: var(--shadow-soft); transition: transform .25s ease, box-shadow .25s ease; }
.card-nav__item:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); }
.card-nav__link { display: block; color: var(--color-text); }
.card-nav__thumb {
	display: block;
	border-radius: var(--radius-md);
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--color-bg-soft);
	margin-bottom: 16px;
}
.card-nav__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.card-nav__item:hover .card-nav__thumb img { transform: scale(1.06); }
.card-nav__btn {
	display: block;
	background: var(--color-main);
	color: var(--color-white);
	text-align: center;
	padding: 10px 16px;
	border-radius: 999px;
	font-weight: 700;
	margin-bottom: 12px;
	font-size: 15px;
	transition: background .2s ease;
}
.card-nav__item:hover .card-nav__btn { background: var(--color-main-dark); }
.card-nav__desc { display: block; font-size: 14px; color: var(--color-text-sub); line-height: 1.7; }

/* ---------- CTAバンド ---------- */
.cta-band {
	background: var(--color-sub);
	padding: 50px 0;
}
.cta-band__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.cta-band__card {
	background: var(--color-white);
	border-radius: var(--radius-lg);
	padding: 32px 24px;
	text-align: center;
	box-shadow: var(--shadow-soft);
	transition: transform .25s ease, box-shadow .25s ease;
}
.cta-band__card:hover { transform: translateY(-3px); box-shadow: var(--shadow-card); }
.cta-band__icon { font-size: 30px; line-height: 1; margin-bottom: 8px; }
.cta-band__title { color: var(--color-main-dark); font-weight: 700; margin-bottom: 8px; }
.cta-band__phone { font-size: 28px; font-weight: 700; color: var(--color-text); margin: 8px 0; }
.cta-band__phone a { color: var(--color-text); }
.cta-band__phone a:hover { color: var(--color-main-dark); }
.cta-band__hours { font-size: 13px; color: var(--color-text-sub); margin: 0; }
.cta-band__btn {
	display: inline-block;
	background: var(--color-main);
	color: var(--color-white);
	padding: 12px 32px;
	border-radius: 999px;
	font-weight: 700;
	margin-top: 8px;
	transition: background .2s ease, transform .2s ease;
}
.cta-band__btn:hover { background: var(--color-main-dark); color: var(--color-white); transform: translateY(-2px); }

/* ---------- セクション共通 ---------- */
.page-section { padding: 80px 0; }
/* やわらか背景＋上角丸（ブログ一覧など） */
.page-section--soft {
	background: var(--color-bg-soft);
	border-radius: 40px 40px 0 0;
}
.section-title {
	text-align: center;
	font-size: 26px;
	margin-bottom: 40px;
	position: relative;
	padding-bottom: 16px;
}
.section-title::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 60px;
	height: 3px;
	background: var(--color-main);
	border-radius: 3px;
}
.blog-list-section { padding: 80px 0; background: var(--color-bg-soft); }
.company-section { padding: 80px 0; background: var(--color-white); }
.access-section { padding: 80px 0 100px; background: var(--color-bg-soft); }
.access-section__lead { text-align: center; font-size: 18px; font-weight: 500; margin-bottom: 32px; }
.access-section__map { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-card); }
.access-section__map iframe { display: block; width: 100%; }

/* ---------- 記事カードグリッド ---------- */
.post-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	margin-bottom: 48px;
}
.post-card {
	background: var(--color-white);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-soft);
	transition: transform .25s ease, box-shadow .25s ease;
}
.post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); }
.post-card__link { display: block; color: var(--color-text); }
.post-card__thumb {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--color-bg-soft);
}
.post-card__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.22, .61, .36, 1); }
.post-card:hover .post-card__thumb img { transform: scale(1.07); }
.post-card__thumb .honoka-default-thumb,
.post-card__thumb .honoka-img--fallback,
.honoka-default-thumb,
.honoka-img--fallback {
	width: 100%;
	height: 100%;
	object-fit: contain;
	background: var(--color-cream);
	padding: 16%;
}
.post-card__category {
	position: absolute;
	top: 12px;
	left: 12px;
	background: var(--color-main);
	color: var(--color-white);
	font-size: 12px;
	padding: 4px 12px;
	border-radius: 4px;
	font-weight: 500;
}
.post-card__body { padding: 18px 20px 22px; }
.post-card__title {
	font-size: 16px;
	margin-bottom: 8px;
	line-height: 1.6;
}
.post-card__excerpt { font-size: 13px; color: var(--color-text-sub); margin-bottom: 8px; line-height: 1.7; }
.post-card__date { font-size: 12px; color: var(--color-text-sub); }

/* ---------- ページネーション ---------- */
.pagination { text-align: center; }
.pagination .nav-links,
.pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	flex-wrap: wrap;
}
.pagination a, .pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border-radius: 999px;
	font-size: 14px;
	color: var(--color-text);
	background: var(--color-white);
	border: 1px solid var(--color-border);
	transition: background .2s ease, color .2s ease;
}
.pagination a:hover { background: var(--color-bg-soft); }
.pagination .current { background: var(--color-main); color: var(--color-white); border-color: var(--color-main); }

/* ---------- 会社概要テーブル ---------- */
.info-table {
	width: 100%;
	/* border-collapse: collapse は border-radius と併用すると外枠が消えるため separate を使用 */
	border-collapse: separate;
	border-spacing: 0;
	border: 2px solid var(--color-sub);
	border-radius: var(--radius-md);
	overflow: hidden;
}
.info-table th, .info-table td { padding: 14px 18px; border-bottom: 1px solid var(--color-border); text-align: left; vertical-align: middle; font-size: 14px; }
.info-table th { background: var(--color-bg-soft); width: 200px; font-weight: 500; }
.info-table tr:last-child th, .info-table tr:last-child td { border-bottom: 0; }
@media (max-width: 600px) {
	.info-table, .info-table tbody, .info-table tr, .info-table th, .info-table td { display: block; width: 100%; }
	.info-table th { border-bottom: 0; }
}

/* ---------- ページヘッダー ---------- */
.page-header { text-align: center; margin-bottom: 48px; }
.page-header__title {
	font-size: 28px;
	display: inline-block;
	padding-bottom: 14px;
	position: relative;
}
.page-header__title::before {
	content: "";
	display: block;
	width: 64px;
	height: 64px;
	margin: 0 auto 10px;
	background: url('../img/clover.png') no-repeat center / contain;
}
.page-header__title::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: 50px;
	height: 3px;
	background: var(--color-main);
	border-radius: 3px;
}
.page-header__sub { font-size: 14px; color: var(--color-text-sub); }
.page-header__desc { color: var(--color-text-sub); margin-top: 12px; }

/* ---------- 記事本文 ---------- */
.entry { }
.breadcrumb { font-size: 13px; color: var(--color-text-sub); margin-bottom: 20px; }
.breadcrumb a { color: var(--color-main-dark); }
.entry-header { margin-bottom: 28px; }
.entry-meta-top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
	margin-bottom: 16px;
}
.entry-category {
	display: inline-flex;
	align-items: stretch;
	overflow: hidden;
	border-radius: 999px;
	background: var(--color-main);
	color: var(--color-white);
	font-size: 12px;
	text-decoration: none;
	transition: opacity .2s ease;
}
.entry-category:hover { color: var(--color-white); opacity: .85; }
.entry-category__label {
	background: var(--color-main-dark);
	padding: 4px 10px;
	font-weight: 500;
}
.entry-category__name {
	padding: 4px 14px;
	font-weight: 700;
}

.entry-tags {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	font-size: 12px;
}
.entry-tags__label {
	background: var(--color-bg-soft);
	color: var(--color-main-dark);
	padding: 4px 10px;
	border-radius: 999px;
	font-weight: 500;
}
.entry-tags__item {
	background: var(--color-white);
	color: var(--color-main-dark);
	border: 1px solid var(--color-main);
	padding: 3px 12px;
	border-radius: 999px;
	text-decoration: none;
	transition: background .2s ease, color .2s ease;
}
.entry-tags__item:hover { background: var(--color-main); color: var(--color-white); }
.entry-title { font-size: 28px; margin-bottom: 8px; }
.entry-date { font-size: 13px; color: var(--color-text-sub); }
.entry-thumb { margin: 24px 0; border-radius: var(--radius-lg); overflow: hidden; }
.entry-content { font-size: 15px; line-height: 1.9; }
.entry-content h2 {
	font-size: 22px;
	border-left: 4px solid var(--color-main);
	padding-left: 14px;
	margin: 40px 0 16px;
}
.entry-content h3 { font-size: 18px; margin: 32px 0 12px; color: var(--color-main-dark); }
.entry-content img { border-radius: var(--radius-md); margin: 16px 0; }
.entry-content table { width: 100%; border-collapse: separate; border-spacing: 0; margin: 16px 0; border: 2px solid var(--color-sub); border-radius: var(--radius-md); overflow: hidden; }
.entry-content table tr:last-child th,
.entry-content table tr:last-child td { border-bottom: 0; }
.entry-content table th, .entry-content table td { padding: 12px 16px; border-bottom: 1px solid var(--color-border); }
.entry-content table th { background: var(--color-bg-soft); font-weight: 500; }
.entry-content a { color: var(--color-main-dark); text-decoration: underline; }

/* クローバーの箇条書きマーク */
.entry-content ul { list-style: none; padding-left: 4px; margin: 0 0 1em; }
.entry-content ul li { position: relative; padding-left: 22px; margin: 6px 0; }
.entry-content ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .45em;
	width: 14px;
	height: 14px;
	background: url('../img/clover.png') no-repeat center / contain;
}

/* 事業所紹介 用：見出し緑ボーダー */
.entry-content h2 { border-left: 4px solid var(--color-main); }

/* ---------- 事業所紹介ページ専用 H2（リッチ） ---------- */
.facility-content h2 {
	position: relative;
	display: block;
	background:
		radial-gradient(circle at 12% 110%, rgba(168, 212, 155, 0.35) 0, rgba(168, 212, 155, 0) 36%),
		linear-gradient(135deg, var(--color-bg-soft) 0%, var(--color-cream) 100%);
	color: var(--color-main-dark);
	font-size: 26px;
	font-weight: 700;
	text-align: center;
	padding: 32px 28px;
	margin: 64px 0 28px;
	border: 0;
	border-left: 0;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-soft);
	letter-spacing: 0.08em;
	overflow: hidden;
}
.facility-content h2::after { content: none; }
/* 見出し先頭にクローバーキャラクター */
.facility-content h2::before {
	content: "";
	display: inline-block;
	width: 30px;
	height: 30px;
	background: url('../img/clover.png') no-repeat center / contain;
	vertical-align: -6px;
	margin-right: 12px;
}

/* H2 直下の最初の要素（スライダー）と少し離す */
.facility-content h2 + .honoka-slider { margin-top: 8px; }

@media (max-width: 600px) {
	.facility-content h2 { font-size: 20px; padding: 24px 16px; }
	/* スマホ表示時：本文中の画像間隔を半分に */
	.entry-content img,
	.entry-content figure,
	.entry-content .wp-block-image { margin-top: 8px; margin-bottom: 8px; }
	.entry-content p { margin-bottom: 0.5em; }
}

/* ---------- 著者ボックス ---------- */
.author-box {
	margin-top: 56px;
	padding: 28px 32px;
	background: var(--color-cream);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-soft);
	position: relative;
}
.author-box__heading {
	display: inline-block;
	background: var(--color-main);
	color: var(--color-white);
	font-size: 13px;
	font-weight: 700;
	padding: 6px 18px;
	border-radius: 999px;
	margin: -42px 0 18px;
}
.author-box__inner {
	display: flex;
	gap: 24px;
	align-items: flex-start;
}
.author-box__avatar {
	flex: 0 0 96px;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--color-bg-soft);
	border: 3px solid var(--color-white);
	box-shadow: var(--shadow-soft);
}
.author-box__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.author-box__body { flex: 1; min-width: 0; }
.author-box__name { font-size: 17px; font-weight: 700; margin: 0 0 8px; color: var(--color-text); }
.author-box__desc { font-size: 14px; line-height: 1.8; color: var(--color-text); margin: 0; }

@media (max-width: 600px) {
	.author-box { padding: 24px 20px; }
	.author-box__inner { flex-direction: column; align-items: center; text-align: center; gap: 16px; }
	.author-box__avatar { width: 88px; height: 88px; flex-basis: 88px; }
}

.entry-nav {
	display: flex;
	justify-content: space-between;
	margin-top: 48px;
	padding-top: 24px;
	border-top: 1px solid var(--color-border);
	gap: 16px;
}
.entry-nav__prev a, .entry-nav__next a { color: var(--color-text); font-size: 14px; }

/* ---------- 連絡先（contactページ） ---------- */
.contact-lead { text-align: center; margin-bottom: 32px; }
.contact-grid { display: grid; gap: 24px; margin-bottom: 40px; }
.contact-box {
	background: var(--color-cream);
	padding: 28px;
	text-align: center;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-soft);
}
.contact-box__title { color: var(--color-main-dark); font-weight: 700; margin-bottom: 6px; }
.contact-box__phone { font-size: 28px; font-weight: 700; margin: 6px 0; }
.contact-box__hours { font-size: 13px; color: var(--color-text-sub); }

.contact-form { background: var(--color-white); padding: 32px; border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); }
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form select,
.contact-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	font-family: inherit;
	font-size: 15px;
	background: var(--color-white);
	transition: border-color .2s ease, box-shadow .2s ease;
}
.contact-form textarea { min-height: 160px; resize: vertical; }
/* フォーカス時の緑リング */
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
	outline: none;
	border-color: var(--color-main);
	box-shadow: 0 0 0 3px rgba(111, 177, 88, .18);
}
.contact-form input[type="submit"],
.contact-form button {
	background: var(--color-main);
	color: var(--color-white);
	border: 0;
	padding: 14px 36px;
	border-radius: 999px;
	font-weight: 700;
	cursor: pointer;
	transition: background .2s ease, transform .2s ease;
	font-size: 15px;
}
.contact-form input[type="submit"]:hover,
.contact-form button:hover { background: var(--color-main-dark); transform: translateY(-2px); }

/* ---------- 共通ボタン ---------- */
.btn {
	display: inline-block;
	padding: 12px 32px;
	border-radius: 999px;
	font-weight: 700;
	text-align: center;
	transition: transform .2s ease, background .2s ease;
}
.btn--primary,
.entry-content a.btn--primary { background: var(--color-main); color: var(--color-white); text-decoration: none; }
.btn--primary:hover,
.entry-content a.btn--primary:hover { background: var(--color-main-dark); color: var(--color-white); transform: translateY(-2px); }

/* 事業所タグボタン（事業所紹介ページ内） */
.tag-button-wrap { text-align: center; margin: 20px 0 48px; }
.entry-content .btn--tag,
.btn--tag {
	display: inline-block;
	background: var(--color-main);
	color: var(--color-white) !important;
	padding: 14px 36px;
	border-radius: 999px;
	font-weight: 700;
	font-size: 15px;
	text-decoration: none !important;
	border: 0;
}
.entry-content .btn--tag:hover,
.btn--tag:hover {
	background: var(--color-main-dark);
	color: var(--color-white) !important;
	text-decoration: none !important;
	transform: translateY(-2px);
}
.tag-button-error { color: #c33; font-size: 13px; }

/* ---------- 画像スライダー ---------- */
/* 写真が1枚だけの場合（スライダー非使用・角丸フレーム表示） */
.honoka-slider-single {
	margin: 24px 0 16px;
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-soft);
}
.entry-content .honoka-slider-single img,
.honoka-slider-single img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	margin: 0;
	border-radius: 0;
}

.honoka-slider {
	position: relative;
	margin: 24px 0 16px;
	background: transparent;
}
.honoka-slider__viewport {
	position: relative;
	overflow: hidden;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-soft);
}
.entry-content .honoka-slider__slide img,
.honoka-slider__slide img {
	display: block;
	margin: 0;
	border-radius: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* --- fade タイプ --- */
.honoka-slider--fade .honoka-slider__track {
	position: relative;
	aspect-ratio: 16 / 10;
}
.honoka-slider--fade .honoka-slider__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity .6s ease;
	pointer-events: none;
}
.honoka-slider--fade .honoka-slider__slide.is-active { opacity: 1; pointer-events: auto; }

/* --- peek タイプ（前後の画像が少し見える） --- */
.honoka-slider--peek .honoka-slider__viewport {
	overflow: visible;
	box-shadow: none;
	border-radius: 0;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
	        mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.honoka-slider--peek .honoka-slider__track {
	display: flex;
	gap: 16px;
	transition: transform .55s cubic-bezier(.22, .61, .36, 1);
	will-change: transform;
}
.honoka-slider--peek .honoka-slider__slide {
	flex: 0 0 78%;
	aspect-ratio: 16 / 10;
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-soft);
	opacity: .55;
	transform: scale(.94);
	transition: opacity .4s ease, transform .4s ease;
}
.honoka-slider--peek .honoka-slider__slide.is-active {
	opacity: 1;
	transform: scale(1);
	box-shadow: var(--shadow-card);
}
@media (max-width: 768px) {
	.honoka-slider--peek .honoka-slider__slide { flex: 0 0 86%; }
}
.honoka-slider__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 0;
	background: rgba(255, 255, 255, 0.9);
	color: var(--color-main-dark);
	font-size: 24px;
	font-weight: 700;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: var(--shadow-soft);
	transition: background .2s ease, transform .2s ease;
	line-height: 1;
	padding: 0 0 4px;
}
.honoka-slider__nav:hover { background: var(--color-main); color: var(--color-white); }
.honoka-slider__nav--prev { left: 12px; }
.honoka-slider__nav--next { right: 12px; }
.honoka-slider__dots {
	position: absolute;
	bottom: 12px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 8px;
	background: rgba(255, 255, 255, 0.7);
	padding: 6px 10px;
	border-radius: 999px;
}
.honoka-slider__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border: 0;
	padding: 0;
	background: var(--color-border);
	cursor: pointer;
	transition: background .2s ease, transform .2s ease;
}
.honoka-slider__dot.is-active { background: var(--color-main); transform: scale(1.2); }
.slider-error { color: #c33; font-size: 13px; }

@media (max-width: 600px) {
	.honoka-slider__nav { width: 36px; height: 36px; font-size: 20px; }
}

/* アーカイブ */
.archive-count { color: var(--color-text-sub); font-size: 13px; margin-top: 8px; }
.archive-back { text-align: center; margin-top: 48px; }
.post-card__tags { margin: 4px 0 6px; line-height: 1.6; }
.post-card__tag { font-size: 11px; color: var(--color-main-dark); margin-right: 6px; }

/* ---------- 検索フォーム ---------- */
.searchform { display: flex; gap: 8px; }
.searchform__input { flex: 1; padding: 10px 14px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.searchform__btn { background: var(--color-main); color: var(--color-white); border: 0; padding: 10px 20px; border-radius: var(--radius-sm); cursor: pointer; }

/* ---------- フッター ---------- */
.site-footer { background: var(--color-main); color: var(--color-white); position: relative; overflow: hidden; }
/* クローバーの透かし */
.site-footer::before {
	content: "";
	position: absolute;
	right: -40px;
	bottom: -60px;
	width: 280px;
	height: 280px;
	background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><g fill="white" opacity="0.08"><circle cx="35" cy="35" r="22"/><circle cx="65" cy="35" r="22"/><circle cx="35" cy="65" r="22"/><circle cx="65" cy="65" r="22"/><rect x="48" y="50" width="4" height="45" rx="2" transform="rotate(8 50 50)"/></g></svg>') no-repeat center / contain;
	pointer-events: none;
}
.site-footer__top, .site-footer__main, .site-footer__bottom { position: relative; }
.site-footer__top { text-align: center; padding: 18px 0 6px; }
.site-footer__pagetop { color: var(--color-white); display: inline-flex; flex-direction: column; align-items: center; gap: 2px; font-size: 12px; }
.site-footer__pagetop:hover { color: var(--color-white); opacity: .8; }
.site-footer__pagetop-arrow { font-size: 20px; }

.site-footer__main { padding: 32px 0 28px; border-top: 1px solid rgba(255,255,255,.2); }
.site-footer__container {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 24px;
	display: flex;
	gap: 40px;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
}
.site-footer__brand { max-width: 420px; }
.site-footer__logo .custom-logo,
.site-footer__default-logo {
	max-height: 60px;
	width: auto;
	display: block;
	background: var(--color-white);
	padding: 8px 14px;
	border-radius: var(--radius-sm);
}
.site-footer__logo-link { display: inline-block; margin-bottom: 4px; }
.site-footer__name { font-weight: 700; margin: 0 0 8px; font-size: 16px; }
.site-footer__address { font-size: 13px; line-height: 1.8; margin: 8px 0 0; opacity: .95; }

.site-footer__nav { flex: 1; min-width: 240px; }
.site-footer__menu {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
	justify-content: flex-end;
}
.site-footer__menu a {
	color: var(--color-white);
	font-size: 14px;
	position: relative;
	padding: 4px 0;
	transition: opacity .2s ease;
}
.site-footer__menu a:hover { color: var(--color-white); opacity: .75; }

.site-footer__bottom { text-align: center; padding: 16px 24px 24px; border-top: 1px solid rgba(255,255,255,.2); }
.site-footer__copyright { font-size: 12px; margin: 0; }

@media (max-width: 768px) {
	.site-footer__container { flex-direction: column; gap: 24px; }
	.site-footer__brand { max-width: 100%; }
	.site-footer__menu { justify-content: flex-start; gap: 8px 20px; }
	.site-footer__menu a { font-size: 13px; }
}

/* ---------- 装飾アクセント ---------- */
.section-title::before {
	content: "";
	display: block;
	width: 56px;
	height: 56px;
	margin: 0 auto 8px;
	background: url('../img/clover.png') no-repeat center / contain;
}

/* ---------- アニメーション ---------- */
@media (prefers-reduced-motion: no-preference) {
	.fade-in {
		opacity: 0;
		transform: translateY(20px);
		transition: opacity .8s ease, transform .8s ease;
	}
	.fade-in.is-visible { opacity: 1; transform: translateY(0); }
}

/* ---------- レスポンシブ ---------- */
@media (max-width: 900px) {
	.card-nav__list { grid-template-columns: 1fr 1fr; }
	.post-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
	.site-header__toggle { display: block; }
	.site-header__nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--color-white);
		box-shadow: var(--shadow-soft);
		max-height: 0;
		overflow: hidden;
		transition: max-height .35s ease;
	}
	.site-header__nav.is-open { max-height: 500px; }
	.site-header__menu { flex-direction: column; gap: 0; padding: 8px 0; }
	.site-header__menu li { width: 100%; border-bottom: 1px solid var(--color-border); }
	.site-header__menu li:last-child { border-bottom: 0; }
	.site-header__menu a { display: block; padding: 14px 24px; }
	.site-header__menu a::after { display: none; }
	/* スマホメニュー内のお問い合わせピルは中央寄せボタンに */
	.site-header__menu a[href*="/contact"] { display: block; margin: 12px 20px; text-align: center; }

	.card-nav__list { grid-template-columns: 1fr; }
	.cta-band__grid { grid-template-columns: 1fr; }
	.post-grid { grid-template-columns: 1fr; }

	.cta-band__phone, .contact-box__phone { font-size: 24px; }
	.section-title { font-size: 22px; }
	.page-header__title { font-size: 22px; }
	.entry-title { font-size: 22px; }
	.page-section, .blog-list-section, .company-section, .access-section, .card-nav { padding: 56px 0; }

	.info-table th { width: 110px; font-size: 13px; padding: 10px 12px; }
	.info-table td { font-size: 13px; padding: 10px 12px; }
}
@media (max-width: 480px) {
	.site-header__inner { padding: 12px 16px; }
	.container { padding: 0 16px; }
}
