@charset "UTF-8";

html {
	scroll-behavior: smooth;
}

/* 基本 */
:root {
	--v-space: clamp(90px, 9vw, 120px);
}

body {
	margin: 0;
	background-color: #eeeeee;
	color: #222222;
	font-family: sans-serif;
}

h1, h2, h3, h4, h5, h6, p, figure, ul {
	margin: 0;
	padding: 0;
}

ul {
	list-style: none;
}

p {
	line-height: 1.8;
}

a {
	color: inherit;
	text-decoration: none;
}

a:hover {
	filter: brightness(90%) contrast(120%);
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}

/* スクリーンリーダー専用（視覚的に非表示） */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}


/* 横幅と左右の余白 */
.w-container {
	width: min(92%, 1166px);
	margin: auto;
	position: relative;
}

/* ヘッダー */
.header {
	height: 112px;
	background-color: #ffffff;
}

/* ロゴ画像サイズの調整 */
.site img {
    width: 220px;
    height: auto;
}

.header-container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 100%;
}

/* ナビゲーションボタン */
.navbtn {
	padding: 0;
	outline: none;
	border: none;
	background: transparent;
	cursor: pointer;
	color: #aaaaaa;
	font-size: 30px;
}

.open .navbtn {
	z-index: 110;
	color: #ffffff;
}

.navbtn .fa-bars {
	display: revert;
}
.open .navbtn .fa-bars {
	display: none;
}

.navbtn .fa-times {
	display: none;
}
.open .navbtn .fa-times {
	display: revert;
}

@media (min-width: 768px) {
	.navbtn {
		display: none;
	}
}

/* ナビゲーションメニュー：モバイル */
@media (max-width: 767px) {
	.nav {
		position: fixed;
		inset: 0 -100% 0 100%;
		z-index: 100;
		background-color: #4e483ae6;
		transition: transform 0.3s;
	}

	body.open .nav {
		transform: translate(-100%, 0);
	}

	.nav ul {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		height: 100%;
		gap: 40px;
		color: #ffffff;
	}
}

/* ナビゲーションメニュー：PC */
@media (min-width: 768px) {
	.nav ul {
		display: flex;
		gap: 40px;
		color: #707070;
	}
}

/* ヒーロー */
.hero {
	height: 650px;
	background-image: url(../img/pers.jpg);
	background-position: center;
	background-size: cover;
}

.hero-container {
	display: grid;
	justify-items: center;
	align-content: center;
	height: 100%;
}

.hero h1 {
    margin-bottom: 42px;
    font-size: clamp(30px, 3vw, 40px);
    min-height: 0vw;
    text-align: center;
    background-color: rgba(255, 255, 255, 0.7);
    padding: 20px 40px;
    border-radius: 8px;
    font-family: sans-serif;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: #4a4a4a;
}

.hero p {
	margin-bottom: 72px;
}

/* ボタン */
.btn {
	display: block;
	width: 260px;
	padding: 10px;
	box-sizing: border-box;
	border-radius: 4px;
	background-color: #e8b368;
	color: #ffffff;
	font-size: 18px;
	text-align: center;
	text-shadow: 0 0 6px #00000052;
}

.btn-accent {
	background-color: #b72661;
}

/* 画像とテキスト */
.imgtext {
	padding: var(--v-space) 0;
	background-color: #ffffff;
}

.imgtext + .imgtext {
	padding-top: 0;
}

.imgtext-container {
	display: flex;
	flex-direction: column;
	gap: clamp(45px, 6vw, 80px);
}

@media (min-width: 768px) {
	.imgtext-container {
		flex-direction: row;
		align-items: center;
	}

	.imgtext-container.reverse {
		flex-direction: row-reverse;
	}

	.imgtext-container > .text {
		flex: 1;
		min-width: 17em;
	}

	.imgtext-container > .img {
		flex: 2;
	}
}

/* タイトルとサブタイトル（赤色の短い線で装飾） */
.heading-decoration {
	font-size: clamp(30px, 3vw, 40px);
	min-height: 0vw;
	font-weight: 400;
}

.heading-decoration::after {
	display: block;
	content: '';
	width: 160px;
	height: 0px;
	border-top: solid 1px #b72661;
	margin-top: 0.6em;
}

