@charset "utf-8";

/*
 * ござらっせ 共通CSS
 * 重複セレクタを統合し、後勝ちの指定を維持して整理
 * 2026-07-23
 */

@media all and (max-width: 896px) {
#gHeader {
	position: absolute;
	padding: 1rem;
}

/* Top page FAQ */
	.topFaq {
		padding: 11rem 0 5rem;
		background-size: auto 7rem, auto;
	}
	.topFaqInner {
		display: block;
	}
	.topFaqNav {
		padding-top: 1rem;
		text-align: center;
	}
	.topFaqOkimono {
		top: -9rem;
		width: 8rem;
	}
	.topFaqTitle {
		width: 25rem;
		margin-bottom: 1.5rem;
	}
	.topFaqLine {
		width: 29rem;
		margin-bottom: 1.2rem;
	}
	.topFaqAllLink {
		margin-bottom: 2.5rem;
		font-size: 1.4rem;
	}
	.topFaqGuideLinks {
		grid-template-columns: 1fr 1fr;
		gap: 1rem;
	}
	.topFaqGuideLinks a {
		min-height: 5.8rem;
		padding: 1rem 1.2rem;
		border-radius: 1.5rem;
		font-size: 1.5rem;
	}
	.topFaqGuideLinks img {
		width: 1.8rem;
	}
	.topFaqTextLinks {
		margin-top: 1.2rem;
		margin-bottom: 4rem;
		gap: 2.5rem;
	}
	.topFaqTextLinks a {
		font-size: 1.4rem;
	}
	.topFaqList details + details {
		margin-top: 1rem;
	}
	.topFaqList summary {
		min-height: 5.5rem;
		padding: .8rem 4.5rem .8rem 5.5rem;
		font-size: 1.5rem;
		line-height: 1.5;
		clip-path: polygon(2rem 0, calc(100% - 2rem) 0, 100% 50%, calc(100% - 2rem) 100%, 2rem 100%, 0 50%);
	}
	.topFaqList summary > img {
		left: 0;
		width: 5rem;
		height: 5rem;
	}
	.topFaqList .visitorFaqToggle {
		right: 1.7rem;
	}
	.topFaqList details > div {
		margin: 0 2rem;
		padding: 1.5rem;
	}
	.topFaqList details > div p {
		font-size: 1.4rem;
	}

	.topConcept {
		padding: 9rem 0 8rem;
	}
	.topConceptDeco {
		width: 43rem;
		height: 44rem;
	}
	.topConceptDeco01 {
		top: -9rem;
		left: -19rem;
		clip-path: inset(9rem 0 0);
	}
	.topConceptDeco02 {
		right: -21rem;
		bottom: 8rem;
		clip-path: none;
	}
	.topConceptDeco03 {
		bottom: -27rem;
		left: -23rem;
		clip-path: inset(0 0 27rem);
	}
	.topConceptInner {
		display: flex;
		flex-direction: column;
		gap: 2.5rem;
	}
	.topConceptKingyo {
		top: -12rem;
		left: 50%;
		width: 16rem;
	}
	.topConceptPhoto {
		width: 100%;
		border-radius: 3rem;
	}
	.topConceptPhoto01,
	.topConceptPhoto02 {
		height: 27rem;
	}
	.topConceptPhoto01 {
		order: 3;
		margin-top: 0;
	}
	.topConceptLead {
		display: contents;
	}
	.topConceptLead h2 {
		order: 1;
		margin-bottom: 0;
		text-align: center;
	}
	.topConceptLead h2 img {
		width: 100%;
	}
	.topConceptLine {
		order: 2;
		height: auto;
		margin-bottom: 2rem;
	}
	.topConceptLead > p {
		order: 4;
		text-align: left;
	}
	.topConceptLead p,
	.topConceptText p {
		font-size: 1.6rem;
		line-height: 1.8;
		letter-spacing: .03em;
	}
	.topConceptLead p br,
	.topConceptText p br {
		display: none;
	}
	.topConceptText {
		display: contents;
		padding-left: 0;
	}
	.topConceptText p {
		order: 6;
		text-align: left;
	}
	.topConceptText p + p {
		order: 7;
		margin-top: 2rem;
	}
	.topConceptText a {
		order: 9;
		width: 24rem;
		margin: 0 auto 0;
		font-size: 1.6rem;
	}
	.topConceptPhoto02 {
		order: 5;
	}
	.topConceptClosing {
		order: 8;
		margin-top: 1rem;
		padding: 0;
		text-align: center;
		font-size: 1.8rem;
	}

	.topInfo {
		padding: 6rem 0 10rem;
	}
	.topInfoInner {
		width: min(100% - 4rem, 60rem);
	}
	.topInfoHeading {
		margin-bottom: 1.5rem;
	}
	.topInfoHeading img {
		width: 20rem;
	}
	.topInfoLine {
		margin-bottom: 4rem;
	}
	.topInfoMain {
		display: flex;
		flex-direction: column;
		gap: 3rem;
	}
	.topInfoList {
		font-size: 1.4rem;
	}
	.topInfoList > div {
		grid-template-columns: 8.5rem 1fr;
		gap: 1rem;
		padding: 1.3rem 0;
	}
	.topInfoList small {
		font-size: 1.2rem;
	}
	.topInfoMap,
	.topInfoMap iframe {
		min-height: 36rem;
	}
	.topInfoMap {
		border-width: .7rem;
		border-radius: 2.5rem;
	}
	.topInfoButtons {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		width: 70%;
		margin: 3rem auto 0 auto;
	}
	.topInfoBanner {
		margin-top: 3rem;
		width: 100%;
	}

.headerLogo {
	width: 14rem;
}

.gNavList {
	display: none;
}

.menuBtn {
	width: 4.4rem;
	height: 4.4rem;
}

.siteMenu {
	width: 100%;
	padding: 8rem 3rem 4rem;
}

.bgOrange,
	.bgBrown01,
	.bgBrown02,
	.bgBeige,
	#gFooter {
	background-size: 900px auto;
}

.waveBottom {
	margin-bottom: 7.5rem;
}

.waveBottom::after {
	height: 7.5rem;
	bottom: -7.5rem;
	background-size: 100% 100%;
}

.pageHero {
	height: 32rem;
}

.pageIntro {
	padding: 5rem 0 8rem;
}

.pageIntroTitle {
	font-size: 2.8rem;
}

.pageIntroText {
	margin-top: 2rem;
	line-height: 1.9;
}

.sectionBlock {
	padding: 8rem 0;
}

.sectionTitleFrame {
	margin-bottom: 4rem;
	padding: 1rem 1.5rem;
}

.sectionTitle {
	font-size: 2.2rem;
}

.cardGrid,
	.newsGrid,
	.featureGrid,
	.serviceGrid,
	.infoGrid,
	.onsenFeature,
	.faqGrid {
	grid-template-columns: 1fr;
}

.topHero {
	height: 52rem;
}

.topHeroSlide img {
	object-position: center;
}

.topHeroDecorLeft {
	width: 50.7%;
}

.topHeroDecorRight {
	width: 30%;
}

.topHeroLine {
	top: 6.5rem;
	right: 1.5rem;
	width: 12rem;
}

.topHeroPr01 {
	right: 1.5rem;
	bottom: 1.5rem;
	z-index: 8;
	width: min(25rem, 68vw);
}

.topHeroPr02 {
	right: 1.5rem;
	bottom: -10rem;
	z-index: 8;
	width: min(18rem, 41vw);
}

.topHeroBottom {
	left: 50%;
	width: 175%;
	transform: translateX(-50%);
}

.topHeroRakko {
	left: 2%;
	bottom: 0;
	z-index: 9;
	width: 18rem;
}

.topOrangeArea {
	background-position: center top, center top;
	background-size: auto 58rem, auto;
}

.topPickup {
	padding: 6rem 0 3rem;
}

.topPickupInner {
	width: calc(100% - 4rem);
	padding-bottom: 2rem;
	border-bottom-width: .4rem;
}

.topPickupContent,
.topPickupLink {
	align-items: flex-start;
}

.topPickupContent {
	flex-direction: column;
	gap: 1.5rem;
}

.topPickupTitle {
	flex-basis: auto;
	width: 16rem;
}

