/* ==========================================================================
   レスポンシブ対応
   PC: 1200px以上 / タブレット: 768px〜1199px / スマートフォン: 767px以下
   ========================================================================== */

/* ---------- タブレット以下（1199px以下） ---------- */
@media (max-width: 1199px) {
	.card-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.header__nav-list {
		gap: 1.1rem;
	}

	.header__phone-note {
		display: none;
	}

	.header__eyebrow {
		display: none;
	}

	.info-row {
		grid-template-columns: repeat(2, 1fr);
	}

	.info-row .info-card:last-child {
		grid-column: 1 / -1;
	}

	.info-row--2col .info-card:last-child {
		grid-column: auto;
	}
}

@media (max-width: 900px) and (min-width: 768px) {
	.header__top-inner {
		flex-wrap: wrap;
		row-gap: 0.5rem;
		min-height: auto;
		padding: 0.6rem 1.25rem;
	}

	.header__hours-badge {
		font-size: 0.75rem;
		padding: 0.45rem 0.8rem;
	}
}

/* ---------- スマートフォン（767px以下） ---------- */
@media (max-width: 767px) {
	:root {
		--header-height: 108px;
	}

	body {
		font-size: 15px;
	}

	.section {
		padding: 3rem 1.25rem;
	}

	.section__inner--split {
		grid-template-columns: 1fr;
	}

	.card-grid {
		grid-template-columns: 1fr;
	}

	.header__top-inner {
		min-height: 56px;
		padding: 0.5rem 1.25rem;
	}

	.header__logo img {
		max-height: 34px;
	}

	.header__eyebrow {
		font-size: 0.65rem;
	}

	.header__title {
		font-size: 0.95rem;
	}

	.header__contact {
		display: none;
	}

	.header__nav-inner {
		min-height: 52px;
		padding: 0 1.25rem;
	}

	.header__menu-toggle {
		display: inline-flex;
	}

	.floating-call {
		display: inline-flex;
	}

	.header__nav {
		position: fixed;
		top: var(--header-height);
		left: 0;
		right: 0;
		bottom: 0;
		background-color: #fff;
		padding: 1.5rem;
		overflow-y: auto;
		transform: translateX(100%);
		transition: transform 0.25s ease;
	}

	.header__nav.is-open {
		transform: translateX(0);
	}

	.header__nav-list {
		flex-direction: column;
		align-items: flex-start;
		gap: 0;
	}

	.header__nav-list a {
		display: block;
		width: 100%;
		padding: 1rem 0;
		border-bottom: 1px solid var(--color-border);
	}

	.header.is-menu-open .header__menu-bar:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.header.is-menu-open .header__menu-bar:nth-child(2) {
		opacity: 0;
	}

	.header.is-menu-open .header__menu-bar:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	.hero {
		min-height: 600px;
	}

	.hero__scrim {
		background: linear-gradient(180deg, rgba(255,255,255,0.94) 0%, rgba(255,255,255,0.88) 55%, rgba(255,255,255,0.6) 100%);
	}

	.hero__inner {
		padding: calc(var(--header-height) + 1.5rem) 1.25rem 2.5rem;
	}

	.hero__title {
		max-width: none;
	}

	.hero__card {
		width: 100%;
		padding: 1.1rem 1.25rem;
	}

	.hero__card-phone {
		font-size: 1.3rem;
	}

	.about-gallery {
		grid-template-columns: 1fr;
	}

	.about-gallery__side {
		flex-direction: row;
	}

	.info-row,
	.info-row .info-card:last-child {
		grid-template-columns: 1fr;
		grid-column: auto;
	}

	.info-row {
		display: flex;
		flex-direction: column;
	}

	.wave-top {
		height: 28px;
	}

	.access-map {
		grid-template-columns: 1fr;
	}

	.access-map__item {
		grid-template-columns: 72px 1fr;
	}

	.content-block__gallery {
		grid-template-columns: 1fr;
	}

	.info-table th {
		width: 7em;
		font-size: 0.9rem;
	}

	.footer__legal {
		flex-direction: column;
		align-items: flex-start;
	}

	.phone-cta__number {
		flex-direction: column;
		gap: 0.25rem;
	}
}

/* ---------- 極小画面向け微調整 ---------- */
@media (max-width: 380px) {
	.info-table th,
	.info-table td {
		display: block;
		width: 100%;
	}

	.info-table th {
		border-bottom: none;
		padding-bottom: 0.25rem;
	}
}