.heading-decoration + p {
	margin-top: 1em;
	margin-bottom: 2em;
	color: #707070;
	font-family: "Montserrat", sans-serif;
	font-size: 18px;
}


/* 記事一覧 */
.posts {
	padding: var(--v-space) 0;
	background-color: #f3f1ed;
}

.posts-container {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px 25px;
}

@media (min-width: 768px) {
	.posts-container {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* 記事一覧の記事 */
.post a {
	display: block;
}

.post h3 {
	margin: 1em 0 0.5em;
	font-size: clamp(12px, 2vw, 20px);
	min-height: 0vw;
}

.post p {
	max-width: 20em;
	font-size: clamp(10px, 1.6vw, 14px);
	min-height: 0vw;
}

.post img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
	width: 100%;
}

@supports not (aspect-ratio: 3 / 2) {
	.post img {
		height: 180px;
	}
}

/* パーツの見出し */
.heading {
	position: absolute;
	top: calc((var(--v-space) + 0.6em) * -1);
	font-family: "Montserrat", sans-serif;
	font-size: clamp(40px, 5.2vw, 70px);
	min-height: 0vw;
	font-weight: 300;
}

.heading span {
	display: block;
	color: #666666;
	font-size: 18px;
}


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

/* フッター全体：上部パディングのみ（下部はfooter-copyが担う） */
.footer {
	padding: 56px 0 0;
	background-color: #ffffff;
	color: #707070;
	font-size: 13px;
}

/* フッター：ロゴ画像サイズの調整 */
.footer-site img {
	width: 220px;
	height: auto;
}

/* フッター：スマホ時のロゴを中央寄せ */
.footer-site {
	text-align: center;
}

@media (min-width: 768px) {
	.footer-site {
		text-align: left;
	}
}

/* フッター：コンテナ（スマホ：縦並び・中央寄せ） */
.footer-container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 28px;
	text-align: center;
}

/* フッター：コンテナ（PC：左右2カラム・天地中央揃え） */
@media (min-width: 768px) {
	.footer-container {
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
		gap: 24px;
		text-align: left;
	}
}

/* 左ブロック：ロゴのみ */
.footer-left {
	display: flex;
	justify-content: center;
}

@media (min-width: 768px) {
	.footer-left {
		display: flex;
		flex-direction: column;
		gap: 20px;
		justify-content: flex-start;
	}
}

/* 右ブロック：ナビゲーションメニュー */
.footer-right {
	display: flex;
	justify-content: center;
}

@media (min-width: 768px) {
	.footer-right {
		display: flex;
		align-items: flex-end;
	}

	/* PC時のメニューは横並び（ヘッダーナビと同じ間隔） */
	.footer-right .footer-menu {
		flex-direction: row;
		gap: 40px;
	}
}

/* コピーライト：PC・スマホ共に最下部中央に独立配置 */
.footer-copy {
	text-align: center;
	padding: 20px 0 32px;
	font-size: 13px;
	color: #707070;
	margin-top: 28px;
	border-top: 1px solid #eeeeee;
	width: 100%;
}

/* フッター：SNSメニュー */
.footer-sns {
	display: flex;
	gap: 24px;
	font-size: 24px;
}

.footer-sns a {
	display: grid;
	place-items: center;
	width: 36px;
	aspect-ratio: 1 / 1;
	background-color: #cccccc;
	color: #ffffff;
	clip-path: circle(50%);
}

@supports not (aspect-ratio: 1 / 1) {
	.footer-sns a {
		height: 36px;
	}
}

/* フッター：テキストメニュー */
.footer-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px 24px;
}

@media (min-width: 768px) {
	.footer-menu {
		justify-content: flex-start;
	}
}


/* 記事 */
.entry {
	padding-bottom: var(--v-space);
	background-color: #ffffff;
}

.entry-img img {
	width: 100%;
	max-height: 400px;
	object-fit: cover;
	margin-bottom: calc(var(--v-space) * 2 / 3);
}

.entry .w-container {
	max-width: 720px;
}

.entry .heading-decoration {
	font-size: clamp(30px, 6.25vw, 48px);
}