.topPickupLink {
	gap: 1rem;
	font-size: 1.8rem;
	line-height: 1.6;
}

.topPickupLink::before {
	margin-top: .5rem;
	flex: 0 0 auto;
}

.topPickupLink time {
	flex: 0 0 auto;
	font-size: 1.8rem;
}

.topNews {
	padding: 3rem 0 7rem;
}

.topNews > .inner {
	width: 100%;
}

.topNewsTitle {
	width: 32rem;
	margin-bottom: 2.5rem;
}

.topNewsSlider {
	overflow: hidden;
	width: 100%;
}

.topNewsSlider .topNewsList {
	display: flex;
	align-items: stretch;
	width: 100%;
	gap: 0;
	transition: transform .45s ease;
	will-change: transform;
}

.topNewsSlider .topNewsList .shokujiNewsCard {
	flex: 0 0 82%;
	width: 82%;
	padding: 0 .8rem;
}

.topNewsSlider .topNewsList .is-clone {
	display: block;
}

.topNewsDots {
	display: flex;
	justify-content: center;
	gap: 1rem;
	margin-top: 2rem;
}

.topNewsDots button {
	width: 1rem;
	height: 1rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(78,56,47,.35);
}

.topNewsDots button.is-active {
	background: var(--turquoise);
}

.topEnjoy {
	padding: 4rem 0 6rem;
}

.topEnjoyAhiru {
	top: -12rem;
	width: 13rem;
}

.topEnjoyTitle {
	width: 31rem;
	margin-bottom: 2rem;
}

.topEnjoyLine {
	width: 32rem;
	margin-bottom: 2.5rem;
}

.topEnjoy p {
	font-size: 1.6rem;
	line-height: 1.9;
	text-align: left;
}

.topEnjoy p br {
	display: none;
}

.topEnjoyGrid {
	grid-template-columns: 1fr;
	gap: 4rem;
	margin-top: 5rem;
}

.topEnjoyCard {
	padding: 2.5rem 2rem 3rem;
}

.topEnjoyCard h3 {
	height: 4rem;
	margin-bottom: 2rem;
}

.topEnjoyCard h3 img {
	max-height: 3.2rem;
}

.topEnjoyCard h4 {
	margin: 2rem 0 1.5rem;
	font-size: 2rem;
}

.topEnjoyCard p {
	min-height: 0;
	font-size: 1.5rem;
	line-height: 1.8;
	text-align: center;
}

.topEnjoyCard p br {
	display: block;
}

.topEnjoyMore {
	width: 90%;
	margin-top: 2.5rem;
	padding: 1.3rem 4rem;
	font-size: 1.8rem;
}

.visitorPanel {
	padding: 4rem 2rem;
	border-radius: 2rem;
}

.stepList li {
	grid-template-columns: 1fr;
	gap: 2rem;
}

.onsenFeature:nth-child(even) .placeholderImage {
	order: 0;
}

.footerNav {
	grid-template-columns: repeat(2, 1fr);
	gap: 3rem 2rem;
}

.footerBottom,
	.footerBrand {
	display: block;
}

.footerInfo {
	margin: 2rem 0 0;
}

.copyright {
	margin-top: 3rem;
}

}

@media all and (max-width: 896px) {
.siteMenuList > li > a,
	.siteMenuAccordion {
	font-size: 1.7rem;
}

.footerInner {
	padding-top: 5rem;
	padding-bottom: 4rem;
}

.footerNav {
	grid-template-columns: 1fr;
	gap: 3rem;
}

.footerNavColumn ul {
	padding-left: .5rem;
}

.footerNavTitle {
	width: 100%;
	margin-bottom: 1.2rem;
}

.footerNavLinks {
	grid-column: auto;
	justify-content: flex-start;
}

.footerNavLinks a,
	.footerNavLinks .isWide {
	width: 100%;
	min-width: 0;
	text-align: center;
}

.footerBottom {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	text-align: center;
}

.footerLogo {
	width: 18rem;
	margin: 0 auto;
}

.footerInfo {
	margin: 0;
	font-size: 1.2rem;
}

.footerSocialArea {
	align-items: center;
}

.copyright {
	margin-top: 1.2rem;
	white-space: normal;
}

}

@media all and (max-width: 896px) {
.topHeroDecorRight {
	display: none;
}

.footerInner {
	padding-top: 0;
	padding-bottom: 0;
}

.footerNav {
	display: none;
}

}

@media all and (max-width: 896px) {
/* The compact mobile footer starts directly with the logo area. */

main > .waveBottom:last-child {
	margin-bottom: 0;
}

main > .waveBottom:last-child::after {
	display: none;
}

}

/* Onsen SP */

@media (max-width: 896px) {
.onsenHero {
	height: 35rem;
}

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

.onsenHeroSlides img {
	display: none;
}

.onsenHeroSlides img:nth-child(2) {
	display: block;
}

.onsenIntro {
	padding: 9rem 0 3rem;
}

.onsenIntroCloud {
	top: -5.5rem;
	height: 8rem;
}

.onsenTitleImage {
	width: min(34rem,78vw);
}

.onsenIntro p {
	margin-top: 2.5rem;
	padding: 0 2rem;
	font-size: 1.4rem;
	line-height: 1.9;
}

.onsenIntroIllust {
	width: 22rem;
}

.onsenFeatures {
	padding: 4rem 0 0;
}

.onsenSectionTitle {
	margin-bottom: 4rem;
}

.featureRow,.featureRow.isReverse {
	display: flex;
	gap: 2.5rem;
	margin-bottom: 3rem;
	flex-direction: column;
}

.featureRow.isReverse .featurePhoto {
	order: 0;
}

.featureCopy h2 {
	font-size: 2.3rem;
	text-align: center;
}

.featureCopy p {
	font-size: 1.6rem;
	text-align: left;
	line-height: 1.8;
}

.featureTitleImage {
	width: 100%;
	max-width: 35rem;
	margin: 0 auto;
}

.roundBtn {
	display: flex;
	min-width: 0;
	width: 100%;
}

.onsenTour {
	padding: 5rem 0 4rem 0;
}

.tourHeading {
	margin-bottom: 0;
}

.tourHeading img:first-child {
	margin-bottom: 0;
	padding-top: 2rem;
	width: 9rem;
}

.floorHeading {
	grid-template-columns: 6rem auto 1fr;
	gap: 1rem;
	margin-top: 2rem;
}

.floorHeading span {
	display: block;
	height: 4rem;
	background: url("../image/common/line01.png") no-repeat left center;
	background-size: 500% auto;
}

.floorHeading img {
	width: 5.5rem;
}

.floorHeading p {
	font-size: 2rem;
}

.bathGrid {
	grid-template-columns: repeat(2,1fr);
	gap: 1.5rem;
}

.bathCard {
	min-height: 34rem;
	padding: 1.2rem;
}

.bathCard p {
	font-size: 1.15rem;
	line-height: 1.7;
}

.onsenQuality {
	padding: 7rem 0 4rem;
}

.qualityIllust {
	margin-top: -15rem;
	width: 10rem;
}

.onsenQuality h2 {
	font-size: 2.4rem;
	line-height: 1.6;
}

.qualityBox {
	grid-template-columns: 1fr;
	gap: 1.5rem;
	padding: 2.5rem 2rem;
	border-radius: 1.8rem;
}

.qualityBox > img {
	width: 7rem;
}

.qualityBox p,.qualityBox li {
	font-size: 1.6rem;
}

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

}

