@charset "utf-8";

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

:root {
	--orange: #ef822f;
	--orange: #ef822f;
	--orange-dark: #d95f24;
	--brown: #4e382f;
	--brown-deep: #34251f;
	--beige: #ead09b;
	--turquoise: #31aaa6;
	--cream: #fff3dc;
}

/* ------------------------------------------------------------
  Header
------------------------------------------------------------ */

#gHeader {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 100;
	width: 100%;
	padding: 1.5rem 2rem;
}

.headerInner {
	display: flex;
	width: min(1760px, 100%);
	margin: 0 auto;
	align-items: flex-start;
	justify-content: space-between;
}

.headerLogo {
	width: 22rem;
	filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.18));
}

.gNavList {
	display: flex;
	gap: 0.9rem;
	align-items: center;
}

.gNavItem img {
	height: 4.5rem;
	width: auto;
}

.gNavItem {
	position: relative;
}

.gNavItem > a {
	display: block;
}

.gNavSubmenu {
	position: absolute;
	top: calc(100% + 1rem);
	left: 50%;
	z-index: 20;
	width: 27rem;
	padding: 1rem 0;
	color: #fff;
	border: 2px solid #8d5f2e;
	background: rgba(52, 37, 31, 0.97);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, -1rem);
	transition: opacity 0.25s, visibility 0.25s, transform 0.25s;
}

.gNavSubmenu::before {
	position: absolute;
	top: -1.2rem;
	left: 50%;
	width: 0;
	height: 0;
	border-right: 1rem solid transparent;
	border-bottom: 1.2rem solid #8d5f2e;
	border-left: 1rem solid transparent;
	content: "";
	transform: translateX(-50%);
}

.gNavSubmenu li + li {
	border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.gNavSubmenu a {
	display: block;
	padding: 1rem 1.8rem;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.5;
	white-space: nowrap;
}

.gNavSubmenu a:hover,
.gNavSubmenu a:focus-visible {
	background: rgba(239, 130, 47, 0.3);
	opacity: 1;
}

.hasSubmenu:hover .gNavSubmenu,
.hasSubmenu:focus-within .gNavSubmenu {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
}

.menuBtn {
	position: relative;
	width: 4.6rem;
	height: 4.6rem;
	margin-left: 0.3rem;
	background: url("../image/common/navi_sp.png") no-repeat center / contain;
}

.siteMenu {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 110;
	width: min(42rem, 100%);
	height: 100%;
	padding: 9rem 5rem 5rem;
	color: #fff;
	background: rgba(52, 37, 31, 0.97);
	opacity: 0;
	transform: translateX(100%);
	transition: opacity 0.35s, transform 0.35s;
}

.siteMenu.is-open {
	opacity: 1;
	transform: translateX(0);
}

.siteMenuList li + li {
	margin-top: 1.8rem;
}

.siteMenuList a {
	display: block;
	padding-bottom: 1rem;
	font-size: 2rem;
	font-weight: 700;
	border-bottom: 1px solid rgba(255,255,255,0.3);
}

.menuClose {
	position: absolute;
	top: 2rem;
	right: 2rem;
	font-size: 1.4rem;
}

/* ------------------------------------------------------------
  Background / Wave
------------------------------------------------------------ */

.bgOrange,
.bgBrown01,
.bgBrown02,
.bgBeige {
	position: relative;
	background-position: center top;
	background-repeat: repeat-y;
	background-size: 1800px auto;
}

.bgOrange {
	background-image: url("../image/common/bg_orange.webp");
}

.bgBrown01 {
	background-image: url("../image/common/bg_brown01.webp");
}

.bgBrown02 {
	background-image: url("../image/common/bg_brown02.webp");
}

.bgBeige {
	background-image: url("../image/common/bg_beige.webp");
}

.waveTop,
.waveBottom {
	position: relative;
}

/* 境界画像1枚分の高さを確保し、次の背景へ自然につなぐ */

.waveBottom {
	margin-bottom: 15rem;
}

.waveTop::before,
.waveBottom::after {
	position: absolute;
	left: 0;
	z-index: 3;
	width: 100%;
	height: 15rem;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 100% 100%;
	content: "";
	pointer-events: none;
}

.waveTop::before {
	top: -15rem;
}

.waveBottom::after {
	bottom: -15rem;
}

.wave-orange-beige::after {
	background-image: url("../image/common/bg_wave_orange_beige.png");
}

.wave-beige-orange::after {
	background-image: url("../image/common/bg_wave_beige_orange.png");
}

.wave-orange-brown01::after {
	background-image: url("../image/common/bg_wave_orange_brown01.png");
}

.wave-beige-brown02::after {
	background-image: url("../image/common/bg_wave_beige_brown02.png");
}

.wave-brown02-beige::after {
	background-image: url("../image/common/bg_wave_brown02_beige.png");
}

.wave-brown02-orange::after {
	background-image: url("../image/common/bg_wave_brown02_orange.png");
}

.wave-beige-brown01::after {
	background-image: url("../image/common/bg_wave_beige_brown01.png");
}

.wave-orange-brown01-dark::after {
	background-image: url("../image/common/bg_wave_orange_brown01_dark.png");
}

/* ------------------------------------------------------------
  Common Parts
------------------------------------------------------------ */

.pageHero {
	position: relative;
	height: 51rem;
	background: #c9b89b;
}

.pageHero::before {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(74,52,43,.18), rgba(255,255,255,.03));
	content: "";
}

.pageHeroPlaceholder {
	display: grid;
	height: 100%;
	place-items: center;
	font-size: 2rem;
	font-weight: 700;
	color: rgba(255,255,255,.82);
	letter-spacing: .12em;
}

.pageIntro {
	position: relative;
	z-index: 4;
	padding: 8rem 0 12rem;
	text-align: center;
}

.pageIntroTitle,
.sectionTitle {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-weight: 700;
	letter-spacing: .16em;
}

.pageIntroTitle {
	font-size: 4rem;
}

.pageIntroText {
	max-width: 84rem;
	margin: 3rem auto 0;
	line-height: 2.1;
}

.sectionBlock {
	position: relative;
	z-index: 4;
	padding: 12rem 0;
}

.sectionTitleFrame {
	width: min(76rem, 100%);
	margin: 0 auto 6rem;
	padding: 1.4rem 3rem;
	text-align: center;
	border: .4rem double #765542;
	background: var(--turquoise);
	box-shadow: inset 0 0 0 .4rem rgba(255,255,255,.5);
}

.sectionTitleFrame.isOrange {
	color: #fff;
	background: var(--orange-dark);
}

.sectionTitle {
	font-size: 3rem;
}

.placeholderImage {
	display: grid;
	min-height: 24rem;
	place-items: center;
	color: var(--brown);
	border: 2px dashed rgba(77,56,47,.3);
	border-radius: 2rem;
	background: rgba(255,255,255,.38);
}

.cardGrid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 4.5rem;
}

.contentCard {
	padding: 1.5rem;
	color: #fff;
	background: rgba(47,31,25,.9);
}

.contentCard .placeholderImage {
	min-height: 19rem;
	color: rgba(255,255,255,.7);
	border-color: rgba(255,255,255,.25);
	border-radius: 0;
	background: rgba(255,255,255,.08);
}

.contentCardTitle {
	margin-top: 1.6rem;
	font-size: 2rem;
	font-weight: 700;
}

.contentCardText {
	margin-top: 1rem;
	font-size: 1.4rem;
	line-height: 1.8;
}

.pillNav {
	display: flex;
	margin-top: 4rem;
	gap: 1.5rem;
	justify-content: center;
}

.pillNav a {
	padding: .8rem 2rem;
	font-size: 1.5rem;
	font-weight: 700;
	color: #fff;
	border: 2px solid #fff;
	border-radius: 100px;
	background: var(--orange-dark);
}

/* ------------------------------------------------------------
  Top
------------------------------------------------------------ */

.topHero {
	position: relative;
	height: 74rem;
	overflow: visible;
	background: #9b8872;
}

.topHeroSlides {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.topHeroSlide {
	position: absolute;
	inset: 0;
}

.topHeroSlide {
	margin: 0;
	opacity: 0;
	transition: opacity 1.2s ease;
}

.topHeroSlide.is-active {
	opacity: 1;
}

.topHeroSlide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.topHeroDecorLeft,
.topHeroDecorRight {
	position: absolute;
	z-index: 4;
	pointer-events: none;
}

.topHeroDecorLeft {
	top: 0;
	left: 0;
	width: 23%;
}

.topHeroDecorRight {
	top: 0;
	right: 0;
	width: 19%;
}

.topHeroLine,
.topHeroPr01,
.topHeroPr02,
.topHeroBottom,
.topHeroRakko {
	position: absolute;
	z-index: 5;
}

.topHeroLine {
	top: 10rem;
	right: 6%;
	width: 14rem;
	transition: opacity .3s;
}

.topHeroPr01 {
	right: 6%;
	bottom: 4rem;
	z-index: 8;
	width: min(38rem, 40vw);
}

.topHeroPr02 {
	right: 6%;
	bottom: -8rem;
	z-index: 8;
	width: min(23rem, 23vw);
}

.topHeroBottom {
	left: 0;
	bottom: -1px;
	z-index: 6;
	width: 100%;
	height: auto;
	pointer-events: none;
}

.topHeroRakko {
	left: 13%;
	bottom: 1.8rem;
	z-index: 9;
	width: clamp(12rem, 22vw, 25rem);
}

.topHeroLine:hover {
	opacity: .8;
}

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

.topOrangeArea {
	position: relative;
	background-image: url("../image/top/bg_deco.png"), url("../image/common/bg_orange.webp");
	background-repeat: no-repeat, repeat;
	background-position: center 17.5rem, center top;
	background-size: 160rem auto, auto;
}

.topPickupInner {
	width: min(120rem, calc(100% - 4rem));
	margin: 0 auto;
	padding-bottom: 2rem;
	border-bottom: .5rem dotted var(--brown);
}

.topPickupContent {
	display: flex;
	align-items: center;
	gap: 2rem;
}

.topPickupTitle {
	flex: 0 0 15rem;
	margin: 0;
}

.topPickupTitle img {
	display: block;
	width: 100%;
	height: auto;
}

.topPickupLink {
	display: flex;
	align-items: center;
	gap: 2rem;
	font-size: 1.8rem;
	color: #fff !important;
	font-weight: 700;
	letter-spacing: 0.05em;
}

.topPickupLink::before {
	content: "";
	width: 0;
	height: 0;
	border-top: .8rem solid transparent;
	border-bottom: .8rem solid transparent;
	border-left: 1.3rem solid var(--turquoise);
}

.topPickupLink time {
	font-size: 2rem;
}

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

.topNewsTitle {
	width: 60rem;
	max-width: 100%;
	margin: 0 auto 2.5rem;
}

.topNewsTitle img {
	display: block;
	width: 100%;
	height: auto;
}

.topNewsList {
	gap: 1.5rem;
}

.topNewsDots {
	display: none;
}

.topNewsList .is-clone {
	display: none;
}

.topEnjoy {
	position: relative;
	padding: 7rem 0 10rem;
	color: #fff;
}

.topEnjoyInner {
	position: relative;
	text-align: center;
}

.topEnjoyAhiru {
	position: absolute;
	top: -22rem;
	left: 50%;
	z-index: 4;
	width: 20rem;
	height: auto;
	transform: translateX(-50%);
}

.topEnjoyTitle {
	width: min(65rem, 100%);
	margin: 0 auto 3rem;
}

.topEnjoyTitle img,
.topEnjoyLine {
	display: block;
	width: 100%;
	height: auto;
}

.topEnjoyLine {
	width: min(68rem, 100%);
	margin: 0 auto 4rem;
}

.topEnjoy p {
	margin: 0;
	font-size: 1.8rem;
	line-height: 2.2;
	color: #fff;
	font-weight: 700;
	letter-spacing: 0.03em;
}

.topEnjoyGrid {
	margin-top: 7rem;
}

.topEnjoyCard h3 {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 5rem;
	margin-bottom: 2.5rem;
}

.topEnjoyCard h3 img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: 4.2rem;
}

.topEnjoyCard h4 {
	margin: 2.5rem 0 1.8rem;
	padding-bottom: 1.8rem;
	color: #fff;
	font-size: 2.2rem;
	text-align: center;
	background: url("../image/common/line02.png") no-repeat center bottom / 80% auto;
}

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

.topEnjoyMore {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(34rem, 80%);
	margin: 3rem auto 0;
	padding: 1.5rem 4rem;
	color: #fff !important;
	border: .3rem solid #fff;
	border-radius: 4rem;
	background: var(--orange);
	box-shadow: inset 0 0 0 .2rem var(--orange), inset 0 0 0 .3rem rgba(255,255,255,.8);
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: .08em;
	box-sizing: border-box;
}

.topEnjoyMore::after {
	position: absolute;
	right: 2.5rem;
	width: 0;
	height: 0;
	border-top: .7rem solid transparent;
	border-bottom: .7rem solid transparent;
	border-left: 1.1rem solid #fff;
	content: "";
}

.topEnjoyMore:hover {
	opacity: .8;
}

.newsGrid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2.5rem;
}

.newsCard {
	padding: 1.2rem;
	color: #fff;
	border: 3px solid #6d4e3d;
	background: #39271f;
}

.newsCard .placeholderImage {
	min-height: 18rem;
	border-radius: 0;
}

.newsCard p {
	margin-top: 1.5rem;
	font-size: 1.5rem;
}

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

.featureCard {
	padding: 2rem;
	color: #fff;
	border: 4px solid #3d2a22;
	background: rgba(50,33,26,.92);
}

.featureCard h3 {
	margin-top: 1.8rem;
	font-size: 2.3rem;
	color: var(--brown);
	text-align: center;
}

.featureCard p {
	margin-top: 1rem;
	font-size: 1.5rem;
}

.faqGrid {
	display: grid;
	grid-template-columns: 33rem 1fr;
	gap: 5rem;
	align-items: start;
}

.faqList li + li {
	margin-top: 1.2rem;
}

.faqList a {
	display: block;
	padding: 1.2rem 2rem;
	font-size: 1.5rem;
	font-weight: 700;
	border-radius: 100px;
	background: rgba(255,255,255,.55);
}

.infoGrid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 5rem;
	align-items: center;
}

/* ------------------------------------------------------------
  Onsen
------------------------------------------------------------ */

.onsenFeature {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6rem;
	align-items: center;
}