.entry-container {
	font-size: clamp(16px, 2.4vw, 18px);
}

.entry-container :where(h1, h2, h3, h4, h5, h6, p, figure, ul) {
	margin-top: revert;
	margin-bottom: revert;
	padding: revert;
	list-style: revert;
}

.entry-container p {
	margin: 1.8em 0;
}

.entry-container > :first-child {
	margin-top: 0;
}

.entry-container > :last-child {
	margin-bottom: 0;
}

/****************************/
/* --- Q&A Custom Style --- */
/****************************/

.qa-item {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    margin-bottom: 16px;
    overflow: hidden;
}

.qa-question {
    padding: 20px 50px 20px 20px;
    cursor: pointer;
    font-weight: bold;
    position: relative;
    transition: background 0.3s;
    display: flex;
    align-items: center;
}

.qa-question:hover {
    background-color: #fdfafb;
}

/* Qのアイコン */
.qa-question::before {
    content: "Q";
    color: #b72661;
    font-family: "Montserrat", sans-serif;
    font-size: 1.2em;
    margin-right: 15px;
}

/* 矢印（プラス）アイコン */
.qa-question::after {
    content: "\f067";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    right: 20px;
    font-size: 0.9em;
    color: #aaaaaa;
    transition: transform 0.3s;
}

/* 回答部分 */
.qa-answer {
    max-height: 0;
    overflow: hidden;
    transition: all 0.3s ease-out;
    background: #f9f9f9;
}

.qa-answer-content {
    padding: 20px 20px 20px 55px;
    position: relative;
    border-top: 1px solid #eee;
    font-size: 0.95em;
    line-height: 1.7;
}

/* Aのアイコン */
.qa-answer-content::before {
    content: "A";
    position: absolute;
    left: 20px;
    color: #333;
    font-family: "Montserrat", sans-serif;
    font-weight: bold;
    font-size: 1.1em;
}

/* 開いた時の状態 */
.qa-item.active .qa-answer {
    max-height: 1000px;
}

.qa-item.active .qa-question::after {
    transform: rotate(45deg);
    color: #b72661;
}

/**************************************/
/* --- お知らせリスト（News List） --- */
/*************************************/

.news-list {
    margin-top: 2em;
    border-top: 1px solid #dcdcdc;
}

.news-item {
    display: flex;
    align-items: center;
    padding: 24px 10px;
    border-bottom: 1px solid #dcdcdc;
    background-color: transparent;
    transition: all 0.3s ease;
    text-decoration: none;
    color: inherit;
}

.news-item:hover {
    background-color: #ffffff;
    padding-left: 25px;
    filter: none;
}

.news-meta {
    flex-shrink: 0;
    width: 140px;
}

.news-date {
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    color: #707070;
}

.news-title {
    flex-grow: 1;
    font-size: 16px;
    padding: 0 20px;
    line-height: 1.5;
}

.news-arrow {
    flex-shrink: 0;
    color: #b72661;
    font-size: 12px;
    transition: transform 0.3s ease;
}

.news-item:hover .news-arrow {
    transform: translateX(8px);
}

/* モバイル対応 */
@media (max-width: 767px) {
    .news-item {
        flex-direction: column;
        align-items: flex-start;
        position: relative;
        padding: 20px 40px 20px 10px;
    }

    .news-item:hover {
        padding-left: 15px;
    }

    .news-meta {
        width: 100%;
        margin-bottom: 8px;
    }

    .news-title {
        padding: 0;
        font-size: 15px;
    }

    .news-arrow {
        position: absolute;
        right: 15px;
        top: 50%;
        transform: translateY(-50%);
    }
}

/***********************************/
/* プライバシーポリシー用追加スタイル */
/***********************************/

.privacy-subtitle {
    font-size: 1.2rem;
    margin-top: 40px;
    margin-bottom: 15px;
    padding-left: 15px;
    border-left: 4px solid #b72661;
    color: #222;
}

.privacy-list {
    margin: 15px 0 30px 20px;
    list-style: disc;
}

.privacy-list li {
    margin-bottom: 10px;
    line-height: 1.6;
}