@media all and (max-width: 896px) {
/*#onsen #gHeader,
.facilityPage #gHeader {
	position: relative;
	padding: 1rem;
	border-bottom-width: .7rem;
}*/

#onsen .headerLogo,
.facilityPage .headerLogo {
	width: 14rem;
}

.onsenHeroTrack {
	aspect-ratio: 4 / 3;
}

.onsenHeroBottom {
	width: 175%;
	left: 50%;
	transform: translateX(-50%);
}

.onsenHeroRakko {
	left: 6%;
	bottom: 1rem;
	width: 12rem;
}

.onsenHeroDots {
	bottom: 2.3rem;
	gap: .8rem;
}

.onsenHeroDots button {
	width: 1rem;
	height: 1rem;
}

.onsenWave {
	height: 7.5rem;
}

.photoFrameTop {
	padding: 0;
}

.qualityTitleImage {
	width: 94%;
	margin-bottom: 3rem;
}

.qualityBox {
	grid-template-columns: 1fr;
	gap: 1.5rem;
	padding: 2.5rem 2rem;
}

.qualityBox > img {
	width: 7rem;
	margin: 0;
}

.qualityDefinition {
	grid-template-columns: 7rem 1fr;
	gap: .8rem 1rem;
}

.qualityList {
	font-size: 1.2rem;
	gap: .8rem 1.5rem;
}

.qualityListBenefits {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

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

}

/* ------------------------------------------------------------
  Onsen page refinement v07
------------------------------------------------------------ */

@media all and (max-width: 896px) {
.onsenHeroRakko {
	left: 2%;
	bottom: 0;
	width: 18rem;
}

.onsenSectionTitle {
	margin-bottom: 3rem;
}

.featureTitleImage {
	margin-top: 0.5rem;
	margin-bottom: 1.5rem;
}

.tourHeading img:last-child {
	max-width: 150%;
	overflow: hidden;
	height: auto;
	margin-top: 2rem;
}

.qualityTitleImage {
	display: block;
	width: 140%;
	height: auto;
	max-width: none;
	margin: 0 0 3rem -20%;
}

.qualityBox > img {
	height: auto;
	width: 6rem;
}

}

/* Onsen page refinement v08 */

@media all and (max-width: 896px) {
.onsenIntro,
.ganbanIntro {
	padding: 3rem 0 2rem;
}

.onsenTitleImage,
.ganbanTitleImage {
	width: min(34rem, 78vw);
}

.onsenIntroLine,
.ganbanIntroLine {
	width: min(34rem, 82vw);
	margin: 2rem auto 2.4rem;
}

.onsenIntro p,
.ganbanIntro p {
	padding: 0;
	font-size: 1.8rem;
	line-height: 1.8;
	text-align: left;
}

.onsenIntroIllust,
.ganbanIntroIllust {
	bottom: -7rem;
	width: 20rem;
}

.onsenFeatures{
	padding-top: 5rem;
}
.ganbanFeatures {
	padding: 0;
}

.bathCard {
	padding-top: 2.8rem;
}

.bathCard::before {
	height: 3.2rem;
}

.bathCard::after {
	top: 2.9rem;
}

}

/* ------------------------------------------------------------
  Onsen bath cards: SP single-column layout
------------------------------------------------------------ */

@media all and (max-width: 896px) {
.bathGrid {
	grid-template-columns: 1fr;
	gap: 3rem;
}

.bathCard {
	min-height: 0;
	padding: 1.8rem;
	padding-top: 3.2rem;
}

.bathCard::before {
	height: 3.6rem;
}

.bathCard::after {
	top: 3.3rem;
}

.bathPhoto {
	height: auto;
	margin: -1rem -.6rem 1.8rem;
	padding: 1rem;
}

.bathPhoto img {
	height: auto;
	aspect-ratio: 16 / 10;
}

.bathCard h3 {
	font-size: 2rem;
}

.bathCard p {
	margin-top: 1.8rem;
	font-size: 1.6rem;
	line-height: 1.9;
}

}

/* ------------------------------------------------------------
  Onsen quality lists: SP refinement
------------------------------------------------------------ */

@media all and (max-width: 896px) {
/* 効能・禁忌はカラム分けせず、1列で縦積み */

.qualityListBenefits,
	.qualityListContra {
	grid-template-columns: 1fr;
}

/* 泉質の菱形マーク位置を効能・禁忌に揃える */

.qualityDefinition {
	padding-left: 1.6rem;
}

}

/* SP: 泉質を縦積みに */

@media all and (max-width: 896px) {
.qualityDefinition {
	display: block;
	font-size: 1.6rem;
}

.qualityDefinition dt {
	display: flex;
	align-items: center;
	margin: 0 0 .4rem;
	padding-left: 2.6rem;
}

.qualityDefinition dd {
	margin: 0 0 1rem 0;
}

}

/* ==========================================================
   Tablet Portrait (768px〜896px)
	温泉・大浴場 微調整
   ========================================================== */
@media (min-width: 768px) and (max-width: 896px) {

	.floorHeading span {
		height: 4rem;
		background: url("../image/common/line01.png") no-repeat left center;
		background-size: 100% auto;
	}

	.bathCard h3 {
		font-size: 2rem;
		padding-bottom: 3rem;
		background-size: 70%;
	}

}

/* 岩盤浴固有部分 */
@media all and (max-width: 896px) {
	.ganbanSectionTitle {
		margin-bottom: 3rem;
		padding-top: 2rem;
	}

	.ganbanFeatureRow:not(:last-child) {
		margin-bottom: 3rem;
	}

	.ganbanHowtoInner {
		padding-top: 0;
		padding-bottom: 3rem;
	}

	.ganbanHowtoTitle {
		margin-bottom: 3rem;
	}

	.ganbanStepList {
		grid-template-columns: repeat(2, 1fr);
		gap: 3rem 1.5rem;
	}

	.ganbanStepList h3 {
		font-size: 1.8rem;
	}

	.ganbanStepList p {
		font-size: 1.4rem;
		line-height: 1.6;
	}
	.ganbanStone { padding: 15rem 0 7rem; }
	/*.ganbanStoneHeading { margin-top: -22rem; width: 60%; margin-bottom: 3rem; }*/
	
	 .ganbanStoneHeading {
        margin-top: -22rem;
        width: 100%;
        margin-bottom: 3rem;
    }

    .ganbanStoneTitle {
        display: block;
        width: 100%;
        max-width: none;
        margin: 0;
    }
	.ganbanStoneIllust {
		width: 28rem;
	}
	
	
	.ganbanStoneGrid { grid-template-columns: repeat(2,1fr); gap: 1.5rem; }
	.ganbanStoneCard { padding: 1.2rem 1.2rem 1.8rem; min-height: 30rem; }
	.ganbanStoneCard h3 { 
		font-size: 1.8rem;
        margin-top: 1.5rem;
        margin-bottom: 1rem;
        line-height: 1;
	}
	.ganbanStoneCard p { font-size: 1.4rem; }
	.ganbanStoneCard::before { height: 3rem; }
	.ganbanStoneCard::after { top: 3rem; }
	.ganbanStonePhoto { padding: 2.5rem 1rem 0 1rem; height: auto; width: auto; }
	
	.ganbanArea { padding: 6rem 0 2rem; }
	.ganbanAreaIllust { top: -8rem; width: 28rem; }
	.ganbanAreaGroup + .ganbanAreaGroup { margin-top: 6rem; }
	.ganbanAreaTitle {
		/*width: 94%; margin-bottom: 1.5rem;*/
		display:block;
        width:120%;
        max-width:none;
        margin:0 0 1.5rem -10%;
	}
	.ganbanAreaLine { width: 86%; margin-bottom: 4rem; }
	.ganbanAreaGrid { grid-template-columns: 1fr; gap: 4.5rem; }
	.ganbanAreaCard { padding: 1.8rem 1.8rem 2.2rem; }
	.ganbanAreaCard h3 {
		font-size: 2rem;
        margin-bottom: 1rem;
	}
	.ganbanAreaCard p { font-size: 1.4rem; }
	.ganbanCoolCard { grid-column: auto; display: block; }
	.ganbanCoolCard .ganbanAreaPhoto { min-height: auto; margin-bottom: 1.8rem; }
	.ganbanCoolCard::before { background-image: url(../image/common/photo-frame-card.png); }
	.ganbanCoolCard { margin-top: 0; }
	.ganbanCoolCard h3 { text-align: center; }
	.ganbanCoolTop { height: 1.8rem; margin: -.8rem -1.8rem .8rem; }
	.ganbanNotice { padding: 0 1rem 4rem 1rem; }
	.ganbanNotice .inner { width: calc(100% - 2rem); }
	.ganbanNoticeBox {
		grid-template-columns: 1fr;
		min-height: 0;
		overflow: hidden;
		border-radius: 1.8rem;
	}
	.ganbanNoticeHydration {
		grid-template-columns: 5.5rem 1fr;
		gap: .5rem 1.5rem;
		padding: 2rem;
		border-radius: 1.8rem 1.8rem 0 0;
	}
	.ganbanNoticeDrop { grid-row: 1 / 3; }
	.ganbanNoticeDrop img { width: 4.5rem; }
	.ganbanNoticeTitle { margin-left: 0; font-size: 1.8rem; white-space: normal; }
	.ganbanNoticeText { grid-column: 2; font-size: 1.3rem; font-weight: 500; }
	.ganbanNoticeDrink {
		grid-template-columns: 4.5rem 1fr;
		gap: 1.5rem;
		padding: 1.8rem 2rem;
		border-radius: 0 0 1.8rem 1.8rem;
	}
	.ganbanNoticeCup img { width: 3.5rem; }
	.ganbanNoticeDrink p { margin-left: 1rem; font-size: 1.5rem; white-space: normal; }
	.onsenWaveBeigeBrown { height: 6rem; }
	
}


/* ------------------------------------------------------------
  Sauna page: SP
------------------------------------------------------------ */
@media all and (max-width: 896px) {
.sauna_intro {
	padding: 3rem 0 2rem;
}
.sauna_titleImage {
	width: min(34rem, 78vw);
}
.sauna_introLine {
	width: min(34rem, 82vw);
	margin: 2rem auto 2.4rem;
}
.sauna_intro p {
	padding: 0;
	font-size: 1.8rem;
	line-height: 1.8;
	text-align: left;
}
.sauna_introIllust {
	bottom: -10rem;
	width: 18rem;
}
.sauna_features {
	padding: 2rem 0 1rem;
}
.sauna_features .onsenNarrow {
	width: calc(100% - 2rem);
}
.sauna_sectionTitle {
	width: 100%;
	max-width: none;
	margin: 0 0 3rem 0;
}
.sauna_featureRow,
.sauna_featureRow.isReverse {
	display: flex;
	gap: 2.5rem;
	margin-bottom: 4rem;
	flex-direction: column;
}
.sauna_featureRow.isReverse .sauna_featurePhoto {
	order: 0;
}
.sauna_featurePhoto {
	width: 100%;
	max-width: 100%;
}
.sauna_item06 .sauna_featurePhoto {
	position: static;
	z-index: auto;
	width: 100%;
	max-width: 100%;
	margin: 0;
	justify-self: auto;
	transform: none;
}
.sauna_featureCopy,
.sauna_item01 .sauna_featureCopy,
.sauna_item02 .sauna_featureCopy,
.sauna_item03 .sauna_featureCopy,
.sauna_item04 .sauna_featureCopy,
.sauna_item05 .sauna_featureCopy,
.sauna_item06 .sauna_featureCopy,
.sauna_item07 .sauna_featureCopy {
	transform: none;
}

.sauna_item06 .sauna_featureCopy {
	position: static;
	z-index: auto;
	width: 100%;
	margin: 0;
	padding: 0;
	align-self: auto;
	justify-self: auto;
}
	.sauna_item06 .sauna_featureCopy p {
		text-align: left;
	}
.sauna_featureCopy,
.sauna_item01 .sauna_featureCopy,
.sauna_item02 .sauna_featureCopy,
.sauna_item03 .sauna_featureCopy,
.sauna_item04 .sauna_featureCopy,
.sauna_item05 .sauna_featureCopy,
.sauna_item06 .sauna_featureCopy,
.sauna_item07 .sauna_featureCopy {
	text-align: left;
}
.sauna_heading,
.sauna_item01 .sauna_heading,
.sauna_item02 .sauna_heading,
.sauna_item03 .sauna_heading,
.sauna_item04 .sauna_heading,
.sauna_item05 .sauna_heading,
.sauna_item06 .sauna_heading,
.sauna_item07 .sauna_heading {
	margin-right: auto;
	margin-left: auto;
}
.sauna_featureCopy p {
	margin-top: 1.8rem;
	font-size: 1.6rem;
	line-height: 1.8;
	text-align: left;
}
.sauna_heading01 { width: 33.8rem; }
.sauna_heading02 { width: 15.3rem; }
.sauna_heading03 { width: 32rem; }
.sauna_heading04 { width: 27.5rem; }
.sauna_heading05 { width: 17.9rem; }
.sauna_heading06 { width: 16rem; }
.sauna_heading07 { width: 23.9rem; }
}

.sauna_item06 {
	padding: 0;
}

#sauna .onsenWaveBeigeBrown { height: 0; }

/* ------------------------------------------------------------
  Rest area / Facilities page: SP
------------------------------------------------------------ */
@media all and (max-width: 896px) {
	.kyukei_intro {
		padding: 3rem 0 1.5rem;
	}
	.kyukei_titleImage {
		width: min(34rem, 82vw);
	}
	.kyukei_introLine {
		width: min(34rem, 82vw);
		margin: 2rem auto;
	}
	.kyukei_pageLinks {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: .8rem;
		margin-bottom: 2rem;
	}
	.kyukei_pageLinks a {
		width: 100%;
		height: 4.3rem;
		padding: 0 .5rem;
		font-size: 1.15rem;
	}
	.kyukei_intro p {
		font-size: 1.6rem;
		line-height: 1.8;
		text-align: left;
	}
	.kyukei_introIllust {
		right: 35%;
        bottom: -13rem;
        width: 11rem;
	}
	.kyukei_floor {
		padding: 5rem 0 4rem;
	}
	.kyukei_floor .onsenNarrow {
		width: calc(100% - 4rem);
	}
	.kyukei_sectionTitle {
		width: 100%;
		margin-bottom: 3rem;
	}
	.kyukei_mainFeature,
	.kyukei_mainFeature.isReverse {
		grid-template-columns: 1fr;
		gap: 2.5rem;
		margin-bottom: 4rem;
	}
	.kyukei_mainFeature.isReverse .kyukei_mainPhoto,
	.kyukei_mainFeature.isReverse .kyukei_mainCopy {
		grid-column: auto;
		grid-row: auto;
	}
	.kyukei_mainFeature.isReverse .kyukei_mainPhoto {
		order: 0;
	}
	.kyukei_mainFeature.isReverse .kyukei_mainCopy {
		order: 1;
		text-align: left;
	}
	.kyukei_mainFeature.isReverse .kyukei_heading {
		margin-right: auto;
		margin-left: auto;
	}
	.kyukei_heading {
		width: 21.7rem;
		margin: 0 auto 1.8rem;
	}
	.kyukei_heading01 { width: 14.5rem; }
	.kyukei_heading02 { width: 25.8rem; }
	.kyukei_heading03 { width: 14.5rem; }
	.kyukei_heading04 { width: 25.8rem; }
	.kyukei_mainCopy p {
		font-size: 1.6rem;
		line-height: 1.8;
		text-align: left;
	}
	.kyukei_photoLine {
		width: 100%;
		margin-bottom: 3rem;
	}
	.kyukei_squareGrid {
		display: flex;
		gap: 2rem;
		margin-right: -2rem;
		padding: 0 2rem 1rem 0;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-left: 0;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.kyukei_squareGrid::-webkit-scrollbar {
		display: none;
	}
	.kyukei_squareItem {
		width: 60%;
		min-width: 60%;
		margin: 0;
		scroll-snap-align: start;
	}
	.kyukei_squareItem figcaption {
		font-size: 1.4rem;
	}
	.kyukei_floorGroup,
	.kyukei_mapSection {
		padding-top: 6rem;
	}
	.kyukei_map {
		width: 100%;
	}
}


/* ------------------------------------------------------------
  Visitor page: SP
------------------------------------------------------------ */
@media all and (max-width: 896px) {
	.visitorHero { height: 30rem; }
	.visitorHeroImage { background-position: center; }
	.visitorIntro {
		padding: 3rem 0;
        margin-bottom: -3rem;
	}
	.visitorTitleImage { width: min(34rem, 82vw); }
	.visitorIntroLine { width: min(34rem, 82vw); margin: 2rem auto 0 auto; padding-bottom: 2rem; }
	.visitorPageLinks { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; margin-bottom: 2rem; }
	.visitorPageLinks a { width: 100%; min-width: 0; height: 5.2rem; padding: 0 .4rem; font-size: 1.15rem; line-height: 1.3; text-align: center; }
	.visitorIntro p { font-size: 1.5rem; line-height: 1.8; text-align: left; }
	.visitorNarrow { width: calc(100% - 3rem); }
	.visitorPanel { padding: 3rem 2rem 4rem; border-radius: 1.8rem; }
	.visitorPanel + .visitorPanel { margin-top: 5rem; }
	.visitorSectionTitle { width: 100%; margin-bottom: 3rem; }
	.visitorStepList li { grid-template-columns: 1fr; gap: 1.5rem; }
	.visitorStepList li + li { margin-top: 3.5rem; }
	.visitorStepPhoto { border-width: .4rem; }
	.visitorStepHeading { display: block; width: auto; max-width: 100%; height: 4.5rem; margin: 0 auto; object-fit: contain; object-position: center; }
	.visitorStepCopy p { margin-top: 1rem; font-size: 1.6rem; line-height: 1.8; }
	.visitorBelongingsLead { font-size: 1.8rem; }
	.visitorBelongingsText { font-size: 1.6rem; text-align: left; }
	.visitorAmenityBox { margin-top: 1rem; padding: 2.5rem 1rem 2.5rem 1rem; }
	.visitorAmenityList { grid-template-columns: repeat(2, 1fr); gap: 2rem 1.5rem; margin: 0 1rem; }
	.visitorAmenityList span { font-size: 1.3rem; }
	.visitorFaq summary { padding: 1.3rem 3.5rem 1.3rem 5rem; font-size: 1.6rem; }
	.visitorWaveBeige01Beige02 { height: 7.5rem; }
	.visitorFaq details > div { padding: 0 1rem 1.5rem 1.5rem; }
	.visitorService { padding: 2rem 0 4rem; }
	.visitorServiceInner { width: calc(100% - 3rem); }
	.visitorServiceCard { flex-basis: 78%; margin-right: 2rem; }
	.visitorServiceCard h3 { font-size: 1.7rem; }
}


/* Visitor page refinement v20 */
@media all and (max-width: 896px) {
	.visitorFaq summary {
		padding: 1.3rem 3.5rem 1.3rem 5rem;
		font-size: 1.6rem;
	}
	.visitorFaq summary::before {
		left: .4rem;
		width: 3.6rem;
		height: 3.6rem;
	}
	.visitorFaqToggle {
		right: .6rem;
		width: 2rem;
		height: 2rem;
	}
	.visitorWaveBeige02Brown01 {
		height: 7.5rem;
	}
}


/* ------------------------------------------------------------
  Visitor page: PC / SP image switching and final SP adjustments
------------------------------------------------------------ */
@media all and (max-width: 896px) {
	.visitorStepHeading {
		width: auto;
		max-width: 100%;
		height: 5rem;
		margin: 0 auto;
		object-fit: contain;
		object-position: center;
	}

	.visitorStepCopy p {
		margin-top: 1rem;
		font-size: 1.6rem;
		line-height: 1.8;
	}

	.visitorBelongingsText {
		font-size: 1.6rem;
		text-align: left;
	}

	.visitorAmenityList {
		grid-template-columns: repeat(2, 1fr);
		gap: 2rem 1.5rem;
		margin: 0 1rem;
	}

	.visitorAmenityList img {
		display: block;
		width: 80%;
		margin: 0 auto;
	}

	.visitorAmenityList span {
		font-size: 1.3rem;
	}

	.visitorFaq summary {
		padding: 1.3rem 3.5rem 1.3rem 5rem;
		font-size: 1.6rem;
	}

	.visitorFaqMore a {
		min-width: 18rem;
		font-size: 1.6rem;
	}

	.visitorFaqMore a img {
		width: 1.5rem;
		height: auto;
	}
}

/* ------------------------------------------------------------
  FAQ page: SP
------------------------------------------------------------ */
@media all and (max-width: 896px) {
	.faqPageLinks {
		grid-template-columns: repeat(2, 1fr);
	}
	.faqPageLinks a:last-child {
		grid-column: 1 / -1;
		width: calc(50% - .3rem);
		justify-self: center;
	}
	.faqContent {
		padding: 0;
	}
	.faqPanel + .faqPanel {
		margin-top: 4rem;
	}
	.faqSectionTitle {
		width: 100%;
		margin-bottom: 3rem;
	}
	.faqWaveBeigeBrown {
		height: 7.5rem;
	}
}


/* ------------------------------------------------------------
  Company page: SP
------------------------------------------------------------ */
@media all and (max-width: 896px) {
	.companyIntro {
		padding-bottom: 0;
	}
	.companyContent {
		padding: 0;
	}
	.companyPanel {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}
	.companyTableRow {
		grid-template-columns: 1fr;
		gap: .6rem;
		padding: 1.8rem .5rem;
	}
	.companyTable dt {
		font-size: 1.8rem;
		color: var(--brown);
	}
	.companyTable dd {
		font-size: 1.8rem;
	}
	.companyRelatedContent {
		padding-top: 0;
		padding-bottom: 0;
	}
	.companyRelatedName {
		font-size: 1.8rem;
	}
	.fBanner {
		width: min(21rem, 100%);
		margin-top: 2rem;
	}
	.companyWaveBeigeBrown {
		height: 7.5rem;
	}
}

/* ------------------------------------------------------------
  Guide page
------------------------------------------------------------ */
@media screen and (max-width: 767px) {
    .guideIntro {
        padding-bottom: 0;
    }
    .guidePageLinks {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: .8rem;
        margin-bottom: 2rem;
    }
    .guidePageLinks a {
        width: 100%;
        min-width: 0;
        height: 5.2rem;
        padding: 0 .6rem;
        font-size: 1.2rem;
        line-height: 1.3;
        text-align: center;
    }
}


/* ------------------------------------------------------------
  Guide page - Price
------------------------------------------------------------ */
@media screen and (max-width: 767px) {
    .guideContent {
        padding: 0;
    }
    .guidePricePanel {
        padding: 2rem;
    }
    .guideSectionTitle {
        width: 100%;
        margin-bottom: 3rem;
    }
    .guidePriceLead {
        margin-bottom: 3rem;
        font-size: 1.6rem;
        line-height: 1.8;
        text-align: left;
    }
    .guidePriceLead br {
        display: none;
    }
    .guidePriceBlock + .guidePriceBlock {
        margin-top: 4rem;
    }
    .guidePriceSubTitle {
        margin-bottom: 1rem;
        font-size: 1.7rem;
    }
    .guidePriceSubTitle img {
        width: 3rem;
        margin-right: .8rem;
    }
    .guidePriceTable {
        width: 100%;
        min-width: 0;
        font-size: 1.25rem;
    }
    .guidePriceTable th,
    .guidePriceTable td {
        padding: 1.2rem .35rem;
        border-width: .2rem;
    }
    .guidePriceTable thead th:first-child,
    .guidePriceTable tbody th {
        width: 30%;
    }
    .guidePriceTable thead th span {
        display: block;
    }
    .guidePriceTable thead th .guidePriceTimeLabel {
        margin: 0 0 .3rem;
    }
    .guidePriceTableWrap {
        overflow-x: visible;
    }
    .guidePriceTable td strong,
    .guidePriceOption strong,
    .guidePriceMember strong {
        font-size: 2.4rem;
    }
    .guidePriceChildContent {
        display: block;
    }
    .guidePriceChildContent ul {
        margin-top: .8rem;
        text-align: center;
    }
    .guidePriceChildContent ul {
        font-size: 1.2rem;
    }
    .guidePriceNotes {
        margin-top: 1.5rem;
        font-size: 1.2rem;
        line-height: 1.7;
    }
    .guidePriceBottom {
        display: block;
        margin-top: 1.5rem;
    }
    .guidePriceMember {
        grid-template-columns: 8rem 1fr;
        gap: 1.2rem;
        margin-top: 1.5rem;
        padding: 1.2rem;
    }
    .guidePriceMemberBadge {
        width: 7rem;
        height: 7rem;
        font-size: 1.5rem;
    }
    .guidePriceMember h3 {
        font-size: 1.4rem;
    }
    .guidePriceMember p {
        font-size: 1.4rem;
        line-height: 1.6;
    }
    .guidePriceMember p > span:first-of-type {
        margin-left: 0;
    }
    .guideWaveBeigeBrown {
        height: 7.5rem;
    }
}

/* ------------------------------------------------------------
  Guide page - Hours
------------------------------------------------------------ */
@media screen and (max-width: 767px) {
    .guideHoursPanel {
        margin-top: 4rem;
        padding: 4rem 1.5rem 5rem;
    }
    .guideHoursNotes {
        margin-bottom: 2.5rem;
        font-size: 1.3rem;
        line-height: 1.8;
        text-align: left;
    }
    .guideHoursRow,
    .guideClosedRow {
        grid-template-columns: 38% 1fr;
    }
    .guideHoursRow dt,
    .guideHoursRow dd,
    .guideClosedRow dt,
    .guideClosedRow dd {
        min-height: 8rem;
        padding: 1.4rem 1rem;
        font-size: 1.35rem;
        line-height: 1.7;
    }
    .guideHoursRow dd span {
        white-space: normal;
    }
    .guideClosedTable {
        margin-top: 2rem;
    }
    .guideClosedRow dt,
    .guideClosedRow dd {
        min-height: 6rem;
    }
    .guideClosedRow dd {
        display: block;
        text-align: left;
    }
    .guideClosedRow dd span {
        display: block;
        margin: .3rem 0 0;
    }
}

/* ------------------------------------------------------------
  Guide page - Amenities / Notice
------------------------------------------------------------ */
@media screen and (max-width: 767px) {
	#amenity,
	#notice {
		padding: 4rem 1.5rem 5rem;
	}
	.guideAmenityLead,
	.guideNoticeLead {
		margin-bottom: 3rem;
		text-align: left;
		font-size: 1.6rem;
	}
	.guideAmenityList {
		grid-template-columns: repeat(3, 1fr);
		gap: 3rem 1rem;
	}
	.guideAmenityList img {
		width: 8rem;
		height: 8rem;
		margin-bottom: 1rem;
	}
	.guideAmenityList span {
		font-size: 1.4rem;
	}
	.noticeList {
		gap: 2rem;
	}
	.noticeList section {
		padding: 2.5rem 2rem;
		border-width: .5rem;
		border-radius: 3rem;
	}
	.noticeList h3 {
		margin-bottom: 1rem;
		font-size: 2rem;
	}
	.noticeList p,
	.noticeList ul {
		font-size: 1.6rem;
	}
}


/* ------------------------------------------------------------
  Guide page - Access
------------------------------------------------------------ */
@media screen and (max-width: 767px) {
    .guideAccessPanel {
        margin-top: 3rem;
        padding: 2rem;
    }
    .guideAccessLead {
        margin-bottom: 2.5rem;
        font-size: 1.6rem;
        line-height: 1.8;
        text-align: left;
    }
    .guideAccessLead br {
        display: none;
    }
    .guideAccessMaps {
        gap: 2rem;
    }
    .guideAccessMapRoad {
        border-width: .4rem;
        border-radius: 1.5rem;
    }
    .guideAccessMapRoad iframe {
        height: 30rem;
    }
    .guideAccessSummary {
        margin-top: 2rem;
    }
    .guideAccessSummary > div {
        gap: 1rem;
    }
    .guideAccessSummary dt {
        min-width: 8rem;
        padding: .5rem 1rem;
        font-size: 1.4rem;
    }
    .guideAccessSummary dd {
        font-size: 1.5rem;
    }
    .guideAccessIntro {
        margin-top: 1rem;
    }
    .guideAccessIntro section + section {
        margin-top: 2rem;
    }
    .guideAccessIntro h3 {
        font-size: 1.6rem;
    }
    .guideAccessIntro p {
        font-size: 1.5rem;
        line-height: 1.75;
    }
    .guideAccessList {
        margin-top: 2.5rem;
    }
    .guideAccessItem,
    .guideAccessItemShuttle,
    .guideAccessItemNbus {
        grid-template-columns: 1fr;
        gap: 2rem;
        padding: 2.5rem 0;
    }
    .guideAccessItemCopy h3 {
        margin-bottom: 1.2rem;
        font-size: 1.5rem;
    }
    .guideAccessItemCopy p {
        font-size: 1.5rem;
        line-height: 1.75;
    }
    .guideAccessRouteImage {
        width: 100%;
    }
    .guideAccessButton,
    .guideAccessButtonWide {
        width: 100%;
        min-width: 0;
        min-height: 5rem;
        font-size: 1.5rem;
    }
}


/* ------------------------------------------------------------
  Guide page - Free shuttle bus
------------------------------------------------------------ */
@media screen and (max-width: 767px) {
    .guideShuttlePanel {
        margin-top: 3rem;
        padding: 2rem;
    }
    .guideShuttleLead {
        margin-bottom: 2.5rem;
        font-size: 1.6rem;
        line-height: 1.8;
        text-align: left;
    }
    .guideShuttleMain {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .guideShuttleMap img {
        height: auto;
        border-width: .4rem;
        border-radius: 1.8rem;
    }
    .guideShuttleTimetable th,
    .guideShuttleTimetable td {
        padding: .8rem .5rem;
        font-size: 1.45rem;
    }
    .guideShuttleTimetable th {
        padding-top: 1.2rem;
        padding-bottom: 1.2rem;
    }
    .guideShuttleStop {
        min-height: 0;
        margin-top: 2rem;
        padding: 2rem 2rem 0;
        text-align: center;
    }
    .guideShuttleStop p {
        font-size: 1.5rem;
        line-height: 1.7;
    }
    .guideShuttleStop img {
        position: relative;
        right: auto;
        bottom: auto;
        display: block;
        width: 25rem;
        max-width: 100%;
        margin: 1rem auto -1rem;
    }
}


@media screen and (max-width: 896px) {
	/* Common static lower pages */
	.commonStaticTitleImage {
		width: 70rem;
		max-width: 92vw;
	}
	.commonStaticContent {
		min-height: 5rem;
	}
	.commonStaticPreparing {
		padding: 3rem 0 2rem;
		font-size: 2rem;
	}
	.commonStaticWaveBeigeBrown {
		height: 8rem;
	}
}


/* ------------------------------------------------------------
  Kamikirin page / Common shop information
------------------------------------------------------------ */
@media screen and (max-width: 896px) {
    .commonStaticLead {
        margin-bottom: 4rem;
        font-size: 1.6rem;
        line-height: 1.9;
        text-align: left;
    }
    .kamikirinContent {
        overflow: hidden;
        padding: 0;
    }
    .kamikirinContent .inner {
        width: 100%;
        max-width: 100%;
        padding-right: 2rem;
        padding-left: 2rem;
    }
    .kamikirinContentPanel {
        width: 100%;
        max-width: 100%;
        padding: 4rem 2rem;
        border-radius: 2rem;
        box-sizing: border-box;
    }
    .kamikirinMenuList {
        width: 100%;
        min-width: 0;
        gap: 5rem;
    }
    .kamikirinMenuPanel {
        width: 100%;
        min-width: 0;
    }
    .kamikirinMenuHeading {
        width: 100%;
        margin: 0 0 2.5rem;
    }
    .kamikirinMenuHeading img {
        width: 100%;
        max-width: 100%;
        height: auto;
        margin: 0 auto;
    }
    .kamikirinPriceList {
        width: 100%;
        max-width: 100%;
    }
    .kamikirinPriceRow {
        grid-template-columns: minmax(0, 1fr) auto;
        width: 100%;
        min-width: 0;
        gap: 1rem;
        padding: 1.2rem 0;
        box-sizing: border-box;
    }
    .kamikirinPriceRow dt,
    .kamikirinPriceRow dd {
        min-width: 0;
        font-size: 1.6rem;
        line-height: 1.5;
    }
    .kamikirinPriceRow dt {
        overflow-wrap: anywhere;
    }
    .kamikirinPriceRow dt span {
        display: block;
        margin-top: .2rem;
        font-size: 1.3rem;
    }
    .kamikirinPriceRow dd {
        padding-left: .5rem;
        white-space: nowrap;
    }
    .kamikirinMenuNotes {
        margin: 3rem 0 0;
        padding-bottom: 4rem;
        text-align: left;
    }
    .kamikirinMenuNotes p {
        font-size: 1.4rem;
        line-height: 1.7;
    }
    .shopInfo {
        width: 100%;
        max-width: 100%;
        margin-top: 4rem;
    }
    .shopInfoLayout {
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
        min-width: 0;
        gap: 3rem;
    }
    .shopInfoSlider,
    .shopInfoSlideList,
    .shopInfoBody {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }
    .shopInfoSlideList {
        aspect-ratio: 4 / 3;
    }
    .shopInfoSliderDots {
        margin-top: 1.2rem;
    }
    .kamikirinShopLogo {
        display: block;
        width: 22rem;
        margin: 0 auto 1rem auto;
    }
    .shopInfoContact {
        display: block;
        width: 100%;
        margin-bottom: 2.5rem;
        text-align: center;
    }
    .shopInfoContactLabel {
        display: inline-block;
        max-width: 100%;
        margin-bottom: 1.5rem;
        padding: 1rem 1.5rem;
        font-size: 1.4rem;
        white-space: normal;
        box-sizing: border-box;
    }
    .shopInfoTel,
    .shopInfoTel a {
        width: 100%;
        max-width: 100%;
    }
    .shopInfoTel a {
        display: inline-block;
        font-size: clamp(2rem, 7vw, 2.5rem);
        letter-spacing: .02em;
        white-space: normal;
        overflow-wrap: anywhere;
    }
    .shopInfoTel span {
        font-size: 1.7rem;
    }
    .shopInfoDetails {
        grid-template-columns: 8.5rem minmax(0, 1fr);
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }
    .shopInfoDetails dt,
    .shopInfoDetails dd {
        min-width: 0;
        padding: 1.2rem;
        font-size: 1.6rem;
        line-height: 1.65;
        overflow-wrap: anywhere;
    }
	.shopInfoDetails dt {
		white-space: nowrap;
		overflow-wrap: normal;
		word-break: keep-all;
	}
    .shopInfoDetails dd small {
        font-size: 1.3rem;
    }
}


/* お食事処 */
@media screen and (max-width: 896px) {
.shokujiContent { overflow: hidden; padding: 0; }
.shokujiContent .inner { width: 100%; padding: 0 2rem; box-sizing: border-box; }
.shokujiContentPanel { padding: 4rem 2rem; border-radius: 2rem; }
.shokujiSection + .shokujiSection { margin-top: 0; }
.shokujiSectionHeading img { width: 100%; max-width: 100%; }
.shokujiTextHeading { margin-bottom: 3rem; font-size: 2.6rem; }
.shokujiSectionLead { font-size: 1.6rem; }
.shokujiSliderViewport { overflow: visible; }
.shokujiNewsCard { flex-basis: 82%; padding: 0 .8rem; }
.shokujiMenu { margin-right: -2rem; margin-left: -2rem; padding: 5rem 0 4rem; }
.shokujiMenuHeading { margin-right: 2rem; margin-bottom: 3rem; margin-left: 2rem; padding-bottom: 1rem; background-size: 100% auto; }
.shokujiMenuHeading img { width: 24rem; max-width: 75%; }
.shokujiMenuSlider { padding: 0 2rem; }
.shokujiMenuSlide { flex-basis: 82%; padding: 0 .7rem; transform: scale(.9); }
.shokujiMenuOpen span { right: 1rem; bottom: 1rem; padding: .6rem 1.1rem .6rem 3rem; font-size: 1.1rem; }
.shokujiMenuArrow { width: 4rem; height: 4rem; }
.shokujiMenuPrev { left: .5rem; }
.shokujiMenuNext { right: .5rem; }
.shokujiMenuCount { margin-top: 2rem; font-size: 1.6rem; }
.shokujiMenuModal { padding: 3rem 1.5rem 5rem; align-items: flex-start; }
.shokujiMenuModalScroll { width: 100%; max-height: calc(100vh - 8rem); }
.shokujiMenuModalImage { width: 110rem; max-width: none; max-height: none; }
.shokujiMenuModalClose { top: 1rem; right: 1rem; width: 4rem; height: 4rem; }
.shokujiMenuModalArrow { top: auto; bottom: 1rem; width: 4rem; height: 4rem; transform: none; }
.shokujiMenuModalPrev { left: 1rem; }
.shokujiMenuModalNext { right: 1rem; }
.shokujiMenuModalCount { bottom: 1.8rem; }
.shokujiNewsCardBody { min-height: 10rem; }
.shokujiNewsCard h3 { font-size: 1.5rem; }
.shokujiSliderDots { margin-top: 2rem; }
.shokujiSliderControls { flex-wrap: wrap; gap: 1rem; }
.shokujiSliderArrow { min-width: 7rem; }

.newsCategoryLinks { grid-template-columns: repeat(2, 1fr); gap: .8rem; }
.newsCategoryLinks a { width: 100%; min-width: 0; height: 5.2rem; padding: 0 .6rem; font-size: 1.2rem; line-height: 1.3; text-align: center; }
.newsContent { padding: 0 0 5rem; }
.newsContent .inner { width: min(100% - 4rem, 120rem); }
.newsList { grid-template-columns: 1fr; gap: 3rem; }
.newsList .shokujiNewsCard { width: 100%; }
.newsPagination { margin-top: 4rem; gap: 1rem; }
.newsPagination .guideAccessButton { min-width: 0; min-height: 4.8rem; padding: .7rem 1.2rem; gap: .8rem; font-size: 1.3rem; }
.newsPagination .guideAccessButton span { font-size: 1.6rem; }
.newsDetailContent { padding: 0 0 5rem; }
.newsDetailContent .inner { width: min(100% - 4rem, 120rem); }
.newsArticle { padding: 4rem 2rem; border-radius: 2rem; }
.newsArticleHeader { margin-bottom: 3rem; }
.newsArticleHeader > time { margin-bottom: 1.5rem; font-size: 1.2rem; }
.newsArticleTitle { margin-bottom: 2rem; font-size: 2.2rem; line-height: 1.6; letter-spacing: .04em; }
.newsArticleDivider { height: .8rem; margin-bottom: 1.2rem; background-size: auto .8rem; }
.newsArticleCategory { padding: .5rem 1rem; font-size: 1.2rem; }
.newsArticleBody { font-size: 1.8rem; line-height: 2; }
.newsArticleFigure { margin: 3rem 0; }
.newsArticleImageGrid { grid-template-columns: repeat(2,minmax(0,1fr)); margin-bottom: 3rem; gap: 1rem; }
.newsArticlePagination { margin-top: 5rem; gap: 1rem; }
.newsArticlePagination .guideAccessButton { min-width: 0; min-height: 4.8rem; padding: .7rem 1.2rem; font-size: 1.8rem; }
.newsArticlePagination .guideAccessButton span { font-size: 1.6rem; }
.newsArticleBack { margin-top: 2.5rem; }
.newsArticleBack a { font-size: 1.6rem; }

.shokujiRecommend { padding-bottom: 4rem; background-size: 100% auto; }
.shokujiRecommendHeading { margin-bottom: 3rem; padding-bottom: 1rem; background-size: 100% auto; }
.shokujiRecommendHeading img { width: 25rem; max-width: 80%; }
.shokujiRecommendGrid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3rem 1.5rem; padding: 0; }
.shokujiRecommendItem h3 { font-size: 1.4rem; }
.shokujiShopInfo { margin-top: 4rem; }
.shokujiShopName { margin-bottom: 2rem; font-size: 2.5rem; text-align: center; }
}

/* ------------------------------------------------------------
  Relaxation / Akasuri page
------------------------------------------------------------ */
@media screen and (max-width: 896px) {
    .rirakuIntro .visitorPageLinks { grid-template-columns: repeat(2, 1fr); gap: .8rem; }
    .rirakuIntro .visitorPageLinks a { width: 100%; min-width: 0; height: 5.2rem; padding: 0 .6rem; font-size: 1.2rem; line-height: 1.3; text-align: center; }
    .rirakuTitleImage { width: 100%; }
    .rirakuContent { overflow: hidden; padding: 0; }
    .rirakuContent .inner { width: 100%; max-width: 100%; padding-right: 2rem; padding-left: 2rem; }
    .rirakuPanel { width: 100%; padding: 4rem 2rem; border-radius: 2rem; box-sizing: border-box; }
    .rirakuPanel + .rirakuPanel { margin-top: 3rem; }
    .rirakuSectionHeading { margin-bottom: 2rem; }
    .rirakuSectionHeading img { width: 100%; }
    .rirakuSectionLead { margin-bottom: 3rem; font-size: 1.6rem; line-height: 1.8; text-align: left; }
    .rirakuFlyerSlider { margin-right: -2rem; margin-left: -2rem; padding: 0 2rem; }
    .rirakuFlyerSlide { flex-basis: 82%; padding: 0 .7rem; transform: scale(.9); }
    .rirakuFlyerOpen span { right: 1rem; bottom: 1rem; padding: .6rem 1.1rem .6rem 3rem; font-size: 1.1rem; }
    .rirakuFlyerArrow { width: 4rem; height: 4rem; }
    .rirakuFlyerArrow.is-prev { left: 0; }
    .rirakuFlyerArrow.is-next { right: 0; }
    .rirakuFlyerDots { margin-top: 2rem; }
    .rirakuDivider { margin: 4rem 0; }
    .rirakuShopName { margin-bottom: 1.5rem; font-size: 2rem; text-align: center; }
    .akasuriMenuList { width: 100%; }
    .akasuriMenuGroup { padding: 2.5rem 2rem; border-radius: 1.2rem; background: rgba(255, 255, 255, .58); }
    .akasuriMenuGroup + .akasuriMenuGroup { margin-top: 4.5rem; }
    .akasuriMenuGroup h3 { margin-bottom: 2rem; font-size: 2rem; line-height: 1.6; letter-spacing: .06em; }
    .akasuriPriceList { display: block; }
    .akasuriPriceList dt { padding: 1.5rem 0 0; border-bottom: 0; }
    .akasuriPriceList dt strong { font-size: 1.6rem; }
    .akasuriPriceList dt > span { margin-top: .6rem; padding-left: 1rem; font-size: 1.3rem; }
    .akasuriPriceList dd { min-width: 0; padding: 1rem 0 1.5rem; font-size: 1.4rem; text-align: right; white-space: normal; }
}

/* ------------------------------------------------------------
  Contact page
------------------------------------------------------------ */
@media screen and (max-width: 896px) {
    .contactContent { padding: 0 0 6rem; }
    .contactContent .inner { padding-right: 2rem; padding-left: 2rem; }
    .contactField + .contactField { margin-top: 3rem; }
    .contactLabelRow { margin-bottom: 1rem; gap: 1rem; }
    .contactLabelRow label,
    .contactPrivacyTitle { font-size: 1.7rem; }
    .contactRequired { min-width: 4.6rem; padding: .4rem .7rem; font-size: 1.2rem; }
    .contactForm input[type="text"],
    .contactForm input[type="email"],
    .contactForm input[type="tel"],
    .contactForm select,
    .contactForm textarea { padding: 1.5rem 1.8rem; font-size: 1.6rem; }
    .contactForm input[type="text"],
    .contactForm input[type="email"],
    .contactForm input[type="tel"],
    .contactForm select { height: 6rem; }
    .contactForm textarea { min-height: 28rem; }
    .contactSelectWrap::after { right: 2rem; }
    .contactPrivacy { margin-top: 3rem; }
    .contactConsent { margin-bottom: 2rem; font-size: 1.6rem; }
    .contactConsent input { width: 2.4rem; height: 2.4rem; }
    .contactPolicy { height: 32rem; padding: 2.5rem 2rem; font-size: 1.4rem; line-height: 1.8; }
    .contactPolicy section + section { margin-top: 2.5rem; }
    .contactPolicy h2 { font-size: 1.7rem; }
    .contactConfirmButton { width: 100%; max-width: 44rem; height: 6rem; margin-top: 5rem; padding: 0 6rem; font-size: 1.5rem; }
}

@media screen and (max-width:896px){.contactConfirmList{display:block}
	.contactConfirmList dt,.contactConfirmList dd{padding: 1.5rem 1.5rem 1.5rem 3rem;}
	.contactConfirmList dd{min-height:5rem}.contactConfirmButtons{flex-direction:column}.contactConfirmButtons button,.contactConfirmButtons input{width:100%;min-width:0}.contactThanks{padding:3rem 2rem}.contactThanks h1{font-size:2.4rem}}


/* ------------------------------------------------------------
  404 page
------------------------------------------------------------ */
@media screen and (max-width: 896px) {
    .errorCode { font-size: 5.5rem; }
    .errorIntro h1 { margin-bottom: 2rem; font-size: 2.5rem; }
    .errorContent { padding-bottom: 6rem; }
    .errorPanel { padding: 4rem 2rem; border-radius: 1.5rem; }
    .errorPanel p { font-size: 1.6rem; line-height: 1.9; text-align: left; }
    .errorButtons { flex-direction: column; margin-top: 3rem; gap: 1.5rem; }
    .errorButton { width: 100%; min-height: 5.6rem; font-size: 1.5rem; }
}

/* News article: WordPress editor content */
@media screen and (max-width: 896px) {
	.newsArticleBody h2,
	.newsArticleBody h3,
	.newsArticleBody h4 {
		margin-top: 3rem;
		margin-bottom: 1.5rem;
	}
	.newsArticleBody h2 {
		padding-bottom: 1.2rem;
		font-size: 2rem;
	}
	.newsArticleBody h3 {
		font-size: 1.8rem;
	}
	.newsArticleBody h4 {
		font-size: 1.7rem;
	}
	.newsArticleBody ul,
	.newsArticleBody ol {
		margin-bottom: 3rem;
	}
	.newsArticleBody figure,
	.newsArticleBody .wp-block-image {
		margin: 3rem 0;
	}
	.newsArticleBody .wp-block-gallery,
	.newsArticleBody .blocks-gallery-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1rem;
		margin-bottom: 3rem;
	}
	.newsArticleBody blockquote {
		margin-bottom: 3rem;
		padding: 1.5rem 2rem;
	}

}