.onsenFeature + .onsenFeature {
	margin-top: 7rem;
}

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

.onsenFeature h3 {
	font-size: 2.5rem;
	font-family: "Yu Mincho", serif;
}

.floorTitle {
	margin: 5rem 0 3rem;
	font-size: 4rem;
	font-weight: 700;
	color: var(--brown);
}

.floorTitle small {
	margin-left: 1rem;
	font-size: 1.8rem;
	color: #fff;
}

.specBox {
	padding: 3rem 4rem;
	border-radius: 2rem;
	background: rgba(255,245,224,.84);
}

.specBox + .specBox {
	margin-top: 2rem;
}

/* ------------------------------------------------------------
  Visitor
------------------------------------------------------------ */

.visitorPanel {
	padding: 6rem 7rem;
	border-radius: 3rem;
	background: rgba(255,250,238,.68);
}

.visitorPanel + .visitorPanel {
	margin-top: 8rem;
}

.stepList li {
	display: grid;
	grid-template-columns: 32rem 1fr;
	gap: 4rem;
	align-items: center;
}

.stepList li + li {
	margin-top: 2.5rem;
}

.stepList .placeholderImage {
	min-height: 20rem;
}

.stepLabel {
	display: inline-block;
	margin-right: 1rem;
	padding: .2rem 1rem;
	font-size: 1.4rem;
	font-weight: 700;
	color: #fff;
	background: var(--turquoise);
}

.stepTitle {
	font-size: 2.2rem;
	font-weight: 700;
}

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

.serviceCard h3 {
	margin-top: 1.5rem;
	font-size: 2rem;
	text-align: center;
}

/* ------------------------------------------------------------
  Footer
------------------------------------------------------------ */

.footerBrand {
	display: flex;
	align-items: flex-end;
}

/* ------------------------------------------------------------
  Site menu accordion
------------------------------------------------------------ */

.siteMenuList > li + li {
	margin-top: 1.2rem;
}

.siteMenuList > li > a,
.siteMenuAccordion {
	display: block;
	position: relative;
	width: 100%;
	padding: 1.2rem 4rem 1.2rem 0;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.5;
	text-align: left;
	border-bottom: 1px solid rgba(255,255,255,.3);
}

.siteMenuAccordion::before,
.siteMenuAccordion::after {
	position: absolute;
	top: 50%;
	right: .5rem;
	width: 1.6rem;
	height: 2px;
	background: currentColor;
	content: "";
	transform: translateY(-50%);
	transition: transform .25s;
}

.siteMenuAccordion::after {
	transform: translateY(-50%) rotate(90deg);
}

.siteMenuAccordion[aria-expanded="true"]::after {
	transform: translateY(-50%) rotate(0deg);
}

.siteMenuSubList {
	padding: 1rem 0 1rem 1.5rem;
}

.siteMenuSubList li + li {
	margin-top: .5rem;
}

.siteMenuSubList a {
	display: block;
	padding: .7rem 0;
	font-size: 1.4rem;
	font-weight: 500;
	border-bottom: 1px dotted rgba(255,255,255,.25);
}

/* ------------------------------------------------------------
  Footer refinement
------------------------------------------------------------ */

#gFooter {
	position: relative;
	z-index: 5;
	color: #fff;
	background: #4e382f url("../image/common/bg_brown01.webp") repeat-y center top / 1800px auto;
	padding: 0;
}

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

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

.footerNavColumn li::before {
	margin-right: .8rem;
	content: "……";
	letter-spacing: -.08em;
}

.footerNavTitle {
	font-weight: 700;
	display: inline-block;
	min-width: 15rem;
	margin-bottom: 1.8rem;
	padding: .6rem 1.4rem;
	font-size: 1.7rem;
	line-height: 1.3;
	text-align: center;
	background: #b58a4e;
}

.footerBottomArea {
	background: rgba(38, 24, 19, .58);
}

.footerBottom {
	justify-content: space-between;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 2.5rem;
	margin-top: 0;
	padding-top: 3rem;
	padding-bottom: 3rem;
	align-items: center;
	border-top: 0;
}

.footerLogo {
	width: 21rem;
}

.footerInfo {
	margin-left: 0;
	font-size: 1.35rem;
	font-style: normal;
	font-weight: 700;
	line-height: 1.7;
}

.footerSocialArea {
	display: flex;
	align-items: flex-end;
	flex-direction: column;
}

.footerSocial {
	display: flex;
	gap: 1rem;
	align-items: center;
}

.footerSocial a {
	display: block;
	width: 3.6rem;
}

.footerSocial img {
	width: 100%;
	border-radius: .7rem;
}

.copyright {
	margin-top: 1.8rem;
	font-size: 1.1rem;
	white-space: nowrap;
}

/* ------------------------------------------------------------
  Common parts final adjustments 2026-07-23
------------------------------------------------------------ */

.siteMenuNav {
	height: 100%;
	overflow-y: auto;
	padding-right: 1.5rem;
	scrollbar-width: thin;
	scrollbar-color: #8a6958 transparent;
}

.siteMenuNav::-webkit-scrollbar {
	width: 5px;
}

.siteMenuNav::-webkit-scrollbar-track {
	background: transparent;
}

.siteMenuNav::-webkit-scrollbar-thumb {
	border-radius: 999px;
	background: #8a6958;
}

.siteMenuNav::-webkit-scrollbar-thumb:hover {
	background: #9b7966;
}

.footerNav {
	display: grid;
	grid-template-columns: 1.1fr 1fr 1fr 1.25fr;
	gap: 4rem 5rem;
	align-items: start;
	position: relative;
}

.footerNavColumn li + li {
	margin-top: .65rem;
}

.footerNav a {
	font-size: 1.35rem;
	line-height: 1.4;
}

/* Footer utility links: preserve the two-row design layout */

.footerNavLinks {
	grid-column: 3 / 5;
	flex-wrap: wrap;
	justify-content: flex-end;
	position: absolute;
	right: 0;
	bottom: 0;
	display: grid;
	grid-template-columns: 1fr 1fr 1.45fr;
	gap: 1.2rem;
	width: calc(50% - 2.5rem);
	align-items: stretch;
}

.footerNavLinks a {
	padding: .8rem 1.8rem;
	font-size: 1.45rem;
	font-weight: 700;
	line-height: 1.2;
	background: #b58a4e;
	display: flex;
	min-width: 0;
	padding-right: 1.4rem;
	padding-left: 1.4rem;
	align-items: center;
	justify-content: center;
	text-align: center;
	white-space: nowrap;
}

.footerNavLinks .isWide {
	text-align: center;
	grid-column: 1 / 3;
	min-width: 0;
}

.footerNavLinks a:last-child {
	grid-column: 3;
}

/* ------------------------------------------------------------
  Common parts final adjustments v04
------------------------------------------------------------ */

@media all and (min-width: 897px) {
.footerNavLinks {
	width: 59.4rem;
	grid-template-columns: 16rem 16rem 25rem;
}

.footerNavLinks .isWide {
	width: auto;
}

.footerNavLinks a:last-child {
	width: 12rem;
	justify-self: end;
}

}

/* ------------------------------------------------------------
  Onsen page
------------------------------------------------------------ */

.onsenHeroSlides {
	display: grid;
	grid-template-columns: 30% 40% 30%;
	height: 100%;
}

.onsenHeroSlides img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.onsenHeroSlides img:nth-child(1) {
	object-position: 70% center;
}

.onsenHeroSlides img:nth-child(3) {
	object-position: center 48%;
}

.onsenNarrow {
	width: min(112rem,calc(100% - 4rem));
}

.onsenFeatures {
	padding: 4rem;
}

.featureRow {
	display: grid;
	grid-template-columns: 1.08fr .92fr;
	gap: 3rem;
	margin: 0 auto;
	align-items: center;
}

.featureRow.isReverse {
	grid-template-columns: .92fr 1.08fr;
}

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

.featurePhoto img {
	width: 100%;
}

.featureCopy h2 {
	font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .08em;
	color: var(--brown);
}

.featureCopy p {
	margin-top: 2.2rem;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 2;
	text-align: center;
}

.roundBtn {
	display: inline-flex;
	min-width: 28rem;
	margin-top: 2.6rem;
	padding: 1.2rem 2.4rem;
	align-items: center;
	justify-content: center;
	gap: 1.2rem;
	font-size: 1.5rem;
	font-weight: 700;
	border: 2px solid #553727;
	border-radius: 99px;
	background: rgba(255,255,255,.18);
}

.onsenTourInner {
	width: min(105rem,calc(100% - 4rem));
}

.floorHeading img {
	width: 6rem;
}

.floorHeading p {
	font-size: 2.5rem;
	font-weight: 700;
	color: #fff;
}

.bathGrid {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 3rem 2.5rem;
}

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

.floorHeading.floor2 {
	margin-top: 7rem;
}

.onsenQuality {
	position: relative;
	z-index: 1;
	padding: 6rem 0;
}

.onsenQualityInner {
	width: min(110rem,calc(100% - 4rem));
}

.qualityIllust {
	width: 14rem;
	margin: -18rem auto 1rem;
}

.qualityBox p,.qualityBox li {
	font-size: 1.8rem;
	line-height: 1.8;
}

.qualityBox ul {
	list-style: none;
	padding-left: 0;
}

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

@media (min-width:897px) {
.footerNavLinks {
	width: 56rem;
	grid-template-columns: 16rem 16rem 21rem;
}

.footerNavLinks a:last-child {
	width: 21rem;
	justify-self: end;
}

}

/* ------------------------------------------------------------
  Onsen page refinement v06
------------------------------------------------------------ */

/*#onsen #gHeader,
.facilityPage #gHeader {
	position: relative;
	padding: 1.2rem 2rem 1rem;
	background: url("../image/common/bg_orange.webp") repeat center top / 1800px auto;
	border-bottom: 1rem solid #4e382f;
}*/

#onsen .guideWaveBeigeBrown {
	background-image: url("../image/common/bg_wave_orange_brown01_dark.png");
}

#onsen .headerInner,
.facilityPage .headerInner {
	align-items: center;
}

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

#onsen .gNavItem img,
.facilityPage .gNavItem img {
	height: 4.5rem;
}

.onsenHero {
	position: relative;
	height: auto;
	padding-bottom: 0;
	overflow: hidden;
	background: #33231d;
}

.onsenHeroSlide.is-active {
	opacity: 1;
}

.onsenHeroBottom {
	position: absolute;
	left: 0;
	bottom: -1px;
	z-index: 4;
	width: 100%;
	height: auto;
	pointer-events: none;
}

.onsenHeroDots {
	position: absolute;
	left: 50%;
	bottom: 4.5rem;
	z-index: 6;
	display: flex;
	gap: 1.3rem;
	transform: translateX(-50%);
}

.onsenHeroDots button {
	width: 1.7rem;
	height: 1.7rem;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 5px rgba(0,0,0,.25);
	opacity: .85;
}

.onsenHeroDots button.is-active {
	background: #7b4b24;
}

.onsenIntroCloud {
	position: absolute;
	top: -12rem;
	left: 0;
	z-index: 3;
	width: 100%;
	height: 18rem;
	object-fit: fill;
	display: none;
}

.onsenWave {
	height: 15rem;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 100% 100%;
}

.onsenWaveBrownOrange {
	background-image: url("../image/common/bg_wave_brown02_orange.png");
}

.photoFrameTop,
.bathPhoto {
	position: relative;
}

.photoFrameTop::after,
.bathPhoto::after {
	position: absolute;
	inset: 0;
	z-index: 2;
	background: url("../image/common/photo-frame-top.svg") center / 100% 100% no-repeat;
	content: "";
	pointer-events: none;
}

.photoFrameTop {
	padding: 1.2rem;
}

.photoFrameTop img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bathPhoto img {
	position: relative;
	z-index: 1;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.onsenQuality h2 {
	margin-bottom: 5rem;
	font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
	font-size: 3.8rem;
	font-weight: 700;
	text-align: center;
	letter-spacing: .16em;
	color: #fff7df;
	display: none;
}

.qualityBox {
	margin-top: 2.5rem;
	align-items: start;
	display: grid;
	grid-template-columns: 12rem 1fr;
	gap: 3rem;
	padding: 3.2rem 4rem;
	border-radius: 2.2rem;
	background: rgba(255,246,226,.88);
}

.qualityBox + .qualityBox {
	margin-top: 2rem;
}

.qualityDefinition {
	display: grid;
	grid-template-columns: 15rem 1fr;
	gap: .7rem 1.8rem;
	font-size: 1.8rem;
	line-height: 1.8;
}

.qualityDefinition dt,
.qualityList li {
	position: relative;
	padding-left: 2.6rem;
	font-weight: 700;
}

.qualityDefinition dt::before,
.qualityList li::before {
	position: absolute;
	top: .75em;
	left: 0;
	width: 1.8rem;
	height: .8rem;
	background: url("../image/onsen/onsen_mark01.png") center / contain no-repeat;
	content: "";
}

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

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

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

.onsenHeroTrack {
	position: relative;
	display: flex;
	width: 100%;
	aspect-ratio: auto;
	overflow: visible;
	will-change: transform;
	transition: transform .9s cubic-bezier(.45, 0, .2, 1);
}

.onsenHeroTrack.is-noTransition {
	transition: none;
}

.onsenHeroSlide {
	position: relative;
	inset: auto;
	flex: 0 0 auto;
	opacity: 1;
	transition: none;
}

.onsenHeroSlide img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 2400 / 1500;
	object-fit: cover;
	object-position: center;
}

.onsenHeroRakko {
	position: absolute;
	z-index: 5;
	left: 19%;
	bottom: 1.8rem;
	width: clamp(12rem, 26vw, 28rem);
}

.onsenSectionTitle,
.featureTitleImage,
.tourHeading img:last-child,
.qualityTitleImage,
.qualityBox > img {
	display: block;
	width: auto;
	max-width: 100%;
	object-fit: contain;
}

.onsenSectionTitle {
	width: 70rem;
	margin: 0 auto 3rem;
}

.featureTitleImage {
	width: min(100%,52rem);
	margin: 0 0 2.2rem;
}

.tourHeading img:last-child {
	width: min(100%, 100rem);
	height: 6.5rem;
}

.qualityTitleImage {
	display: block;
	width: min(100%, 100rem);
	height: 8.5rem;
	margin: 0 auto 5rem;
}

.qualityBox > img {
	width: 9rem;
	height: 5rem;
	margin: 0 auto;
}

/* ------------------------------------------------------------
  Onsen page refinement v08
------------------------------------------------------------ */