.contact-box {
    margin-top: 30px;
    padding: 20px;
    background-color: #fcfcfc;
    border: 1px solid #dcdcdc;
    border-radius: 4px;
}

.contact-box p {
    margin-bottom: 0;
}


/* --- 取り組み・活動紹介ページ用カスタムCSS --- */

.entry-container {
    line-height: 1.8;
    color: #5d504a;
}

.entry-container h2 {
    font-size: 1.5rem;
    color: #d16b8c;
    background-color: #fff5f7;
    padding: 15px 20px;
    border-left: 6px solid #f8bbd0;
    border-radius: 4px;
    margin: 40px 0 20px;
}

.entry-container section {
    margin-bottom: 30px;
    padding: 20px;
    background-color: #ffffff;
    border: 1px solid #f0e6e6;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.02);
}

.entry-container h3 {
    font-size: 1.25rem;
    color: #8d6e63;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
}

.entry-container h3::before {
    content: "●";
    color: #f48fb1;
    margin-right: 10px;
    font-size: 0.8em;
}

.entry-container strong {
    color: #c25e7e;
    display: block;
    margin-bottom: 8px;
    font-size: 1.05rem;
}

.entry-container p {
    margin-bottom: 1em;
}

.pet-section-box {
    background-color: #fff9f0;
    border: 2px dashed #ffccbc;
    padding: 25px;
    border-radius: 15px;
    margin-top: 20px;
}

.entry-container hr {
    border: none;
    border-top: 2px dotted #e0d0d0;
    margin: 50px 0;
}

@media (max-width: 767px) {
    .entry-container h2 {
        font-size: 1.3rem;
        padding: 12px 15px;
    }
    .entry-container section {
        padding: 15px;
    }
}

/*******************************************/
/* --- 施設概要ページ（facility.html） --- */
/*******************************************/

.entry {
	padding-bottom: calc(var(--v-space) * 0.75);
}

.facility-entry .w-container {
	max-width: min(92%, 1166px);
}

.room-types {
	padding: var(--v-space) 0;
	background-color: #f3f1ed;
}

.room-types-heading {
	margin-bottom: clamp(32px, 4vw, 52px);
	font-family: "Montserrat", sans-serif;
	font-size: clamp(30px, 3vw, 40px);
	min-height: 0vw;
	font-weight: 300;
	line-height: 1.15;
}

.room-types-heading span {
	display: block;
	color: #666666;
	font-size: 18px;
	margin-top: 4px;
}

.room-tabs {
	display: flex;
	gap: 8px;
	margin-bottom: 32px;
	flex-wrap: wrap;
}

.room-tab-btn {
	padding: 10px 28px;
	border: 2px solid #b72661;
	border-radius: 4px;
	background-color: transparent;
	color: #b72661;
	font-size: clamp(14px, 2vw, 16px);
	font-family: "Montserrat", sans-serif;
	font-weight: 400;
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s;
	min-height: 44px;
}

.room-tab-btn:hover {
	background-color: #f8e8ef;
}

.room-tab-btn.active {
	background-color: #b72661;
	color: #ffffff;
}

.room-panel {
	display: none;
}

.room-panel.active {
	display: block;
}

.room-card {
	display: flex;
	flex-direction: column;
	gap: clamp(32px, 5vw, 60px);
	background-color: #ffffff;
	border-radius: 8px;
	padding: clamp(24px, 4vw, 48px);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

@media (min-width: 768px) {
	.room-card {
		flex-direction: row;
		align-items: flex-start;
	}
}

.room-floorplan {
	flex: 1 1 280px;
	max-width: 340px;
	margin: 0 auto;
}

@media (min-width: 768px) {
	.room-floorplan {
		margin: 0;
	}
}

.room-floorplan img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: contain;
	background-color: #f9f9f9;
	border: 1px solid #e8e8e8;
	border-radius: 4px;
}

.room-floorplan figcaption {
	margin-top: 10px;
	text-align: center;
	font-size: 12px;
	color: #999999;
	font-family: "Montserrat", sans-serif;
}

.room-info {
	flex: 1 1 260px;
}

.room-info-title {
	font-size: clamp(26px, 3.5vw, 38px);
	font-weight: 400;
	margin-bottom: 0.4em;
}