/* ------------------------------------------------------------
  投稿詳細：ギャラリーをスマホでも2カラムで固定
------------------------------------------------------------ */
@media screen and (max-width: 896px) {
	.newsArticleBody .wp-block-gallery,
	.newsArticleBody .wp-block-gallery.has-nested-images,
	.newsArticleBody .blocks-gallery-grid {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 1rem !important;
	}

	.newsArticleBody .wp-block-gallery.has-nested-images figure.wp-block-image,
	.newsArticleBody .wp-block-gallery figure,
	.newsArticleBody .blocks-gallery-grid figure,
	.newsArticleBody .blocks-gallery-item {
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		flex-basis: auto !important;
	}

	.newsArticleBody .wp-block-gallery.has-nested-images figure.wp-block-image img,
	.newsArticleBody .wp-block-gallery img,
	.newsArticleBody .blocks-gallery-grid img {
		display: block;
		width: 100% !important;
		height: auto;
	}
}

/* ------------------------------------------------------------
  投稿詳細：WordPressカラムブロックをスマホでも2カラムで固定
------------------------------------------------------------ */
@media screen and (max-width: 896px) {
	.newsArticleBody .wp-block-columns,
	.newsArticleBody .wp-block-columns.is-layout-flex {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 1rem !important;
		align-items: start !important;
		flex-wrap: nowrap !important;
		margin: 0 0 1rem 0;
        padding: 1rem 0 0 0;
	}

	.newsArticleBody .wp-block-columns > .wp-block-column {
		width: auto !important;
		min-width: 0 !important;
		margin: 0 !important;
		flex: none !important;
		flex-basis: auto !important;
	}

	.newsArticleBody .wp-block-columns > .wp-block-column figure,
	.newsArticleBody .wp-block-columns > .wp-block-column .wp-block-image {
		margin: 0 !important;
	}

	.newsArticleBody .wp-block-columns > .wp-block-column img {
		display: block;
		width: 100% !important;
		height: auto;
	}
}