.onsenIntro,
.ganbanIntro {
	margin-top: -1px;
	text-align: center;
	padding-top: 3rem;
	position: relative;
	z-index: auto;
	padding: 5rem 0 0;
	overflow: visible;
}

.onsenIntroInner,
.ganbanIntroInner {
	z-index: 4;
	position: relative;
	text-align: center;
}

.onsenTitleImage,
.ganbanTitleImage {
	display: block;
	width: min(70rem, 78vw);
	margin: 0 auto;
}

.onsenIntroLine,
.ganbanIntroLine {
	display: block;
	width: min(82rem, 50vw);
	margin: 2rem auto;
}

.onsenIntro p,
.ganbanIntro p {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 2.15;
	letter-spacing: .08em;
}

.onsenIntroIllust,
.ganbanIntroIllust {
	margin: 2rem auto -2rem;
	position: absolute;
	left: 50%;
	bottom: -14rem;
	z-index: 4;
	width: 28rem;
	transform: translateX(-50%);
	pointer-events: none;
}
.ganbanIntroIllust {
	margin: 0 auto -2rem;
	bottom: -11rem;
}

.onsenWaveOrangeBeige {
	background-image: url("../image/common/bg_wave_orange_beige.png");
	position: relative;
	z-index: 3;
	margin-top: 0;
}

/* The supplied feature photos already contain their own cut-out shape. */

.photoFrameTop::after {
	display: none;
}

/* Bath-card top edge: use the supplied PNG instead of SVG. */

.bathCard {
	min-height: 44rem;
	padding: 2rem;
	position: relative;
	isolation: isolate;
	padding-top: 3.8rem;
	background: transparent;
}

.bathCard::before {
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 4.2rem;
	background: url("../image/common/photo-frame-card.png") center top / 100% 100% no-repeat;
	content: "";
}

.bathCard::after {
	position: absolute;
	top: 3.9rem;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: -1;
	background: #382218;
	content: "";
}

.bathPhoto {
	position: relative;
	height: 20rem;
	margin: -1.5rem -1rem 1rem;
	padding: 1.2rem;
}

.bathPhoto::after {
	position: absolute;
	inset: 0;
	background: url("../image/common/photo-frame-card.svg") center/100% 100% no-repeat;
	content: "";
	pointer-events: none;
	background-image: url("../image/common/photo-frame-card.svg");
	display: none;
}

/* ------------------------------------------------------------
  Onsen page refinement v09
  2026-07-23
------------------------------------------------------------ */

/* ベージュ背景から「ござらっせの湯めぐり」へのウェーブ */

.onsenTour {
	padding: 6rem 0;
	color: #fff7ec;
	position: relative;
	margin-top: 12rem;
	padding-top: 6rem;
	overflow: visible;
}

.onsenTour::before {
	position: absolute;
	top: -15rem;
	left: 0;
	z-index: 2;
	width: 100%;
	height: 15rem;
	background: url("../image/common/bg_wave_beige_brown02.png") no-repeat center / 100% 100%;
	content: "";
	pointer-events: none;
}

/* 「ゆ」のイラストをウェーブへ重ねる */

.tourHeading {
	display: flex;
	margin-bottom: 5rem;
	flex-direction: column;
	align-items: center;
	position: relative;
	z-index: 4;
	margin-top: -18rem;
}

.tourHeading img:first-child {
	position: relative;
	z-index: 4;
	width: 14rem;
	margin-bottom: 2rem;
}

/* 「8種類のお風呂」横の装飾に line01.png を使用 */

.floorHeading {
	display: grid;
	gap: 1.5rem;
	margin: 4rem 0 3rem;
	align-items: center;
	grid-template-columns: 7rem auto minmax(0, 1fr);
}

.floorHeading span {
	background-image: radial-gradient(circle,#41b4ad 0 35%,transparent 38%),radial-gradient(circle,#f07d35 0 35%,transparent 38%);
	background-position: 0 center,1.8rem center;
	background-size: 3.6rem .9rem;
	background-repeat: repeat-x;
	height: 2.2rem;
	background: url("../image/common/line01.png") no-repeat left center / 100% auto;
}

/* 2F側も同じ装飾を使用 */

.floorHeading.floor2 span {
	background-image: url("../image/common/line01.png");
}

/* ===== Onsen card line02 / quality list fix ===== */

.bathCard h3 {
	font-size: 1.8rem;
	font-weight: 700;
	text-align: center;
	border-bottom: 0;
	padding-bottom: 2rem;
	background: url("../image/common/line02.png") no-repeat center bottom;
	background-size: calc(100% - 2rem) auto;
}

.qualityList {
	display: grid;
	gap: .8rem 2.8rem;
	font-size: 1.4rem;
	line-height: 1.65;
	list-style: none;
	margin: 0;
	padding-left: 0;
}

.qualityList li::marker {
	content: "";
}

/* おすすめ画像 */

.bathCard.isRecommend > b {
	color: #fff;
	position: absolute;
	top: -2.5rem;
	left: 1rem;
	z-index: 5;
	padding: 0;
	background: none;
	transform: none;
}

.bathCard.isRecommend > b img {
	display: block;
	width: 14rem;
	height: auto;
}

/* =========================================================
   岩盤浴
========================================================= */
.ganbanMemo {
	margin: 1rem auto 0 auto;
	padding: 0.5rem 1.5rem;
	display: inline-block;
	background: #c00;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 500;
}

/* 温泉ページと共通構造の「魅力・特徴」 */
.ganbanFeatures {
	padding: 4rem;
}

.ganbanSectionTitle {
	width: 70rem;
    margin: 0 auto 3rem;
}

.ganbanHowtoInner {
	max-width: 110rem;
	padding-top: 8rem;
}

.ganbanHowtoTitle {
	margin-bottom: 5rem;
}

.ganbanStepList {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 3rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ganbanStepList li {
	color: var(--brown);
	text-align: left;
}

.ganbanStepPhoto {
	overflow: hidden;
	/*aspect-ratio: 1.12;*/
	margin-bottom: 2rem;
	border: 0.5rem solid #c39a61;
	border-radius: 1.2rem;
	background: #bfc1c3;
}

.ganbanStepPhoto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ganbanStepList h3 {
	margin-bottom: 1rem;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
}

.ganbanStepList p {
	font-size: 1.6rem;
	line-height: 1.8;
}
.ganbanStone {
	padding: 8rem 0 6rem;
}

.ganbanStoneInner {
	max-width: 110rem;
}

.ganbanStoneHeading {
	position: relative;
	z-index: 4;
	margin: -20rem auto 5rem;
	text-align: center;
}

.ganbanStoneIllust {
	display: block;
	width: 35rem;
	margin: 0 auto 2rem;
}

.ganbanStoneTitle {
	display: block;
	width: 100%;
	margin: 0 auto;
}

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

.ganbanStoneCard {
	position: relative;
	min-height: 40rem;
	padding: 3.8rem 2rem 2.5rem;
	color: #fff;
	background: transparent;
	isolation: isolate;
}

.ganbanStoneCard::before {
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 4.2rem;
	background: url("../image/common/photo-frame-card.png") center top / 100% 100% no-repeat;
	content: "";
}

.ganbanStoneCard::after {
	position: absolute;
	top: 3.9rem;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: -1;
	background: #382218;
	content: "";
}

.ganbanStonePhoto {
	overflow: hidden;
	height: 20rem;
	margin: -1.5rem -1rem 1rem;
	padding: 1.2rem;
}

.ganbanStonePhoto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ganbanStoneCard h3 {
	margin-bottom: 1.4rem;
	padding-bottom: 2rem;
	font-size: 1.8rem;
	font-weight: 700;
	color: #fff;
	text-align: center;
	background: url("../image/common/line02.png") no-repeat center bottom / calc(100% - 2rem) auto;
}

.ganbanStoneCard p {
	font-size: 1.6rem;
	line-height: 1.8;
}

.ganbanArea {
	position: relative;
	padding: 2rem 0 0;
	overflow: visible;
}

.ganbanAreaIllust {
	position: absolute;
	top: -12rem;
	left: 50%;
	z-index: 4;
	width: 30rem;
	transform: translateX(-50%);
	pointer-events: none;
}

.ganbanAreaInner {
	max-width: 110rem;
}

.ganbanAreaGroup + .ganbanAreaGroup {
	margin-top: 9rem;
}

.ganbanAreaTitle {
	display: block;
	width: min(80rem, 100%);
	margin: 0 auto 2rem;
}

.ganbanAreaLine {
	display: block;
	width: min(68.9rem, 86%);
	margin: 0 auto 6rem;
}

.ganbanAreaGrid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 4rem;
	align-items: start;
}

.ganbanAreaCard {
	position: relative;
	min-height: 48rem;
	padding: 4.2rem 2.5rem 3rem;
	color: #fff;
	background: transparent;
	isolation: isolate;
}

.ganbanAreaCard::before {
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 4.2rem;
	background: url("../image/common/photo-frame-card.png") center top / 100% 100% no-repeat;
	content: "";
}

.ganbanAreaCard::after {
	position: absolute;
	top: 3.9rem;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: -1;
	background: #382218;
	content: "";
}

.ganbanAreaOrnament {
	display: flex;
	position: absolute;
	top: -3.4rem;
	left: -1.2rem;
	z-index: 3;
	width: calc(100% + 2.4rem);
	justify-content: space-between;
	pointer-events: none;
}

.ganbanAreaOrnament img {
	width: 5rem;
}

.ganbanAreaOrnament img:last-child {
	transform: scaleX(-1);
}

.ganbanAreaCard h3 {
	margin-bottom: 1.8rem;
	font-size: 2.2rem;
	color: var(--orange);
	text-align: center;
}

.ganbanAreaPhoto {
	overflow: hidden;
	aspect-ratio: 1.45;
	margin-bottom: 1.8rem;
	padding: 0.5rem;
}

.ganbanAreaPhoto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ganbanAreaCard p {
	font-size: 1.8rem;
	line-height: 1.8;
	font-weight: 500;
}

.ganbanCoolCard {
	display: grid;
	grid-column: 1 / -1;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: auto 1fr;
	gap: 0 4rem;
	min-height: 42rem;
	padding: 5rem;
	align-items: start;
	margin-top: 2rem;
}

.ganbanCoolCard::before {
	background-image: url("../image/common/photo-frame-card02.png");
}

.ganbanCoolCard h3 {
	grid-column: 2;
	grid-row: 1;
	margin: 1rem 0 2rem;
	text-align: left;
}

.ganbanCoolCard .ganbanAreaPhoto {
	grid-column: 1;
	grid-row: 1 / span 2;
	height: 100%;
	min-height: 32rem;
	margin: 0;
	aspect-ratio: auto;
}

.ganbanCoolCard p {
	grid-column: 2;
	grid-row: 2;
	margin: 0;
	align-self: start;
}

.ganbanNotice {
	padding: 0 0 6rem 0;
	position: relative;
	z-index: 4;
}

.ganbanNotice .inner {
	max-width: 140rem;
	position: relative;
	z-index: 5;
}

.ganbanNoticeBox {
	display: grid;
	grid-template-columns: 64% 36%;
	min-height: 7.2rem;
	overflow: visible;
	background: transparent;
}

.ganbanNoticeHydration {
	display: grid;
	grid-template-columns: 8rem auto 1fr;
	gap: 1.5rem;
	padding: 0 1rem;
	align-items: center;
	color: var(--brown);
	border-radius: 4rem 0 0 4rem;
	background: rgba(255, 255, 255, 0.72);
}

.ganbanNoticeDrink {
	display: grid;
	grid-template-columns: 4.5rem 1fr;
	gap: 0;
	padding: 0 1rem;
	align-items: center;
	color: #fff;
	border-radius: 0 4rem 4rem 0;
	background: var(--brown);
}

.ganbanNoticeIcon {
	display: flex;
	align-items: center;
	justify-content: center;
}

.ganbanNoticeDrop {
	position: relative;
	top: -1rem;
}

.ganbanNoticeDrop img {
	width: 4.8rem;
}

.ganbanNoticeCup img {
	width: 3.8rem;
}

.ganbanNoticeTitle {
	margin-left: -2rem;
	font-size: 2.4rem;
	font-weight: 700;
	color: var(--brown);
	white-space: nowrap;
}

.ganbanNoticeText {
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.55;
}

.ganbanNoticeDrink p {
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.4;
	white-space: nowrap;
}
.onsenWaveBeigeBrown { height: 11rem; margin-bottom: -1px; background: url(../image/common/bg_wave_beige_brown01.png) center bottom / 100% 100% no-repeat; }
#ganbanyoku .onsenWaveBeigeBrown {background: url(../image/common/bg_wave_beige_brown02.png) center bottom / 100% 100% no-repeat;}

/* ------------------------------------------------------------
  下層メインビジュアル：PC版は高さ450pxで統一
------------------------------------------------------------ */

@media all and (min-width: 897px) {
	.onsenHero {
		height: 45rem;
	}

	.onsenHeroTrack,
	.onsenHeroSlide {
		height: 100%;
	}

	.onsenHeroSlide img {
		width: 100%;
		height: 100%;
		aspect-ratio: auto;
		object-fit: cover;
		object-position: center;
	}
}

/* ------------------------------------------------------------
  Sauna page
------------------------------------------------------------ */
.sauna_intro {
	position: relative;
	z-index: auto;
	margin-top: -1px;
	padding: 5rem 0 0;
	overflow: visible;
	text-align: center;
}
.sauna_introInner {
	position: relative;
	z-index: 4;
	text-align: center;
}
.sauna_titleImage {
	display: block;
	width: 70rem;
	max-width: 78vw;
	margin: 0 auto;
}
.sauna_introLine {
	display: block;
	width: min(82rem, 50vw);
	margin: 2rem auto;
}
.sauna_intro p {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 2.15;
	letter-spacing: .08em;
}
.sauna_introIllust {
	position: absolute;
	left: 50%;
	bottom: -16rem;
	z-index: 4;
	width: 28rem;
	transform: translateX(-50%);
	pointer-events: none;
}
.sauna_features {
	padding: 4rem;
}
.sauna_sectionTitle {
	display: block;
	width: 70rem;
	max-width: 100%;
	margin: 0 auto 4rem;
}
.sauna_featureRow {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	margin: 0 auto 1.2rem;
	align-items: center;
}
.sauna_featureRow.isReverse {
	margin-bottom: 0;
	grid-template-columns: 1fr 1fr;
}
.sauna_featureRow.isReverse .sauna_featurePhoto {
	order: 2;
}
.sauna_featurePhoto {
	margin-top: 4rem;
	width: 52rem;
	max-width: 100%;
	justify-self: start;
}
.sauna_featureRow.isReverse .sauna_featurePhoto {
	justify-self: end;
}
.sauna_featurePhoto img {
	display: block;
	width: 100%;
}
.sauna_featureCopy p {
	margin-top: 2.2rem;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 2;
}
.sauna_heading {
	display: block;
	height: auto;
	max-width: 100%;
}
.sauna_item01 .sauna_featureCopy,
.sauna_item03 .sauna_featureCopy,
.sauna_item05 .sauna_featureCopy,
.sauna_item07 .sauna_featureCopy {
	text-align: left;
}
.sauna_item01 .sauna_heading,
.sauna_item03 .sauna_heading,
.sauna_item05 .sauna_heading,
.sauna_item07 .sauna_heading {
	margin-right: auto;
	margin-left: 0;
}
.sauna_item02 .sauna_featureCopy,
.sauna_item04 .sauna_featureCopy {
	text-align: right;
}
.sauna_item02 .sauna_heading,
.sauna_item04 .sauna_heading {
	margin-right: 0;
	margin-left: auto;
}
.sauna_heading01 { width: 54rem; }
.sauna_heading02 { width: 24.5rem; }
.sauna_heading03 { width: 48rem; }
.sauna_heading04 { width: 44.1rem; }
.sauna_heading05 { width: 28.7rem; }
.sauna_heading06 { width: 25.6rem; }
.sauna_heading07 { width: 38.3rem; }
.sauna_item01 .sauna_featureCopy,
.sauna_item03 .sauna_featureCopy,
.sauna_item05 .sauna_featureCopy,
.sauna_item07 .sauna_featureCopy { transform: translateX(1.5rem); }
.sauna_item02 .sauna_featureCopy,
.sauna_item04 .sauna_featureCopy { transform: translateX(-1.5rem); }

/* =========================================================
   Sauna item06：外気浴・内気浴 専用レイアウト
========================================================= */
.sauna_item06 {
	display: grid;
	position: relative;
	grid-template-columns: 1fr !important;
	margin: 0 auto;
	padding: 0 0 4rem 0;
	align-items: start;
}

.sauna_item06 .sauna_featurePhoto,
.sauna_item06 .sauna_featureCopy {
	grid-column: 1;
	grid-row: 1;
}

.sauna_item06 .sauna_featurePhoto {
	position: relative;
	z-index: 1;
	width: 83.2rem;
	max-width: none;
	margin-left: auto;
	justify-self: end;
	transform: none;
}

.sauna_item06 .sauna_featureCopy {
	position: relative;
	z-index: 2;
	width: 50%;
	margin-top: 6rem;
	padding-right: 3rem;
	justify-self: start;
	align-self: start;
	text-align: right;
	transform: none;
}

.sauna_item06 .sauna_heading {
	display: block;
	margin: 0 0 2rem auto;
}

.sauna_item06 .sauna_featureCopy p {
	margin: 0;
	text-align: right;
}

/* ------------------------------------------------------------
  Rest area / Facilities page
------------------------------------------------------------ */
.kyukei_intro {
	position: relative;
	margin-top: -1px;
	padding: 5rem 0 2rem;
	overflow: visible;
	text-align: center;
}
.kyukei_introInner {
	position: relative;
	z-index: 4;
}
.kyukei_titleImage {
	display: block;
	width: 70rem;
	max-width: 78vw;
	margin: 0 auto;
}
.kyukei_introLine {
	display: block;
	width: min(82rem, 50vw);
	margin: 2rem auto;
}
.kyukei_pageLinks {
	display: flex;
	gap: 1.5rem;
	margin: 0 0 2.5rem;
	justify-content: center;
}
.kyukei_pageLinks a {
	display: flex;
	width: 17.9rem;
	height: 5.4rem;
	padding: 0 2rem;
	align-items: center;
	justify-content: center;
	font-size: 1.6rem;
	font-weight: 700;
	color: #fff;
	background: url(../image/common/sub_bg01.png) center / 100% 100% no-repeat;
}
.kyukei_intro p {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 2.15;
	letter-spacing: .08em;
}
.kyukei_introIllust {
	position: absolute;
	right: 45%;
	bottom: -20rem;
	z-index: 4;
	width: 15rem;
	pointer-events: none;
}
.kyukei_floor {
	padding: 1rem 0 8rem;
}
.kyukei_sectionTitle {
	display: block;
	width: 70rem;
	max-width: 100%;
	margin: 0 auto 4rem;
}
.kyukei_mainFeature {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 5rem;
	margin: 0 auto 5rem;
	align-items: center;
}
.kyukei_featureList {
	margin-bottom: 1rem;
}
.kyukei_mainFeature.isReverse {
	grid-template-columns: 1fr 1fr;
}
.kyukei_mainFeature.isReverse .kyukei_mainPhoto {
	grid-column: 2;
	grid-row: 1;
}
.kyukei_mainFeature.isReverse .kyukei_mainCopy {
	grid-column: 1;
	grid-row: 1;
	text-align: right;
}
.kyukei_mainFeature.isReverse .kyukei_heading {
	margin-right: 0;
	margin-left: auto;
}
.kyukei_floorGroup,
.kyukei_mapSection {
	padding-top: 9rem;
}
.kyukei_map {
}
.kyukei_map img {
	display: block;
	width: 100%;
}
.kyukei_mainPhoto img {
	display: block;
	width: 100%;
}
.kyukei_heading {
	display: block;
	max-width: 100%;
	margin-bottom: 2.5rem;
}
.kyukei_heading01 { width: 22.5rem; }
.kyukei_heading02 { width: 40rem; }
.kyukei_heading03 { width: 22.5rem; }
.kyukei_heading04 { width: 40rem; }
.kyukei_mainCopy p {
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 2;
}
.kyukei_photoLine {
	display: block;
	width: 100%;
	margin: 0 auto 4rem;
}
.kyukei_squareGrid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 3.5rem;
}
.kyukei_squareItem {
	margin: 0;
	text-align: center;
}
.kyukei_squareItem img {
	display: block;
	width: 100%;
	box-sizing: border-box;
	border: 5px solid #b89561;
	border-radius: .8rem;
}
.kyukei_squareItem figcaption {
	margin-top: 1.5rem;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.6;
}
.kyukei_anchor {
	display: block;
	position: relative;
	top: -8rem;
	visibility: hidden;
}
#kyukei .onsenWaveBeigeBrown {
	background-image: url(../image/common/bg_wave_beige_brown02.png);
}