.room-info-title::after {
	display: block;
	content: '';
	width: 100px;
	height: 0;
	border-top: solid 1px #b72661;
	margin-top: 0.5em;
}

.room-info-sub {
	margin-top: 0.8em;
	margin-bottom: 1.8em;
	color: #707070;
	font-family: "Montserrat", sans-serif;
	font-size: 15px;
}

.room-spec {
	width: 100%;
	border-collapse: collapse;
	font-size: clamp(13px, 1.8vw, 15px);
	margin-bottom: 1.6em;
}

.room-spec th,
.room-spec td {
	padding: 10px 14px;
	border-bottom: 1px solid #eeeeee;
	text-align: left;
	line-height: 1.6;
}

.room-spec th {
	width: 40%;
	color: #707070;
	font-weight: 400;
	white-space: nowrap;
}

.room-spec td {
	font-weight: 500;
}

.room-badge {
	display: inline-block;
	padding: 4px 14px;
	border-radius: 20px;
	background-color: #b72661;
	color: #ffffff;
	font-size: 13px;
	font-family: "Montserrat", sans-serif;
	margin-bottom: 20px;
}

.room-note {
	font-size: clamp(13px, 1.6vw, 14px);
	color: #888888;
	line-height: 1.7;
}

.contact-banner {
	padding: clamp(48px, 7vw, 80px) 0;
	background-color: #ffffff;
	text-align: center;
}

.contact-banner p {
	color: #555555;
	margin-bottom: 28px;
	font-size: clamp(14px, 2vw, 16px);
}

.contact-banner .btn {
	display: inline-block;
	width: auto;
	padding: 14px 48px;
	font-size: clamp(14px, 2vw, 16px);
}

/************************************/
/* --- アクセスページ（access.html） --- */
/************************************/

.address-block {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 1.8em 0 0.8em; /* 下余白をボタングループ分だけ縮小 */
	padding: 20px 28px;
	background-color: #fff5f7;
	border-left: 5px solid #b72661;
	border-radius: 4px;
	font-size: clamp(15px, 2vw, 18px);
	color: #333;
	text-decoration: none;   /* 下線を消す */
	cursor: pointer;         /* ポインターカーソル */
	transition: background-color 0.2s;
}

.address-block:hover {
	background-color: #fce8ef; /* ホバー時に少し濃くなる */
	filter: none;
}

.address-block i {
	color: #b72661;
	font-size: 1.3em;
	flex-shrink: 0;
}

/* 追加（右端の外部リンクアイコン） */
.address-block-external {
	margin-left: auto;
	font-size: 0.85em !important;
	color: #b72661;
	opacity: 0.6;
}

.access-table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.8em 0 2.4em;
	font-size: clamp(14px, 1.8vw, 16px);
}

.access-table th,
.access-table td {
	padding: 14px 20px;
	border-bottom: 1px solid #e8e0e4;
	vertical-align: middle;
	line-height: 1.6;
	text-align: left;
}

.access-table thead th {
	background-color: #b72661;
	color: #ffffff;
	font-weight: 500;
	letter-spacing: 0.04em;
}

.access-table td.transport-cell {
	white-space: nowrap;
	font-weight: 600;
	color: #b72661;
	background-color: #fff5f7;
	width: 1%;
	vertical-align: middle;
}

.access-table tbody tr:hover td {
	background-color: #fdf6f9;
}

.access-table tbody tr:hover td.transport-cell {
	background-color: #fff5f7;
}

.transport-label {
	display: flex;
	align-items: center;
	gap: 10px;
}

.transport-label i {
	width: 20px;
	text-align: center;
	font-size: 1.1em;
	color: #b72661;
}

.time-badge {
	display: inline-block;
	padding: 3px 12px;
	background-color: #b72661;
	color: #ffffff;
	border-radius: 20px;
	font-family: "Montserrat", sans-serif;
	font-size: 0.85em;
	white-space: nowrap;
	margin-left: 6px;
}

.access-table .facility-name {
	font-weight: 600;
	color: #333;
}

.table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.w-container > h1.heading-decoration + p,
.w-container > h2.heading-decoration + p {
	margin-top: 0;
}

@media (max-width: 767px) {
	.access-table th,
	.access-table td {
		padding: 12px 14px;
	}

	.address-block {
		padding: 16px 18px;
	}
}

/****************************************************/
/* --- 取り組みページ：予約制バッジ・注意書き --- */
/****************************************************/

.activity-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    background: #fff3e0;
    color: #bf360c;
    border: 1px solid #ffcc80;
    white-space: nowrap;
    vertical-align: middle;
    margin-left: 8px;
}

.activity-notice {
    margin-top: 12px !important;
    padding-top: 10px !important;
    border-top: 1px dashed #e0d0d0;
    font-size: 12.5px !important;
    color: #999999 !important;
    line-height: 1.6 !important;
}

/****************************************************/
/* --- 施設概要：説明文（facility.html） --- */
/****************************************************/

.facility-lead {
	font-size: clamp(15px, 2vw, 17px);
	color: #555555;
	max-width: 40em;
	line-height: 1.95;
	margin-top: 1.4em;
}

.facility-overview {
	display: flex;
	flex-direction: column;
	gap: clamp(32px, 5vw, 56px);
	margin-top: clamp(28px, 4vw, 44px);
}

@media (min-width: 768px) {
	.facility-overview {
		flex-direction: row;
		align-items: flex-start;
	}
}

.facility-overview-text {
	flex: 1 1 0;
	min-width: 0;
}

.facility-overview-text .facility-lead:first-child {
	margin-top: 0;
}

.facility-overview-img {
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
}

.facility-overview-img img {
	width: 100%;
	border-radius: 4px;
}

.facility-floor-list {
	margin: 1.6em 0 0;
	padding: 0;
	list-style: none;
}

.facility-floor-list li {
	display: flex;
	align-items: baseline;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid #f0e6e6;
	font-size: clamp(13px, 1.8vw, 15px);
}

.facility-floor-list li:last-child {
	border-bottom: none;
}

.facility-floor-num {
	flex-shrink: 0;
	min-width: 3.2em;
	font-family: 'Montserrat', sans-serif;
	font-weight: 600;
	color: #707070;
}

.facility-floor-pet {
	color: #b72661;
}

.facility-floor-note {
	margin-top: 1em;
	font-size: 13px;
	color: #888888;
	line-height: 1.7;
}

/* ============================================================
   サイトマップ カードリスト
   ============================================================ */

.sitemap-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.sitemap-list li a {
    display: grid;
    grid-template-columns: 52px 1fr auto;
    align-items: center;
    gap: 0 14px;
    min-height: 72px;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    transition: box-shadow 0.2s, border-color 0.2s;
}

.sitemap-list li a:hover,
.sitemap-list li a:focus-visible {
    border-color: #e8b87a;
    box-shadow: 0 2px 8px rgba(224, 123, 42, 0.15);
    outline: none;
}

.sitemap-card-icon {
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fdf0e4;
    font-size: 20px;
    color: #e07b2a;
    min-width: 52px;
}

.sitemap-card-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 0;
}

.sitemap-card-title {
    font-size: 15px;
    font-weight: bold;
    color: #333;
    line-height: 1.3;
}

.sitemap-card-desc {
    font-size: 13px;
    color: #666;
    line-height: 1.5;
}

.sitemap-card-btn {
    margin-right: 14px;
    padding: 8px 16px;
    background: #e07b2a;
    color: #fff;
    font-size: 13px;
    font-weight: bold;
    border-radius: 6px;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background 0.2s;
}

.sitemap-list li a:hover .sitemap-card-btn,
.sitemap-list li a:focus-visible .sitemap-card-btn {
    background: #c4651a;
}

@media (min-width: 768px) {
    .sitemap-list {
        gap: 12px;
    }

    .sitemap-list li a {
        min-height: 80px;
    }

    .sitemap-card-icon {
        font-size: 22px;
        min-width: 60px;
    }

    .sitemap-card-title {
        font-size: 16px;
    }

    .sitemap-card-desc {
        font-size: 14px;
    }

    .sitemap-card-btn {
        font-size: 14px;
        padding: 9px 20px;
    }
}

/****************************************************/
/* --- FAQ：カテゴリ見出し（faq.html）--- */
/****************************************************/