/* ------------------------------------------------------------
  Visitor page
------------------------------------------------------------ */
.visitorHero {
	position: relative;
	height: 45rem;
	overflow: hidden;
	background: #33231d;
}
.visitorHeroImage {
	width: 100%;
	height: 100%;
	background: url(../image/visitor/visitor_main.webp) bottom / cover no-repeat;
}
.visitorIntro {
	position: relative;
	padding: 5rem 0 2rem;
	text-align: center;
}
.visitorIntroInner { position: relative; z-index: 4; }
.visitorTitleImage {
	display: block;
	width: 70rem;
	max-width: 78vw;
	margin: 0 auto;
}
.visitorIntroLine {
	display: block;
	width: min(82rem, 50vw);
	margin: 2rem auto 0 auto;
	padding-bottom: 2rem;
}
.visitorPageLinks {
	display: flex;
	gap: 1.5rem;
	padding-top: 1rem;
	padding-bottom: 2rem; 
	justify-content: center;
}
.visitorPageLinks a {
	display: flex;
	width: 25rem;
	height: 5.5rem;
	padding: 0 2rem;
	align-items: center;
	justify-content: center;
	font-size: 1.6rem;
	font-weight: 700;
	color: #fff;
	background: url("../image/common/sub_bg02.png") center / 100% 100% no-repeat;
}
.visitorIntro p { font-size: 1.8rem; font-weight: 700; letter-spacing: .08em; }
.visitorContent { /* padding: 0; */ }
.visitorNarrow { width: min(100rem, calc(100% - 4rem)); }
.visitorPanel {
	padding: 5rem 7rem 6rem;
	border-radius: 2.5rem;
	background: rgba(255, 250, 238, .78);
}
.visitorPanel + .visitorPanel { margin-top: 8rem; }
.visitorSectionTitle {
	width: 70rem;
	max-width: 100%;
	margin: 0 auto 4rem;
}
.visitorStepList { margin: 0; padding: 0; list-style: none; }
.visitorStepList li {
	display: grid;
	grid-template-columns: 30rem 1fr;
	gap: 3rem;
	align-items: center;
}
.visitorStepList li + li { margin-top: 2.5rem; }
.visitorStepPhoto {
	overflow: hidden;
	margin: 0;
	border: .7rem solid #b89561;
	border-radius: 1.2rem;
}
.visitorStepPhoto img { display: block; width: 100%; aspect-ratio: 726 / 532; object-fit: cover; }
.visitorStepHeading { width: auto; max-width: 100%; height: 3.5rem; object-fit: contain; object-position: left center; }
.visitorStepCopy p { margin-top: 1.2rem; font-size: 1.8rem; line-height: 1.8; }
.visitorBelongings { text-align: center; }
.visitorBelongingsLead { margin-bottom: 1rem; font-size: 2.2rem; font-weight: 700; color: #c11b05; }
.visitorBelongingsText { font-size: 1.8rem; line-height: 1.9; }
.visitorAmenityBox {
	margin-top: 4rem;
	padding: 3rem;
	border: .4rem solid #fff;
	border-radius: 2rem;
}
.visitorAmenityBox h3 { margin-bottom: 2rem; font-size: 2rem; line-height: 1.5; }
.visitorAmenityList {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 3rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.visitorAmenityList img { display: block; width: 100%; }
.visitorAmenityList span { display: block; margin-top: 1rem; font-size: 1.4rem; font-weight: 700; line-height: 1.5; text-align: center; }
.visitorFaq { margin-top: 3.5rem; text-align: left; }
.visitorFaq details { border-bottom: 1px solid #9d7b5b; }
.visitorFaq details:first-child { border-top: 1px solid #9d7b5b; }
.visitorFaq summary { position: relative; padding: 1.5rem 4.5rem 1.5rem 6rem; font-size: 1.8rem; font-weight: 700; cursor: pointer; list-style: none; }
.visitorFaq summary::-webkit-details-marker { display: none; }
.visitorFaqToggle {
	position: absolute;
	top: 50%;
	right: 1.2rem;
	width: 2.8rem;
	height: 2.8rem;
	transform: translateY(-50%);
}
.visitorFaqToggle::before,
.visitorFaqToggle::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 2.4rem;
	height: .5rem;
	border-radius: 999px;
	background: #6f4c35;
	content: "";
	transform: translate(-50%, -50%);
}
.visitorFaqToggle::after {
	transform: translate(-50%, -50%) rotate(90deg);
	transition: opacity .2s ease, transform .2s ease;
}
.visitorFaq details[open] .visitorFaqToggle::after {
	opacity: 0;
	transform: translate(-50%, -50%) rotate(0deg);
}

.visitorFaq summary::before { position: absolute; top: 50%; left: .8rem; width: 4rem; height: 4rem; background: url(../image/faq/q_blue.png) center / contain no-repeat; content: ""; transform: translateY(-50%); }
.visitorFaq details:nth-of-type(even) summary::before { background-image: url(../image/faq/q_orange.png); }


.visitorFaq details > div { padding: 0 4rem 1.5rem; }
.visitorFaq details > div p { font-size: 1.6rem; line-height: 1.8; }
.visitorFaq details > div p a { text-decoration: underline; }
.visitorFaqMore { margin-top: 2rem; text-align: right; }
.visitorFaqMore a { display: inline-flex; min-width: 20rem; padding: .8rem 2rem; justify-content: center; font-size: 1.8rem; font-weight: 700; gap: 1rem; border: 3px double #8c6b4d; border-radius: 999px; }
.visitorFaqMore a img { width: 2rem; height: auto; }
.visitorService { padding: 1rem 0 5rem 0; overflow: hidden; }
.visitorServiceInner { width: min(120rem, calc(100% - 4rem)); }
.visitorServiceSlider { overflow: hidden; }
.visitorServiceTrack { display: flex; transition: transform .7s ease; }
.visitorServiceCard { flex: 0 0 calc(33.333% - 2rem); margin-right: 3rem; text-align: center; }
.visitorServiceCard img { display: block; width: 100%; }
.visitorServiceCard h3 { margin-top: 1.8rem; font-size: 1.8rem; font-weight: 700; }
.visitorServiceCard p { margin-top: 1rem; font-size: 1.6rem; line-height: 1.8; }
.visitorServiceDots { display: flex; gap: 1rem; margin-top: 3rem; justify-content: center; }
.visitorServiceDots button { width: 1.2rem; height: 1.2rem; border-radius: 50%; background: #d0b18a; }
.visitorServiceDots button.is-active { background: #ef822f; }
#visitor .onsenWaveBeigeBrown { background-image: url("../image/common/bg_wave_beige_brown01.png"); }
.bgBeige02 {
	position: relative;
	background: url("../image/common/bg_beige02.webp") repeat-y center top / 1800px auto;
}
.visitorWaveBeige01Beige02 {
	height: 15rem;
	margin-bottom: -1px;
	background: url("../image/common/bg_wave_beige01_beige02.png") no-repeat center / 100% 100%;
}


.visitorWaveBeige02Brown01 {
	height: 15rem;
	margin-bottom: -1px;
	background: url(../image/common/bg_wave_beige02_brown01.png) no-repeat center / 100% 100%;
}

/* ------------------------------------------------------------
  FAQ page
------------------------------------------------------------ */
.faqHeroImage {
	background-image: url(../image/faq/faq_main.webp);
}
.faqPageLinks {
	width: 78rem;
	max-width: 100%;
	margin-right: auto;
	margin-left: auto;
	flex-wrap: wrap;
}
.faqPageLinks a {
	width: 25rem;
	flex: 0 0 25rem;
}
.faqContent {
	padding: 0 0 8rem;
}
.faqPanel + .faqPanel {
	margin-top: 6rem;
}
.faqSectionTitle {
	display: block;
	width: 70rem;
	max-width: 100%;
	margin: 0 auto 4rem;
}
.faqList {
	margin-top: 0;
}
.faqWaveBeigeBrown {
	height: 15rem;
	margin-bottom: -1px;
	background: url(../image/common/bg_wave_beige_brown01.png) no-repeat center / 100% 100%;
}

#faq .faqNoticeLink {
	display: inline;
	padding: 0;
	background: none;
	border-radius: 0;
	color: inherit;
	text-decoration: underline;
}

#faq .faqNoticeLink:hover {
	opacity: .8;
}


/* ------------------------------------------------------------
  Company page
------------------------------------------------------------ */
.companyHeroImage {
	background-image: url(../image/company/company_main.webp);
}
.companyIntro {
	padding-bottom: 0;
}
.companyTitleImage {
	width: 70rem;
}
.companyContent {
	padding: 0 0 8rem;
}
.companyPanel {
	padding-top: 7rem;
	padding-bottom: 7rem;
}
.companyTable {
	margin: 0;
}
.companyTableRow {
	display: grid;
	grid-template-columns: 16rem 1fr;
	gap: 3rem;
	padding: 2rem 3rem;
	align-items: center;
	border-bottom: 1px solid #6f4c35;
}
.companyTableRow:first-child {
	border-top: 1px solid #6f4c35;
}
.companyTable dt,
.companyTable dd {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.5;
}
.companyTable a {
	color: inherit;
}
.companyRelatedContent {
}
.companyRelatedName {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 500;
}
.companyRelatedName a {
	text-decoration: underline;
	text-underline-offset: .35em;
}
.fBanner {
	width: min(28rem, 100%);
	margin: 2rem 0 0;
}
.fBanner img {
	display: block;
	width: 100%;
	height: auto;
}
.companyWaveBeigeBrown {
	height: 15rem;
	margin-bottom: -1px;
	background: url(../image/common/bg_wave_beige_brown01.png) no-repeat center / 100% 100%;
}

/* ------------------------------------------------------------
  Guide page
------------------------------------------------------------ */
.guideHeroImage {
    background-image: url(../image/guide/guide_main.webp);
}
.guideIntro {
    padding-bottom: 0;
}
.guideTitleImage {
    width: 70rem;
}
.guidePageLinks {
    display: grid;
    grid-template-columns: repeat(6, 16rem);
    gap: 1.2rem;
    justify-content: center;
    margin-bottom: 2.5rem;
}
.guidePageLinks a {
    width: 16rem;
    padding: 0 1rem;
    text-align: center;
}


/* ------------------------------------------------------------
  Guide page - Price
------------------------------------------------------------ */
.guideContent {
    padding: 0;
}
.guidePanel {
    scroll-margin-top: 10rem;
}
.guideSectionHeading {
    margin: 0;
}
.guideSectionTitle {
    width: 70rem;
    max-width: 100%;
    margin: 0 auto 4rem;
}
.guidePriceLead {
    margin: 0 0 4rem;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.9;
    text-align: center;
}
.guidePriceBlock + .guidePriceBlock {
    margin-top: 5rem;
}
.guidePriceSubTitle {
    display: flex;
    margin: 0 0 1.5rem;
    align-items: center;
    font-size: 2rem;
    font-weight: 700;
    color: var(--brown);
}
.guidePriceSubTitle img {
    display: block;
    width: 3.8rem;
    margin-right: 1rem;
}
.guidePriceTableWrap {
    overflow-x: auto;
}
.guidePriceTable {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 1.8rem;
    color: var(--brown);
    background: rgba(255,255,255,.28);
}
.guidePriceTable th,
.guidePriceTable td {
    padding: 1.8rem 1.5rem;
    border: .3rem solid #fff;
    text-align: center;
    vertical-align: middle;
}
.guidePriceTable thead th,
.guidePriceTable tbody th {
    font-weight: 700;
    color: #fff;
    background: #ad9a7e;
}
.guidePriceTable thead th:first-child,
.guidePriceTable tbody th {
    width: 35%;
}
.guidePriceTable thead th span {
    display: inline;
}
.guidePriceTable thead th .guidePriceTimeLabel {
    margin-right: .8rem;
    font-weight: 700;
}
.guidePriceTable td strong,
.guidePriceOption strong,
.guidePriceMember strong {
    font-size: 3.4rem;
    line-height: 1;
}
.guidePriceTable td small,
.guidePriceOption small,
.guidePriceMember small {
    margin-left: .3rem;
    font-size: 1rem;
    vertical-align: top;
}
.guidePriceYen {
    margin-left: .25rem;
    font-size: 1.8rem;
    font-weight: 700;
}
.guidePriceChildRow th span {
    display: block;
    margin-top: .4rem;
    font-size: 1.4rem;
}
.guidePriceChildContent {
    display: flex;
    gap: 3rem;
    align-items: center;
    justify-content: center;
}
.guidePriceChildContent p {
    flex: 0 0 auto;
    margin: 0;
}
.guidePriceChildContent ul {
    margin: 0;
    padding: 0;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.8;
    list-style: none;
    text-align: left;
}
.guidePriceChildContent li span {
    color: #c93631;
}

.guidePriceNotes {
    margin: 2rem 0 0;
    padding: 0;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.8;
    color: var(--brown);
    list-style: none;
}

.guidePriceBottom {
    display: grid;
    grid-template-columns: 36% 1fr;
    gap: 1.5rem;
    margin-top: 2rem;
}
.guidePriceOption,
.guidePriceMember {
    border: .3rem solid #fff;
}
.guidePriceOption {
    background: rgba(255,255,255,.3);
}
.guidePriceOption h3 {
    margin: 0;
    padding: 1rem 1.5rem;
    font-size: 1.8rem;
    color: #fff;
    background: #4b4038;
}
.guidePriceOption h3 span {
    margin-left: .5rem;
    font-size: 1.1rem;
}
.guidePriceOption p {
    margin: 0;
    padding: 2rem 1.5rem;
    font-size: 2rem;
    font-weight: 700;
    text-align: center;
}
.guidePriceMember {
    display: grid;
    grid-template-columns: 12rem 1fr;
    gap: 1.8rem;
    padding: 1.5rem 2rem;
    align-items: center;
    background: #45436f;
}
.guidePriceMemberBadge {
    display: flex;
    width: 10rem;
    height: 10rem;
    margin: 0;
    align-items: center;
    justify-content: center;
    border: .25rem dashed #fff;
    border-radius: 50%;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.25;
    color: #fff;
    text-align: center;
    background: #c93631;
}
.guidePriceMember h3 {
    margin: 0 0 .8rem;
    padding: 0;
    border-radius: 2rem;
    font-size: 1.8rem;
    color: #c93631;
    text-align: center;
    background: #fff;
}
.guidePriceMember p {
    margin: 0;
    font-size: 1.8rem;
    font-weight: 700;
    color: #fff;
}
.guidePriceMember p > span:first-of-type {
    margin-left: .4rem;
    font-size: 1.4rem;
}
.guidePriceMember > div > small {
    display: block;
    margin: .8rem 0 0;
    font-size: 1.1rem;
    color: #fff;
}
.guideWaveBeigeBrown {
    height: 15rem;
    margin-bottom: -1px;
    background: url(../image/common/bg_wave_beige_brown01.png) no-repeat center / 100% 100%;
}

/* ------------------------------------------------------------
  Guide page - Amenities / Notice
------------------------------------------------------------ */
#amenity,
#notice {
	padding-top: 7rem;
	padding-bottom: 7rem;
}
.guideAmenityLead,
.guideNoticeLead {
	margin: 0 0 5rem;
	text-align: center;
	font-size: 1.8rem;
	line-height: 1.8;
	font-weight: 700;
}
.guideAmenityList {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 5rem 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.guideAmenityList li {
	display: flex;
	min-width: 0;
	align-items: center;
	flex-direction: column;
	justify-content: flex-start;
	text-align: center;
}
.guideAmenityList img {
	display: block;
	width: 12rem;
	max-width: 100%;
	height: 12rem;
	margin: 0 auto 1.5rem;
	object-fit: contain;
}
.guideAmenityList span {
	font-size: 1.7rem;
	line-height: 1.45;
	font-weight: 700;
}
.noticeList {
	display: grid;
	gap: 3rem;
}
.noticeList section {
	padding: 4rem 5rem;
	border: .8rem solid #fff;
	border-radius: 5rem;
}
.noticeList h3 {
	margin: 0 0 1.5rem;
	font-size: 2.4rem;
	line-height: 1.5;
	font-weight: 700;
}
.noticeList p,
.noticeList ul {
	margin: 0;
	font-size: 1.8rem;
	line-height: 1.8;
}
.noticeList ul {
	padding: 0;
	list-style: none;
}
.noticeList li {
	display: grid;
	grid-template-columns: 1em 1fr;
	gap: .3em;
}
.noticeList li::before {
	content: "●";
}
.guideDisclaimer {
	margin-top: 5rem;
	padding: 4rem 5rem;
	text-align: center;
	border: .8rem solid #fff;
	border-radius: 5rem;
}
.guideDisclaimer h2 {
	margin: 0 0 1.5rem;
	font-size: 2.4rem;
	line-height: 1.5;
}
.guideDisclaimer p {
	margin: 0;
	font-size: 1.8rem;
	line-height: 1.8;
}

/* ------------------------------------------------------------
  Guide page - Hours
------------------------------------------------------------ */
.guideHoursPanel {
    margin-top: 5rem;
}
.guideHoursNotes {
    margin: 0 0 3.5rem;
}
.guideHoursNotes p {
    margin: 0;
    text-align: center;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.9;
}
.guideHoursTable,
.guideClosedTable {
    margin: 0;
    border: .3rem solid #fff;
    color: var(--brown);
}
.guideHoursRow,
.guideClosedRow {
    display: grid;
    grid-template-columns: 36% 1fr;
}
.guideHoursRow + .guideHoursRow,
.guideClosedRow + .guideClosedRow {
    border-top: .3rem solid #fff;
}
.guideHoursRow dt,
.guideHoursRow dd,
.guideClosedRow dt,
.guideClosedRow dd {
    display: flex;
    min-height: 10rem;
    margin: 0;
    padding: 2rem 3rem;
    align-items: center;
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1.65;
}
.guideHoursRow dt {
    justify-content: center;
    color: #fff;
    text-align: center;
    background: #ad9a7e;
}
.guideHoursRow dd {
    display: block;
    border-left: .3rem solid #fff;
    background: rgba(255,255,255,.28);
}
.guideHoursRow dd span {
    display: block;
}
.guideHoursRow dd strong {
    font-weight: 700;
}
.guideClosedTable {
    margin-top: 3rem;
}
.guideClosedRow dt,
.guideClosedRow dd {
    min-height: 7rem;
    justify-content: center;
    text-align: center;
    background: rgba(255,255,255,.28);
}
.guideClosedRow dt {
    font-weight: 700;
}
.guideClosedRow dd {
    border-left: .3rem solid #fff;
}
.guideClosedRow dd span {
    margin-left: 1rem;
}


/* ------------------------------------------------------------
  Guide page - Access
------------------------------------------------------------ */
.guideAccessPanel {
    margin-top: 5rem;
}
.guideAccessLead {
    margin: 0 0 3rem;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.9;
    text-align: center;
}
.guideAccessMaps {
    display: grid;
    gap: 3rem;
}
.guideAccessMap {
    margin: 0;
}
.guideAccessMap img {
    display: block;
    width: 100%;
    height: auto;
}
.guideAccessMapRoad {
    overflow: hidden;
    border: .6rem solid #fff;
    border-radius: 2.5rem;
}
.guideAccessMapRoad iframe {
    display: block;
    width: 100%;
    height: 42rem;
    border: 0;
}
.guideAccessSummary {
    margin: 3rem 0 0;
}
.guideAccessSummary > div {
    display: flex;
    gap: 1.5rem;
    align-items: center;
}
.guideAccessSummary > div + div {
    margin-top: 1.5rem;
}
.guideAccessSummary dt {
    min-width: 10rem;
    margin: 0;
    padding: .5rem 1.5rem;
    border-radius: .8rem;
    font-size: 1.6rem;
    font-weight: 700;
    color: #fff;
    text-align: center;
    background: #6b472f;
}
.guideAccessSummary > div:nth-child(2) dt {
    background: var(--brown);
}
.guideAccessSummary dd {
    margin: 0;
    font-size: 1.6rem;
    font-weight: 500;
}
.guideAccessIntro {
    margin-top: 1rem;
}
.guideAccessIntro section + section {
    margin-top: 2.5rem;
}
.guideAccessIntro h3 {
    margin: 0 0 .8rem;
    font-size: 1.7rem;
    font-weight: 700;
    color: var(--brown);
}
.guideAccessIntro p {
    margin: 0;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.75;
}
.guideAccessList {
    margin-top: 3rem;
    border-top: 1px solid rgba(80, 53, 34, .28);
}
.guideAccessItem {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    padding: 3rem 0;
    align-items: center;
    border-bottom: 1px solid rgba(80, 53, 34, .28);
}
.guideAccessItemShuttle,
.guideAccessItemNbus {
    grid-template-columns: 1fr auto;
}
.guideAccessItemCopy h3 {
    display: inline-block;
    margin: 0 0 1.5rem;
    padding: .5rem 1.2rem;
    border: 1px solid #6b472f;
    font-size: 1.6rem;
    font-weight: 700;
}
.guideAccessItemCopy p {
    margin: 0;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.75;
}
.guideAccessRouteImage {
    margin: 0;
}
.guideAccessRouteImage img {
    display: block;
    width: 100%;
    height: auto;
}
.guideAccessButton {
    display: inline-flex;
    min-width: 18rem;
    min-height: 5rem;
    padding: .8rem 2rem;
    gap: 2rem;
    align-items: center;
    justify-content: center;
    border: .3rem double #6b472f;
    border-radius: 999px;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
}
.guideAccessButtonWide {
    min-width: 28rem;
}
.guideAccessButton span {
    font-size: 2rem;
}


/* ------------------------------------------------------------
  Guide page - Free shuttle bus
------------------------------------------------------------ */
.guideShuttlePanel {
    margin-top: 5rem;
}
.guideShuttleLead {
    margin: 0 0 3rem;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.9;
    text-align: center;
}
.guideShuttleMain {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 2rem;
    align-items: stretch;
}
.guideShuttleMap {
    margin: 0;
}
.guideShuttleMap img {
    display: block;
    width: 100%;
    object-fit: cover;
    border: .6rem solid #fff;
    border-radius: 3rem;
}
.guideShuttleTimetableWrap {
    min-width: 0;
}
.guideShuttleTimetable {
    width: 100%;
    height: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    color: var(--brown);
    background: rgba(255,255,255,.32);
}
.guideShuttleTimetable th,
.guideShuttleTimetable td {
    padding: .75rem 1rem;
    border: .25rem solid #fff;
    font-size: 1.7rem;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    vertical-align: middle;
}
.guideShuttleTimetable th {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    color: #fff;
    background: #ad9a7e;
}
.guideShuttleStop {
    position: relative;
    min-height: 11rem;
    margin-top: 3rem;
    padding: 3rem 34rem 3rem 4rem;
    border-radius: 2rem;
    background: rgba(255,255,255,.32);
}
.guideShuttleStop p {
    margin: 0;
    font-size: 1.7rem;
    font-weight: 700;
    line-height: 1.8;
}
.guideShuttleStop img {
    position: absolute;
    right: 2rem;
    bottom: -6rem;
    width: 31rem;
    max-width: 42%;
    height: auto;
}


/* ------------------------------------------------------------
  Common static lower pages
------------------------------------------------------------ */
.commonStaticHeroImage {
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}
.commonStaticIntro {
	padding-bottom: 0;
}
.commonStaticTitleImage {
	width: 70rem;
}
.commonStaticContent {
	min-height: 8rem;
}
.commonStaticPreparing {
	margin: 0;
	padding: 5rem 0 3rem;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.8;
	text-align: center;
}
.commonStaticWaveBeigeBrown {
	height: 15rem;
	margin-bottom: -1px;
	background: url(../image/common/bg_wave_beige_brown01.png) no-repeat center / 100% 100%;
}


/* ------------------------------------------------------------
  Common static page - Lead
------------------------------------------------------------ */
.commonStaticLead {
    margin: 0 0 6rem;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 2;
    text-align: center;
}


/* ------------------------------------------------------------
  Kamikirin page
------------------------------------------------------------ */
.kamikirinContent {
    padding: 0;
}
.kamikirinContentPanel {
    padding: 7rem 8rem 6rem;
    border-radius: 3rem;
    background: rgba(255, 255, 255, .48);
}
.kamikirinMenuList {
    display: grid;
    gap: 7rem;
}
.kamikirinMenuPanel {
    min-width: 0;
}
.kamikirinMenuHeading {
    margin: 0 0 4rem;
}
.kamikirinMenuHeading img {
    width: 70rem;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}
.kamikirinPriceList {
    width: 78rem;
    max-width: 100%;
    margin: 0 auto;
}
.kamikirinPriceRow {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3rem;
    padding: 1.5rem 1rem;
    align-items: baseline;
    border-bottom: 1px solid rgba(80, 53, 34, .25);
}
.kamikirinPriceRow dt,
.kamikirinPriceRow dd {
    min-width: 0;
    margin: 0;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.6;
}
.kamikirinPriceRow dt span {
    font-size: 1.5rem;
    font-weight: 500;
}
.kamikirinPriceRow dd {
    white-space: nowrap;
}
.kamikirinMenuNotes {
    margin: 4rem 0 0;
    padding-bottom: 5rem;
    text-align: center;
    background: url("../image/common/line03.png") no-repeat center bottom / min(80rem,100%) auto;
}
.kamikirinMenuNotes p {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.8;
}


/* ------------------------------------------------------------
  Common shop information
------------------------------------------------------------ */
.shopInfo {
    margin-top: 5rem;
}
.shopInfoLayout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: 5rem;
}
.shopInfoSlider {
    min-width: 0;
}
.shopInfoSlideList {
    position: relative;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 0;
}
.shopInfoSlide {
    position: absolute;
    inset: 0;
    margin: 0;
    opacity: 0;
    transition: opacity .8s ease;
    pointer-events: none;
}
.shopInfoSlide.is-active {
    opacity: 1;
    pointer-events: auto;
}
.shopInfoSlide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.shopInfoSliderDots {
    display: flex;
    margin-top: 1.5rem;
    gap: .8rem;
    justify-content: center;
}
.shopInfoSliderDot {
    width: .9rem;
    height: .9rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(80, 53, 34, .35);
    cursor: pointer;
}
.shopInfoSliderDot.is-active {
    background: var(--brown);
}
.shopInfoLogo {
    display: block;
    max-width: 100%;
    height: auto;
}
.kamikirinShopLogo {
    width: 30rem;
}
.shopInfoContact {
    display: flex;
    margin: 1rem 0 0 0;
    gap: 1.5rem;
    align-items: center;
}
.shopInfoContactLabel {
    margin: 0;
    padding: 1rem;
    color: #fff;
    background: var(--brown);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}
.shopInfoTel {
    margin: 0;
}
.shopInfoTel a {
    font-size: 3.5rem;
    font-weight: 700;
    letter-spacing: .06em;
    white-space: nowrap;
}
.shopInfoTel span {
    margin-right: .5rem;
    font-size: 2rem;
}
.shopInfoDetails {
    display: grid;
    grid-template-columns: 13rem minmax(0, 1fr);
    margin: 0;
    border-top: 1px solid rgba(80, 53, 34, .28);
    border-bottom: 1px solid rgba(80, 53, 34, .28);
}
.shopInfoDetails dt,
.shopInfoDetails dd {
    margin: 0;
    padding: 1rem 2rem;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.65;
}
.shopInfoDetails dt {
    border-right: 1px solid rgba(80, 53, 34, .28);
}
.shopInfoDetails dt:not(:first-of-type),
.shopInfoDetails dd:not(:first-of-type) {
    border-top: 1px solid rgba(80, 53, 34, .28);
}
.shopInfoDetails dd small {
    font-size: 1.4rem;
    font-weight: 500;
}
.shopInfoReception dd span {
    display: block;
}

/* お食事処 */
.shokujiContent { padding: 0; }
.shokujiContentPanel { padding: 6rem; border-radius: 2.5rem; background: rgba(255,255,255,.72); }
.shokujiSection + .shokujiSection { margin-top: 0; }
.shokujiSectionHeading { margin: 0 0 2rem; text-align: center; }
.shokujiSectionHeading img { display: block; width: 70rem; max-width: 100%; height: auto; margin: 0 auto; }
.shokujiSectionLead { margin: 0 0 3rem; text-align: center; font-size: 1.8rem; font-weight: 700; }
.shokujiTextHeading { margin: 0 0 4rem; padding-bottom: 1.5rem; font-size: 3.2rem; font-weight: 900; text-align: center; letter-spacing: .16em; background: url("../image/common/line03.png") no-repeat center bottom / min(70rem,100%) auto; }
.shokujiSliderViewport { width: 100%; overflow: hidden; }
.shokujiSliderTrack { display: flex; width: 100%; align-items: stretch; transition: transform .55s ease; }
.shokujiNewsCard { flex: 0 0 33.3333%; min-width: 0; padding: 0 1.2rem; box-sizing: border-box; }
.shokujiNewsCard a { display: block; height: 100%; color: var(--brown); text-decoration: none; }
.shokujiNewsCardInner { position: relative; height: 100%; padding: 17% 4.3% 4.8%; background: url("../image/news/news_card_top.png") no-repeat center top / 100% auto; box-sizing: border-box; }
.shokujiNewsCardInner::before { position: absolute; z-index: 0; top: 32%; right: 0; bottom: 2.5%; left: 0; background: url("../image/news/news_card_middle.png") no-repeat center / 100% 100%; content: ""; }
.shokujiNewsCardInner::after { position: absolute; z-index: 0; right: 0; bottom: 0; left: 0; aspect-ratio: 758 / 36; background: url("../image/news/news_card_bottom.png") no-repeat center bottom / 100% auto; content: ""; }
.shokujiNewsCardImage { position: relative; z-index: 1; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; padding: 0.5rem; }
.shokujiRecommendItem img { display: block; width: 100%; height: 100%; object-fit: cover; }
.shokujiNewsCardBody { position: relative; z-index: 1; min-height: 9rem; padding: 1.3rem .8rem 2rem; box-sizing: border-box; }
.shokujiNewsMeta { display: flex; margin-bottom: 1.2rem; gap: 1rem; align-items: center; justify-content: space-between; color: #fff; }
.shokujiNewsCategory { display: inline-block; padding: .4rem 1.2rem; color: var(--brown); background: var(--orange); font-size: 1.3rem; font-weight: 700; line-height: 1; }
.shokujiNewsMeta time { color: #fff; font-size: 1.4rem; }
.shokujiNewsCard h3 { margin: 0; color: #fff; font-size: 1.6rem; line-height: 1.6; }
.shokujiSliderControls { display: flex; margin-top: 2.5rem; gap: 1.5rem; align-items: center; justify-content: center; }
.shokujiSliderArrow,.shokujiSliderPlayPause,.shokujiSliderDots button { cursor: pointer; }
.shokujiSliderArrow { min-width: 8rem; padding: .8rem 1.5rem; color: #fff; border: 0; border-radius: 999px; background: var(--brown); font-weight: 700; }
.shokujiSliderDots { display: flex; margin-top: 2.5rem; gap: .6rem; align-items: center; justify-content: center; }
.shokujiSliderDots button { width: .9rem; height: .9rem; padding: 0; border: 0; border-radius: 50%; background: rgba(80,53,34,.3); }
.shokujiSliderDots button.is-active { background: var(--brown); }
.shokujiSliderPlayPause { min-width: 9rem; padding: .8rem 1.5rem; color: var(--brown); border: 1px solid var(--brown); border-radius: 999px; background: #fff; font-weight: 700; }

/* お知らせ・イベント情報 */
.newsCategoryLinks {
	width: 104.5rem;
	max-width: 100%;
	margin-right: auto;
	margin-left: auto;
	flex-wrap: wrap;
}
.newsCategoryLinks a {
	width: 25rem;
	flex: 0 0 25rem;
}
.newsContent {
	padding: 0 0 8rem;
}
.newsList {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 4rem 1.5rem;
}
.newsList .shokujiNewsCard {
	min-width: 0;
	padding: 0;
}
.newsPagination {
	display: flex;
	margin-top: 6rem;
	gap: 3rem;
	align-items: center;
	justify-content: center;
}
.newsPagination .guideAccessButton {
	color: var(--brown);
}
.newsDetailContent {
	padding: 0 0 8rem;
}
.newsArticle {
	width: 98rem;
	max-width: 100%;
	margin: 0 auto;
	padding: 7rem 10rem;
	border-radius: 3rem;
	background: rgba(255,255,255,.72);
	box-sizing: border-box;
}
.newsArticleHeader {
	margin-bottom: 4rem;
}
.newsArticleHeader > time {
	display: block;
	margin-bottom: 2rem;
	color: var(--brown);
	font-size: 1.4rem;
	line-height: 1.5;
}
.newsArticleTitle {
	margin: 0 0 2.5rem;
	color: var(--brown);
	font-size: 2.6rem;
	font-weight: 900;
	line-height: 1.5;
	letter-spacing: .08em;
}
.newsArticleDivider {
	height: 1rem;
	margin-bottom: 1.5rem;
	background: url("../image/common/line03.png") repeat-x center / auto 1rem;
}
.newsArticleMeta {
	display: flex;
	align-items: center;
	justify-content: flex-end;
}
.newsArticleCategory {
	display: inline-flex;
	min-width: 12rem;
	padding: .6rem 1.5rem;
	align-items: center;
	justify-content: center;
	color: #fff;
	background: var(--orange);
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1;
}
.newsArticleBody {
	color: var(--brown);
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 2;
}
.newsArticleBody p {
	margin: 0 0 1rem 0;
	padding: 1rem 0 0 0;
}
.newsArticleFigure {
	margin: 4rem 0;
}
.newsArticleFigure img {
	display: block;
	width: 100%;
	height: auto;
}
.newsArticleImageGrid {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	margin: 0 0 4rem;
	gap: 3rem;
}
.newsArticleImageGrid img {
	display: block;
	width: 100%;
	height: auto;
}
.newsArticlePagination {
	display: flex;
	margin-top: 7rem;
	gap: 2rem;
	justify-content: center;
}
.newsArticlePagination .guideAccessButton {
	min-width: 16rem;
	color: var(--brown);
}
.newsArticleBack {
	margin-top: 3rem;
	text-align: center;
}
.newsArticleBack a {
	color: var(--brown);
	font-size: 1.4rem;
	text-decoration: underline;
	text-underline-offset: .4rem;
}

.shokujiMenu { margin-right: -6rem; margin-left: -6rem; padding: 7rem 0 6rem; overflow: hidden; }
.shokujiMenuHeading { margin: 0 6rem 4rem; padding-bottom: 3rem; text-align: center; background: url("../image/common/line03.png") no-repeat center bottom / min(80rem,100%) auto; }
.shokujiMenuHeading img { display: inline; width: 28rem; max-width: 100%; height: auto; }
.shokujiMenuSlider { position: relative; width: 100%; margin: 0 auto; padding: 0 7rem; box-sizing: border-box; }
.shokujiMenuViewport { width: 100%; overflow: visible; }
.shokujiMenuTrack { display: flex; width: 100%; align-items: center; transition: transform .55s ease; }
.shokujiMenuSlide { flex: 0 0 50%; min-width: 0; padding: 0 2.2rem; opacity: .56; transform: scale(.82); box-sizing: border-box; transition: opacity .55s ease, transform .55s ease; }
.shokujiMenuSlide.is-active { z-index: 1; opacity: 1; transform: scale(1); }
.shokujiMenuOpen { position: relative; width: 100%; padding: 0; cursor: zoom-in; border: 0; background: transparent; }
.shokujiMenuOpen img { display: block; width: 100%; height: auto; box-shadow: 0 1rem 2.5rem rgba(80,53,34,.18); }
.shokujiMenuOpen span { position: absolute; right: 1.5rem; bottom: 1.5rem; padding: .7rem 1.4rem .7rem 3.5rem; color: #fff; border-radius: 999px; background: rgba(80,53,34,.82); font-size: 1.3rem; font-weight: 700; line-height: 1.4; }
.shokujiMenuOpen span::before { position: absolute; top: 50%; left: 1.3rem; width: 1.1rem; height: 1.1rem; border: 2px solid #fff; border-radius: 50%; content: ""; transform: translateY(-58%); }
.shokujiMenuOpen span::after { position: absolute; top: 54%; left: 2.35rem; width: .7rem; height: 2px; background: #fff; content: ""; transform: rotate(45deg); transform-origin: left center; }
.shokujiMenuArrow { position: absolute; z-index: 2; top: 50%; width: 4.8rem; height: 4.8rem; padding: 0; cursor: pointer; border: 0; border-radius: 50%; background: rgba(80,53,34,.88); transform: translateY(-50%); }
.shokujiMenuArrow::before { position: absolute; top: 50%; left: 50%; width: 1.2rem; height: 1.2rem; border-top: 3px solid #fff; border-right: 3px solid #fff; content: ""; }
.shokujiMenuPrev { left: 2rem; }
.shokujiMenuPrev::before { transform: translate(-35%,-50%) rotate(-135deg); }
.shokujiMenuNext { right: 2rem; }
.shokujiMenuNext::before { transform: translate(-65%,-50%) rotate(45deg); }
.shokujiMenuCount { margin: 3rem 0 0; color: var(--brown); font-size: 1.8rem; font-weight: 700; line-height: 1; text-align: center; }
.is-menu-modal-open { overflow: hidden; }
.shokujiMenuModal { position: fixed; z-index: 10000; inset: 0; display: none; padding: 3rem 10rem; align-items: center; justify-content: center; background: rgba(35,25,18,.88); box-sizing: border-box; }
.shokujiMenuModal.is-open { display: flex; }
.shokujiMenuModalScroll { max-width: 140rem; max-height: calc(100vh - 6rem); overflow: auto; background: #fff; box-shadow: 0 1rem 4rem rgba(0,0,0,.4); }
.shokujiMenuModalImage { display: block; width: auto; max-width: 100%; height: auto; max-height: calc(100vh - 6rem); margin: 0 auto; }
.shokujiMenuModalClose { position: fixed; z-index: 2; top: 2rem; right: 2rem; width: 4.8rem; height: 4.8rem; padding: 0; cursor: pointer; border: 0; border-radius: 50%; background: #fff; }
.shokujiMenuModalClose::before,.shokujiMenuModalClose::after { position: absolute; top: 50%; left: 50%; width: 2.5rem; height: 3px; background: var(--brown); content: ""; }
.shokujiMenuModalClose::before { transform: translate(-50%,-50%) rotate(45deg); }
.shokujiMenuModalClose::after { transform: translate(-50%,-50%) rotate(-45deg); }
.shokujiMenuModalArrow { position: fixed; z-index: 2; top: 50%; width: 5rem; height: 5rem; padding: 0; cursor: pointer; border: 0; border-radius: 50%; background: #fff; transform: translateY(-50%); }
.shokujiMenuModalArrow::before { position: absolute; top: 50%; left: 50%; width: 1.4rem; height: 1.4rem; border-top: 3px solid var(--brown); border-right: 3px solid var(--brown); content: ""; }
.shokujiMenuModalPrev { left: 2rem; }
.shokujiMenuModalPrev::before { transform: translate(-35%,-50%) rotate(-135deg); }
.shokujiMenuModalNext { right: 2rem; }
.shokujiMenuModalNext::before { transform: translate(-65%,-50%) rotate(45deg); }
.shokujiMenuModalCount { position: fixed; right: 0; bottom: 0; left: 0; margin: 0; color: #fff; font-size: 1.5rem; font-weight: 700; text-align: center; }
.shokujiRecommend { padding-bottom: 7rem; background: url("../image/common/line03.png") no-repeat center bottom / min(80rem,100%) auto; }
.shokujiRecommendHeading { margin: 0 0 5rem; padding-bottom: 3rem; text-align: center; background: url("../image/common/line03.png") no-repeat center bottom / min(80rem,100%) auto; }
.shokujiRecommendHeading img { display: inline; width: 28rem; max-width: 100%; height: auto; }
.shokujiRecommendGrid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5rem 5.5rem; padding: 0 4rem; }
.shokujiRecommendItem { min-width: 0; text-align: center; }
.shokujiRecommendItem img { height: auto; aspect-ratio: 1/1; border-radius: 1.5rem; }
.shokujiRecommendItem h3 { margin: 1.5rem 0 0; font-size: 1.6rem; line-height: 1.6; }
.shokujiShopInfo { margin-top: 5rem; }
.shokujiShopName { margin: 0 0 2rem; font-size: 3rem; font-weight: 900; letter-spacing: .08em; }

/* ------------------------------------------------------------
  Relaxation / Akasuri page
------------------------------------------------------------ */
/* Page links use the shared visitorPageLinks / sub_bg02.png settings. */
.rirakuContent { padding: 0; }
.rirakuPanel { padding: 6rem 8rem; border-radius: 3rem; background: rgba(255,255,255,.64); }
.rirakuPanel + .rirakuPanel { margin-top: 5rem; }
.rirakuSectionHeading { margin: 0 0 2.5rem; text-align: center; }
.rirakuSectionHeading img { width: 70rem; max-width: 100%; height: auto; margin: 0 auto; }
.rirakuSectionLead { margin: 0 0 4rem; font-size: 1.7rem; font-weight: 500; line-height: 1.9; text-align: center; }
.rirakuFlyerSlider { position: relative; width: 100%; margin: 0 auto; padding: 0 7rem; box-sizing: border-box; }
.rirakuFlyerViewport { width: 100%; overflow: visible; }
.rirakuFlyerTrack { display: flex; width: 100%; align-items: center; transition: transform .55s ease; }
.rirakuFlyerSlide { flex: 0 0 50%; min-width: 0; padding: 0 2.2rem; opacity: .56; transform: scale(.82); box-sizing: border-box; transition: opacity .55s ease, transform .55s ease; }
.rirakuFlyerSlide.is-active { z-index: 1; opacity: 1; transform: scale(1); }
.rirakuFlyerOpen { position: relative; width: 100%; padding: 0; cursor: zoom-in; border: 0; background: transparent; }
.rirakuFlyerOpen img { display: block; width: 100%; height: auto; box-shadow: 0 1rem 2.5rem rgba(80,53,34,.18); }
.rirakuFlyerOpen span { position: absolute; right: 1.5rem; bottom: 1.5rem; padding: .7rem 1.4rem .7rem 3.5rem; color: #fff; border-radius: 999px; background: rgba(80,53,34,.82); font-size: 1.3rem; font-weight: 700; line-height: 1.4; }
.rirakuFlyerOpen span::before { position: absolute; top: 50%; left: 1.3rem; width: 1.1rem; height: 1.1rem; border: 2px solid #fff; border-radius: 50%; content: ""; transform: translateY(-58%); }
.rirakuFlyerOpen span::after { position: absolute; top: 54%; left: 2.35rem; width: .7rem; height: 2px; background: #fff; content: ""; transform: rotate(45deg); transform-origin: left center; }
.rirakuFlyerArrow { position: absolute; z-index: 2; top: 50%; width: 4.8rem; height: 4.8rem; padding: 0; cursor: pointer; border: 0; border-radius: 50%; background: rgba(80,53,34,.88); transform: translateY(-50%); }
.rirakuFlyerArrow::before { position: absolute; top: 50%; left: 50%; width: 1.2rem; height: 1.2rem; border-top: 3px solid #fff; border-right: 3px solid #fff; content: ""; }
.rirakuFlyerArrow.is-prev { left: 0; }
.rirakuFlyerArrow.is-prev::before { transform: translate(-35%,-50%) rotate(-135deg); }
.rirakuFlyerArrow.is-next { right: 0; }
.rirakuFlyerArrow.is-next::before { transform: translate(-65%,-50%) rotate(45deg); }

/* ------------------------------------------------------------
  Contact page
------------------------------------------------------------ */
.contactContent { padding: 0 0 10rem; }
.contactForm { width: 100%; max-width: 90rem; margin: 0 auto; color: var(--brown); }
.contactField + .contactField { margin-top: 4rem; }
.contactLabelRow { display: flex; margin-bottom: 1.2rem; align-items: center; justify-content: space-between; gap: 2rem; }
.contactLabelRow label,
.contactPrivacyTitle { font-size: 2rem; font-weight: 700; letter-spacing: .05em; }
.contactRequired { display: inline-flex; min-width: 5.2rem; padding: .4rem .8rem; align-items: center; justify-content: center; color: #fff; font-size: 1.4rem; font-weight: 700; line-height: 1; border-radius: 2rem; background: #d63434; }
.contactForm input[type="text"],
.contactForm input[type="email"],
.contactForm input[type="tel"],
.contactForm select,
.contactForm textarea { display: block; width: 100%; padding: 1.8rem 2.5rem; color: var(--brown); font: inherit; font-size: 1.8rem; border: 1px solid #c9c4bf; border-radius: .6rem; background: #fff; box-sizing: border-box; }
.contactForm input[type="text"],
.contactForm input[type="email"],
.contactForm input[type="tel"],
.contactForm select { height: 7rem; }
.contactForm textarea { min-height: 35rem; resize: vertical; }
.contactForm input::placeholder,
.contactForm textarea::placeholder { color: #ccc; opacity: 1; }
.contactForm input:focus,
.contactForm select:focus,
.contactForm textarea:focus,
.contactPolicy h3 {
    margin-top: 3rem;
}

.contactPolicy h3:first-child {
    margin-top: 0;
}
.contactPolicy:focus { outline: 3px solid rgba(239,130,47,.3); border-color: var(--orange); }
.contactSelectWrap { position: relative; }
.contactSelectWrap::after { position: absolute; top: 50%; right: 2.6rem; width: 1.2rem; height: 1.2rem; pointer-events: none; border-right: 2px solid var(--brown); border-bottom: 2px solid var(--brown); content: ""; transform: translateY(-70%) rotate(45deg); }
.contactForm select { padding-right: 6rem; cursor: pointer; appearance: none; }
.contactPrivacy { min-width: 0; margin: 4rem 0 0; padding: 0; border: 0; }
.contactConsent { display: flex; margin-bottom: 2.5rem; align-items: center; gap: 1.5rem; font-size: 1.7rem; cursor: pointer; }
.contactConsent input { width: 2.6rem; height: 2.6rem; margin: 0; accent-color: var(--orange); }
.contactPolicy { overflow-y: auto; height: 36rem; padding: 3rem 4rem; font-size: 1.6rem; line-height: 1.9; border: 1px solid #c9c4bf; border-radius: .6rem; background: #fff; box-sizing: border-box; }
.contactPolicy section + section { margin-top: 3rem; }
.contactPolicy h2 { margin-bottom: .5rem; font-size: 1.9rem; font-weight: 700; }
.contactPolicy ol,
.contactPolicy ul { margin-top: .5rem; padding-left: 1.5em; }
.contactPolicy ol { list-style: decimal; }
.contactPolicy ul { list-style: disc; }
.contactConfirmButton { display: flex; position: relative; width: 48rem; height: 6.5rem; margin: 7rem auto 0; padding: 0 7rem; cursor: pointer; align-items: center; justify-content: center; color: #fff; font: inherit; font-size: 1.7rem; font-weight: 700; letter-spacing: .08em; border: 0; border-radius: 3.3rem; background: var(--brown); }
.contactConfirmButton::after { position: absolute; top: 50%; right: 1.8rem; width: 3.8rem; height: 3.8rem; border-radius: 50%; background: #fff; content: ""; transform: translateY(-50%); }
.contactConfirmButton span::after { position: absolute; z-index: 1; top: 50%; right: 3rem; width: 0; height: 0; border-top: .7rem solid transparent; border-bottom: .7rem solid transparent; border-left: 1rem solid var(--brown); content: ""; transform: translateY(-50%); }
.contactConfirmButton:hover { opacity: .8; }
.rirakuFlyerDots { display: flex; margin-top: 3rem; gap: 1rem; align-items: center; justify-content: center; }
.rirakuFlyerDots button { width: 1rem; height: 1rem; padding: 0; cursor: pointer; border: 0; border-radius: 50%; background: rgba(80,53,34,.3); }
.rirakuFlyerDots button.is-active { background: var(--brown); }
.rirakuDivider { height: 2rem; margin: 5rem 0; background: url("../image/common/line03.png") no-repeat center / min(80rem,100%) auto; }
.rirakuShopInfo { margin-top: 0; }
.rirakuShopName { margin: 0 0 1.5rem; font-size: 2.4rem; font-weight: 700; letter-spacing: .04em; }
.akasuriMenuList { width: 78rem; max-width: 100%; margin: 0 auto; }
.akasuriMenuGroup + .akasuriMenuGroup { margin-top: 6rem; }
.akasuriMenuGroup h3 { margin: 0 0 3rem; font-size: 2.8rem; font-weight: 700; letter-spacing: .12em; text-align: center; }
.akasuriPriceList { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 3rem; margin: 0; }
.akasuriPriceList dt,
.akasuriPriceList dd { margin: 0; padding: 1.8rem 0; border-bottom: 1px solid rgba(80,53,34,.22); }
.akasuriPriceList dt strong { display: block; font-size: 1.8rem; line-height: 1.5; }
.akasuriPriceList dt > span { display: block; margin-top: .8rem; padding-left: 1.5rem; font-size: 1.6rem; line-height: 1.65; }
.akasuriPriceList dd { min-width: 15rem; font-size: 1.8rem; font-weight: 700; line-height: 1.5; text-align: right; white-space: nowrap; }

/* アカスリ料金メニュー：区分ごとの視認性を高めるカード */
.akasuriMenuList {
    width: 88rem;
}
.akasuriMenuGroup {
    padding: 4rem 5rem;
    border-radius: 1.8rem;
    background: rgba(255, 255, 255, .58);
}

/* ------------------------------------------------------------
  Top page FAQ
------------------------------------------------------------ */
.topFaq {
	position: relative;
	padding: 15rem 0 9rem;
	color: var(--brown);
	background-image: url("../image/common/bg_wave_brown02_beige.png"), url("../image/common/bg_beige.webp");
	background-repeat: no-repeat, repeat;
	background-position: center top, center top;
	background-size: 100% auto, auto;
}
.topFaqInner {
	display: grid;
	grid-template-columns: 34rem minmax(0, 1fr);
	gap: 6rem;
	align-items: center;
}
.topFaqNav {
	position: relative;
	padding-top: 2rem;
	text-align: center;
}
.topFaqOkimono {
	position: absolute;
	top: -18rem;
	left: 50%;
	width: 14rem;
	height: auto;
	transform: translateX(-50%);
}
.topFaqTitle {
	width: 32rem;
	max-width: 100%;
	margin: 0 auto 2rem;
}
.topFaqTitle img,
.topFaqLine {
	display: block;
	width: 100%;
	height: auto;
}
.topFaqLine {
	margin: 0 auto 1.5rem;
}
.topFaqAllLink {
	display: inline-flex;
	margin-bottom: 3rem;
	align-items: center;
	gap: .8rem;
	color: var(--orange);
	font-size: 1.5rem;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: .4rem;
}
.topFaqAllLink span {
	width: 0;
	height: 0;
	border-top: .5rem solid transparent;
	border-bottom: .5rem solid transparent;
	border-left: .8rem solid var(--orange);
}
.topFaqGuideLinks {
	display: grid;
	gap: 1.5rem;
}
.topFaqGuideLinks a {
	display: flex;
	min-height: 7rem;
	padding: 1.5rem 2rem 1.5rem 3rem;
	align-items: center;
	justify-content: space-between;
	color: #fff;
	border-radius: 2rem;
	background: var(--turquoise);
	box-shadow: inset 0 -.5rem .8rem rgba(0, 0, 0, .12);
	font-size: 2rem;
	font-weight: 700;
}
.topFaqGuideLinks img {
	width: 2.2rem;
	height: auto;
}
.topFaqTextLinks {
	display: flex;
	margin-top: 1.5rem;
	gap: 2rem;
	justify-content: center;
}
.topFaqTextLinks a {
	display: inline-flex;
	align-items: center;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: .4rem;
}
.topFaqTextLinks img {
	width: 1.5rem;
	height: auto;
	margin-left: .5rem;
}
.topFaqList details + details {
	margin-top: 1.5rem;
}
.topFaqList summary {
	display: grid;
	position: relative;
	min-height: 6.4rem;
	padding: 1rem 6rem 1rem 7rem;
	cursor: pointer;
	align-items: center;
	color: var(--brown);
	background: rgba(255, 255, 255, .5);
	font-size: 1.8rem;
	font-weight: 700;
	list-style: none;
	clip-path: polygon(3rem 0, calc(100% - 3rem) 0, 100% 50%, calc(100% - 3rem) 100%, 3rem 100%, 0 50%);
}
.topFaqList summary::-webkit-details-marker {
	display: none;
}
.topFaqList summary > img {
	position: absolute;
	top: 50%;
	left: 0;
	z-index: 1;
	width: 6.2rem;
	height: 6.2rem;
	transform: translateY(-50%);
}
.topFaqList .visitorFaqToggle {
	right: 2.5rem;
}
.topFaqList .visitorFaqToggle::before,
.topFaqList .visitorFaqToggle::after {
	background: #bf514e;
}
.topFaqList details[open] .visitorFaqToggle::after {
	opacity: 0;
	transform: translate(-50%, -50%) rotate(0deg);
}
.topFaqList details > div {
	margin: 0 3rem;
	padding: 1.8rem 2.5rem 1.5rem;
	background: none;
}
.topFaqList details > div p {
	margin: 0;
	font-size: 1.6rem;
	line-height: 1.8;
}

/* ------------------------------------------------------------
トップページ：水と環境を支える技術
------------------------------------------------------------ */
.topConcept {
	position: relative;
	overflow: visible;
	padding: 16rem 0 6rem;
	color: var(--brown);
	background-image: url("../image/common/bg_orange.webp");
	background-repeat: repeat;
}
.topConceptDeco {
	position: absolute;
	z-index: 0;
	width: 80rem;
	height: 81rem;
	background: url("../image/top/top_deco_maru.png") center / contain no-repeat;
	opacity: .58;
	pointer-events: none;
}
.topConceptDeco01 {
	top: -26rem;
	left: -9rem;
	clip-path: inset(26rem 0 0);
}
.topConceptDeco02 {
	right: -19rem;
	bottom: -22rem;
	clip-path: inset(0 0 22rem);
	transform: rotate(105deg);
}
.topConceptDeco03 {
	bottom: -52rem;
	left: -39rem;
	clip-path: inset(0 0 52rem);
	transform: rotate(38deg);
}
.topConceptInner {
	display: grid;
	position: relative;
	z-index: 1;
	grid-template-columns: 1fr 1.18fr;
	grid-template-areas:
		"photo01 lead"
		"text photo02"
		"closing closing";
	gap: 2rem 4rem;
	align-items: center;
}
.topConceptKingyo {
	position: absolute;
	top: -20rem;
	left: 74%;
	z-index: 2;
	width: 28rem;
	height: auto;
	transform: translateX(-50%);
}
.topConceptPhoto {
	overflow: hidden;
	border-radius: 3rem;
}
.topConceptPhoto img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.topConceptPhoto01 {
	grid-area: photo01;
	height: 40rem;
}
.topConceptPhoto02 {
	grid-area: photo02;
	/* height: 42rem; */
}
.topConceptLead {
	grid-area: lead;
}
.topConceptLead h2 {
	margin: 0 0 3rem;
}
.topConceptLead h2 img {
	display: block;
	width: 100%;
	height: auto;
}
.topConceptLine {
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 3rem;
}
.topConceptLead p,
.topConceptText p {
	margin: 0;
	font-size: 1.8rem;
	line-height: 1.9;
	font-weight: 600;
	letter-spacing: .08em;
}
.topConceptText {
	grid-area: text;
	padding-left: 4rem;
	text-align: right;
}
.topConceptText p + p {
	margin-top: 4rem;
}
.topConceptText a {
	display: flex;
	width: 20rem;
	margin: 4rem 0 0 auto;
	padding: .8rem 2rem;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	color: var(--brown);
	border: 3px double #8c6b4d;
	border-radius: 999px;
	font-size: 1.8rem;
	font-weight: 700;
}
.topConceptText a img {
	width: 2rem;
	height: auto;
}
.topConceptClosing {
	grid-area: closing;
	margin: 1rem 0 0;
	text-align: center;
	font-size: 1.8rem;
	line-height: 1.8;
	font-weight: 700;
	letter-spacing: .05em;
}
.topConceptClosingText {
	display: inline-block;
	position: relative;
}

/* ------------------------------------------------------------
トップページ：基本情報
------------------------------------------------------------ */
.topInfo {
	position: relative;
	overflow: visible;
	padding: 8rem 0 14rem;
	color: var(--brown);
}
.topInfoInner {
	width: min(112rem, calc(100% - 4rem));
}
.topInfoHeading {
	margin: 0 auto 2rem;
	text-align: center;
}
.topInfoHeading img {
	display: inline-block;
	width: 25rem;
	height: auto;
}
.topInfoLine {
	display: block;
	width: 70rem;
	max-width: 100%;
	height: auto;
	margin: 0 auto 6rem;
}
.topInfoMain {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 5rem;
	align-items: stretch;
}
.topInfoList {
	margin: 0;
	font-size: 1.6rem;
	line-height: 1.55;
	font-weight: 500;
}
.topInfoList > div {
	display: grid;
	grid-template-columns: 10.5rem 1fr;
	gap: 1.5rem;
	padding: 1.5rem 0;
	align-items: start;
	border-bottom: 2px solid #8c5a21;
}
.topInfoList > div:first-child {
	padding-top: 0;
}
.topInfoList dt {
	padding: .4rem 1rem;
	text-align: center;
	color: #fff;
	border-radius: .6rem;
	background: #755039;
	font-weight: 700;
}
.topInfoList dt.is-turquoise {
	background: var(--turquoise);
}
.topInfoList dt.is-orange {
	background: var(--orange);
}
.topInfoList dd {
	margin: 0;
}
.topInfoList small {
	font-size: 1.4rem;
}
.topInfoList dd a {
	display: inline-block;
	margin-top: 1rem;
	color: #fff;
	font-weight: 700;
}
.topInfoMap {
	overflow: hidden;
	min-height: 55rem;
	border: 1rem solid #ad9871;
	border-radius: 4rem;
	background: #ad9871;
}
.topInfoMap iframe {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 55rem;
	border: 0;
}
.topInfoButtons {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2.5rem;
	margin-top: 4rem;
}
.topInfoButtons a,
.topInfoButtons img,
.topInfoBanner,
.topInfoBanner img {
	display: block;
	width: 100%;
	height: auto;
}
.topInfoBanner {
	width: 80%;
	margin-right: auto;
	margin-left: auto;
	margin-top: 4rem;
}

/* WordPress */
.newsEmpty{width:100%;padding:4rem 2rem;text-align:center}.topPickupLink.is-empty{cursor:default}.navigation.pagination{margin:5rem auto;text-align:center}
.nav-links{
	display:flex;
	justify-content:center;
	gap:1rem;
	font-weight: 700;
}
.page-numbers{padding:.8rem 1.2rem}
.contactConfirmPanel,.contactThanks{
	max-width:90rem;
	margin:0 auto;
	padding: 5rem 7rem;
	background: rgba(255, 250, 238, .78);
	border-radius: 2.5rem;
}

.contactConfirmRow{display:grid;grid-template-columns:18rem 1fr;gap:2rem;padding:1.5rem 0;border-bottom:1px solid rgba(80,53,34,.25)}.contactConfirmButtons{display:flex;justify-content:center;gap:2rem;margin-top:4rem}.contactConfirmButtons button{padding:1.2rem 3rem;border:0;border-radius:999px}
.contactThanks address{margin-top:3rem; padding: 2.5rem 3rem;font-style:normal;background:#fff; border-radius: 2rem;}
.is-error{outline:2px solid #c33!important}.newsDetailContent img{max-width:100%;height:auto}

/* Contact Form 7 2ステップ */
.cf7-step-confirm{display:none}
.confirmMessage{margin:0 0 4rem;text-align:center}
.confirmMessage h2{margin:0 0 2rem;font-size:2.8rem}
.contactConfirmList{
	
	display: grid;
    grid-template-columns: 30rem 1fr;
    max-width: 90rem;
    margin: 0 auto;
    background: #fff;
    border-radius: 4rem;
    overflow: hidden;
}
.contactConfirmList dt,.contactConfirmList dd{
	margin:0;
	padding: 2rem 2rem 2rem 3rem;
	border-bottom:1px solid rgba(80,53,34,.2);
}

.contactConfirmList dt{font-weight:700;background:var(--cream)}
.contactConfirmButtons{display:flex;justify-content:center;gap:2rem;margin:4rem 0 0}.contactConfirmButtons button,.contactConfirmButtons input{min-width:20rem;padding:1.5rem 3rem;font:inherit;font-weight:700;border:0;border-radius:999px;cursor:pointer}.cf7-btn-back{color:var(--brown);background:#ddd}.contactConfirmButtons input{color:#fff;background:var(--orange)}.has-error{outline:2px solid #c33!important}.wpcf7-not-valid-tip{display:block;margin-top:.8rem;color:#b22424;font-size:1.5rem}.contactThanks h1{margin:0 0 3rem;font-size:3rem;text-align:center}
.contactThanks p{margin:4rem 0 2rem;line-height:2;}.contactThanksButton{text-align:center}.contactThanksButton a{display:inline-block;padding:1.5rem 4rem;color:#fff;border-radius:999px;background:var(--orange)}


/* ------------------------------------------------------------
  404 page
------------------------------------------------------------ */
.errorIntro { text-align: center; }
.errorCode { margin: 0 0 1rem; color: #fff; font-size: 8rem; font-weight: 900; line-height: 1; letter-spacing: .08em; }
.errorIntro h1 { margin: 0 0 3rem; color: #fff; font-size: 3.6rem; line-height: 1.5; }
.errorContent { padding-bottom: 10rem; }
.errorPanel { max-width: 90rem; margin: 0 auto; padding: 6rem; text-align: center; border-radius: 2rem; background: #fff; }
.errorPanel p { margin: 0; font-size: 1.8rem; line-height: 2; }
.errorPanel p + p { margin-top: 2rem; }
.errorButtons { display: flex; margin-top: 4rem; gap: 2rem; justify-content: center; }
.errorButton { display: flex; width: 32rem; min-height: 6rem; padding: 1rem 2rem; align-items: center; justify-content: center; color: #fff; font-size: 1.6rem; font-weight: 700; line-height: 1.5; border-radius: 999px; background: var(--orange); }
.errorButton.is-sub { background: var(--brown); }
.errorButton:hover { opacity: .8; }

/* ------------------------------------------------------------
  News article: WordPress editor content
------------------------------------------------------------ */
.newsArticleBody > *:last-child {
	margin-bottom: 0;
}
.newsArticleBody h2,
.newsArticleBody h3,
.newsArticleBody h4 {
	margin: 4rem 0 2rem;
	color: var(--brown);
	font-weight: 700;
	line-height: 1.6;
}
.newsArticleBody h2 {
	padding-bottom: 1.5rem;
	font-size: 2.4rem;
	background: url("../image/common/line03.png") repeat-x center bottom / auto .8rem;
}
.newsArticleBody h3 {
	font-size: 2rem;
}
.newsArticleBody h4 {
	font-size: 1.8rem;
}
.newsArticleBody ul,
.newsArticleBody ol {
	margin: 0 0 3.5rem;
	padding-left: 1.5em;
}
.newsArticleBody ul {
	list-style: disc;
}
.newsArticleBody ol {
	list-style: decimal;
}
.newsArticleBody li + li {
	margin-top: .6rem;
}
.newsArticleBody a {
	color: var(--orange-dark);
	text-decoration: underline;
	text-underline-offset: .3em;
}
.newsArticleBody img {
	max-width: 100%;
	height: auto;
}
.newsArticleBody figure,
.newsArticleBody .wp-block-image {
	margin: 4rem 0;
}
.newsArticleBody figure img,
.newsArticleBody .wp-block-image img {
	display: block;
	width: auto;
	max-width: 100%;
	margin: 0 auto;
}
.newsArticleBody figcaption {
	margin-top: 1rem;
	font-size: 1.3rem;
	line-height: 1.6;
	text-align: center;
}
.newsArticleBody .wp-block-gallery,
.newsArticleBody .blocks-gallery-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 3rem;
	margin: 0 0 4rem;
	padding: 0;
	list-style: none;
}
.newsArticleBody .wp-block-gallery figure,
.newsArticleBody .blocks-gallery-grid figure,
.newsArticleBody .blocks-gallery-item {
	width: auto !important;
	margin: 0 !important;
}
.newsArticleBody .wp-block-gallery img,
.newsArticleBody .blocks-gallery-grid img {
	display: block;
	width: 100%;
	height: auto;
}
.newsArticleBody blockquote {
	margin: 0 0 3.5rem;
	padding: 2rem 2.5rem;
	border-left: .5rem solid var(--orange);
	background: rgba(255, 255, 255, .45);
}
.newsArticlePageLinks {
	margin-top: 4rem;
	text-align: center;
}