.faq-category {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: clamp(15px, 2vw, 17px);
    font-weight: 600;
    color: #b72661;
    background-color: #fff5f7;
    border-left: 5px solid #b72661;
    border-radius: 4px;
    padding: 12px 20px;
    margin: 2.4em 0 1em;
}

.faq-category i {
    font-size: 1em;
    flex-shrink: 0;
}

.entry-container .faq-category:first-child {
    margin-top: 0;
}

.faq-contact-note {
    margin-top: clamp(40px, 6vw, 60px);
    padding: clamp(28px, 4vw, 40px) 24px;
    background-color: #f9f4f6;
    border-radius: 8px;
    text-align: center;
}

.faq-contact-note p {
    margin: 0 0 20px;
    color: #555555;
    font-size: clamp(14px, 2vw, 16px);
}

.faq-contact-note .btn {
    display: inline-block;
    width: auto;
    padding: 14px 48px;
    font-size: clamp(14px, 2vw, 16px);
}

/*********************************************/
/* --- Be Free セクション：詳細誘導リンク --- */
/*********************************************/

.link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #b72661;
	font-size: 15px;
	text-decoration: none;
	font-weight: 500;
	transition: gap 0.2s ease;
}

.link-arrow:hover {
	filter: brightness(85%) contrast(120%);
	gap: 14px;
}

.link-arrow .arrow {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background-color: #b72661;
	color: #ffffff;
	font-size: 12px;
}

/* ============================================
   ヒーロースライドショー用スタイル
   ============================================ */

/* ヒーローセクション：スライドを重ねるため相対配置に変更 */
.hero {
	position: relative;   /* スライドの基準位置 */
	overflow: hidden;     /* スライドがはみ出ないようにクリップ */
}

/* 各スライド：ヒーローいっぱいに広がる絶対配置 */
.hero-slide {
	position: absolute;
	inset: 0;                                    /* top/right/bottom/left をすべて 0 に */
	background-position: center;
	background-size: cover;
	opacity: 0;                                  /* デフォルトは非表示 */
	transition: opacity 1.2s ease-in-out;        /* フェードイン/アウト 1.2秒 */
}

/* アクティブなスライドだけ表示 */
.hero-slide.active {
	opacity: 1;
}

/* ヒーローコンテンツ（テキスト）はスライドより前面に */
.hero-container {
	position: relative;
	z-index: 1;
}

/* ============================================
   サービスページ専用スタイル（service.html）
   ============================================ */

.service-grid,
.premium-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
	margin-bottom: 12px;
}

@media (max-width: 767px) {
	.service-grid,
	.premium-grid {
		grid-template-columns: 1fr;
	}
}

.service-card {
	background: #ffffff;
	border: 1px solid #f0e6e6;
	border-left: 4px solid #b72661;
	border-radius: 10px;
	padding: 16px 18px;
}

.service-card-title {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 15px;
	font-weight: 500;
	color: #222222;
	margin: 0 0 6px;
}

.service-card-title .fas {
	color: #b72661;
	font-size: 16px;
	width: 18px;
	text-align: center;
	flex-shrink: 0;
}

.service-card-desc {
	font-size: 13px;
	color: #707070;
	line-height: 1.65;
	margin: 0;
}

.premium-card {
	background: #faeeda;
	border: 1px solid #fac775;
	border-left: 4px solid #ba7517;
	border-radius: 10px;
	padding: 16px 18px;
}

.premium-card-header {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 8px;
}

.premium-card-header .fas {
	color: #854f0b;
	font-size: 16px;
	width: 18px;
	text-align: center;
	flex-shrink: 0;
}

.premium-badge {
	display: inline-block;
	padding: 2px 9px;
	border-radius: 20px;
	background: #ba7517;
	color: #faeeda;
	font-size: 10px;
	font-weight: 600;
	font-family: "Montserrat", sans-serif;
	letter-spacing: 0.06em;
	white-space: nowrap;
}

.premium-card-title {
	font-size: 15px;
	font-weight: 500;
	color: #412402;
	margin: 0 0 5px;
}

.premium-card-desc {
	font-size: 13px;
	color: #633806;
	line-height: 1.65;
	margin: 0;
}

.entry-container h2.premium-heading {
	color: #854f0b;
	background-color: #faeeda;
	border-left-color: #fac775;
}

/* サービスページ：ヒーロー画像（高さ固定・object-fit） */
.service-entry-img {
	margin: 0;
	padding: 0;
	width: 100%;
	height: 470px;
	overflow: hidden;
}

.service-entry-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	margin-bottom: 0;
}

@media (max-width: 767px) {
	.service-entry-img {
		height: 220px;
	}
}

/* 準備中バッジ */
.coming-soon-badge {
	display: inline-block;
	padding: 2px 9px;
	border-radius: 20px;
	background: #9e9e9e;
	color: #ffffff;
	font-size: 10px;
	font-weight: 600;
	font-family: "Montserrat", sans-serif;
	letter-spacing: 0.06em;
	white-space: nowrap;
}

/* 準備中カードの薄いスタイル */
.premium-card.coming-soon {
	opacity: 0.65;
}

/* 準備中の注記テキスト */
.coming-soon-note {
	font-size: 11px;
	color: #854f0b;
	margin: 6px 0 0;
	font-style: italic;
}
/* ============================================
   パートナーバナー（accessibility.html 隣接施設リンク用）
   ============================================ */
 
/* バナー全体：横並びフレックス・ピンク背景 */
.partner-banner {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 18px;
	background-color: #fff5f7;
	border: 1px solid #f4b8cf;
	border-radius: 8px;
	margin-top: 12px;
}
 
/* 絵文字アイコンエリア */
.partner-banner-icon {
	font-size: 24px;
	flex-shrink: 0;
	line-height: 1;
}
 
/* テキストエリア：施設名・説明文を縦並び */
.partner-banner-text {
	flex: 1;
}
 
/* 施設名 */
.partner-banner-name {
	font-size: 14px;
	font-weight: 500;
	color: #b72661;
	margin: 0 0 2px !important;
	line-height: 1.4;
}
 
/* 施設の説明文 */
.partner-banner-desc {
	font-size: 12px;
	color: #707070;
	margin: 0 !important;
	line-height: 1.4;
}
 
/* 「詳細を見る」ボタン */
.partner-banner-btn {
	display: inline-block;
	padding: 7px 16px;
	background-color: #b72661;
	color: #ffffff;
	border-radius: 4px;
	font-size: 13px;
	white-space: nowrap;
	text-decoration: none;
	flex-shrink: 0;
	transition: filter 0.2s;
}
 
.partner-banner-btn:hover {
	filter: brightness(90%) contrast(120%);
}
 
/* モバイル：ボタンを全幅で中央寄せ */
@media (max-width: 767px) {
	.partner-banner {
		flex-wrap: wrap;
	}
 
	.partner-banner-btn {
		width: 100%;
		text-align: center;
		box-sizing: border-box;
	}
}
 
/* ============================================
   マップボタングループ（access.html 住所下部）
   ============================================ */

/* ボタン2つを横並びに配置するコンテナ */
.map-btn-group {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 2.4em;
}

/* 「Googleマップで開く」をアウトラインスタイルに変更 */
.btn-map-primary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 20px;
	background-color: transparent;
	color: #b72661;
	border: 1px solid #b72661;
	border-radius: 4px;
	font-size: clamp(13px, 1.8vw, 15px);
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.2s, filter 0.2s;
}

.btn-map-primary:hover {
	background-color: #fff5f7;
	filter: none;
}

/* 「ルートを検索」アウトラインボタン */
.btn-map-secondary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 20px;
	background-color: transparent;
	color: #b72661;
	border: 1px solid #b72661;
	border-radius: 4px;
	font-size: clamp(13px, 1.8vw, 15px);
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.2s, filter 0.2s;
}

.btn-map-secondary:hover {
	background-color: #fff5f7;
	filter: none;
}

/* モバイル：ボタンを全幅に */
@media (max-width: 767px) {
	.map-btn-group {
		flex-direction: column;
	}

	.btn-map-primary,
	.btn-map-secondary {
		justify-content: center;
		width: 100%;
		box-sizing: border-box;
	}
}