@charset "UTF-8";
/*
Author: c.nz
Version: 1.0.6
*/
/* ---------------------------------------------------
　　common
------------------------------------------------------ */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video, a {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
  box-sizing: border-box;
}

ol, ul {
  list-style: none;
}

i, cite, em, var, address, dfn {
  font-style: normal;
}

html {
  font-size: 62.5%;
  font-size: 0.5208333333vw;
  -webkit-text-size-adjust: 100%; /* タブレット・スマホで文字が自動拡大されるのを防ぐ */
  text-size-adjust: 100%;
}
@media screen and (max-width: 1366px) {
  html {
    font-size: 0.6588579795vw;
  }
}
@media screen and (max-width: 1280px) {
  html {
    font-size: 0.625vw;
  }
}
@media screen and (max-width: 767px), (max-width: 896px)  {
  html {
    font-size: 62.5%; /* 16px × 62.5% = 10px */
  }
}

body {
  font-family: "Noto Sans JP", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-display: swap;
  font-size: 1.6rem;
}

.acms-container {
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}
.acms-container #adminBox {
  margin-bottom: 0;
}

.slick-dots li.slick-active button {
  background: none;
}

.js-edit_inplace-hovering {
  left: 50% !important;
  transform: translateX(-50%);
}

.js-fadein {
  opacity: 0;
  transform: translateY(4rem);
  transition: 0.6s;
}

.js-fadein.active {
  opacity: 1;
  transform: translateY(0);
}

#container {
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
  position: relative;
}

.container {
  width: 100%;
  max-width: 120rem;
  margin: 0 auto;
}
.container::after {
  content: "";
  clear: both;
  display: block;
}

#trend_notification {
  display: none;
}

a {
  transition: all ease 0.3s;
  box-sizing: border-box;
}
a:link, a:visited {
  color: #103A44;
  text-decoration: none;
}
a:hover {
  opacity: 0.7;
}
a[href^="tel:"] {
  pointer-events: none;
  text-decoration: none;
}

.entry-column a:visited {
  color: #222;
}

img {
  max-width: 100%;
  height: auto;
  line-height: 1;
  vertical-align: bottom;
}
img.max {
  width: 100%;
}

p {
  line-height: 1.8;
  margin: 0;
}

.flexbox {
  display: flex;
  flex-wrap: wrap;
  align-items: top;
  justify-content: space-between;
}

.flexbox.mid {
  align-items: center;
}

.flexbox.center {
  justify-content: center;
}

.flexbox.reverse {
  flex-direction: row-reverse;
}

.flL {
  float: left;
}

.flR {
  float: right;
}

.taL {
  text-align: left;
}

.taC {
  text-align: center;
}

.taR {
  text-align: right;
}

.rel {
  position: relative;
}

.mincho {
  font-family: "Noto Serif JP", "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

.gothic {
  font-family: "Noto Sans JP", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

.w20 {
  width: 20%;
}

.w30 {
  width: 30%;
}

.w70 {
  width: 70%;
}

.w80 {
  width: 80%;
}

.w1200 {
  max-width: 120rem;
}

.txt-lll {
  font-size: 1.375em;
}

.txt-ll {
  font-size: 1.25em;
}

.txt-l {
  font-size: 1.125em;
}

.txt-s {
  font-size: 0.875em;
}

.txt-ss {
  font-size: 0.75em;
}

.txt-sss {
  font-size: 0.625em;
}

.tcol-red {
  color: red;
}

.tcol-orange {
  color: orangered;
}

.tcol-yellow {
  color: orange;
}

.tcol-green {
  color: darkgreen;
}

.tcol-blue {
  color: blue;
}

.tcol-purple {
  color: purple;
}

.pc-only {
  display: block;
}

.sp-only {
  display: none;
}

.pc-block {
  display: block;
}

.sp-block {
  display: none;
}

.pc-inline {
  display: inline;
}

.sp-inline {
  display: none;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
  /*背景固定する場合	html.is-fixed,
  	html.is-fixed body {height: 100%;overflow: hidden;}*/
  a:hover img {
    opacity: 1;
  }
  a[href^="tel:"] {
    pointer-events: auto;
  }
  .container {
    max-width: 100%;
  }
  p {
    line-height: 1.4;
  }
  .w1200 {
    width: auto;
  }
  .pc-only {
    display: none !important;
  }
  .sp-only {
    display: block;
  }
  .pc-block {
    display: none !important;
  }
  .sp-block {
    display: block;
  }
  .pc-inline {
    display: none !important;
  }
  .sp-inline {
    display: inline;
  }
  .pc-hidden {
    display: block;
  }
}
/* ---------------------------------------------------
　　pagetit
------------------------------------------------------ */
.pagetit {
	width: 100%;
	/* height: 9.8958333333vw; */
	aspect-ratio:1920/390;
	position: relative;
	background:url("../images/header/bg.png")no-repeat center center/cover;
	text-align: center;
	/* box-shadow: 0 5px 8px rgba(0, 0, 0, 0.15); */
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
}

.pagetit .icons{aspect-ratio: 1/1;width: 8rem;border-radius: 99.9rem;box-shadow:0 0 2rem #432F2C80;display: flex;justify-content: center;align-items: center;margin-bottom: 1rem;background: #fff;}
.pagetit .icons img{aspect-ratio: 1/1;width: 5.1rem;}

.pagetit .page-title {
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
  margin: 0 auto;
  font-size: 4.8rem;
  font-weight: 700;
  line-height: 1.5;
  color: #fff;
  text-shadow: 0 0 2rem #103A44;
  letter-spacing: 0.05em;
}
.pagetit .pt-en{font-family:"Roboto";font-weight: 600;font-size: 2rem;line-height:1;letter-spacing:0.05em;color:#F39353;text-transform: uppercase;margin-top: 0.5rem;text-shadow:0 0 2rem #103A44;}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.pagetit{width: 100%;max-width: 100%;aspect-ratio: 399/220;}
	.pagetit .icons{width: 6rem;box-shadow:0 0 1.5rem #432F2C80;margin-bottom: 1.2rem;}
	.pagetit .icons img{width: 3.84rem;}
	.pagetit .page-title {font-size: 2.8rem;}
	.pagetit .pt-en{font-size:1.2rem;letter-spacing:0.1em;margin-top: 0.4rem;}
}

/* ---------------------------------------------------
　　topicpath
------------------------------------------------------ */
.topicpath {background: none;width: 100%;text-align: center;padding: 5.2rem 1rem 6rem;margin-bottom: 0;}
.topicpath .acms-container {max-width: 120rem;}
.topicpath .topicpath-list {width: 100%;padding: 0;text-align:center;}
.topicpath .topicpath-list .topicpath-item {float: none;display: inline-block;background: none;padding: 0;font-size: 1.5rem;line-height: 1.2;font-weight: 400;}
.topicpath .topicpath-list .topicpath-item a {display: inline;color:#103A44;font-size: 1.4rem;}
.topicpath .topicpath-list .topicpath-item::before {display: inline-block;content: "＞";padding: 0 0.8rem;}
.topicpath .topicpath-list .topicpath-item:first-child {padding: 0;}
.topicpath .topicpath-list .topicpath-item:first-child::before {display: inline-block;content: "";padding: 0;}
/* .topicpath .topicpath-list .topicpath-item .topicpath-link {font-size: 1.5rem;font-weight: 200;} */

@media screen and (max-width: 767px), (max-width: 896px)  {
  .topicpath {padding:1.5rem 1.5rem 1.5rem 1.5rem;margin-bottom: 3.4rem;}
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	#header {
		position: relative;
		top: auto;
		background: transparent;
	}
	#header .content-wrap {
		background: transparent;
	}
  #header .content-wrap .logo {
    width: 30%;
    margin-left: 2%;
    z-index: 999;
  }
  #header .content-wrap .sp-scroll {
    position: fixed;
    height: 100vh;
    width: 100%;
    top: 0;
    overflow: scroll;
    background: #FFF;
    transition: 0.6s;
    left: -120rem;
  }
  #header .content-wrap .is-open + .sp-scroll {
    left: 0;
  }
  #header .content-wrap .gnavi > ul {
    display: block;
    padding-top: 10rem;
    height: auto;
  }
  #header .content-wrap .gnavi > ul > li {
    margin: 0;
    text-align: center;
    padding: 1rem 0;
    font-size: 1.8rem;
  }
  #header .content-wrap .gnavi > ul > li a {
    color: #222;
  }
  #header .content-wrap .gnavi > ul > li > ul {
    display: none;
    position: relative;
  }
  #header .content-wrap .mail-btn {
    display: none;
  }
  #header .content-wrap .tel-info {
    display: none;
  }
  .head-contents {
    margin-right: 2%;
  }
	.sp-menu-btn {
		position: fixed;
		top: 1rem;
		right: 2%;
		z-index: 1001;
	}
  .sp-menu-btn > span {
    display: inline-block;
    background-color: #004878;
    width: 100%;
    height: 0.2rem;
    border-radius: 0.5rem;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: 0.8s;
  }
  .sp-menu-btn > span:first-of-type {
    top: 25%;
  }
  .sp-menu-btn > span:last-of-type {
    top: 75%;
  }
  .sp-menu-btn.is-open > span {
    transform: translate(-50%, -50%) rotateX(180deg) rotateY(270deg);
    top: 50%;
  }
  .sp-menu-btn.is-open > span:first-of-type {
    transform: translate(-50%, -50%) rotateZ(45deg);
    top: 50%;
  }
  .sp-menu-btn.is-open > span:last-of-type {
    transform: translate(-50%, -50%) rotateZ(-45deg);
    top: 50%;
  }
  .seo-description {
    display: none;
  }
}
@media screen and (max-width: 896px)  {
  #header .content-wrap .logo {
    width: 18%;
  }
  #header .content-wrap .gnavi > ul {
    padding-bottom: 4rem;
  }
}
/* ---------------------------------------------------
	follow-content
------------------------------------------------------ */
.follow-content {
  height: 4.1666666667vw;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  position: fixed;
  transition: 0.6s;
  width: 100%;
  top: -50rem;
  background: #FFF;
  z-index: 999;
}
.follow-content.is-follow {
  position: fixed;
  top: 0;
}
.follow-content .logo {
  width: 7.8125vw;
  margin: 0.5208333333vw 9.8958333333vw 0.5208333333vw 1.0416666667vw;
}
.follow-content .logo a {
  display: block;
}
.follow-content .logo a:hover {
  opacity: 1;
}
.follow-content .seo-description {
  font-size: 0.7291666667vw;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.575;
  margin-bottom: 1.875vw;
}
.follow-content .gnavi > ul {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.follow-content .gnavi > ul > li {
  font-size: 0.9375vw;
  margin-right: 2.0833333333vw;
  font-weight: bold;
  letter-spacing: 0;
  line-height: 1.4;
  position: relative;
}
.follow-content .gnavi > ul > li:last-of-type {
  margin-right: 0;
}
.follow-content .gnavi > ul > li > ul {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  width: auto;
  height: auto;
  z-index: 1000;
}
.follow-content .gnavi > ul > li > ul > li {
  width: auto;
  height: auto;
}
.follow-content .gnavi > ul > li > ul > li a {
  display: block;
  white-space: nowrap;
  width: auto;
  padding: 0.5rem;
  background: rgba(255, 255, 255, 0.95);
}
.follow-content .mail-btn {
  width: 9.375vw;
  margin-right: 0;
  margin-left: 1.0416666667vw;
  height: 100%;
}
.follow-content .mail-btn a {
  background: #999;
  width: 100%;
  color: #FFF;
  padding: 0.7291666667vw 0 0.6770833333vw;
  font-size: 0.9375vw;
  letter-spacing: 0.05em;
  line-height: 2;
  text-align: center;
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  font-weight: 700;
}
.follow-content .mail-btn a::before {
  content: "";
  display: inline-block;
  height: 1.0416666667vw;
  background: url(../images/common/ico-mail.png) no-repeat center/contain;
  width: 100%;
}
.follow-content .tel-info {
  margin-left: auto;
  margin-right: 0;
  text-align: right;
}
.follow-content .tel-info p {
  font-size: 1.9791666667vw;
  line-height: 0.66315;
  letter-spacing: 0;
  font-weight: 400;
  margin-bottom: 0.2604166667vw;
}
.follow-content .tel-info small {
  font-size: 0.8333333333vw;
  font-weight: 500;
  line-height: 1.575;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
  .follow-content {
    display: none;
  }
}

/* ---------------------------------------------------
　　ヘッダー：内部ページ用
------------------------------------------------------ */
#inpage-header{padding: 2.1rem 4.5rem 2.7rem 5.6rem;background: #fff;width: 100%;max-width: 100%;display: flex;align-items: flex-start;justify-content: space-between;}

#inpage-header .logo{display: block;aspect-ratio: 61/42;width: 14rem;margin-top: 2.1rem;}
#inpage-header .head-content .sec-contact{display: flex;align-items: flex-start;flex-wrap: wrap;justify-content: flex-end;margin-bottom: 2.2rem;gap: 2.2rem;}
#inpage-header .head-content .sec-contact .tel{color: #103A44;font-family: "Zen Maru Gothic";font-size: 3.8rem;font-weight: 900;line-height: 1;}
#inpage-header .head-content .sec-contact .tel small{font-family: "Noto Sans JP";font-size: 1.6rem;font-weight: 700;display: block;margin-top: 0.8rem;}
#inpage-header .head-content .sec-contact .contact{width: 26.9rem;height: 6rem;display: flex;background: #48A99E;border-radius: 10rem;align-items: center;justify-content: center;color: #FFF;font-family: "Zen Kaku Gothic New";font-size: 1.8rem;font-weight: 700;line-height:1.6;letter-spacing:0.05em;margin-top: 0.5rem;}
#inpage-header .head-content .sec-contact .contact::before{content:"";display: block;width: 2.3rem;height: 1.6rem;background: url(../images/common/ico-mail.png) no-repeat center/contain;margin-right: 0.8rem;}

#inpage-header .head-content .menu{display: flex;flex-wrap: wrap;align-items: flex-start;justify-content:end;gap: 1rem 3rem;}
#inpage-header .head-content .menu .items{display: flex;align-items: flex-start;}
#inpage-header .head-content .menu .items a{color: #103A44;font-family: "Zen Kaku Gothic New";font-size: 1.8rem;font-weight: 700;line-height:1.68;letter-spacing: 0.03em;position: relative;transition: all ease 0.4s;}
#inpage-header .head-content .menu .items a:hover{transform: translateY(-0.5rem);}
#inpage-header .head-content .menu .items a span{color: #F39353;font-family:"Roboto";font-size: 1rem;line-height:1;letter-spacing:0.1em;text-transform: uppercase;display: block;}

#inpage-header .head-content .menu .items::before{content:"";aspect-ratio: 1/1;width: 3.2rem;background: url("../images/common/icon-nav-reform.svg")no-repeat center/contain;display: block;margin-right: 1.5rem;pointer-events: none;transition: all ease 0.4s;}
#inpage-header .head-content .menu .items:has(> a:hover)::before{transform: translateY(-0.5rem);}

#inpage-header .head-content .menu .items.trial::before{background-image: url("../images/common/icon-nav-trial.svg");}
#inpage-header .head-content .menu .items.rental::before{background-image: url("../images/common/icon-nav-rental.svg");}
#inpage-header .head-content .menu .items.reform::before{background-image: url("../images/common/icon-nav-reform.svg");}
#inpage-header .head-content .menu .items.pillow::before{background-image: url("../images/common/icon-nav-pillow.svg");}
#inpage-header .head-content .menu .items.mattress::before{background-image: url("../images/common/icon-nav-mattress.svg");}
#inpage-header .head-content .menu .items.company::before{background-image: url("../images/common/icon-nav-about.svg");}

@media screen and (max-width: 767px), (max-width: 896px) {
	#inpage-header{padding: 1.4rem 1.5rem 2rem 1.4rem;}
	#inpage-header .logo{width: 6.7rem;margin: 0;}
	#inpage-header .head-content{display: none;}
}

/* ---------------------------------------------------
　　footer
------------------------------------------------------ */
#footer {
  background: #EEEEEE;
  padding-bottom: 2.0833333333vw;
  position: relative;
}

#footer .f-contact {
  background: #CCCCCC;
  padding: 3.4895833333vw 0 3.4895833333vw;
  display: flex;
  justify-content: center;
  align-items: center;
}

#footer .f-contact > p {
  font-size: 1.1458333333vw;
  letter-spacing: 0.1em;
  line-height: 1.145;
  margin-right: 3.9583333333vw;
  font-weight: 700;
}

#footer .contact-info {
  display: flex;
  align-items: center;
  width: 28.90625vw;
}

#footer .contact-info .mail-btn {
  margin-right: 0;
  margin-left: 2.0833333333vw;
  height: 100%;
}

#footer .contact-info .mail-btn a {
  background: #999;
  width: 12.5vw;
  color: #FFF;
  font-size: 0.9375vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 2;
  text-align: center;
  position: relative;
  height: 4.1666666667vw;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}

#footer .contact-info .mail-btn a::before {
  content: "";
  display: inline-block;
  width: 1.40625vw;
  height: 1.0416666667vw;
  background: url(../images/common/ico-mail.png) no-repeat center/contain;
  margin-right: 0.78125vw;
}

#footer .contact-info .tel-info {
  margin-left: auto;
  margin-right: 0;
  text-align: right;
  white-space: nowrap;
}

#footer .contact-info .tel-info p {
  font-size: 1.9791666667vw;
  line-height: 0.66315;
  letter-spacing: 0;
  font-weight: 400;
  margin-bottom: 0.2604166667vw;
}

#footer .contact-info .tel-info small {
  font-size: 0.8333333333vw;
  font-weight: 500;
  line-height: 1.575;
}

#footer .f-company-info {
  background: #EEEEEE;
  padding: 2.0833333333vw 0 0 0;
}

#footer .f-company-info .site-map {
  display: flex;
  align-items: flex-start;
  width: 62.5vw;
  margin: auto;
  margin-bottom: 1.875vw;
}

#footer .f-company-info .site-map .logo {
  margin-right: 1.5625vw;
  width: 10.4166666667vw;
}

#footer .f-company-info .site-map .logo a {
  display: block;
}

#footer .f-company-info .site-map .logo a:hover {
  opacity: 1;
}

#footer .f-company-info .site-map .address p {
  font-size: 0.8333333333vw;
}

#footer .f-company-info .f-menu {
  margin-right: 0;
  margin-left: auto;
  width: 18.4375vw;
}

#footer .f-company-info .f-menu ul {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

#footer .f-company-info .f-menu ul li {
  font-size: 0.9375vw;
  line-height: 1.4;
  margin-bottom: 1.0416666667vw;
  font-weight: 500;
}

#footer .f-company-info .f-menu ul li:not(:nth-of-type(3n)) {
  margin-right: 2.0833333333vw;
}

#footer .icon-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 3.125vw;
}

#footer .icon-wrap .icon {
  margin: auto 0.5208333333vw;
  width: 1.5625vw;
}

#footer p.copyright {
  font-size: 0.7291666667vw;
  font-weight: 400;
  line-height: 1.8;
  color: #000;
  text-align: center;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
  #footer .contact-info {
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
  }
  #footer .contact-info .mail-btn a {
    height: 6rem;
    font-size: 1.8rem;
    width: 100%;
  }
  #footer .contact-info .mail-btn a::before {
    width: 2.8rem;
    height: 1.6rem;
  }
  #footer .contact-info .tel-info {
    width: 100%;
    text-align: center;
    margin-bottom: 2rem;
  }
  #footer .contact-info .tel-info p {
    font-size: 3.2rem;
    margin-bottom: 1.5rem;
  }
  #footer .contact-info .tel-info small {
    font-size: 1.8rem;
    margin-top: 2rem;
  }
  #footer .f-contact {
    flex-wrap: wrap;
    padding: 4rem 0 4rem 0;
  }
  #footer .f-contact > p {
    margin-right: 0;
    text-align: center;
    margin-bottom: 2rem;
    font-size: 1.4rem;
  }
  #footer .f-company-info {
    padding: 2rem 0;
    font-size: 1.6rem;
  }
  #footer .f-company-info .site-map {
    justify-content: center;
    flex-wrap: wrap;
    width: 100%;
    padding: 0 1rem;
    margin-bottom: 0;
  }
  #footer .f-company-info .site-map .logo {
    margin-right: 0;
    margin-bottom: 2rem;
    width: 15rem;
  }
  #footer .f-company-info .site-map .address {
    width: 100%;
    margin-bottom: 2rem;
    text-align: center;
  }
  #footer .f-company-info .site-map .address p {
    font-size: 1.6rem;
  }
  #footer .f-company-info .f-menu {
    width: 100%;
    margin-bottom: 0;
  }
  #footer .f-company-info .f-menu ul.gnavi {
    display: flex;
    flex-wrap: wrap;
    width: auto;
    height: auto;
    background: none;
    position: relative;
    top: 0;
    left: 0;
    z-index: 1;
    padding-top: 0;
  }
  #footer .f-company-info .f-menu ul li {
    font-size: 1.4rem;
    margin: 0 2rem 1rem 2rem;
    width: 12rem;
    text-align: center;
  }
  #footer .f-company-info .f-menu ul li:not(:nth-of-type(3n)) {
    margin-right: 2rem;
  }
  #footer .icon-wrap {
    margin-bottom: 3rem;
  }
  #footer .icon-wrap .icon {
    margin: 0 1rem;
    width: 3rem;
  }
  #footer p.copyright {
    font-size: 1.4rem;
  }
}
/* pagetop */
.pagetop {
  display: block;
  position: fixed;
  right: 2.5rem;
  bottom: -100%;
  z-index: 1000;
  transition: all 0.6s;
}

.pagetop.active {
  display: block;
  bottom: 1.5rem;
}

.pagetop a {
  display: block;
}

.pagetop a:hover {
  transform: translateY(-0.3rem);
}

.pagetop a:hover img {
  opacity: 1;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
  .pagetop {
    width: 4.4rem;
  }
  .pagetop a:hover {
    transform: translateY(0);
  }
}
/* ------------------------------
　　スライダー
------------------------------ */
.slick-slider {
  padding: 0 0 1.2rem 0;
}
.slick-slider img {
  margin: 0 auto;
}

.fix-height {
  height: 30rem; /* はじめのちらつき防止 */
  overflow: hidden; /* はじめのちらつき防止 */
}

.slick-slide:hover {
  cursor: pointer;
}

.slick-list:focus:focus {
  position: relative;
}
.slick-list:focus:focus:before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  border: 0.2rem dotted #c41134;
  content: "";
}

.js-slider .slick-list:focus {
  position: relative;
}
.js-slider .slick-list:focus:before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  border: 0.2rem dotted #c41134;
  content: "";
}
.main-slider-image a:hover {
  text-decoration: none;
}

.main-slider-text-outer {
  height: 100%;
}

.main-slider-text-wrap {
  display: table;
  width: 100%;
  height: 100%;
}

.main-slider-text-inner {
  display: table-cell;
  padding: 0 2rem;
  text-align: center;
  vertical-align: middle;
}

.main-slider-main-copy {
  margin: 0;
  color: #FFF;
  font-weight: bold;
  font-size: 2.4rem;
}

.main-slider-side-copy {
  margin: 0;
  color: #FFF;
  font-size: 1.6rem;
}

/* ちらつき防止 */
.slick-track,
.slick-list {
  -webkit-transform: translateZ(0);
  -webkit-perspective: 1000;
}

/* 矢印ナビゲーション */
.slick-prev,
.slick-next {
  position: absolute;
  top: 50%;
  display: block;
  width: 1.9rem;
  height: 6rem;
  margin-top: -2.9rem;
  padding: 0;
  color: transparent;
  font-size: 0;
  line-height: 0;
  background: transparent;
  border: none;
  outline: none;
  cursor: pointer;
}
.slick-prev:focus,
.slick-next:focus {
  border: 0.1rem dotted #FFF;
}

.slick-prev {
  left: 1rem;
  background: url("../../images/marker/icon_white_arrow_left.png") no-repeat;
}

.slick-next {
  right: 1rem;
  background: url("../../images/marker/icon_white_arrow_right.png") no-repeat;
}

/* ドットのナビゲーション */
.slick-dots {
  position: relative;
  clear: both;
  margin: -3.5rem 0 0 0;
  padding: 0;
  text-align: center;
  list-style: none;
}

.slick-dots li {
  display: inline-block;
}

.slick-dots li button {
  position: relative;
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
  margin: 0 0.8rem;
  font-size: 0;
  background: #FFF;
  border: 0.1rem solid transparent;
  border-radius: 0.7rem;
  content: "";
}

.slick-dots li button:focus {
  border: 0.1rem solid #c41134;
  outline: 0;
}

.slick-dots li:hover button {
  cursor: pointer;
}

.slick-dots li.slick-active button {
  background: #c41134;
}

.slick-dots button {
  position: absolute;
  width: 0.1rem;
  height: 0.1rem;
  margin: -0.1rem;
  padding: 0;
  overflow: hidden;
  border: 0;
  clip: rect(0 0 0 0);
}

#autoplay-btn {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  z-index: 1;
  width: 5rem;
  height: 5rem;
  color: #FFF;
  background: rgba(0, 0, 0, 0.7);
  border: 0;
  border-radius: 50%;
  outline: 0;
  display: none;
}
#autoplay-btn:hover {
  background: rgba(0, 0, 0, 0.9);
}
#autoplay-btn:active:before, #autoplay-btn:focus:before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0.1rem dotted #FFF;
  content: "";
}
#autoplay-btn:after {
  position: absolute;
  top: 1.5rem;
  left: 1.7rem;
  display: block;
  box-sizing: border-box;
  width: 1.6rem;
  height: 2rem;
  margin-left: 0;
  border-top: none;
  border-right: 0.5rem solid #FFF;
  border-bottom: none;
  border-left: 0.5rem solid #FFF;
  content: "";
}
#autoplay-btn.active:after {
  left: 1.5rem;
  width: 0;
  height: 0;
  margin-left: 0.5rem;
  border-color: transparent transparent transparent #FFF;
  border-style: solid;
  border-width: 1rem 0 1rem 1.5rem;
}

@media screen and (min-width: 897px) {
  .slick-prev {
    left: 5rem;
  }
  .slick-next {
    right: 5rem;
  }
  .fix-height {
    height: 40rem; /* はじめのちらつき防止 */
  }
  .main-slider-image {
    height: 40rem;
  }
  .main-slider-main-copy {
    font-size: 4rem;
  }
  .main-slider-side-copy {
    font-size: 2.4rem;
  }
}
/* ---------------------------------------------------
	btn_menu
------------------------------------------------------ */
.btn_menu {
  display: none;
  position: fixed;
  right: 1.5rem;
  top: 1rem;
  width: 10rem;
  height: 10rem;
  padding: 2rem 2rem 1.5rem;
  cursor: pointer;
  text-align: center;
  z-index: 9999;
  background: #000;
}
.btn_menu .menu-trigger {
  display: inline-block;
  position: relative;
  width: 4rem;
  height: 3.2rem;
  box-sizing: border-box;
  transition: all 0.4s;
}
.btn_menu .menu-trigger span {
  display: inline-block;
  transition: all 0.4s;
  box-sizing: border-box;
  position: absolute;
  left: 0;
  width: 100%;
  height: 0.3rem;
  background-color: #FFF;
}
.btn_menu .menu-trigger span:nth-of-type(2) {
  top: 1.4rem;
}
.btn_menu .menu-trigger span:nth-of-type(3) {
  bottom: 0;
}
.btn_menu .menu-trigger.active {
  transform: rotate(180deg);
}
.btn_menu .menu-trigger.active span:nth-of-type(1) {
  transform: translateY(1rem) rotate(-35deg);
}
.btn_menu .menu-trigger.active span:nth-of-type(2) {
  transform: translateY(0) rotate(35deg);
}
.btn_menu .menu-trigger.active span:nth-of-type(3) {
  opacity: 0;
}
.btn_menu .txt {
  color: #FFF;
  font-size: 1.2rem;
  font-family: Arial, Helvetica, "sans-serif";
  font-weight: bold;
  margin-top: 0.4rem;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
  .btn_menu {
    display: block;
    width: 6rem;
    height: 6rem;
    padding: 1rem 1rem 1.5rem;
  }
  .btn_menu .menu-trigger {
    width: 4rem;
    height: 2.6rem;
  }
  .btn_menu .menu-trigger span {
    height: 0.2rem;
  }
  .btn_menu .menu-trigger span:nth-of-type(1) {
    top: 0.2rem;
  }
  .btn_menu .menu-trigger span:nth-of-type(2) {
    top: 1.2rem;
  }
  .btn_menu .menu-trigger span:nth-of-type(3) {
    bottom: 0;
  }
}
/* ---------------------------------------------------
	pager
------------------------------------------------------ */
.pager {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  margin: 4rem 0;
}
.pager li {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 5rem;
  height: 5rem;
  margin: 0;
  border: none;
  border-radius: 1rem;
  font-size: 2rem;
  font-weight: 700;
  background: #E8ECEB;
  color: #103A44;
  overflow: hidden;
}
.pager li > span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}
.pager li a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  color: #103A44;
  text-decoration: none;
}
.pager li.prev, .pager li.next {
  border: none;
  border-radius: 0;
  background: none;
}
.pager li.prev .pager-link,
.pager li.prev .pager-link:hover,
.pager li.next .pager-link,
.pager li.next .pager-link:hover {
  background: none;
  color: #103A44;
  padding: 0;
}
.pager li.cur {
  background: #48A99E;
  color: #fff;
  border-radius: 1rem;
}
.pager li .pager-link {
  background: #E8ECEB;
  padding: 0;
}
.pager li .pager-link:active, .pager li .pager-link:focus, .pager li .pager-link:visited {
  color: #103A44;
}
.pager li .pager-link:hover {
  background: #48A99E;
  color: #fff;
  border-radius: 1rem;
  opacity: 1;
}

.serial-nav {
  width: 100%;
  max-width: 120rem;
  margin: 0 auto 5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.serial-nav .serial-nav-prev {
  text-align: left;
}
.serial-nav .serial-nav-next {
  text-align: right;
}
.serial-nav a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 25.5rem;
  max-width: 100%;
  padding: 1.8rem 2rem;
  border: none;
  border-radius: 1rem;
  background: #E8ECEB;
  color: #103A44;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.4;
  transition: opacity 0.25s ease;
}
.serial-nav a:active, .serial-nav a:focus, .serial-nav a:hover, .serial-nav a:visited {
  color: #103A44;
}
.serial-nav a:hover {
  text-decoration: none;
  background: #E8ECEB;
  opacity: 0.8;
}
.serial-nav .serial-nav-item a {
  border: none;
}
.serial-nav .serial-nav-next a {
  margin-left: auto;
}

.serial-nav-item a {
	display: inline-block;
	padding: 1.3rem 6.4rem 1.3rem 6.5rem;
	border-radius: 1rem;
	background: #E8ECEB;
	color: #103A44;
	font-family: "Zen Kaku Gothic New";
	font-size: 2rem;
	text-decoration: none;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
  .pager {
    margin: 2rem 0;
  }
  .pager li {
    margin-bottom: 1rem;
  }
  .serial-nav {
		gap: 1rem;
		padding: 0 1.5rem;
	}
	.serial-nav-item {
		flex: 1 1 0;
		min-width: 0;
	}
	.serial-nav-item a {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.5rem;
		width: 100%;
		padding: 1.3rem 0.5rem;
		font-size: 1.4rem;
		line-height: 1.4;
		white-space: normal;
		word-break: keep-all;
		text-align: center;
		letter-spacing: 0;
		box-sizing: border-box;
	}
}
/* ---------------------------------------------------
	子ブログindex
------------------------------------------------------ */
.koblog {
  width: 100%;
  max-width: 120rem;
  margin: 0 auto;
  padding: 5rem 0;
}
.koblog .koblog-card-wrap {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-top: 3rem;
}
.koblog .koblog-card-wrap .koblog-card {
  width: 22.5%;
  margin-right: 3.33%;
  margin-bottom: 4rem;
}
.koblog .koblog-card-wrap .koblog-card:nth-child(4n) {
  margin-right: 0;
}
.koblog .koblog-card-wrap .koblog-card .image {
  max-width: 27rem;
  height: 18rem;
  overflow: hidden;
  position: relative;
}
.koblog .koblog-card-wrap .koblog-card .image img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: auto;
}
.koblog .koblog-card-wrap .koblog-card .koblog-card-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 1.5rem;
}
.koblog .koblog-card-wrap .koblog-card .koblog-card-inner .date {
  flex: none;
  font-family: "Noto Serif JP", "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  font-size: 2rem;
  line-height: 1;
  margin-right: 1rem;
}
.koblog .koblog-card-wrap .koblog-card .koblog-card-inner .category {
  flex: none;
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 10rem;
  height: 2.4rem;
  padding: 0 1rem;
  font-size: 1.4rem;
  color: #fff;
  background: #00469C;
}
.koblog .koblog-card-wrap .koblog-card .koblog-card-inner .text {
  margin-top: 1rem;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
  .koblog {
    padding: 0 1.5rem 6rem;
  }
  .koblog .koblog-card-wrap {
    justify-content: center;
    margin-top: 3rem;
  }
  .koblog .koblog-card-wrap .koblog-card {
    width: 100%;
    margin-bottom: 2.5rem;
    margin-right: 0;
  }
  .koblog .koblog-card-wrap .koblog-card:last-child {
    margin-right: 0;
  }
  .koblog .koblog-card-wrap .koblog-card .koblog-card-inner {
    margin-top: 1.5rem;
  }
  .koblog .koblog-card-wrap .koblog-card .koblog-card-inner .image {
    max-width: 100%;
    max-height: 18rem;
  }
  .koblog .koblog-card-wrap .koblog-card .koblog-card-inner .image img {
    width: 100%;
  }
  .koblog .koblog-card-wrap .koblog-card .koblog-card-inner .date {
    font-size: 1.8rem;
  }
  .koblog .koblog-card-wrap .koblog-card .koblog-card-inner .category {
    font-size: 1.4rem;
  }
}
@media screen and (min-width: 600px) and (max-width: 896px) {
  .koblog .koblog-card {
    width: 49%;
    margin-right: 2%;
  }
  .koblog .koblog-card:nth-child(2n) {
    margin-right: 0;
  }
}
/* ---------------------------------------------------
	子ブログindex - news用
------------------------------------------------------ */
.koblog-news {
  width: 100%;
  max-width: 120rem;
  margin: 0 auto;
  padding: 0 0 10rem;
}
.koblog-news .koblog-card-wrap {
  display: block;
  margin-top: 3rem;
}
.koblog-news .koblog-card-wrap .koblog-card {
  width: 100%;
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  padding: 1rem 0 3rem;
}
.koblog-news .koblog-card-wrap .koblog-card .image {
  width: 10rem;
  height: 10rem;
  overflow: hidden;
  position: relative;
  margin-right: 2rem;
}
.koblog-news .koblog-card-wrap .koblog-card .image img {
  /* position: absolute; */
  top: 50%;
  left: 50%;
  /* transform: translate(-50%, -50%); */
  width: 100%;
  height: 100%;
  /* height: auto; */
	object-fit: cover;
	    object-position: top center;
}
.koblog-news .koblog-card-wrap .koblog-card .koblog-card-inner {
  display: block;
  width: calc(100% - 12rem);
}
.koblog-news .koblog-card-wrap .koblog-card .koblog-card-inner .meta {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  width: 100%;
}
.koblog-news .koblog-card-wrap .koblog-card .koblog-card-inner .category {
  flex: none;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 2.4rem;
  min-width: 10rem;
  padding: 0 1rem;
  font-size: 1.4rem;
  color: #fff;
  background: #00469C;
  margin-right: 2rem;
}
.koblog-news .koblog-card-wrap .koblog-card .koblog-card-inner .date {
  flex: none;
  margin-right: 1rem;
  font-size: 2rem;
  line-height: 1;
}
.koblog-news .koblog-card-wrap .koblog-card .text {
  margin-top: 1rem;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
  .koblog-news {
    max-width: 100%;
    padding: 0 1rem;
  }
  .koblog-news .koblog-card-wrap {
    margin-top: 1rem;
  }
  .koblog-news .koblog-card-wrap .koblog-card .image {
    margin-right: 1rem;
  }
  .koblog-news .koblog-card-wrap .koblog-card .koblog-card-inner {
    width: calc(100% - 11rem);
  }
  .koblog-news .koblog-card-wrap .koblog-card .koblog-card-inner .category {
    font-size: 1.4rem;
  }
  .koblog-news .koblog-card-wrap .koblog-card .koblog-card-inner .date {
    font-size: 2rem;
  }
  .koblog-news .koblog-card-wrap .koblog-card .text {
    margin-top: 1rem;
  }
}
/* ---------------------------------------------------
	子ブログ詳細
------------------------------------------------------ */
/* タイトル */
.entry > header h2 {
  padding-bottom: 0;
  border-bottom: none;
  margin-bottom: 4rem;
  text-align: left;
}
.entry > header .entry-info {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 4rem;
}
.entry > header .entry-info .date {
  flex: none;
  margin-right: 1rem;
  font-size: 2rem;
  line-height: 1;
}
.entry > header .entry-info .category {
  flex: none;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 2.4rem;
  min-width: 10rem;
  padding: 0 1rem;
  font-size: 1.4rem;
  color: #fff;
  background: #00469C;
}
.entry > .entry-footer {
  max-width: 120rem;
  margin: 2rem auto;
}
.entry > .entry-footer .share-wrapper {
  background: transparent;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
  .entry > header h2 {
    margin-bottom: 2rem;
  }
  .entry > header .entry-info {
    margin-bottom: 2rem;
    padding: 0 1rem;
  }
  .entry > header .entry-info .date {
    margin-right: 1rem;
    margin-bottom: 1rem;
    font-size: 1.6rem;
    line-height: 1;
    width: 100%;
  }
}
/* SNSシェアボタン */
.share-wrapper {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  background: #999;
  padding: 0.5rem;
}
.share-wrapper .share-list {
  display: inline-block;
}
.share-wrapper .share-item {
  display: inline-block;
  margin: 0 0 0 1.5rem;
  vertical-align: top;
}
.share-wrapper .share-item a {
  color: #999;
  text-decoration: none;
}
.share-wrapper .share-item [class*=acms-icon] {
  font-size: 2.2rem;
  vertical-align: middle;
}
.share-wrapper .share-item .share-item-facebook {
  position: relative;
  color: #1877F2;
  line-height: 1.2;
}
.share-wrapper .share-item .share-item-facebook::before {
  vertical-align: middle;
}
.share-wrapper .share-item .share-item-facebook:focus::before {
  position: absolute;
  top: -0.1rem;
  right: -0.1rem;
  bottom: -0.1rem;
  left: -0.1rem;
  border: 0.1rem dotted #333;
  content: "";
}
.share-wrapper .share-item .share-item-twitter {
  position: relative;
  color: #55ACEE;
  line-height: 1.2;
}
.share-wrapper .share-item .share-item-twitter::before {
  vertical-align: middle;
}
.share-wrapper .share-item .share-item-twitter:focus::before {
  position: absolute;
  top: -0.1rem;
  right: -0.1rem;
  bottom: -0.1rem;
  left: -0.1rem;
  border: 0.1rem dotted #333;
  content: "";
}

.share-wrapper .share-item .share-item-x {
    color: #000;
}
/* ---------------------------------------------------
	tag
------------------------------------------------------ */
.taglist {
  width: 100%;
  max-width: 120rem;
  margin: 4rem auto;
  padding: 0;
}
.taglist .tag {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
}
.taglist .tag a {
  display: inline-block;
  padding: 0.5rem 1rem;
  border: 0.1rem solid #999;
}
.taglist .tag a:hover {
  display: inline-block;
  padding: 0.5rem 1rem;
  border: 0.1rem solid #999;
  background: #999;
  color: #FFF;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
  .taglist {
    width: 100%;
    max-width: 100%;
    margin: 2rem auto;
    padding: 0 1rem;
  }
}
/* ---------------------------------------------------
	404
------------------------------------------------------ */
#article-404.entry-title {
  text-align: center;
  margin: 5rem 0;
}

/* ---------------------------------------------------
　　contact
------------------------------------------------------ */
/* a-blog cms デフォルト */
/* ボタン　色付き */
.btn-attention {
  background: #C41134;
  border: 0;
  color: #FFF;
  font-weight: bold;
  line-height: 1.3;
  border: 0;
  display: inline-block;
  padding: 0.6rem 1.5rem;
  border-radius: 0.3rem;
}

.btn-attention:hover,
.btn-attention:visited {
  color: #FFF;
  text-decoration: none;
}

.btn-attention:focus,
.btn-attention:active {
  color: #FFF;
  box-shadow: inset 0 0.1rem 0.3rem 0 rgba(0, 0, 0, 0.5);
}

.btn-attention:hover {
  color: #FFF;
  background-color: #910021;
  background-image: linear-gradient(to bottom, #C41134, #910021);
}

.btn-attention:active,
.btn-attention:focus {
  background: #910021;
}

/* ボタンサイズ大 */
.btn-large {
  background: #666;
  color: #FFF;
  font-weight: bold;
  line-height: 1.3;
  border: 0;
  display: inline-block;
  padding: 1.5rem 2rem;
  text-align: center;
  border-radius: 0.5rem;
  font-size: 2rem;
  box-sizing: border-box;
  transition: background-color 0.25s linear;
}

.btn-large:hover,
.btn-large:visited {
  color: #FFF;
  text-decoration: none;
}

.btn-large:focus,
.btn-large:active {
  color: #FFF;
  box-shadow: inset 0 0.1rem 0.3rem 0 rgba(0, 0, 0, 0.5);
}

.btn-large:hover {
  background: #444;
}

.btn-large:active,
.btn-large:focus {
  background: #444;
}

/* ボタンサイズ大 色付き */
.btn-attention-large {
  background: #C41134;
  color: #FFF;
  font-weight: bold;
  line-height: 1.3;
  border: 0;
  display: inline-block;
  padding: 1.5rem 2rem;
  text-align: center;
  border-radius: 0.5rem;
  font-size: 2rem;
  box-sizing: border-box;
  transition: background-color 0.25s linear;
}

.btn-attention-large:hover,
.btn-attention-large:visited {
  color: #FFF;
  text-decoration: none;
}

.btn-attention-large:focus,
.btn-attention-large:active {
  color: #FFF;
  box-shadow: inset 0 0.1rem 0.3rem 0 rgba(0, 0, 0, 0.5);
}

.btn-attention-large:hover {
  background: #910021;
}

.btn-attention-large:active,
.btn-attention-large:focus {
  background: #910021;
}

/* デスクトップ：最大360pxボタン 色付き */
.btn-attention-block-large {
  width: 100%;
  background: #C41134;
  color: #FFF;
  font-weight: bold;
  line-height: 1.3;
  border: 0;
  display: inline-block;
  padding: 1.5rem 2rem;
  text-align: center;
  border-radius: 0.5rem;
  font-size: 2rem;
  box-sizing: border-box;
  transition: background-color 0.25s linear;
}

.btn-attention-block-large:hover,
.btn-attention-block-large:visited {
  color: #FFF;
  text-decoration: none;
}

.btn-attention-block-large:focus,
.btn-attention-block-large:active {
  color: #FFF;
  box-shadow: inset 0 0.1rem 0.3rem 0 rgba(0, 0, 0, 0.5);
}

.btn-attention-block-large:hover {
  background: #910021;
}

.btn-attention-block-large:active,
.btn-attention-block-large:focus {
  background: #910021;
}

@media (min-width: 897px) {
  .btn-block-large {
    max-width: 36rem;
  }
  .btn-attention-block-large {
    max-width: 36rem;
  }
}
.contact-box .message-group {
  margin: 0 0 3.5rem;
}

.contact-box .message-text {
  color: #c41134;
  font-weight: 700;
}

.contact-box .contact-no {
  margin: 0;
  color: #333;
  font-weight: 700;
  font-size: 3rem;
}

.contact-box .contact-no a {
  color: inherit;
}

.contact-box .error-text {
  margin: 0.5rem 0 0;
  color: #c41134;
}

.contact-box p {
  line-height: 1.6;
}

.contact-form {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  margin: 0 0 2rem;
  padding: 0;
  list-style: none;
  background: #e5e5e5;
}

.contact-form-heading {
  margin: 4rem 0 1rem;
}

.contact-form-group {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  padding: 0;
  background: #e5e5e5;
  border-bottom: 0.1rem solid #fff;
}

.contact-form-group fieldset {
  display: contents;
  border: 0;
}

.contact-form-label {
  margin: 0;
  padding: 1rem 1rem 0;
  font-weight: 700;
  text-align: left;
}

.contact-form-control, .contact-form-label {
  display: block;
  width: 100%;
  box-sizing: border-box;
}

.contact-form-control {
  padding: 1rem;
}

.contact-form-grid {
  margin: 0 -0.5rem;
}

.acms-entry .contact-form-col,
.contact-form-col {
  margin: 0 0 1rem;
  padding: 0 0.5rem;
}

.acms-entry .contact-form-col:last-child,
.contact-form-col:last-child {
  margin: 0;
}

@media screen and (min-width: 897px) {
  .contact-form {
    width: 100%;
  }
  .contact-form-label {
    padding: 1.5rem 1.5rem 0.5rem;
    vertical-align: top;
  }
  .contact-form-control {
    padding: 0.5rem 1.5rem 1.5rem;
  }
  .contact-form-col {
    margin: 0;
  }
}
.contact-box .mail-step {
  margin: 0 0 2.5rem;
  padding: 0 1rem;
  background: #e5e5e5;
  counter-reset: a;
}

.contact-box .mail-step .mail-step-item {
  display: flex;
  align-items: center;
  float: left;
  margin: 0 0.5rem;
  padding: 1.4rem 0 1rem;
  color: #999;
  font-weight: 700;
  list-style: none;
  border-bottom: 0.4rem solid transparent;
  font-size: 1.4rem;
}

.contact-box .mail-step .mail-step-item:before {
  content: counter(a) ".";
  counter-increment: a;
  position: static;
  display: inline-block;
  margin-right: 0.4rem;
  margin-left: 0;
  top: auto;
  left: auto;
}

.contact-box .mail-step .mail-step-item-current {
  color: #333;
  border-bottom: 0.4rem solid #333;
}

.contact-box .mail-step .mail-step-item-current:before {
  color: #333;
}

.entry-column .contact-form,
.entry-column .contact-form li {
  padding-left: 0;
  list-style: none;
}

.entry-column .contact-form li::before {
  content: none;
  display: none;
}

@media screen and (min-width: 897px) {
  .contact-box .mail-step-item {
    margin: 0 1rem;
    padding: 1.8rem 0 1.4rem;
    font-size: 1.6rem;
  }
}
.form-btn-box {
  margin: 0 1rem 5rem;
  text-align: center;
}

.form-btn {
  display: inline-block;
}

@media screen and (min-width: 897px) {
  .form-btn-send {
    width: 100%;
    max-width: 36rem;
  }
}
.label-required {
  margin: 0 0.5rem;
  padding: 0.2rem 0.8rem;
  color: #fff;
  background: #F39353;
  border-radius: 0.3rem;
  font-size: 1.2rem;
}

@media screen and (min-width: 897px) {
  .label-required {
    margin: 0 1rem;
  }
}
.contact-box select[required]:required {
  border: 0.1rem solid #c49511;
}

.contact-box select.focused:invalid {
  border: 0.1rem solid #c41134;
}

.contact-box select[required]:valid {
  border: 0.1rem solid #a7a7aa;
}

.contact-box input[required]:required,
.contact-box textarea[required]:required {
  background: #fffdeb;
}

.contact-box input.focused:invalid,
.contact-box textarea.focused:invalid {
  background: #ffebee;
}

.contact-box input[required]:valid,
.contact-box textarea[required]:valid {
  background: #fff;
}

.contact-box input[type=date],
.contact-box input[type=datetime-local],
.contact-box input[type=datetime],
.contact-box input[type=email],
.contact-box input[type=month],
.contact-box input[type=number],
.contact-box input[type=password],
.contact-box input[type=search],
.contact-box input[type=tel],
.contact-box input[type=text],
.contact-box input[type=time],
.contact-box input[type=url],
.contact-box input[type=week] {
  font-size: 1.6rem;
  box-sizing: border-box;
  padding: 0 0.5rem;
}

.contact-box textarea {
  font-size: 1.6rem;
  padding: 0.5rem 0.5rem 0.4rem;
}

.contact-box select {
  background-color: #f7f7f7;
  min-height: 3rem;
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
  font-size: 1.6rem;
  vertical-align: top;
}

@media screen and (min-width: 897px) {
  .contact-box input[type=date],
  .contact-box input[type=datetime-local],
  .contact-box input[type=datetime],
  .contact-box input[type=email],
  .contact-box input[type=month],
  .contact-box input[type=number],
  .contact-box input[type=password],
  .contact-box input[type=search],
  .contact-box input[type=tel],
  .contact-box input[type=text],
  .contact-box input[type=time],
  .contact-box input[type=url],
  .contact-box input[type=week],
  .contact-box textarea {
    padding: 0.5rem 0.8rem;
  }
  .contact-box select {
    padding-left: 0.8rem;
    min-height: 4rem;
  }
}
.valid-mark {
  display: none;
}

.valid-mark.valid {
  display: inline;
  float: right;
  color: #5cb85c;
}

.invalid {
  background-color: #ffebee !important;
}

/* 以下、調整用 */
.contact-box {
  width: 100%;
  max-width: 120rem;
  margin: 0 auto;
}

.contact-box .tel-box {
  width: 68rem;
  margin: 0 auto 4rem;
  border: 0.1rem solid #000;
  text-align: center;
}

.contact-box .tel-box a {
  padding: 3rem 0;
  display: block;
}

.contact-box .tel-box a:hover {
  text-decoration: none;
}

.contact-box .tel-box h2 {
  margin-bottom: 0;
}

.entry-column .contact-box ul li {
  background: none;
  padding: 0;
}

.contact-box .contact-no {
  font-size: 4rem;
}

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

.contact-form, .contact-form-group {
  background: none;
}

.contact-form-group {
  display: flex;
  justify-content: flex-start;
  align-items: stretch;
  font-size: 1.6rem;
}

.contact-form-label {
  border-bottom: 0.1rem solid #ccc;
  font-size: 1.6rem;
  width: 33.3333333333%;
  padding: 1rem;
}

.contact-form-control {
  border-bottom: 0.1rem solid #ccc;
  font-size: 1.6rem;
  width: 66.6666666667%;
  padding: 1rem;
}

.contact-box input[type=date], .contact-box input[type=datetime-local], .contact-box input[type=datetime], .contact-box input[type=email], .contact-box input[type=month], .contact-box input[type=number], .contact-box input[type=password], .contact-box input[type=search], .contact-box input[type=tel], .contact-box input[type=text], .contact-box input[type=time], .contact-box input[type=url], .contact-box input[type=week] {
  padding: 0.5rem;
}

.contact-box select {
  min-height: 4rem;
}

.contact-box .acms-admin-form-radio {
  display: block;
  margin-bottom: 1rem;
}

.contact-box .radio-sub {
  display: inline-block;
  padding-left: 2.5rem;
  margin-bottom: 1rem;
}

.form-btn-box {
  margin: 2rem 1rem;
}

.contact-box .btn-attention-block-large {
  position: relative;
  display: block;
  width: 100%;
  padding: 2.5rem 5rem;
  border: 0.2rem solid #000;
  color: #000;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  background: #FFF;
  transition: all 0.25s ease;
  border-radius: 0;
  margin: auto;
}

.contact-box .btn-attention-block-large:active, .contact-box .btn-attention-block-large:focus, .contact-box .btn-attention-block-large:hover {
  opacity: 0.8;
}

.contact-box .btn-large {
  padding: 2.5rem 3rem;
  border-radius: 0;
  border: 0.2rem solid #666;
}

input, select {
  font-family: "游ゴシック", "Yu Gothic", "游ゴシック体", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", Arial, Helvetica, Verdana, sans-serif;
  font-weight: 500;
}

.contact-box .message-back-link a {
  color: #222;
}

.label-any {
  margin: 0 1rem;
  padding: 0.2rem 0.8rem;
  color: #fff;
  background: #666;
  border-radius: 0.3rem;
  font-size: 1.2rem;
  float: right;
}

.label-required {
  float: right;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
  .contact-box .tel-box {
    width: 94%;
  }
  .contact-box .contact-no {
    font-size: 2.8rem;
  }
  .contact-box .fax {
    font-size: 2rem;
  }
  .contact-form-control, .contact-form-label {
    display: block;
    width: 100%;
  }
  .label-any {
    margin: 0 0.5rem;
  }
}
/* reCAPTCHA */
.grecaptcha-badge {
  bottom: 8rem !important;
}

/* ------------------------------
　　print
------------------------------ */
@page {
  size: A4;
  margin: 5mm;
}
@media print {
  body {
    width: 100rem;
    font-size: 1.6rem;
  }
}

/* ---------------------------------------------------
  トップ：左ヘッダー + メインビジュアル
------------------------------------------------------ */
#header {
  float: left;
  position: relative;
  width: 36rem;
  background: #fff;
  z-index: 1000;
  font-family: "Zen Kaku Gothic New", sans-serif;
}

#header .content-wrap {
  height: auto;
  aspect-ratio: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 6rem 0 4rem 12rem;
  background: #fcfcfc;
}

#header .content-wrap .logo {
  width: 20rem;
  aspect-ratio: 200 / 170;
  margin: 0 0 4.6rem;
}

#header .content-wrap .logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#header .content-wrap .head-contents {
  width: 100%;
}

#header .content-wrap .seo-description {
  display: none;
}

#header .content-wrap .sp-scroll {
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  background: transparent;
}

#header .content-wrap .gnavi > ul {
  display: block;
}

#header .content-wrap .gnavi > ul li {
  margin: 0 0 1.6rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.2rem;
  padding-top: 1rem;
  font-family: Roboto;
}

#header .content-wrap .gnavi > ul li a {
  display: block;
  color: #103A44;
}

#header .content-wrap .tel-info {
  margin: 2.5rem 0 2.2rem;
  text-align: left;
}

#header .content-wrap .tel-info p {
  color: #103A44;
  font-size: 2.85rem;
  line-height: 1;
  font-weight: 700;
  margin-bottom: 0.6rem;
  font-family: "Roboto";
}

#header .content-wrap .tel-info small {
  font-size: 1.35rem;
  line-height: 1.4;
  color: #103A44;
  font-family: "Noto Sans JP";
  font-weight: 500;
}

#header .content-wrap .mail-btn {
  width: 24rem;
  height: 6rem;
  margin: 0;
}

#header .content-wrap .mail-btn a {
  width: 100%;
  height: 100%;
  min-height: 6rem;
  padding: 0;
  border-radius: 99.9rem;
  background: #48A99E;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 700;
}

#header .content-wrap .mail-btn a::before {
  width: 2.3111rem;
  height: 1.6rem;
  margin: 0 0.8rem 0 0;
}

.follow-content {
  display: none;
}

/* 中身もKVの高さに合わせる */
.top-main-visual .slick-list,
.top-main-visual .slick-track,
.top-main-visual .slick-slide,
.top-main-visual .slick-slide > div,
.top-main-visual__item,
.top-main-visual .main-slider-image,
.top-main-visual .main-slider-image a {
	height: 100% !important;
}

.js-slider,
.slick-slider {
  padding: 0;
}

.main-slider-image a {
  display: block;
  width: 100%;
  height: 100%;
}

.main-slider-text-outer,
.main-slider-text-wrap,
.main-slider-text-inner {
  height: 100%;
}

.main-slider-text-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* float解除 */
#container::after {
  content: "";
  display: block;
  clear: both;
}

/* ---------------------------------------------------
	トップ：快眠にいがたについて
------------------------------------------------------ */
.top-about {
	clear: both;
	position: relative;
	width: 100%;
	margin: 0;
	padding: 16.7rem 0 15.7rem;
	background: #fcfcfc;
	overflow: visible;
}

/* 背景装飾は一旦非表示 */
.top-about::before {
	display: none;
}

.top-about-inner {
	position: relative;
	z-index: 2;
	display: flex;
	justify-content: space-around;
	align-items: flex-start;
	width: 100%;
	max-width: 120rem;
	margin: 0 auto;
	padding: 0;
	gap: 0;
}

.top-about-lead {
	flex: 0 0 45rem;
	max-width: 45rem;
	padding-top: 0;
	font-family: "Zen Kaku Gothic New";
}

.top-about-lead p {
	margin-bottom: 2.8rem;
	color: #103A44;
	font-size: 3rem;
	font-weight: 700;
	line-height: 2.9;
	letter-spacing: 0.15rem;
	font-feature-settings: "palt";
	white-space: normal;
}

.top-about-lead p:last-child {
	margin-bottom: 0;
}

.top-about-lead span {
	color: #48A99E;
}

.top-about-txt {
	flex: 0 0 62.5rem;
	max-width: 62.5rem;
}

.top-about-txt p {
	margin-bottom: 2rem;
	color: #103A44;
	font-size: 2rem;
	font-weight: 500;
	line-height: 3;
	letter-spacing: 0.03em;
	font-feature-settings: "palt";
}

.top-about-txt .top-about-btn {
	margin-top: 4.2rem;
	margin-bottom: 0;
}

.top-about-btn a {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 36.5rem;
	height: 6rem;
	border-radius: 99.9rem;
	background: #48A99E;
	color: #fff;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
}

.top-about-btn a:hover {
	opacity: .8;
}

.btn-teal {
	position: relative;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 36.5rem;
	height: 6rem;
	padding: 0 4.6rem 0 2.8rem;
	border-radius: 99.9rem;
	background: #48A99E;
	color: #fff !important;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	letter-spacing: 0.03em;
	transition: background 0.25s ease, opacity 0.25s ease;
  margin-top: 6rem;
}

.btn-teal::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 2.9rem;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: #fff;
	transform: translateY(-50%);
	transition: right 0.25s ease, background 0.25s ease;
}

.btn-teal::before {
	content: "";
	position: absolute;
	top: 50%;
	right: 3.6rem;
	z-index: 1;
	width: 0.6rem;
	height: 0.6rem;
	border-top: 0.2rem solid #48A99E;
	border-right: 0.2rem solid #48A99E;
	transform: translateY(-50%) rotate(45deg);
	transition: right 0.25s ease, border-color 0.25s ease;
}

.btn-teal:hover {
	background: #48A99E;
	opacity: 1;
}

.btn-teal:hover::after {
	right: 2.2rem;
}

.btn-teal:hover::before {
	right: 2.9rem;
	border-color: #48A99E;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-about {
		padding: 6rem 2rem;
	}

	.top-about-inner {
		display: block;
		max-width: 100%;
	}

	.top-about-lead {
		max-width: 100%;
		margin-bottom: 3rem;
	}

	.top-about-lead p {
		margin-bottom: 1.4rem;
		font-size: 2.2rem;
		line-height: 2;
		letter-spacing: 0.3em;
	}

	.top-about-txt {
		max-width: 100%;
	}

	.top-about-txt p {
		margin-bottom: 1.2rem;
		font-size: 1.5rem;
		line-height: 1.8;
	}

		.top-about-txt .btn-teal,
	.top-about-txt .top-about-btn {
		margin-top: 4rem;
		max-width: 100%;
	}

	.btn-teal {
		width: 100%;
		max-width: 32rem;
		height: 5.2rem;
		padding: 0 4.2rem 0 2.4rem;
		font-size: 1.6rem;
	}

		.btn-teal::after {
		right: 2.6rem;
		width: 2.4rem;
		height: 2.4rem;
	}

	.btn-teal::before {
		right: 3.55rem;
		width: 0.5rem;
		height: 0.5rem;
	}

	.btn-teal:hover::after {
		right: 2.1rem;
	}

	.btn-teal:hover::before {
		right: 3.05rem;
	}
}
/* ---------------------------------------------------
	トップ：写真ループ
------------------------------------------------------ */
.top-photo-loop {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	overflow: hidden;
	padding: 0 0 10rem;
	background: #fff;
}

.top-photo-loop__track {
	display: flex;
	width: max-content;
	animation: photoLoop 45s linear infinite;
}

.top-photo-loop__list {
	display: flex;
	align-items: center;
	gap: 3rem;
	padding-right: 3rem;
}

.top-photo-loop__item {
	flex: 0 0 auto;
	width: 40rem;
	height: 30rem;
	border-radius: 1rem;
	overflow: hidden;
}

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

@keyframes photoLoop {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-photo-loop {
		padding: 0 0 6rem;
	}

	.top-photo-loop__list {
		gap: 1.2rem;
		padding-right: 1.2rem;
	}

	.top-photo-loop__item {
		width: 24rem;
		height: 18rem;
		border-radius: 0.8rem;
	}
}

/* ---------------------------------------------------
	トップ：ダイジェストムービー
------------------------------------------------------ */
.top-movie {
	position: relative;
	width: 100%;
	margin: 0;
	padding: 7rem 0 8rem;
	background: url("../images/top/movie-bg.png") no-repeat center center;
	background-size: cover;
	text-align: center;
}

.top-movie-inner {
	width: 100%;
	max-width: 104rem;
	margin: 0 auto;
}

.top-movie-ribbon {
	position: relative;
	z-index: 5;
	width: 41.8689rem;
	aspect-ratio: 418.69 / 75.51;
	margin: 0 auto 1.449rem;
	line-height: 1;
}

.top-movie-ribbon img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.top-movie-title {
	position: relative;
	z-index: 5;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	margin: 0 0 3.6rem;
	color: #103A44;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 3.6rem;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0.05em;
	white-space: nowrap;
	gap: 2.8rem;
}

.top-movie-title::before,
.top-movie-title::after {
	content: "";
	display: block;
	width: 16rem;
	height: 0.2rem;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 16rem 0.2rem;
	background-image: url("data:image/svg+xml,%3Csvg width='160' height='2' viewBox='0 0 160 2' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='0' y1='1' x2='160' y2='1' stroke='%23103A44' stroke-width='2' stroke-linecap='round' stroke-dasharray='6 8' stroke-dashoffset='3'/%3E%3C/svg%3E");
	opacity: .65;
}

.top-movie-title::before,
.top-movie-title::after {
	content: none;
	display: none;
}

.top-movie-title::before {
	margin-right: 2.8rem;
}

.top-movie-title::after {
	margin-left: 2.8rem;
}

.top-movie-thumb {
	position: relative;
	z-index: 5; /* 動画は一番手前 */
	width: 104rem;
	height: 58.5rem;
	max-width: 100%;
	border-radius: 2rem;
	overflow: hidden;
	box-shadow: 0 0 2rem 0 rgba(0, 0, 0, 0.05);
	flex-shrink: 0;
	aspect-ratio: 16 / 9;
}

.top-movie-thumb::before {
	content: "";
	position: absolute;
	inset: 0;
	background: #103A44;
	opacity: 0.3;
	z-index: 1;
	pointer-events: none;
}

.top-movie-thumb a {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
}

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

.top-movie-thumb a::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50.25%;
	z-index: 2;
	width: 7rem;
	height: 7rem;
	border: 0.3rem solid #fff;
	border-radius: 50%;
	background: rgba(255, 255, 255, .18);
	transform: translate(-50%, -50%);
}

.top-movie-thumb a::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 3;
	width: 0;
	height: 0;
	border-top: 1.5rem solid transparent;
	border-bottom: 1.5rem solid transparent;
	border-left: 2.7rem solid #fff;
	transform: translate(-20%, -50%);
}

.top-movie-frame {
	position: relative;
	width: 110rem;
	max-width: 100%;
	height: 64.5rem;
	margin: 0 auto;
	padding: 3rem;
	box-sizing: border-box;
	/* border と background はここから削除し、::after に移動 */
	display: flex;
	align-items: center;
	justify-content: center;
}

/* 枠のボーダー・背景だけを担当する別レイヤー */
.top-movie-frame::after {
	content: "";
	position: absolute;
	inset: 0;
	border: 0.4rem dashed #48A99E;
	border-radius: 4rem;
	background: rgba(255, 255, 255, 0.35);
	pointer-events: none;
	z-index: 3;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-movie-frame {
		width: 100% !important;
		height: auto !important;
		display: block !important;
		padding: 1rem !important;
		border-radius: 1.5rem !important; /* 動画側と統一 */
	}

	.top-movie-frame::after {
		border-width: 0.2rem !important;
		border-style: dashed !important;
		border-radius: 1.5rem !important;
	}

	.top-movie-thumb {
		border-radius: 1.5rem;
	}
}

/* ← ここに新しいCSSを追加 */
.top-movie-deco {
	position: absolute;
	z-index: 1; /* 枠のボーダーより下 */
	pointer-events: none;
	background-repeat: no-repeat;
	background-size: contain;
}

.top-movie-deco--01 {
	top: -44.96%;
	left: -26.25%;
	width: 48.35%;
	aspect-ratio: 1 / 1;
	transform: rotate(11.71deg);
	background-image: url("../images/top/deco-dots-01.png");
}

.top-movie-deco--02 {
	bottom: -40.38%;
	right: -23.98%;
	width: 30%;
	aspect-ratio: 1 / 1;
	transform: rotate(11.71deg);
	background-image: url("../images/top/deco-dots-02.png");
}

.top-movie-inner {
	position: relative;
	z-index: 2;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-movie-deco {
		display: block;
		z-index: 0;
	}

	.top-movie-deco--01 {
		top: -100%;
		left: -20%;
		width: 90%;
		aspect-ratio: 1 / 1;
		transform: rotate(11.71deg);
		background-image: url("../images/top/deco-dots-01-sp.png");
	}

	.top-movie-deco--02 {
		bottom: -45%;
		right: -40%;
		width: 60%;
		aspect-ratio: 1 / 1;
		transform: rotate(11.71deg);
		background-image: url("../images/top/deco-dots-02-sp.png");
	}
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-movie {
		padding: 5rem 2rem 6rem;
	}

	.top-movie-inner {
		width: 100%;
		max-width: 100%;
		margin: 0 auto;
	}

	.top-movie-ribbon {
		width: min(30rem, 80%);
		margin: 0 auto 1.6rem;
	}

			.top-movie-title {
		display: flex;
		width: 100%;
		margin: 0 auto 2.2rem;
		font-size: 2.2rem;
		line-height: 1.6;
		letter-spacing: 0.09rem;
		gap: 1.6rem;
		white-space: nowrap;
	}

	.top-movie-title::before,
	.top-movie-title::after {
		flex: 1;
		width: auto;
		max-width: 7rem;
		height: 0.2rem;
		background-size: 100% 0.2rem;
	}

	.top-movie-thumb {
		width: 100%;
		height: auto;
		aspect-ratio: 1040 / 585;  /* PCと同じ比率に戻す */
		border-radius: 1.5rem;
	}

	.top-movie-thumb img {
		object-fit: cover;
		object-position: center 20%;  /* 上寄りに調整 */
	}

	.top-movie-thumb a::before {
		width: 5.4rem;
		height: 5.4rem;
		border-width: 0.3rem;
	}

	.top-movie-thumb a::after {
		border-top: 1rem solid transparent;
		border-bottom: 1rem solid transparent;
		border-left: 1.6rem solid #fff;
	}
}

/* ---------------------------------------------------
	トップ：サービス
------------------------------------------------------ */

.top-service-inner {
	width: calc(100% - 8rem);
	max-width: 168rem;
	margin: 0 auto;
}

.top-service-head {
	margin-bottom: 10.3rem;
	text-align: center;
	padding-top: 5rem;
}

.top-service-en {
	margin-bottom: 0.8rem;
	color: #48A99E;
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 4.6rem;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.05em;
}

.top-service-en-dash {
	display: block;
	width: 2.8rem;
	margin: 1.2rem auto 0;
	line-height: 1;
}

.top-service-en-dash img {
	display: block;
	width: 100%;
	height: auto;
}

.top-service-title {
	margin: 0;
	margin-top: 1.2rem;
	color: #103A44;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.1rem;
}

.top-service-list {
	display: flex;
	flex-direction: column;
	gap: 10rem;
}

.top-service-item {
	position: relative;
	width: 100%;
	min-height: 71.2rem;
}

.top-service-item.is-reverse {
	justify-content: flex-start;
}

.top-service-image {
	width: 130rem;
	max-width: 77.38%;
	aspect-ratio: 1300 / 712;
	margin-left: auto;
	border-radius: 0.8rem;
	overflow: hidden;
}

.top-service-item.is-reverse .top-service-image {
	margin-left: 0;
	margin-right: auto;
}

.top-service-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 2rem;
}

.top-service-box {
	position: absolute;
	top: 50%;
	left: 0;
	z-index: 2;
	transform: translateY(-50%);
	width: 56rem;
	padding: 9.1rem 8.5rem 8.1rem 8rem;
	border-radius: 2rem;
	background: #FCFCFC;
	box-shadow: 0 0 2rem 0 rgba(0, 0, 0, 0.05);

	display: grid;
	grid-template-columns: 6.4rem 1fr;
	grid-template-rows: auto auto auto auto;
	column-gap: 2.2rem;
	align-content: start;
}

.top-service-item.is-reverse .top-service-box {
	left: auto;
	right: 0;
}

.top-service-icon {
	grid-column: 1;
	grid-row: 1 / span 2;
	width: 6.4rem;
	margin: 0;
	line-height: 1;
	align-self: center;
}

.top-service-icon img {
	display: block;
	width: 100%;
	height: auto;
}

.top-service-box h3 {
	grid-column: 2;
	grid-row: 1;
	margin: 0 0 0.8rem;
	color: #103A44;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.02em;
}

.top-service-sub {
	grid-column: 2;
	grid-row: 2;
	margin: 0;
	color: #F39353;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.15rem;
	font-family: Roboto;
}

.top-service-txt {
	grid-column: 1 / -1;
	grid-row: 3;
	margin: 3.5rem 0 0;
	color: #103A44;
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 4.32rem;
	letter-spacing: 0.03em;
}

.btn-teal-sm {
	grid-column: 1 / -1;
	grid-row: 4;
	align-self: end;
	justify-self: start;
	margin-top: 3.6rem;   /* 0 → 3.6rem（デザインのテキスト〜ボタン間の値） */
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 6rem;
	padding: 1.9rem 9rem;
	border-radius: 99.9rem;
	background: #48A99E;
	color: #fff !important;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.05rem;
	text-align: center;
}

.btn-teal-sm::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 3rem;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background:  url("../images/top/icon-arrow.png") no-repeat center center;
	background-size: 2rem auto;
	transform: translateY(-50%);
	transition: transform .3s ease;
}

.btn-teal-sm:hover::after {
	transform: translateY(-50%) translateX(0.7rem);  /* 0.8rem → 0.7rem */
}

.btn-teal-sm:hover {
	opacity: 1;
}

.top-service-mark {
	display: none;
}

.top-service-mark img {
	display: block;
	width: 100%;
	height: auto;
}

/* ---------------------------------------------------
	トップ：サービス  small PC調整
------------------------------------------------------ */
@media screen and (min-width: 897px) and (max-width: 1679px) {
	.top-service-item {
		min-height: auto;
	}

	.top-service-image {
		width: calc(100% - 38rem);
		max-width: 130rem;
		margin-left: auto;
	}

	.top-service-item.is-reverse .top-service-image {
		margin-left: 0;
		margin-right: auto;
	}

	.top-service-box,
	.top-service-item.is-reverse .top-service-box {
		top: 50%;
		transform: translateY(-50%);
		width: 52rem;
		height: auto;
		padding: 7rem 7rem 8.1rem 7rem;
	}

	.top-service-box {
		left: 0;
		right: auto;
		grid-template-columns: 6rem 1fr;
	}

	.top-service-item.is-reverse .top-service-box {
		left: auto;
		right: 0;
	}

	.top-service-icon {
		width: 6rem;
	}

	.top-service-box h3 {
		font-size: 3rem;
	}

	.top-service-txt {
		margin-top: 0rem;
		font-size: 1.7rem;
		line-height: 2;
	}

	.btn-teal-sm {
		margin-top: 3rem;
	}
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-service {
		width: 100%;
		margin-left: 0;
		margin-right: 0;
		padding: 7rem 2rem 8rem;
	}

	.top-service-inner {
		width: 100%;
		max-width: 100%;
		margin: 0 auto;
	}

	.top-service-head {
		margin-bottom: 3.6rem;
	}

	.top-service-mark {
		display: none;
	}

	.top-service-en {
		font-size: 3.2rem;
		font-weight: 700;
	}

	.top-service-en-dash {
	width: 2rem;        /* 8% → 2rem */
	margin: 0.8rem auto 0;
}

	.top-service-title {
		font-size: 1.6rem;
		font-weight: 500;
		letter-spacing: 0.05rem;
	}

	.top-service-list {
		gap: 4.8rem;
	}

	.top-service-item,
	.top-service-item.is-reverse {
		display: block;
		min-height: auto;
	}

	.top-service-image,
	.top-service-item.is-reverse .top-service-image {
		width: 100%;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
		aspect-ratio: 1300 / 712;
		border-radius: 0rem;
	}

	.top-service-box,
.top-service-item.is-reverse .top-service-box {
	position: relative;
	top: 0rem;
	left: auto;
	right: auto;
	transform: none;
	width: calc(100% - 2.4rem);
	height: auto;
	margin: -2rem auto 0;
	padding: 4.25rem 3rem 3rem;
	border-radius: 0.8rem;

	display: grid;
	grid-template-columns: 4.8rem 1fr;
	grid-template-rows: auto auto auto auto;
	column-gap: 1.4rem;
	align-content: start;
}

	.top-service-icon {
		grid-column: 1;
		grid-row: 1 / span 2;
		width: 4.8rem;
		margin: 0;
		align-self: center;
	}

	.top-service-box h3 {
		grid-column: 2;
		grid-row: 1;
		margin: 0 0 0.6rem;
		font-size: 2.2rem;
		line-height: 1.6;
		letter-spacing: 0.04rem;
	}

	.top-service-sub {
		grid-column: 2;
		grid-row: 2;
		font-size: 1rem;
		letter-spacing: 0.1rem;
	}

	.top-service-txt {
	grid-column: 1 / -1;
	grid-row: 3;
	margin: 2.8rem 0 2.5rem;
	font-weight: 400;
	font-size: 1.4rem;
	line-height: 2;
	letter-spacing: 0.03em;
}

	.btn-teal-sm {
	grid-column: 1 / -1;
	grid-row: 4;
	width: 100%;              /* ← SPは100%幅なのでそのままでOK */
	height: 6rem;
	margin-top: 0rem;
	padding: 0 5.4rem;
	font-size: 1.6rem;
	align-self: end;
	justify-self: start;
}

.btn-teal-sm::after {
	right: 3.2rem;
	width: 1.8rem;
	height: 1.8rem;
}

.btn-teal-sm::before {
	right: 3.1rem;
	width: 0.6rem;
	height: 0.6rem;
}

.top-service-item:nth-child(2) .btn-teal-sm {
    margin-top: 0.5rem;
}

	.top-service-item:nth-child(1) .btn-teal-sm {
	margin-top: 0.5rem;
}
}

@media screen and (max-width: 420px) {
	.top-service {
		padding: 6rem 1.6rem 7rem;
	}

	.top-service-title {
		font-size: 1.8rem;
		font-weight: 700;
		letter-spacing: 0.05em;
	}

	.top-service-box,
	.top-service-item.is-reverse .top-service-box {
		width: calc(100% - 3rem);
		padding: 4rem 3rem 3rem;
		grid-template-columns: 4.4rem 1fr;
		column-gap: 1.2rem;
	}

	.top-service-icon {
		width: 4.4rem;
	}

	.top-service-box h3 {
		font-size: 2rem;
	}

	.top-service-txt {
		font-size: 1.4rem;
		line-height: 1.9;
	}

	.btn-teal-sm {
		height: 6rem;
		font-size: 1.6rem;
		margin: auto;
		letter-spacing: 0.05em;
		font-weight: 500;
	}
}

/* ---------------------------------------------------
	トップ：おすすめ
------------------------------------------------------ */
.top-recommend {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 14.9rem 0 24.8rem;
	background-image: url("../images/top/bg-recommend.png");
	background-repeat: no-repeat;
	background-position: top center;
	background-size: cover;
}

.top-recommend-inner {
	width: calc(100% - 8rem);
	max-width: 168rem;
	min-height: 82.8rem;
	margin: 0 auto;
	border-radius: 2.4rem;
	/*background: #FCEDE9;*/
}

.top-recommend-title {
	position: relative;
	margin: 0 0 7.34rem;
	color: #103A44;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 2.06;
	text-align: center;
	letter-spacing: 0.1em;
}

/* 追加:アイコン */
.top-recommend-mark {
	display: block;
	width: 7.6rem;
	height: 2.7247rem;
	aspect-ratio: 76.00 / 27.25;
	margin: 0 auto 1.6rem;
	line-height: 1;
}

.top-recommend-mark img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-recommend-title::after {
		content: none;
		display: none;
	}

	.top-recommend-mark {
		width: 5.7rem;   /* 76px の75%程度 */
		height: 2.044rem;
		margin: 0 auto 1.2rem;
	}
}

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

.top-recommend-box {
		width: calc(100% - 8rem);
	}

.top-recommend-card a {
	position: relative;
	display: block;
	color: #103A44;
}

.top-recommend-card a:hover {
	opacity: 1;
}

/* ホバー：矢印アイコンを右へ動かす */
.top-recommend-card a:hover .top-recommend-box::before,
.top-recommend-card a:hover .top-recommend-box::after {
	translate: 0.7rem 0;
}

.top-recommend-image {
	position: relative;
	aspect-ratio: 400 / 219;
	border-radius: 2rem;
	overflow: hidden;
}

.top-recommend-image img {
	display: block;
	width: 100%;
	object-fit: contain;
}

.top-recommend-copy {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	width: 100%;
	margin: 0;
	color: #ED2626;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.55;
	text-align: center;
	letter-spacing: 0.06rem;
	transform: translate(-50%, -50%);
	text-shadow:
		0.1rem 0.1rem 0 #fff,
		-0.1rem 0.1rem 0 #fff,
		0.1rem -0.1rem 0 #fff,
		-0.1rem -0.1rem 0 #fff;
}

.top-recommend-box {
	position: relative;
    width: calc(100% - 14rem);
    margin: -7.4rem auto 0;
    padding: 4rem 3rem 4rem 4rem;
    border-radius: 2rem;
    background: #FDFDFD;
    box-shadow: 0 0 2rem 0 rgba(0, 0, 0, 0.05);
}

.top-recommend-heading {
	display: grid;
	grid-template-columns: 4.8rem 1fr;
	column-gap: 1.6rem;
	align-items: center;
	margin-bottom: 2rem;
}

.top-recommend-icon {
	width: 4.8rem;
	margin: 0;
	line-height: 1;
}

.top-recommend-icon img {
	display: block;
	width: 100%;
	height: auto;
}

.top-recommend-heading h3 {
	color: #103A44;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.1em;
}

.top-recommend-heading p {
	margin: 0;
	color: #F39353;
	font-family: Roboto, sans-serif;
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.01em;
}

.top-recommend-text {
	margin: 0;
	color: #103A44;
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.05rem;
}

.top-recommend-box::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 2.8rem;
	width: 2rem;
	height: 2rem;
	border: 0.2rem solid #103A44;
	border-radius: 50%;
	transform: translateY(-50%);
	transition: translate 0.25s ease;
}

.top-recommend-box::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 3.7rem;
    z-index: 1;
    width: 0.7rem;
    height: 0.7rem;
    border-top: 0.2rem solid #103A44;
    border-right: 0.2rem solid #103A44;
    transform: translateY(-50%) rotate(45deg);
    transition: translate 0.25s ease;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-recommend {
		width: 100%;
		margin-left: 0;
		margin-right: 0;
		padding: 9rem 0 6rem;
	}

	.top-recommend-inner {
		position: relative;
		width: 100%;
		max-width: 100%;
		padding: 0 1.474rem 2.5rem;
		background: transparent;
		border-radius: 0;
	}

	.top-recommend-inner::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 12.5rem;
		bottom: 0;
		border-radius: 1rem;
		z-index: 0;
	}

	.top-recommend-title,
	.top-recommend-list {
		position: relative;
		z-index: 1;
	}

	.top-recommend-title {
		margin: 0 0 3.098rem;
		font-size: 2.4rem;
		line-height: 1.5;
		letter-spacing: 0.1rem;
	}

	.top-recommend-title::after {
		width: 19.5rem;
        margin-top: 1rem;
        background-size: 19.5rem 0.4rem;
	}

	.top-recommend-list {
		display: block;
		
	}

	.top-recommend-card {
		margin-bottom: 4rem;
	}

	.top-recommend-card:last-child {
		margin-bottom: 0;
	}

	.top-recommend-image {
		width: 100%;
		border-radius: 0.5rem;
	}

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

	.top-recommend-copy {
		width: 90%;
		font-size: 1.3rem;
		line-height: 1.5;
		letter-spacing: 0.04rem;
		display: none;
	}

	.top-recommend-box {
		width: calc(100% - 2.052rem);
		margin: -1rem auto 0;
		padding: 2rem 1.69rem 2rem 2rem;
		border-radius: 0.8rem;
	}

	.top-recommend-heading {
		grid-template-columns: 4.2rem 1fr;
		column-gap: 1.313rem;
		margin-bottom: 1.425rem;
	}

	.top-recommend-icon {
		width: 4.2rem;
	}

	.top-recommend-heading h3 {
		margin-bottom: 0.5rem;
		font-size: 2.2rem;
		line-height: 1.6;
		letter-spacing: 0.04rem;
	}

	.top-recommend-heading p {
		font-size: 1.1376rem;
		letter-spacing: 0.1rem;
	}

	.top-recommend-text {
		font-size: 1.3rem;
		font-weight: 400;
		line-height: 1.8;
		letter-spacing: 0.03em;
		padding-right: 0.697rem;
	}

	.top-recommend-box::after {
		top: 4.5rem;
		transform: translateY(-50%);
	}

	.top-recommend-box::before {
		top: 4.5rem;
		right: 3.27rem;
		width: 0.5rem;
		height: 0.5rem;
		border-top-width: 0.18rem;
		border-right-width: 0.18rem;
		transform: translateY(-50%) rotate(45deg);
	}
}
@media screen and (max-width: 420px) {
	.top-recommend {
		padding: 9rem 0 6rem;
	}

	.top-recommend-inner {
		padding: 0 1.474rem 2.5rem;
		border-radius: 1.6rem;
		min-height: 25.5rem;
	}

	.top-recommend-title {
		font-size: 2.4rem;
	}

	.top-recommend-box {
    width: calc(100% - 2.052rem);
}

	.top-recommend-text {
		font-size: 1.6rem;
		line-height: 2;
		font-weight: 400;
		letter-spacing: 0.03em;
	}

	.top-recommend-copy {
		font-size: 1.2rem;
	}

	.top-recommend-box::after {
		right: 1.69rem;
		width: 1.8851rem;
		height: 1.8851rem;
		border-width: 0.18rem;
	}

	.top-recommend-box::before {
		right: 2.56rem;
		border-top-width: 0.18rem;
		border-right-width: 0.18rem;
	}

		.top-recommend-box::after,
	.top-recommend-box::before {
		top: 4.3rem;
	}
}

/* ---------------------------------------------------
	トップ：快眠にいがたの想い
------------------------------------------------------ */
.top-mission {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 16rem 0 12rem;   /* 24.8rem → 16rem */
	background: #48A99E;
	color: #fff;
}

.top-mission-inner {
	position: relative;
	width: calc(100% - 8rem);
	max-width: 168rem;
	margin: 0 auto;
}

.top-mission-head {
	margin-bottom: 8.8rem;
	text-align: center;
}

.top-mission-mark {
	display: none;
}

/* 破線アイコン用 */
.top-mission-en-dash {
	display: block;
	width: 3rem;
	height: 0.3rem;
	margin: 1rem auto;
	line-height: 1;
}

.top-mission-en-dash img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-mission-en-dash {
		width: 2rem;
		margin: 0.8rem auto 0;
	}
}

.top-mission-mark img {
	display: block;
	width: 100%;
	height: auto;
}

.top-mission-en {
	color: #fff;
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 4.6rem;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.05em;
	position: relative;
}

.top-mission-title {
	margin: 0;
	margin-top: 1rem;
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 2rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.1rem;
}

.top-mission-content {
	display: grid;
	grid-template-columns: 52.8rem 11.3rem 63.3rem 9.3rem 1fr;
	column-gap: 0;
	align-items: flex-start;
}

.top-mission-photo {
	grid-column: 1;
	width: 52.8rem;
	aspect-ratio: 528 / 640;
	border-radius: 2rem;
	overflow: hidden;
}

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

.top-mission-text {
	grid-column: 3;
	margin: 0;
	color: #fff;
}

.top-mission-text p {
	margin-bottom: 4.5rem;
	color: #fff;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 2.4;
	letter-spacing: 0.09rem;
  font-family: "Noto Sans JP";
}

.top-mission-text p:last-child {
	margin-bottom: 0;
}

.top-mission-name {
	margin-top: 11.8rem;
}

.top-mission-name span {
	display: block;
	margin-bottom: 1rem;
	font-size: 1.8rem;
	line-height: 1.6;
  opacity: 0.7;
  font-weight: 400;
}

.top-mission-name strong {
	display: block;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.1em;
}

.top-mission-person {
	grid-column: 5;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	min-height: auto;
}

.top-mission-person-img {
	width: 21.3rem;
	height: 21.3rem;
	margin: 0 auto 6.6rem;
	border-radius: 50%;
	overflow: hidden;
}

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

.top-mission-person-copy {
	position: relative;
	display: block;
	width: 21.3rem;
	margin: 0 auto;
	color: #fff;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 700;
	box-sizing: border-box;
}

.top-mission-person-copy p {
	margin: 0 6rem 0 0;
	width: calc(100% - 6rem);
	color: #fff;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 2.05;
	letter-spacing: 0.4rem;
	writing-mode: vertical-rl;
	text-orientation: upright;
	white-space: nowrap;
}

.top-mission-person-label {
	position: absolute;
	top: 0;
	right: 0;
	transform: translateX(50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 1rem 0.6rem;
	background: #fff;
	color: #48A99E;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.1rem;
	writing-mode: vertical-rl;
	text-orientation: upright;
	white-space: nowrap;
}

.top-mission-btns {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 2.8rem;
	margin-top: 5.8rem;
}

.btn-white-sm {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36.5rem;
	height: 6rem;
	padding: 0 5.4rem 0 3.2rem;
	border-radius: 99.9rem;
	background: #fff;
	color: #103A44 !important;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.03em;
	text-align: center;
}

.btn-white-sm::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 4rem;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: #103A44;
	transform: translateY(-50%);
	transition: translate 0.25s ease;
}

.btn-white-sm::before {
	content: "";
	position: absolute;
	top: 50%;
	right: 4.7rem;
	z-index: 1;
	width: 0.6rem;
	height: 0.6rem;
	border-top: 0.2rem solid #fff;
	border-right: 0.2rem solid #fff;
	transform: translateY(-50%) rotate(45deg);
	transition: translate 0.25s ease;
}

/* ホバー：透過せず、矢印アイコンを右へ動かす */
.btn-white-sm:hover {
	opacity: 1;
}

.btn-white-sm:hover::before,
.btn-white-sm:hover::after {
	translate: 0.7rem 0;
}

/* ---------------------------------------------------
	トップ：快眠にいがたの想い small PC調整
------------------------------------------------------ */
@media screen and (min-width: 1200px) and (max-width: 1679px) {
	.top-mission {
	padding: 16rem 0 11rem;
}

	.top-mission-inner {
		width: calc(100% - 8rem);
	}

		.top-mission-content {
		grid-template-columns:
			clamp(39rem, 34vw, 52.8rem)
			clamp(4rem, 7vw, 11.3rem)
			minmax(0, 1fr)
			clamp(3rem, 6vw, 9.3rem)
			clamp(26rem, 22vw, 31.3rem);
		column-gap: 0;
		align-items: flex-start;
	}

	.top-mission-photo {
		width: 100%;
		max-width: 52.8rem;
	}

	.top-mission-name {
		margin-top: 4.8rem;
	}

	.top-mission-name span {
		font-size: 1.5rem;
	}

	.top-mission-name strong {
		font-size: 2.8rem;
	}

	.top-mission-person {
		width: 100%;
	}

	.top-mission-person-img {
		width: clamp(17rem, 15vw, 21.3rem);
		height: clamp(17rem, 15vw, 21.3rem);
		margin-bottom: 4.2rem;
	}

		.top-mission-person-copy {
		width: clamp(17rem, 15vw, 21.3rem);
	}

		.top-mission-person-copy p {
		margin-right: 5.4rem;
		width: calc(100% - 5.4rem);
		font-size: clamp(2.2rem, 1.75vw, 2.8rem);
		line-height: 2.05;
		letter-spacing: 0.24rem;
	}

		.top-mission-person-label {
		right: 0;
		transform: translateX(50%);
		font-size: 1.4rem;
	}

	.btn-white-sm {
		width: 32rem;
		height: 5.6rem;
		font-size: 1.6rem;
	}
}

/* ---------------------------------------------------
	トップ：快眠にいがたの想い tablet PC調整
------------------------------------------------------ */
@media screen and (min-width: 897px) and (max-width: 1199px) {
	.top-mission {
	padding: 16rem 0 10rem;
}

	.top-mission-inner {
		width: calc(100% - 6rem);
		max-width: 100%;
	}

	.top-mission-title {
		font-size: 3.2rem;
	}

			.top-mission-content {
		grid-template-columns:
			clamp(30rem, 30vw, 39rem)
			clamp(2.4rem, 4vw, 5rem)
			minmax(0, 1fr)
			clamp(2rem, 3vw, 4rem)
			clamp(22rem, 22vw, 26rem);
		column-gap: 0;
		align-items: flex-start;
	}

	.top-mission-name {
		margin-top: 3.6rem;
	}

	.top-mission-btns {
		gap: 2rem;
		margin-top: 4.8rem;
	}

	.btn-white-sm {
		width: 30rem;
		height: 5.4rem;
		font-size: 1.5rem;
	}
}

/* ---------------------------------------------------
	トップ：快眠にいがたの想い SP調整
------------------------------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px)  {
		.top-mission {
		width: 100%;
		margin-left: 0;
		margin-right: 0;
		padding: 6rem 2rem 6rem;
	}

	.top-mission-inner {
		width: 100%;
		max-width: 100%;
		margin: 0 auto;
	}

	.top-mission-head {
		margin-bottom: 3.6rem;
	}

	.top-mission-mark {
		display: none;
	}

	.top-mission-en {
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 3.2rem;
		font-weight: 700;
	}

	.top-mission-title {
		font-size: 1.6rem;
		font-weight: 500;
		letter-spacing: 0.05em;
	}

	.top-mission-content {
		display: block;
	}

	.top-mission-photo {
		width: 100%;
		max-width: 36rem;
		aspect-ratio: 528 / 640;
		margin: 0 auto 3.8rem;
		border-radius: 1.4rem;
	}

	.top-mission-photo img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.top-mission-text {
		width: 100%;
	}

	.top-mission-text p {
		margin-bottom: 2.4rem;
		font-size: 1.4rem;
		line-height: 2;
		letter-spacing: 0.05rem;
	}

	.top-mission-name {
		margin-top: 3.4rem;
	}

	.top-mission-name span {
		margin-bottom: 0.8rem;
		font-size: 1.8rem;
		line-height: 1.6;
	}

	.top-mission-name strong {
		font-size: 2.8rem;
		line-height: 1.4;
	}

	.top-mission-person {
		width: 100%;
		margin-top: 4.6rem;
	}

	.top-mission-person-img {
		width: 15rem;
		height: 15rem;
		margin: 0 auto 3rem;
	}

	.top-mission-person-copy {
		width: 17rem;
		margin: 0 auto;
	}

	.top-mission-person-copy p {
		font-size: 2rem;
		line-height: 1.8;
		letter-spacing: 0.2rem;
		writing-mode: vertical-rl;
		text-orientation: upright;
		white-space: nowrap;
	}

	.top-mission-person-label {
		top: 0;
		right: -2.2rem;
		padding: 0.8rem 0.5rem;
		font-size: 1.2rem;
		letter-spacing: 0.08rem;
	}

.top-mission-btns {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-top: 4.8rem;
  gap: 1.5rem;
}

.btn-white-sm {
	display: flex;
	width: 100%;
	max-width: 32rem;
	height: 5.4rem;
	margin: 0;
	padding: 0 4.8rem;
	font-size: 1.5rem;
}

.btn-white-sm:last-child {
	margin-bottom: 0;
}

	.btn-white-sm::after {
		right: 3rem;
		width: 1.8rem;
		height: 1.8rem;
	}

	.btn-white-sm::before {
		right: 3.65rem;
		width: 0.495rem;
		height: 0.855rem;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 14'%3E%3Cpath d='M1.5 1.5L6.5 7L1.5 12.5' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
		background-repeat: no-repeat;
		background-size: contain;
		background-position: center;
		border: none;
		transform: translateY(-50%);
	}
}

@media screen and (max-width: 420px) {
		.top-mission {
		padding: 6rem 2rem 7rem;
	}

	.top-mission-title {
		font-size: 1.8rem;
		letter-spacing: 0.16rem;
	}

	.top-mission-photo {
		max-width: 32rem;
		margin-bottom: 3.4rem;
	}

	.top-mission-text p {
		font-size: 1.3rem;
		line-height: 1.95;
	}

	.top-mission-person-img {
		width: 13.2rem;
		height: 13.2rem;
		margin-bottom: 2.6rem;
	}

	.top-mission-person-copy {
		width: 15.6rem;
	}

	.top-mission-person-copy p {
		font-size: 1.8rem;
		line-height: 1.75;
		letter-spacing: 0.16rem;
	}

	.top-mission-person-label {
		right: -2rem;
		font-size: 1.1rem;
	}

	.btn-white-sm {
		max-width: 30rem;
		height: 6rem;
		font-size: 1.4rem;
	}
}

/* ---------------------------------------------------
	トップ：お客様の声
------------------------------------------------------ */
.top-voice {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 12rem 0 11rem;
	background: #FBFBFB;
}

.top-voice-inner {
	width: calc(100% - 8rem);
	max-width: 168rem;
	margin: 0 auto;
}

.top-voice-head {
	margin-bottom: 3.8rem;
	text-align: center;
}

.top-voice-mark {
	width: 3.6rem;
	margin: 0 auto 2.22rem;
	line-height: 1;
}

.top-voice-mark img {
	display: block;
	width: 100%;
	height: auto;
}

/* VOICEを大きく・太く、MISSIONと同じ扱いに */
.top-voice-en {
	margin-bottom: 0.8rem;
	color: #48A99E;
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 4.6rem;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.06em;
}

/* 破線アイコン(MISSIONと共通) */
.top-voice-en-dash {
	display: block;
	width: 2.8rem;
	margin: 1.2rem auto 0;
	line-height: 1;
}

.top-voice-en-dash img {
	display: block;
	width: 100%;
	height: auto;
}

/* お客様の声を小さく・通常の太さに */
.top-voice-title {
	margin: 0;
	margin-top: 1.2rem;
	color: #103A44;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

.top-voice-rating {
	display: flex;
	align-items: center;
	gap: 1rem;
	max-width: 100%;
	margin: 0 auto 2rem;
	color: #103A44;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1;
}

.top-voice-stars {
	color: #F7C948;
	font-size: 1.8rem;
	letter-spacing: 0.2rem;
}

.top-voice-score {
	color: #103A44;
	font-size: 1.4rem;
	font-weight: 700;
	letter-spacing: 0.05rem;
}

.top-voice-widget {
	position: relative;
	max-width: 100%;
	margin: 0 auto;
	border-radius: 1.6rem;
	background: #fff4f1;
}

.top-voice-image,
.top-voice-image picture,
.top-voice-image img {
	display: block;
	width: 100%;
}

.top-voice-image img {
	height: auto;
}

/* EmbedSocialがiframeで出力される場合の調整 */
.top-voice-widget iframe {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 auto;
}

/* EmbedSocial側の余白が大きい場合の保険 */
.top-voice-widget > div {
	width: 100%;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-voice {
		width: 100%;
		margin-left: 0;
		margin-right: 0;
		padding: 4.9rem 2rem 0;
		background: #fbfbfb;
	}

	.top-voice-inner {
		width: 100%;
		max-width: 100%;
	}

	.top-voice-head {
		padding: 0 2rem;
		margin-bottom: 4.8rem;
	}

	.top-voice-mark {
		width: 3rem;
		margin: 0 auto 0.8rem;
	}

	.top-voice-en {
		font-size: 3.2rem;
		font-weight: 700;
	}

	.top-voice-title {
		font-size: 1.8rem;
		font-weight: 500;
		letter-spacing: 0.05rem;
	}

	.top-voice-en-dash {
		width: 2.5rem;
		margin: 0.8rem auto 0;
	}

	.top-voice-rating {
		justify-content: center;
		margin-bottom: 1.6rem;
		font-size: 1.3rem;
	}

	.top-voice-stars {
		font-size: 1.5rem;
		letter-spacing: 0.1rem;
	}

	.top-voice-score {
		font-size: 1.2rem;
	}

	.top-voice-widget {
		position: relative;
		max-width: 100%;
		margin: 0 auto;
		padding: 3rem 0 3.3rem;
		border-radius: 0;
		background: transparent;
		overflow: visible;
	}

	.top-voice-widget::before {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		left: 50%;
		width: 100vw;
		background: #EBEBEB;
		transform: translateX(-50%);
		z-index: 0;
	}

	.top-voice-image {
		position: relative;
		z-index: 1;
	}

	.top-voice-image img {
		display: block;
		width: 100%;
		height: auto;
	}
}

/* ------------------------------
   footer contact 修正版
------------------------------ */
.footer-contact {
	width: calc(100% - 8rem);
	max-width: 168rem;
	margin: 0 auto 10.3rem;
	text-align: center;
}

.footer-contact-inner {
	position: relative;
	width: 100%;
	/*aspect-ratio: 1680 / 707;*/
	border-radius: 2rem;
	overflow: hidden;
	padding: 10rem 7rem 11.7rem;
	color: #fff;
	background: none;
}

.footer-contact-inner::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
	linear-gradient(rgba(16, 58, 68, 0.7), rgba(16, 58, 68, 0.7)),
	url("../images/footer/bg-contact.jpg") no-repeat center / cover;
	background-blend-mode: multiply;
	z-index: 1;
}

.footer-contact-inner > * {
	position: relative;
	z-index: 2;
}

.footer-contact-head {
	position: relative;
	z-index: 2;
	text-align: center;
	margin-bottom: 6.8rem;
}

.footer-contact-mark {
	display: none;
}

.footer-contact-mark img {
	width: 4rem;
	height: auto;
}

.footer-contact-en {
	margin-bottom: 0.8rem;
	font-size: 4.6rem;
	font-weight:900;
	letter-spacing: 0.05em;
	line-height: 1;
	font-family: "Zen Maru Gothic", sans-serif;
}

.footer-contact-en-dash {
	display: block;
	width: 2.8rem;
	margin: 1.2rem auto 0;  /* 1rem → 1.2rem */
	line-height: 1;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.footer-contact-en-dash {
		width: 2rem;
		margin: 0.8rem auto 0;
	}
}

.footer-contact-en-dash img {
	display: block;
	width: 100%;
	height: auto;
}

.footer-contact-title {
	margin: 0;
	margin-top: 1rem;
	font-family: "Zen Kaku Gothic New";
	font-size: 2rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

.footer-contact-list {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: flex-end;
	width: 100%;
	max-width: 150rem;
	margin: 0 auto;
	column-gap: 8rem;
}

.footer-contact-divider {
	width: 0.2rem;
	height: 29.9rem; /* 220px → 299px */
	background: repeating-linear-gradient(
		to bottom,
		rgba(255, 255, 255, 0.8) 0,
		rgba(255, 255, 255, 0.8) 0.8rem,
		transparent 0.8rem,
		transparent 1.8rem
	);
}

.footer-contact-col--left {
	display: flex;
	flex-direction: column;
	align-items: flex-end; /* center → flex-end */
	gap: 3rem;
}

.footer-contact-item {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.footer-contact-label {
	margin-bottom: 1.5rem;
	color: #fff;
	font-size: 1.8rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	font-family: "Zen Kaku Gothic New";
	text-align: center;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.footer-contact-label {
		font-size: 1.6rem;
	}
}

.footer-contact-pill {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 41rem; /* 100% → 410px */
	height: 9.1rem; /* 87px → 91px */
	border-radius: 99.9rem;
	background: #fff;
}

.footer-contact-number {
	color: #103A44;
	font-size: 2.8rem;
	font-weight: 900;
	font-family: "Zen Maru Gothic";
	line-height: 1.2;
	letter-spacing: 0.03em;
}

.footer-contact-time {
	color: #103A44;
	font-size: 1.3rem;
	font-weight: 500;
	font-family: "Zen Kaku Gothic New";
}

.footer-contact-btn--mail {
	display: flex;
	align-items: center;
	justify-content: flex-start; /* すでにあれば変更不要 */
	gap: 1.6rem;
	width: 41rem;
	height: 9.1rem;
	border-radius: 99.9rem;
	background: #fff;
	color: #103A44;
	font-size: 2.2rem;
	font-weight: 700;
	text-decoration: none;
}

.footer-contact-col--right {
	position: relative;
	text-align: left; /* center → left */
}

.footer-contact-line-title {
	margin-bottom: 1.5rem;
	color: #fff;
	font-size: 2.8rem;
	font-weight: 700;
	font-family: "Zen Kaku Gothic New";
	letter-spacing: 0.03em;
}

.footer-contact-line-desc {
	margin-bottom: 3.6rem;
	color: #fff;
	font-size: 1.6rem;
	font-family: "Noto Sans JP";
	line-height: 1.8;
	text-align: left;
	letter-spacing: 0.03em;
	white-space: nowrap;
}

.footer-contact-line-label {
	width: 41rem;
	margin: 0 auto 0.2rem;
	margin-left: -0.8rem; 
	color: #fff;
	font-size: 1.8rem;
	text-align: center;
	font-weight: 700;
	letter-spacing: 0.03em;
}

.footer-contact-btn--line {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	width: 41rem; 
	max-width: 41rem;
	height: 9.2rem;
	color: #103A44;
	font-size: 1.8rem;
	font-weight: 700;
	text-decoration: none;
}

.footer-contact-btn--line-icon {
	width: 2.8rem;
	height: 2.8rem;
}

.footer-contact-line-char {
	position: absolute;
	right: 0;
	bottom: -1rem;
	width: 15rem;
	height: auto;
	border-radius: 0; /* 追加 */
}

.footer-contact-pill--tel {
  flex-direction: row;
  justify-content: flex-start;
  gap: 2.95rem;
  padding: 0 3.05rem 0 1.05rem;
}

.footer-contact-icon-inline {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 7rem;
  width: 7rem;
  aspect-ratio: 1 / 1;
  margin: 0;
  border-radius: 50%;
  background: #F0F0F0;
}

.footer-contact-icon-inline img {
  width: 3.3rem; /* 円の中に収まるよう少し小さめに調整 */
  aspect-ratio: 1 / 1;
  object-fit: contain;
}

.footer-contact-btn--mail {
	gap: 2.5rem;
	padding: 0 3.2rem 0 1.05rem;
}

.footer-contact-btn--mail span {
  padding: 0 1rem;
}

.footer-contact-pill--tel > div {
  padding: 0 1rem;
}


@media screen and (max-width: 767px), (max-width: 896px)  {
	.footer-contact-btn--mail span {
    font-size: 1.6rem;
  }
	.footer-contact {
		width: calc(100% - 4rem);
		margin: 0 auto 6rem;
	}

	.footer-contact-inner {
		aspect-ratio: auto;
		border-radius: 1rem;
		padding: 4.8rem 3rem 4.4rem;
	}

	/* SP専用画像に変更＋グラデーション（フィルター）を解除 */
	.footer-contact-inner::before {
		background: url("../images/footer/bg-contact-sp.png") no-repeat center / cover;
		background-blend-mode: normal;
	}

	.footer-contact-head {
		margin-bottom: 4rem;
	}

	.footer-contact-en {
		font-size: 3.2rem;
	}

	.footer-contact-title {
		font-size: 1.6rem;
	}

	.footer-contact-list {
		display: block;
		max-width: 100%;
	}

	.footer-contact-divider {
		display: none;
	}

	.footer-contact-col--left {
	align-items: center;
	margin-bottom: 2.8rem;
	gap: 0;
}

	.footer-contact-col--right {
		padding-right: 0;
		text-align: center;
	}

	.footer-contact-line-desc {
	white-space: normal;
	text-align: left;
	line-height: 2;
}

.footer-contact-pill,
	.footer-contact-line-label,
	.footer-contact-btn--line {
		width: 100%;
		max-width: 30rem;
		margin-left: 0;
		margin: 0 auto;
	}

	.footer-contact-btn--mail {
		width: 100%;
		max-width: 30rem;
		margin-left: 0;
		margin: 0 auto 5.968rem;
	}

	.footer-contact-pill,
.footer-contact-btn--mail,
.footer-contact-btn--line {
	height: 6.7317rem;
	gap: 2rem;
	padding: 0 3rem 0 0.768rem;
}

	.footer-contact-number {
	font-size: 2rem;
	margin-bottom: 0.585rem;
}

	.footer-contact-line-char {
	position: static;
	width: 100%;
	max-width: 34rem;
	height: auto;
	margin: 1.6rem auto 0;
}

	.footer-contact-time {
	color: #103A44;
	font-size: 0.95rem;
	font-weight: 500;
	line-height: 1;
}

.footer-contact-tel {
	margin-bottom: 2.988rem;
}
}

/* ------------------------------
   rental banner
------------------------------ */
.footer-rental-bnr {
	width: 100%;
	max-width: 96rem;
	height: 20rem;
	margin: 10.7rem auto 0;
}

.footer-rental-bnr a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7.4rem;
	width: 100%;
	height: 20rem;
	min-height: 20rem;
	padding: 0 7.8rem;
	border-radius: 2rem;
	border: 0.1rem solid #F4C7A8;
	background: #E98E52;
	color: #fff;
	text-decoration: none;
	box-shadow: none;
	overflow: hidden;
}

.footer-rental-bnr a::before {
	content: "";
	position: absolute;
	inset: 0.8rem;
	border: 0.2rem solid rgba(255,255,255,0.45);
	border-radius: 1.4rem;
	pointer-events: none;
}

.footer-rental-icon {
	flex: 0 0 11.2rem;
	width: 11.2rem;
	height: 11.2rem;
}

.footer-rental-icon img {
	display: block;
	width: 11.2rem;
	height: 11.2rem;
	max-width: none;
	object-fit: contain;
}

.footer-rental-text {
	text-align: left;
	min-width: 0;
}

.footer-rental-label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42.9rem;
	height: 3.8rem;
	margin: 0 auto 1.75rem;
	padding: 0;
	border: 0.1rem solid #fff;
	border-radius: 99.9rem;
	background: transparent;
	color: #fff;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	text-align: center;
	font-family: "Zen Kaku Gothic New";
	letter-spacing: 0.06rem;
}

.footer-rental-main {
	margin-bottom: 1.7rem;
	color: #fff;
	font-size: 3.6rem;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: 0.05em;
	white-space: nowrap;
	font-family: "Zen Kaku Gothic New";
}

.footer-rental-sub {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 1.2rem;
	color: #fff;
	font-size: 2.1rem;
	font-weight: 700;
	line-height: 1.4;
	white-space: nowrap;
	font-family: "Zen Kaku Gothic New";
}

.footer-rental-sub::before {
	content: "";
	display: inline-block;
	flex: 0 0 2.4rem;
	width: 2.4rem;
	height: 2.4rem;
	border: 0.2rem solid #fff;
	border-radius: 50%;
	background: transparent;
}

.footer-rental-sub::after {
	content: "";
	position: absolute;
	left: 1.5rem;
	top: 50%;
	width: 1.4rem;
	height: 1rem;
	background: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 5H11M7.5 1.5L11 5L7.5 8.5' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
	transform: translate(-50%, -50%);
}

/* ------------------------------
   footer contact / rental banner PC responsive
   1680px未満〜PC用
------------------------------ */

/* 1401px〜1679px：少しだけ縮小 */
@media screen and (min-width: 1401px) and (max-width: 1679px) {

	/* rental banner */
	.footer-rental-bnr {
		max-width: 90rem;
		height: 18.8rem;
	}

	.footer-rental-bnr a {
		height: 18.8rem;
		min-height: 18.8rem;
		gap: 6.2rem;
		padding: 0 6.6rem;
	}

	.footer-rental-icon {
		flex-basis: 10.6rem;
		width: 10.6rem;
		height: 10.6rem;
	}

	.footer-rental-icon img {
		width: 10.6rem;
		height: 10.6rem;
	}

	.footer-rental-label {
	width: auto;
	height: 3.7rem;
	margin-bottom: 1.5rem;
	padding: 0 1.8rem;
	font-size: 1.5rem;
}

	.footer-rental-main {
		margin-bottom: 1.5rem;
		font-size: 3.9rem;
	}

	.footer-rental-sub {
		font-size: 2rem;
	}
}


/* 897px〜1400px：小さめPC・横長タブレット用 */
@media screen and (min-width: 897px) and (max-width: 1400px) {

	/* rental banner */
	.footer-rental-bnr {
		max-width: clamp(72rem, 72vw, 90rem);
		height: clamp(15rem, 15vw, 18.8rem);
	}

	.footer-rental-bnr a {
		height: clamp(15rem, 15vw, 18.8rem);
		min-height: clamp(15rem, 15vw, 18.8rem);
		gap: clamp(3rem, 4vw, 6.2rem);
		padding: 0 clamp(3.4rem, 5vw, 6.6rem);
		border-radius: 1.8rem;
	}

	.footer-rental-bnr a::before {
		inset: 0.7rem;
		border-radius: 1.2rem;
	}

	.footer-rental-icon {
		flex-basis: clamp(8.4rem, 8vw, 10.6rem);
		width: clamp(8.4rem, 8vw, 10.6rem);
		height: clamp(8.4rem, 8vw, 10.6rem);
	}

	.footer-rental-icon img {
		width: clamp(8.4rem, 8vw, 10.6rem);
		height: clamp(8.4rem, 8vw, 10.6rem);
	}

	.footer-rental-label {
	width: auto;
	height: clamp(3.2rem, 3vw, 3.7rem);
	margin-bottom: clamp(1rem, 1.4vw, 1.5rem);
	padding: 0 clamp(1.2rem, 1.5vw, 1.8rem);
	font-size: clamp(1.2rem, 1.3vw, 1.5rem);
}

	.footer-rental-main {
		margin-bottom: clamp(1rem, 1.4vw, 1.5rem);
		font-size: clamp(3rem, 3vw, 3.9rem);
	}

	.footer-rental-sub {
		gap: 1rem;
		font-size: clamp(1.6rem, 1.6vw, 2rem);
	}

	.footer-rental-sub::before {
		flex-basis: clamp(2rem, 2vw, 2.4rem);
		width: clamp(2rem, 2vw, 2.4rem);
		height: clamp(2rem, 2vw, 2.4rem);
	}

	.footer-rental-sub::after {
		left: clamp(1.2rem, 1.25vw, 1.5rem);
		width: clamp(1.2rem, 1.2vw, 1.4rem);
		height: clamp(0.8rem, 0.9vw, 1rem);
	}
}


/* ------------------------------
   footer contact SP
------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px)  {

	/* ------------------------------
	   rental banner SP
	------------------------------ */
	.footer-rental-bnr {
		width: 100%;
		max-width: 100%;
		height: auto;
		margin: 4rem auto 0;
	}

	.footer-rental-bnr a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.814rem;
	width: 100%;
	height: auto;
	min-height: 10.5rem;
	padding: 1.6rem 2.2rem;
	border-radius: 1rem;
	box-shadow: none;
	overflow: hidden;
}

	.footer-rental-bnr a::before {
	content: "";
	position: absolute;
	inset: 0.3rem;
	border: 0.1rem solid rgba(255,255,255,0.45);
	border-radius: 0.8rem;
	pointer-events: none;
}

	.footer-rental-icon {
		position: relative;
		z-index: 1;
		flex: 0 0 6.6rem;
		width: 6.6rem;
		height: 6.6rem;
	}

	.footer-rental-icon img {
		display: block;
		width: 5.8rem;
		height: 6.6rem;
		max-width: none;
		object-fit: contain;
	}

	.footer-rental-text {
		position: relative;
		z-index: 1;
		text-align: left;
		min-width: 0;
	}

	.footer-rental-label {
	width: auto;
	height: auto;
	margin-bottom: 0.967rem;
	padding: 0.273rem 2.188rem 0.227rem 2.113rem;
	border: 0.1rem solid #fff;
	border-radius: 99.9rem;
	background: transparent;
	color: #fff;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.03em;
	white-space: nowrap;
}

	.footer-rental-main {
	margin-bottom: 1.192rem;
	color: #fff;
	font-size: 1.9rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.04em;
	white-space: normal;
}

	.footer-rental-sub {
		position: relative;
		display: inline-flex;
		align-items: center;
		gap: 0.8rem;
		color: #fff;
		font-size: 1.3rem;
		font-weight: 700;
		line-height: 1.4;
		white-space: nowrap;
	}

	.footer-rental-sub::before {
		content: "";
		display: inline-block;
		flex: 0 0 1.2rem;
		width: 1.2rem;
		height: 1.2rem;
		border: 0.15rem solid #fff;
		border-radius: 50%;
		background: transparent;
	}

	.footer-rental-sub::after {
		content: "";
		position: absolute;
		left: 0.7rem;
		top: 50%;
		width: 0.8rem;
		height: 0.8rem;
		background: url("data:image/svg+xml,%3Csvg width='10' height='8' viewBox='0 0 10 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4H8M5.5 1.5L8 4L5.5 6.5' fill='none' stroke='%23ffffff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
		transform: translate(-50%, -50%);
	}
}

/* 375px前後の狭いスマホ用 */
@media screen and (max-width: 420px) {
	.footer-contact {
		width: calc(100% - 2.4rem);
		margin-bottom: 9rem;
	}

	.footer-contact-inner {
		padding: 5rem 3rem 4.4rem;
	}

	.footer-contact-title {
		font-size: 1.8rem;
		letter-spacing: 0.05em;
	}

	.footer-rental-bnr a {
		padding: 1.6rem 1.8rem;
	}

	.footer-rental-icon {
		flex-basis: 5.8rem;
		width: 5.8rem;
		height: 5.8rem;
	}

	.footer-rental-icon img {
		width: 5.8rem;
		height: 5.8rem;
	}

	.footer-rental-label {
	width: auto;
	height: 2.4rem;
}

	.footer-rental-main {
		font-size: 1.9rem;
		letter-spacing: 0.03em;
	}

	.footer-rental-sub {
		font-size: 1.2rem;
	}
}

/* ------------------------------
   footer shop info
------------------------------ */
.footer-shop-info {
	position: relative;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 26rem 0 14.2rem;
	background-image: url("../images/common/bg-footer-shop.png");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}

.footer-shop-info {
	position: relative;
	z-index: 1;
	overflow: visible;
	isolation: isolate;
}

.footer-shop-info::before {
	content: "";
	display: block;
	position: absolute;
	left: 50%;
	top: 0rem;
	z-index: 1;
	width: 100vw;
	height: 12rem;
	transform: translateX(-50%);
	pointer-events: none;

	background-image: url("../images/common/bg-footer-shop-info-wave.png");
	background-repeat: no-repeat;
	background-position: bottom center;
	background-size: 100% 100%;
}

.footer-shop-info-inner {
	position: relative;
	z-index: 2;
}

.footer-shop-info-inner {
	display: grid;
	grid-template-columns: 36rem 28.1rem 39.9rem;
	column-gap: 15rem;
	width: 134rem;
	max-width: calc(100% - 8rem);
	margin: 0 auto;
}

.footer-shop-info-item {
	min-width: 0;
	color: #103A44;
	text-align: left;
}

.footer-shop-info-name {
	margin-bottom: 2rem;
	color: #103A44;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: 0;
}

/* 変更後 */
.footer-shop-info-address {
	margin-bottom: 1.2rem;
	color: #103A44;
	font-size: 1.74rem;
	font-weight: 400;
	line-height: 1.7;
	letter-spacing: 0.02em;
	white-space: normal;
	word-break: keep-all;
	overflow-wrap: break-word;
}

.footer-shop-info-tel {
	color: #103A44;
	font-family: "Roboto", sans-serif;
	font-size: 3rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	white-space: normal;
}
/* ------------------------------
   footer shop info PC responsive
------------------------------ */

/* 1201px〜1500px：完成形の比率を保ったまま少し縮小 */
@media screen and (min-width: 1201px) and (max-width: 1500px) {
	.footer-shop-info-inner {
		width: calc(100% - 8rem);
		max-width: 134rem;
		grid-template-columns:
			minmax(0, 360fr)
			minmax(0, 281fr)
			minmax(0, 399fr);
		column-gap: clamp(12rem, 10vw, 15rem);
	}
}

/* ------------------------------
   footer shop info SP
------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px)  {
	.footer-shop-info {
		padding: 5.6rem 0 5.2rem;
	}

	.footer-shop-info-inner {
		display: block;
		width: calc(100% - 4.8rem);
		max-width: 42rem;
		margin: 0 auto;
	}

	.footer-shop-info-item {
		width: 100%;
		margin-bottom: 4.6rem;
		text-align: left;
	}

	.footer-shop-info-item:last-child {
		margin-bottom: 0;
	}

	.footer-shop-info-name {
		margin-bottom: 0.8rem;
		font-size: 1.6rem;
	}

	.footer-shop-info-address {
		margin-bottom: 0.8rem;
		line-height: 1.7;
		word-break: keep-all;
		overflow-wrap: break-word;
		font-size: 1.3rem;
	}

	.footer-shop-info-tel {
		line-height: 1.2;
		font-size: 2.2rem;
	}
}
/* 375px前後の狭いスマホ用 */
@media screen and (max-width: 420px) {
	.footer-shop-info {
		padding: 5rem 0 4.6rem;
	}

	.footer-shop-info-inner {
		width: calc(100% - 3.2rem);
		max-width: 100%;
	}

	.footer-shop-info-item {
		margin-bottom: 4rem;
	}

	.footer-shop-info-address {
		margin-bottom: 0.8rem;
		font-size: 1.3rem;
	}
}

/* ------------------------------
   footer company area
------------------------------ */
#footer {
	background: #fcfcfc;
	padding-bottom: 0;
}

#footer .f-company-info {
	width: 100%;
	padding: 0;
	background: #103A44;
}

.f-company-info-inner {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 28.9rem;
	box-sizing: border-box;
	width: 100%;
	min-height: 30rem;
	margin: 0;
	padding: 11.1rem 6.85rem 7rem 11.4rem;
}

.f-company-logo {
	flex: 0 0 20rem;
	width: 20rem;
	aspect-ratio: 200 / 170; /* 比率を固定し、幅指定だけで高さが追従するように */
	height: auto;
}

.f-company-logo a {
	display: block;
}

.f-company-logo a:hover {
	opacity: 1;
}

.f-company-logo img {
	display: block;
	width: 100%; /* 50% → 100% に修正 */
	height: 100%;
	object-fit: contain;
}


/* ------------------------------
   footer company nav 修正
------------------------------ */
.f-company-nav {
	flex: 1 1 auto;
	width: auto;
	max-width: 117.1rem;
}

.f-company-nav-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, 21.65rem);
	column-gap: 2.2rem;
	row-gap: 4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* ------------------------------
   footer company nav hover
------------------------------ */

.f-company-nav-item a {
	display: grid;
	grid-template-columns: 3.2rem 1fr;
	column-gap: 1.5rem;
	align-items: center;
	color: #fff;
	text-decoration: none;
		transition:
		transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
		opacity 0.3s ease;
	will-change: transform;
}

.f-company-nav-item a:hover {
	opacity: 1;
	transform: translateY(-0.6rem);
}

.f-company-nav-item a:link,
.f-company-nav-item a:visited,
.f-company-nav-item a:hover,
.f-company-nav-item a:active {
	color: #fff;
}

.f-company-nav-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.2rem;
	height: 3.2rem;
}

.f-company-nav-icon img {
	display: block;
	width: 3.2rem;
	height: 3.2rem;
	max-width: none;
	object-fit: contain;
}

.f-company-nav-text strong {
	display: block;
	margin-bottom: 0.4rem;
	color: #fff;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.027em;
	white-space: nowrap;
}

.f-company-nav-text em {
	display: block;
	color: #fff;
	font-family: "Roboto", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.08em;
}


/* ------------------------------
   footer bottom
------------------------------ */
.footer-bottom {
	width: 100%;
	background: #fcfcfc;
}

.footer-bottom-inner {
	width: calc(100% - 8rem);
	max-width: 104rem;
	min-height: 26.8rem;
	margin: 0 auto;
	padding: 4.8rem 0 4rem;
	text-align: center;
}

.footer-bottom-lead {
	margin-bottom: 3.2rem;
	color: #103A44;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 2;
	letter-spacing: 0.02em;
	text-align: center;
	white-space: nowrap;
}

.footer-bottom-logo-list {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.2rem;
	margin: 0 0 3.2rem;
	padding: 0;
	list-style: none;
}

.footer-bottom-logo-list li {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 4.2rem;
}

.footer-bottom-logo-list img {
	display: block;
	width: auto;
	max-width: 9.6rem;
	max-height: 4.2rem;
	object-fit: contain;
}

#footer .footer-bottom .copyright {
	margin: 0;
	color: #103A44;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.6;
	text-align: center;
	font-family: Roboto;
}


/* ------------------------------
   footer company / bottom PC responsive
------------------------------ */
@media screen and (min-width: 1201px) and (max-width: 1679px) {
	.f-company-info-inner {
		gap: 20rem;
	}

	.f-company-nav-text em {
		font-size: 1.2rem;
	}
}

@media screen and (min-width: 897px) and (max-width: 1200px) {

	.f-company-nav-item a {
		grid-template-columns: 2.8rem 1fr;
		column-gap: 1rem;
	}

	.f-company-nav-icon,
	.f-company-nav-icon img {
		width: 2.8rem;
		height: 2.8rem;
	}

	.f-company-nav-text strong {
		font-size: 1.8rem;
		letter-spacing: 0.05em;
	}

	.f-company-nav-text em {
		font-size: 1.1rem;
	}

	.footer-bottom-inner {
		min-height: 24rem;
		padding: 4.2rem 0 3.6rem;
	}
	.f-company-nav-list {
		column-gap: 2rem;
	}
	.f-company-info-inner {
		gap: 15rem;
	}
}


/* ------------------------------
   footer company / bottom SP
------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px)  {
	#footer .f-company-info {
		width: 100%;
		padding: 0;
		background: #103A44;
	}

	.f-company-info-inner {
		display: block;
		width: calc(100% - 4rem);
		max-width: 42rem;
		min-height: auto;
		margin: 0 auto;
		padding: 5.8rem 0 5.4rem;
	}

	.f-company-logo {
		width: 10.5rem; /* 240px → 105px */
		aspect-ratio: 200 / 170;
		height: auto; /* height:61pxの固定指定を廃止 */
		margin: 0 auto 4.6rem;
	}

	.f-company-logo a {
		display: block;
	}

	.f-company-logo img {
		display: block;
		width: 100%;
		height: auto;
	}

	.f-company-nav {
		width: 100%;
		display: flex;
		justify-content: center;
	}

	.f-company-nav-list {
		display: grid;
		grid-template-columns: repeat(2, 15rem);
		justify-content: center;
		column-gap: 4rem;
		row-gap: 3rem;
		width: auto;
		margin: 0 auto;
		padding: 0;
		list-style: none;
	}

	/* PC用の配置指定をスマホでは解除 */
	.f-company-nav-item:nth-child(n) {
		grid-column: auto;
		grid-row: auto;
	}

	.f-company-nav-item a {
		display: grid;
		grid-template-columns: 2.8rem 1fr;
		column-gap: 1rem;
		align-items: center;
		width: 15rem;
		color: #fff;
		text-decoration: none;
	}

	.f-company-nav-item a:link,
	.f-company-nav-item a:visited,
	.f-company-nav-item a:hover,
	.f-company-nav-item a:active {
		color: #fff;
	}

	.f-company-nav-icon {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 2.8rem;
		height: 2.8rem;
	}

	.f-company-nav-icon img {
		display: block;
		width: 2.8rem;
		height: 2.8rem;
		max-width: none;
		object-fit: contain;
	}

	.f-company-nav-text strong {
		display: block;
		margin-bottom: 0.4rem;
		color: #fff;
		font-family: "Zen Kaku Gothic New", sans-serif;
		font-size: 1.4rem;
		font-weight: 700;
		line-height: 1.25;
		letter-spacing: 0.15em;
		white-space: normal;
	}

	.f-company-nav-text em {
		display: block;
		color: #fff;
		font-family: "Roboto", sans-serif;
		font-size: 0.8rem;
		font-weight: 400;
		line-height: 1;
		letter-spacing: 0.08em;
	}


	/* ------------------------------
	   footer bottom SP
	------------------------------ */
	.footer-bottom {
		width: 100%;
		background: #f7f7f7;
	}

	.footer-bottom-inner {
		width: calc(100% - 4rem);
		max-width: 42rem;
		min-height: auto;
		margin: 0 auto;
		padding: 2rem 0 3.8rem;
		text-align: center;
	}

	.footer-bottom-lead {
		margin-bottom: 2.4rem;
		color: #103A44;
		font-size: 1.1rem;
		font-weight: 400;
		line-height: 2;
		letter-spacing: 0.02em;
		text-align: left;
		white-space: normal;
	}

	.footer-bottom-lead br {
		display: none;
	}

	.footer-bottom-logo-list {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.8rem;
		margin: 0 0 2.8rem;
		padding: 0;
		list-style: none;
	}

	.footer-bottom-logo-list li {
		display: flex;
		align-items: center;
		justify-content: center;
		height: 3.4rem;
	}

	.footer-bottom-logo-list img {
		display: block;
		width: auto;
		max-width: 8.2rem;
		max-height: 3.4rem;
		object-fit: contain;
	}

	#footer .footer-bottom .copyright {
		margin: 0;
		color: #103A44;
		font-size: 1.1rem;
		font-weight: 400;
		line-height: 1.6;
		text-align: center;
	}

	.footer-contact-icon-inline {
		display: flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 5.1rem;
		width: 5.1rem;
		height: 5.1rem;
		margin-left: 0.768rem;
		margin-top: 0;
		margin-right: 0;
		margin-bottom: 0;
		border-radius: 50%;
		background: #F0F0F0;
	}

	.footer-contact-icon-inline img {
		width: 2.4146rem;
		height: 2.4146rem;
	}
}

/* ------------------------------
   footer company / bottom narrow SP
------------------------------ */
@media screen and (max-width: 420px) {
	.f-company-info-inner {
		width: calc(100% - 3.2rem);
		padding: 3.9rem 0 5.5rem;
	}

	.f-company-logo {
		width: 15.2rem; /* さらに少し縮小 */
		margin-bottom: 0rem;
	}

	.f-company-nav-list {
		grid-template-columns: repeat(2, 13.6rem);
		column-gap: 4rem;
		row-gap: 3rem;
	}

	.f-company-nav-item a {
		width: 13.6rem;
		grid-template-columns: 2.4rem 1fr;
		column-gap: 1.3rem;
	}

	.f-company-nav-icon,
	.f-company-nav-icon img {
		width: 2.4rem;
		height: 2.4rem;
	}

	.f-company-nav-text strong {
		font-size: 1.3rem;
		line-height: 1.25;
		letter-spacing: 0.03em;
	}

	.f-company-nav-text em {
		font-size: 0.7rem;
	}


	.footer-bottom-inner {
		width: calc(100% - 3.2rem);
		padding: 3.8rem 0 1.4rem;
	}

	.footer-bottom-lead {
		margin-bottom: 2.4rem;
		font-size: 1.1rem;
		line-height: 1.9;
		font-weight: 400;
		letter-spacing: 0;
	}

	.footer-bottom-logo-list {
		gap: 0.6rem;
		margin-bottom: 2.4rem;
	}

	.footer-bottom-logo-list img {
		max-width: 7.6rem;
		max-height: 3.2rem;
	}
}

/* ------------------------------
   footer bottom logo
------------------------------ */
.footer-bottom-logo {
	width: 100%;
	margin: 0 0 2rem;
	text-align: center;
	line-height: 1;
}

.footer-bottom-logo img {
	display: block;
	width: 32rem;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
	object-fit: contain;
}


/* ------------------------------
   footer bottom logo SP
------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px)  {
	.footer-bottom-logo {
		margin-bottom: 2.8rem;
	}

	.footer-bottom-logo img {
		width: 26rem;
	}
}


/* ------------------------------
   footer bottom logo narrow SP
------------------------------ */
@media screen and (max-width: 420px) {
	.footer-bottom-logo {
		margin-bottom: 2.4rem;
	}

	.footer-bottom-logo img {
		width: 23rem;
	}
}

/* ---------------------------------------------------
  トップ：左Gメニュー
------------------------------------------------------ */
#header .content-wrap .gnavi {
	width: 100%;
}

#header .content-wrap .gnavi__list {
	display: block;
	margin: 0;
	padding: 0;
	list-style: none;
}

#header .content-wrap .gnavi__item {
	margin: 0 0 2rem;
	padding: 0;
	font-size: inherit;
	line-height: 1;
	letter-spacing: 0;
}

#header .content-wrap .gnavi__link {
	display: grid;
	grid-template-columns: 2.8rem 1fr;
	grid-template-rows: auto auto;
	column-gap: 1.2rem;
	align-items: center;
	color: #103A44;
	text-decoration: none;
	font-size: 1.9rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.04em;
}

#header .content-wrap .gnavi__link {
	transform: translateY(0);
	transition:
		transform 0.45s ease,
		color 0.35s ease,
		opacity 0.35s ease;
	will-change: transform;
}

#header .content-wrap .gnavi__link:hover,
#header .content-wrap .gnavi__link:focus-visible {
	opacity: 1 ;
	transform: translateY(-0.5rem);
}

#header .content-wrap .gnavi__link::before {
	content: "";
	grid-column: 1;
	grid-row: 1 / 3;
	display: block;
	width: 2.2rem;
	height: 2.2rem;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

#header .content-wrap .gnavi__link::after {
	grid-column: 2;
	grid-row: 2;
	display: block;
	margin-top: 0.4rem;
	color: #48A99E;
	font-family: "Roboto", sans-serif;
	font-size: 1.2rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.12em;
}

#header .content-wrap .gnavi__list > .gnavi__item:nth-of-type(1) > .gnavi__link::after {
	content: "TRIAL";
}

#header .content-wrap .gnavi__list > .gnavi__item:nth-of-type(2) > .gnavi__link::after {
	content: "GUEST BEDDING";
}

#header .content-wrap .gnavi__list > .gnavi__item:nth-of-type(3) > .gnavi__link::after {
	content: "REFORM";
}

#header .content-wrap .gnavi__list > .gnavi__item:nth-of-type(4) > .gnavi__link::after {
	content: "CUSTOM MADE PILLOW";
}

#header .content-wrap .gnavi__list > .gnavi__item:nth-of-type(5) > .gnavi__link::after {
	content: "MATTRESS";
}

#header .content-wrap .gnavi__list > .gnavi__item:nth-of-type(6) > .gnavi__link::after {
	content: "ABOUT";
}

#header .content-wrap .gnavi__list > .gnavi__item:nth-of-type(1) > .gnavi__link::before {
	background-image: url("../images/common/icon-nav-trial.svg");
}

#header .content-wrap .gnavi__list > .gnavi__item:nth-of-type(2) > .gnavi__link::before {
	background-image: url("../images/common/icon-nav-rental.svg");
}

#header .content-wrap .gnavi__list > .gnavi__item:nth-of-type(3) > .gnavi__link::before {
	background-image: url("../images/common/icon-nav-reform.svg");
}

#header .content-wrap .gnavi__list > .gnavi__item:nth-of-type(4) > .gnavi__link::before {
	background-image: url("../images/common/icon-nav-pillow.svg");
}

#header .content-wrap .gnavi__list > .gnavi__item:nth-of-type(5) > .gnavi__link::before {
	background-image: url("../images/common/icon-nav-mattress.svg");
}

#header .content-wrap .gnavi__list > .gnavi__item:nth-of-type(6) > .gnavi__link::before {
	background-image: url("../images/common/icon-nav-about.svg");
}

/* 既存の a display:block を上書き */
#header .content-wrap .gnavi > .gnavi__list > .gnavi__item > .gnavi__link {
	display: grid !important;
	grid-template-columns: 2.8rem 1fr;
	grid-template-rows: auto auto;
	column-gap: 1.5rem;
	align-items: center;
	width: fit-content;
	color: #103A44;
	text-decoration: none;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.03em;
	font-family: "Zen Kaku Gothic New";
}

#header .content-wrap .gnavi > .gnavi__list > .gnavi__item > .gnavi__link::before {
	content: "";
	grid-column: 1;
	grid-row: 1 / 3;
	align-self: center;
	display: block;
	width: 3.2rem;
	height: 3.2rem;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

#header .content-wrap .gnavi > .gnavi__list > .gnavi__item > .gnavi__link::after {
	grid-column: 2;
	grid-row: 2;
	display: block;
	color: #F39353;
	font-family: "Roboto", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.1em;
}

/* ---------------------------------------------------
  トップ：メインビジュアル フェード切り替え（6枚）
------------------------------------------------------ */
.top-main-visual {
	position: relative;
	width: 104rem;
	height: 60.8rem;
	margin-left: calc((100vw - 104rem) / 2 - 36rem);
	border-radius: 2rem;
	overflow: hidden;
	background: #fff;
}

.top-main-visual__item {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	transition: opacity 1.2s ease;
}

.top-main-visual__item.is-active {
	opacity: 1;
}

/* JSが動く前・無効時は1枚目を表示 */
.top-main-visual:not(.is-ready) .top-main-visual__item:first-child {
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	.top-main-visual__item {
		transition: none;
	}
}

.top-main-visual .main-slider-image {
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	border-radius: 0;
}

.top-main-visual .main-slider-image a {
	display: block;
	width: 100%;
	height: 100%;
}

/* ---------------------------------------------------
  トップ：PCレスポンシブ調整
  1680px未満〜タブレット横幅手前まで
------------------------------------------------------ */

/* 1400px〜1679px */
@media screen and (min-width: 1400px) and (max-width: 1679px) {
	#header {
		width: 32rem;
	}

	#header .content-wrap .logo {
		width: 20rem;
		aspect-ratio: 200 / 170;
		margin-bottom: 3rem;
	}

	#header .content-wrap .gnavi__item {
		margin-bottom: 1.8rem;
	}

	#header .content-wrap .gnavi__link {
		grid-template-columns: 2.6rem 1fr;
		column-gap: 1.1rem;
		font-size: 1.8rem;
	}

	#header .content-wrap .gnavi__link::before {
		width: 2.2rem;
		height: 2.2rem;
	}

	#header .content-wrap .gnavi__link::after {
		font-size: 0.8rem;
	}

	#header .content-wrap .tel-info p {
		font-size: 2.6rem;
	}

	#header .content-wrap .mail-btn {
		width: 22rem;
		height: 5.6rem;
	}

	#header .content-wrap .mail-btn a {
		min-height: 5.6rem;
		font-size: 1.7rem;
	}
}

/* 1200px〜1399px */
@media screen and (min-width: 1200px) and (max-width: 1399px) {
	#header {
		width: 28rem;
	}

	#header .content-wrap .gnavi__item {
		margin-bottom: 1.6rem;
	}

	#header .content-wrap .gnavi__link {
		grid-template-columns: 2.4rem 1fr;
		column-gap: 1rem;
		font-size: 1.7rem;
	}

	#header .content-wrap .gnavi__link::before {
		width: 2.1rem;
		height: 2.1rem;
	}

	#header .content-wrap .gnavi__link::after {
		margin-top: 0.3rem;
		font-size: 0.8rem;
		letter-spacing: 0.1em;
	}

	#header .content-wrap .tel-info {
		margin-top: 1.4rem;
		margin-bottom: 1.6rem;
	}

	#header .content-wrap .tel-info p {
		font-size: 2.5rem;
	}

	#header .content-wrap .tel-info small {
		font-size: 1.2rem;
	}

	#header .content-wrap .mail-btn {
		width: 20rem;
		height: 5.4rem;
	}

	#header .content-wrap .mail-btn a {
		min-height: 5.4rem;
		font-size: 1.6rem;
	}

	.module-section {
		width: calc(100% - 28rem);
		padding-top: 4.4rem;
	}

	.top-main-visual,
	.js-slider,
	.fix-height {
		width: min(88rem, calc(100vw - 33rem));
		height: calc(100vh - 4.4rem);
		margin-left: calc((100vw - min(88rem, calc(100vw - 33rem))) / 2 - 28rem);
	}

	.main-slider-image {
		width: 100%;
		height: 100%;
	}
}

/* 897px〜1199px：小さめPC・横長タブレット */
@media screen and (min-width: 897px) and (max-width: 1199px) {
	#header {
		width: 24rem;
		z-index: 1;
	}

	#header .content-wrap {
		padding: 3.6rem 0 2.8rem 3rem;
	}

	#header .content-wrap .gnavi__item {
		margin-bottom: 1.4rem;
	}

	#header .content-wrap .gnavi__link {
		grid-template-columns: 2.2rem 1fr;
		column-gap: 0.9rem;
		font-size: 1.5rem;
		letter-spacing: 0.02em;
	}

	#header .content-wrap .gnavi__link::before {
		width: 1.9rem;
		height: 1.9rem;
	}

	#header .content-wrap .gnavi__link::after {
		margin-top: 0.3rem;
		font-size: 0.7rem;
		letter-spacing: 0.08em;
	}

	#header .content-wrap .tel-info {
		margin-top: 1.2rem;
		margin-bottom: 1.4rem;
	}

	#header .content-wrap .tel-info p {
		font-size: 2.2rem;
	}

	#header .content-wrap .tel-info small {
		font-size: 1.1rem;
	}

	#header .content-wrap .mail-btn {
		width: 18rem;
		height: 5rem;
	}

	#header .content-wrap .mail-btn a {
		min-height: 5rem;
		font-size: 1.4rem;
	}

	.module-section {
		width: calc(100% - 24rem);
		padding-top: 3.6rem;
	}

	.top-main-visual,
	.js-slider,
	.fix-height {
		width: calc(100vw - 28rem);
		height: calc(100vh - 3.6rem);
		margin-left: 2rem;
		border-radius: 1.6rem;
	}

	.main-slider-image {
		width: 100%;
		height: 100%;
	}
}

/* ---------------------------------------------------
  トップ：スマホレスポンシブ調整
------------------------------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px)  {

	/* ------------------------------
	  ヘッダー
	------------------------------ */
	#header {
		float: none !important;
		position: fixed !important;
		top: 0;
		left: 0;
		width: 100% !important;
		min-height: auto !important;
		height: 6.4rem !important;
		background: #fff;
		z-index: 1000;
	}

	#header .content-wrap {
		width: 100% !important;
		min-height: 6.4rem !important;
		height: 6.4rem !important;
		padding: 0 1.6rem !important;
		aspect-ratio: auto !important;
		display: flex !important;
		flex-direction: row !important;
		align-items: center !important;
		justify-content: space-between !important;
	}

	#header .content-wrap .logo {
	width: 9.76rem;
	height: 8.36rem;
	margin: 0;
	z-index: 1002;
}

	#header .content-wrap .logo img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: contain;
	}

	#header .content-wrap .head-contents {
		width: auto !important;
		margin: 0 !important;
	}

	#header .content-wrap .seo-description,
	#header .content-wrap .tel-info,
	#header .content-wrap .mail-btn {
		display: none !important;
	}

	/* SPメニュー */
	#header .content-wrap .sp-scroll {
		position: fixed;
		top: 0;
		left: -120rem;
		z-index: 1000;
	}

	#header .content-wrap .is-open + .sp-scroll {
		left: 0;
	}

	.sp-menu-btn {
		display: block;
		width: 3.8rem;
		height: 3.8rem;
		position: relative;
		z-index: 1003;
	}

	.sp-menu-btn > span {
		background-color: #48A99E;
		height: 0.2rem;
	}

	/* SPメニュー内のGナビ */
	#header .content-wrap .gnavi {
		width: 100%;
	}

	#header .content-wrap .gnavi__list {
		display: block !important;
		padding: 0 !important;
	}

	#header .content-wrap .gnavi__item {
		margin: 0 0 2.2rem !important;
		padding: 0 !important;
		text-align: left !important;
	}

	#header .content-wrap .gnavi__link {
		display: grid !important;
		grid-template-columns: 2.8rem 1fr;
		grid-template-rows: auto auto;
		column-gap: 1.2rem;
		align-items: center;
		width: fit-content;
		color: #103A44 !important;
		font-size: 1.8rem !important;
		font-weight: 700;
		line-height: 1.25;
		letter-spacing: 0.04em;
	}

	#header .content-wrap .gnavi__link::before {
		grid-column: 1;
		grid-row: 1 / 3;
		width: 2.2rem;
		height: 2.2rem;
	}

	#header .content-wrap .gnavi__link::after {
		grid-column: 2;
		grid-row: 2;
		margin-top: 0.4rem;
		font-size: 0.8rem;
		line-height: 1;
		letter-spacing: 0.12em;
	}


	/* ------------------------------
	  メインビジュアル
	------------------------------ */
	.module-section {
		float: none !important;
		width: 100% !important;
		padding-top: 6.4rem ;
	}

	.module-section .top-main-visual.fix-height,
	.module-section .js-slider.fix-height,
	.top-main-visual,
	.fix-height {
		width: calc(100% - 3.2rem) !important;
		height: 72vh ;
		min-height: 30rem;
        max-height: 6rem;
		margin: 2rem auto 0 !important;
		border-radius: 1.6rem;
		overflow: hidden;
	}

	.top-main-visual__item {
		width: 100%;
		height: 100%;
	}

	.module-section .main-slider-image,
	.top-main-visual .main-slider-image,
	.main-slider-image {
		width: 100% !important;
		height: 100% !important;
		background-size: cover;
		background-position: center;
	}

	.main-slider-image a {
		width: 100%;
		height: 100%;
	}


	/* ------------------------------
	  右側キャッチコピー
	  SPではメインビジュアル上に小さく配置
	------------------------------ */
	.top-lead {
		position: static !important;
		width: calc(100% - 4rem);
		margin: 2.4rem auto 0;
		padding: 0;
		text-align: center;
	}

		.top-lead h2 {
		text-align: center;
	}

	.top-lead p {
		color: #103A44;
		font-size: 1.9rem;
		font-weight: 700;
		line-height: 1.9;
		letter-spacing: 0.06em;
		text-align: center;
		font-family: "Zen Kaku Gothic New", sans-serif;
	}

		.top-lead .tcy {
		text-combine-upright: none !important;
	}

	/* ------------------------------
	  トップ：快眠にいがたについて
	------------------------------ */
	.top-about {
		padding: 7rem 3rem 0rem;
	}

	.top-about-inner {
		display: block;
		width: 100%;
		max-width: 100%;
	}

		.top-about-lead {
		max-width: 100%;
		margin-bottom: 4rem;
	}

		.top-about-lead p {
		margin-bottom: 1.2rem;
		font-size: 2.4rem;
		line-height: 2;
		letter-spacing: 0.03em;
	}

	.top-about-txt {
		max-width: 100%;
	}

	.top-about-txt p {
		margin-bottom: 1rem;
		font-size: 1.4rem;
		line-height: 2;
		letter-spacing: 0.03em;
		font-weight: 400;
	}

		.btn-teal {
		width: 100%;
		max-width: 32rem;
		height: 5.2rem;
		padding: 0 4.2rem;
		font-size: 1.8rem;
	}


	/* ------------------------------
	  写真ループ
	------------------------------ */
	.top-photo-loop {
		margin-top: 6rem;
		padding-bottom: 6rem;
	}

	.top-photo-loop__item {
		width: 24rem;
		height: 18rem;
		border-radius: 0.8rem;
	}

	.top-photo-loop__list {
		gap: 1.2rem;
		padding-right: 1.2rem;
	}
}

/* ---------------------------------------------------
  トップ：狭いスマホ調整
------------------------------------------------------ */
@media screen and (max-width: 420px) {
	#header .content-wrap {
		padding: 0 1.4rem !important;
	}

	.module-section .top-main-visual.fix-height,
	.module-section .js-slider.fix-height,
	.top-main-visual,
	.fix-height {
		width: calc(100% - 2.4rem) !important;
		height: 32vh !important;
		min-height: 0rem;
		margin-top: 1.2rem !important;
		border-radius: 1.4rem;
	}

	.top-lead {
		width: calc(100% - 3.2rem);
		margin-top: 2rem;
	}

	.top-lead p {
		font-size: 1.7rem;
		line-height: 1.85;
		letter-spacing: 0.05em;
	}

	.top-about {
		padding: 4.5rem 2rem 0rem;
	}

	.top-about-txt p {
		font-size: 1.8rem;
		letter-spacing: 0.03em;
	}

		.btn-teal {
		max-width: 100%;
		height: 6rem;
	}
}

/* ---------------------------------------------------
  右上固定MENUボタン
------------------------------------------------------ */
.fixed-menu-btn {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 3000;
	display: block;
	font-size: initial;
	width: 150px;   /* 176px（11em）→ 150px */
	height: 150px;  /* 同上 */
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	line-height: 0; /* ボタン内の行の高さで余白が出ないようにする */
	opacity: 0;
	visibility: hidden;
	transform: translateY(-2rem);
	transition:
		opacity .35s ease,
		visibility .35s ease,
		transform .35s ease;
	overflow: visible;
}

.fixed-menu-btn.is-show {
	opacity: 1;
	visibility: visible;
}

.fixed-menu-btn__img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: contain;
	transition: opacity .25s ease;
}

.fixed-menu-btn__img--normal {
	opacity: 1;
}

.fixed-menu-btn__img--hover {
	opacity: 0;
}

/* メニューを開いた時にCLOSE用SVGへ切り替え */
.fixed-menu-btn.is-open .fixed-menu-btn__img--normal {
	opacity: 0;
}

.fixed-menu-btn.is-open .fixed-menu-btn__img--hover {
	opacity: 1;
	visibility: visible;
}

/* 通常時のホバーは少しだけ反応 */
.fixed-menu-btn:hover {
	opacity: .85;
}


/* ---------------------------------------------------
  右上固定MENU：展開パネル
------------------------------------------------------ */
.fixed-menu-panel {
	position: fixed;
	inset: 0;
	z-index: 2500;
	display: grid;
	grid-template-columns: 50% 50%;
	width: 100%;
	height: 100vh;
	background: #fff;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity .35s ease,
		visibility .35s ease;
}

.fixed-menu-panel.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}


/* 左側写真 */
.fixed-menu-panel__photo {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.fixed-menu-panel__photo::after {
	content: "";
	position: absolute;
	inset: 0;
	background: #103A44;
	opacity: 0.3;
	pointer-events: none;
}

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


/* 右側コンテンツ */
.fixed-menu-panel__content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 7rem 8rem 6rem;
	background: #fff;
}


/* ロゴ */
.fixed-menu-panel__logo {
	width: 18rem; /* 実寸に合わせて調整 */
	margin: 0 auto 6.4rem;
	line-height: 1;
	text-align: center;
}

.fixed-menu-panel__logo a {
	display: block;
}

.fixed-menu-panel__logo img {
	display: block;
	width: 100%;
	height: auto;
}


/* ナビ */
.fixed-menu-panel__nav {
	width: 100%;
	max-width: 59rem;
	margin: 0 auto 5.8rem;
}

.fixed-menu-panel__item a {
	display: grid;
	grid-template-columns: 3.2rem 1fr;
	grid-template-rows: auto auto;
	column-gap: 1.4rem;
	align-items: center;
	width: fit-content;
	color: #103A44;
	text-decoration: none;
}

.fixed-menu-panel__item a:hover {
	transform: translateY(-0.8rem);
	opacity: 1;
}

.fixed-menu-panel__item a::before {
	content: "";
	grid-column: 1;
	grid-row: 1 / 3;
	display: block;
	width: 2.8rem;
	height: 2.8rem;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

.fixed-menu-panel__item span {
	grid-column: 2;
	grid-row: 1;
	display: block;
	color: #103A44;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 1.9rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: .06em;
	white-space: nowrap;
}

.fixed-menu-panel__item em {
	grid-column: 2;
	grid-row: 2;
	display: block;
	margin-top: 0.5rem;
	color: #F39353;
	font-family: "Roboto", sans-serif;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .16em;
	white-space: nowrap;
}


/* ナビアイコン */
.fixed-menu-panel__item--rental a::before {
	background-image: url("../images/common/icon-nav-trial.svg");
}

.fixed-menu-panel__item--trial a::before {
	background-image: url("../images/common/icon-nav-rental.svg");
}

.fixed-menu-panel__item--reform a::before {
	background-image: url("../images/common/icon-nav-reform.svg");
}

.fixed-menu-panel__item--pillow a::before {
	background-image: url("../images/common/icon-nav-pillow.svg");
}

.fixed-menu-panel__item--mattress a::before {
	background-image: url("../images/common/icon-nav-mattress.svg");
}

.fixed-menu-panel__item--about a::before {
	background-image: url("../images/common/icon-nav-about.svg");
}

.fixed-menu-panel__item--faq a::before {
	background-image: url("../images/common/icon-nav-faq.svg");
}

.fixed-menu-panel__item--news a::before {
	background-image: url("../images/common/icon-nav-news.svg");
}

.fixed-menu-panel__item--contact a::before {
	background-image: url("../images/common/icon-nav-contact.svg");
}


/* 電話番号 */
.fixed-menu-panel__tel {
	width: 100%;
	max-width: 62rem;
	margin: 0 auto 3.4rem;
	padding-top: 3.6rem;
	text-align: center;
	border-top: 0.2rem dotted rgba(67, 47, 44, .28);
}

.fixed-menu-panel__tel p {
	margin: 0 0 1rem;
	color: #103A44;
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 4.2rem;
	font-weight: 900;
	line-height: 1;
	letter-spacing: .04em;
}

.fixed-menu-panel__tel small {
	display: block;
	color: #103A44;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.2;
}


/* 布団レンタルボタン */
.fixed-menu-panel__rental {
	width: 100%;
	max-width: 50rem;
	margin: 0 auto;
}

.fixed-menu-panel__rental a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.8rem;
	width: 100%;
	height: 6.8rem;
	border-radius: 0.6rem;
	background: #48A99E;
	color: #fff !important;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
}

.fixed-menu-panel__rental a:hover {
	opacity: .85;
}

.fixed-menu-panel__rental img {
	display: block;
	width: 4.8rem;
	height: auto;
}


/* メニュー展開中は背景スクロール停止 */
body.is-fixed-menu-open {
	overflow: hidden;
}

/* ---------------------------------------------------
  固定MENU：メニュー中央寄せ修正
------------------------------------------------------ */
.fixed-menu-panel__content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 6rem 8rem;
	box-sizing: border-box;
}

/* ロゴ・ナビ・電話・ボタンを同じ中心軸に揃える */
.fixed-menu-panel__logo,
.fixed-menu-panel__nav,
.fixed-menu-panel__tel,
.fixed-menu-panel__rental {
	margin-left: auto;
	margin-right: auto;
}

/* 開いた後のメニュー全体を中央寄せ */
.fixed-menu-panel__nav {
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}

/* 2カラムの実幅を固定して、グリッド自体を中央寄せ */
.fixed-menu-panel__list {
	display: grid;
	grid-template-columns: repeat(2, 26rem);
	justify-content: center;
	width: 100%;
	max-width: 65rem;
	margin: 0 auto;
	column-gap: 7rem;
	row-gap: 2.8rem;
}

/* 各メニューの幅を揃えて、左右のズレを防止 */
.fixed-menu-panel__item {
	width: auto;
}

.fixed-menu-panel__item a {
	display: grid;
	grid-template-columns: 3.2rem max-content;
	grid-template-rows: auto auto;
	column-gap: 1.4rem;
	align-items: center;
	width: auto;
		transition:
		color .3s ease,
		transform .5s ease,
		opacity .3s ease;
}


/* 1件だけ余る「マットレス」は左列に配置 */
.fixed-menu-panel__item--mattress {
	grid-column: 1;
}

/* 基準：大きめPCでも中央を維持 */
@media screen and (min-width: 1680px) {
	.fixed-menu-panel {
		grid-template-columns: 50% 50%;
	}

	.fixed-menu-panel__content {
		padding: 7rem 8rem 6rem;
	}

	.fixed-menu-panel__logo {
		width: 18rem;
		margin-bottom: 5.8rem;
	}

	.fixed-menu-panel__nav {
		max-width: 62rem;
		margin-bottom: 5.2rem;
	}

	.fixed-menu-panel__list {
		grid-template-columns: repeat(2, 20rem);
		column-gap: 8rem;
		row-gap: 2.8rem;
	}

	.fixed-menu-panel__item,
	.fixed-menu-panel__item a {
		width: 26rem;
	}

	.fixed-menu-panel__tel {
		max-width: 48.6rem;
		margin-bottom: 3.4rem;
	}

	.fixed-menu-panel__rental {
		max-width: 50rem;
	}
}


/* 1401px〜1679px */
@media screen and (min-width: 1401px) and (max-width: 1679px) {

	.fixed-menu-panel {
		grid-template-columns: 48% 52%;
	}

	.fixed-menu-panel__content {
		padding: 5.6rem 6.4rem 5.2rem;
	}

	.fixed-menu-panel__logo {
		width: 16.3rem; /* 元の縮小比率(約90%)を維持 */
		margin-bottom: 4.8rem;
	}

	.fixed-menu-panel__nav {
		max-width: 56rem;
		margin-bottom: 4.4rem;
	}

	.fixed-menu-panel__list {
		grid-template-columns: repeat(2, 24.5rem);
		column-gap: 5.4rem;
		row-gap: 2.5rem;
		width: max-content;
		margin: 0 auto;
	}

	.fixed-menu-panel__item,
	.fixed-menu-panel__item a {
		width: 24.5rem;
	}

	.fixed-menu-panel__item span {
		font-size: 1.8rem;
	}

	.fixed-menu-panel__item em {
		font-size: 1.1rem;
	}

	.fixed-menu-panel__tel {
		max-width: 56rem;
		padding-top: 3rem;
		margin-bottom: 3rem;
	}

	.fixed-menu-panel__tel p {
		font-size: 3.8rem;
	}

	.fixed-menu-panel__tel small {
		font-size: 1.5rem;
	}

	.fixed-menu-panel__rental {
		max-width: 45rem;
	}

	.fixed-menu-panel__rental a {
		height: 6.4rem;
		font-size: 1.8rem;
	}
}


/* 897px〜1200px：PC最小幅・タブレット横向き想定 */
@media screen and (min-width: 897px) and (max-width: 1200px) {

	.fixed-menu-panel {
		grid-template-columns: 42% 58%;
	}

	.fixed-menu-panel__content {
		justify-content: center;
		overflow-y: auto;
	}

	.fixed-menu-panel__item,
	.fixed-menu-panel__item a {
		width: 20.5rem;
		margin: auto;
	}

	.fixed-menu-panel__item a {
		grid-template-columns: 2.6rem 1fr;
		column-gap: 1rem;
	}

	.fixed-menu-panel__item em {
		margin-top: 0.4rem;
		font-size: 0.9rem;
		letter-spacing: .1em;
	}

	.fixed-menu-panel__rental img {
		width: 3.6rem;
	}
}


/* 高さが低いPC対策：ノートPCなど */
@media screen and (min-width: 897px) and (max-height: 760px) {
	.fixed-menu-panel__content {
		justify-content: flex-start;
		overflow-y: auto;
	}
}


/* SPでは固定メニューを非表示 */
@media screen and (max-width: 767px), (max-width: 896px)  {
	.fixed-menu-btn,
	.fixed-menu-panel {
		display: none;
	}
}

/* ===================================================
  スライドショー下のなみなみ背景
  ※サービスではなく、top-photo-loopの下に付ける
=================================================== */

/* スライドショー自体は白背景のまま */
.top-photo-loop {
	position: relative !important;
	z-index: 3 !important;
	width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	padding: 0 0 41.4rem !important;
	background: #fff !important;
	overflow: hidden !important;
}

/* 既存の余計な波を消す */
.top-photo-loop::before {
	content: none !important;
	display: none !important;
}

.module-section {
	position: relative;
	float: left;
	width: calc(100% - 36rem);
	padding-top: 6rem;
	overflow: hidden;
	margin-bottom: 5.9rem;
}

.module-section::before {
  content: "";
  position: absolute;
  top: -2rem; /* ← ここを調整。マイナスにすると上に移動 */
  right: 0;
  z-index: 0;
  width: 100%;
  height: min(27.9167vw, 536px);
  background: url("../images/top/bg-main-before.png") no-repeat top right;
  background-size: min(100vw, 1920px) auto;
  pointer-events: none;
}

.top-main-visual {
	position: relative;
	z-index: 1;
}

/* KV画像リンクのhoverで位置・透明度が変わらないようにする */
.module-section .js-slider a,
.module-section .js-slider a:hover,
.module-section .fix-height a,
.module-section .fix-height a:hover,
.module-section .main-slider-image a,
.module-section .main-slider-image a:hover {
	opacity: 1 !important;
	transform: none !important;
	transition: none !important;
}

/* ===================================================
  共通：波線背景・KV背景 レスポンシブ対応
=================================================== */

/* 横はみ出し対策 */
body,
#container {
	overflow-x: hidden;
	background: #fbfbfb;
}


/* SP：KV背景は非表示 */
@media screen and (max-width: 767px), (max-width: 896px)  {
	.module-section::before {
		content: none !important;
		display: none !important;
	}
}

/* ===================================================
  SP：固定メニューSVG / 展開メニュー調整
  ※ロゴは触らない
=================================================== */
@media screen and (max-width: 767px), (max-width: 896px)  {

	:root {
		/* ヘッダー白背景の高さに合わせる */
		--sp-header-height: 7.2rem;
	}

	/* ヘッダー高さだけ固定 */
	#header {
		height: var(--sp-header-height) !important;
		min-height: var(--sp-header-height) !important;
		background: transparent;
		z-index: 3000 !important;
	}

	#header .content-wrap {
		height: var(--sp-header-height) !important;
		min-height: var(--sp-header-height) !important;
		background: transparent;
	}

	/* 既存のスマホ用三本線メニューは使わない */
	#header .content-wrap .sp-menu-btn {
		display: none !important;
	}

	/* PCで使っているSVGボタンをSPでも使う */
.fixed-menu-btn {
	display: block;
	position: fixed;
	top: 0;
	right: 0;
	z-index: 5000;
	font-size: initial;
	width: 6rem;
	height: 6rem;
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	opacity: 1;
	visibility: visible;
	transform: none;
	pointer-events: auto;
}

	.fixed-menu-btn__img {
		position: absolute !important;
		inset: 0 !important;
		display: block !important;
		width: 100% !important;
		height: 100% !important;
		object-fit: contain !important;
		pointer-events: none !important;
		filter: drop-shadow(0 0.6rem 1.4rem rgba(67, 47, 44, .12)) !important;
	}

	/* 通常時 */
	.fixed-menu-btn__img--normal {
		opacity: 1 !important;
		visibility: visible !important;
	}

	.fixed-menu-btn__img--hover {
		opacity: 0 !important;
		visibility: hidden !important;
	}

	/* クリック後：CLOSE用SVGに切り替え */
	.fixed-menu-btn.is-open .fixed-menu-btn__img--normal {
		opacity: 0 !important;
		visibility: hidden !important;
	}

	.fixed-menu-btn.is-open .fixed-menu-btn__img--hover {
	opacity: 1 !important;
	visibility: visible !important;
}


	/* ===================================================
	  SP：クリック後の固定メニューパネル
	=================================================== */

	.fixed-menu-panel {
		position: fixed !important;
		inset: 0 !important;
		z-index: 4000 !important;
		display: block !important;
		width: 100% !important;
		height: 100dvh !important;
		max-height: 100dvh !important;
		background: #fff !important;

		opacity: 0 !important;
		visibility: hidden !important;
		pointer-events: none !important;

		overflow-y: scroll !important;
		-webkit-overflow-scrolling: touch !important;

		transition:
			opacity .3s ease,
			visibility .3s ease !important;
	}

	.fixed-menu-panel.is-open {
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
	}

	/* SPでは左側写真を非表示 */
	.fixed-menu-panel__photo {
		display: none !important;
	}

	/* メニュー中身 */
	.fixed-menu-panel__content {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		min-height: 100dvh !important;
		padding: 1.4rem 3rem 4.8rem  ;
		background: #fff !important;
		text-align: center !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch !important;
	}

	/* メニュー内ロゴ */
	.fixed-menu-panel__logo {
		width: 9.765rem !important;
		height: 8.326rem !important;
		margin: 0 0 3.2rem 0 !important;
		text-align: left !important;
		line-height: 1 !important;
	}

	.fixed-menu-panel__logo img {
		width: 100% !important;
		height: 100% !important;
		object-fit: contain !important;
	}

	/* ナビ */
	.fixed-menu-panel__nav {
		width: 100% !important;
		max-width: 34rem !important;
		margin: 0 auto 3.2rem !important;
	}

	.fixed-menu-panel__list {
		display: grid !important;
		grid-template-columns: 1fr 1fr !important;
		column-gap: 1.8rem !important;
		row-gap: 2.2rem !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.fixed-menu-panel__item,
	.fixed-menu-panel__item a {
		width: auto !important;
	}

	.fixed-menu-panel__item a {
		position: relative !important;
		display: block !important;
		padding: 0 0 0 2.8rem !important;
		color: #103A44 !important;
		text-align: left !important;
	}

	.fixed-menu-panel__item span {
		display: block !important;
		margin-bottom: 0.4rem !important;
		color: #103A44 !important;
		font-size: 1.5rem !important;
		font-weight: 700 !important;
		line-height: 1.35 !important;
		letter-spacing: .05em !important;
	}

	.fixed-menu-panel__item em {
		display: block !important;
		color: #48A99E !important;
		font-family: Roboto, sans-serif !important;
		font-size: 1rem !important;
		font-weight: 400 !important;
		line-height: 1 !important;
		letter-spacing: .12em !important;
	}

	/* 電話 */
	.fixed-menu-panel__tel {
    width: 100% !important;
    max-width: 34rem !important;
    margin: 0 auto 2.4rem !important;
    padding-top: 2.4rem !important;
    text-align: center !important;
}

	.fixed-menu-panel__tel p {
	margin: 0 0 0.8rem;
	color: #103A44;
	font-family: Roboto, sans-serif;
	font-size: 3.6rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .05em;
}

	.fixed-menu-panel__tel small {
	display: block;
	color: #103A44;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.5;
}

	/* 予約ボタン */
	.fixed-menu-panel__rental {
	width: 100%;
	max-width: 34rem;
	margin: 0 auto 3rem;
}

.fixed-menu-panel__rental a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	width: 100%;
	height: 5.6rem;
	border-radius: 99.9rem;
	background: #48A99E;
	color: #fff;
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.05em;
}

.fixed-menu-panel__rental img {
	width: 3.5rem;
	height: auto;
}

	/* メニューOPEN時は背面スクロールを止める */
	body.is-fixed-menu-open {
		overflow: hidden !important;
	}
}

/* ===================================================
  ムービー上部：PNGなみなみ表示確認用
=================================================== */

.top-photo-loop::before,
.top-photo-loop::after {
	content: none !important;
	display: none !important;
}

.top-photo-loop {
	position: relative !important;
	z-index: 3 !important;
	background: transparent !important;
	overflow: visible !important;
	padding-bottom: 10rem !important;
}

/* 写真本体はPNGより前面 */
.top-photo-loop__track,
.top-photo-loop__list,
.top-photo-loop__item {
	position: relative !important;
	z-index: 5 !important;
}


/* PNG波：スライドショーより背面 */
.top-movie::before {
	content: "" !important;
	display: block !important;
	position: absolute !important;
	left: 50% !important;
	top: -100.9rem !important;
	z-index: 0 !important;
	width: 100vw !important;
	height: 101.3rem !important;
	transform: translateX(-50%) !important;
	pointer-events: none !important;

	background-color: transparent !important;
	background-image: url("../images/top/bg-movie-wave.png") ;
	background-repeat: no-repeat !important;
	background-position: bottom center !important;
	background-size: 100% 100% !important;
}
.top-movie::after {
	content: none !important;
	display: none !important;
}

/* ムービーの中身は波より前面 */
.top-movie-inner {
	position: relative; /* 基準にするために追加 */
	width: 100%;
	max-width: 110rem;
	margin: 0 auto;
}

.top-movie-deco {
	position: absolute;
	z-index: 0;
	pointer-events: none;
	background-repeat: no-repeat;
	background-size: contain;
}

/* ===================================================
  ムービー上部PNG波：レスポンシブ調整
  ※画像指定は元の .top-movie::before だけにする
=================================================== */

/* PC共通 */
@media screen and (min-width: 897px) {
	.top-photo-loop {
		position: relative !important;
		z-index: 3 !important;
		background: transparent !important;
		overflow: visible !important;
		padding-bottom: clamp(20rem, 15.2vw, 41.4rem) !important;
	}

	.top-photo-loop__track,
	.top-photo-loop__list,
	.top-photo-loop__item {
		position: relative !important;
		z-index: 5 !important;
	}

	.top-movie {
	position: relative;
	z-index: 1;
	isolation: auto;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding-top: 13.9rem;
	padding-bottom: clamp(8rem, 4.6875vw, 9rem);
	overflow: visible;
}

.top-movie::before {
	width: 100vw !important;
	height: clamp(65rem, 52.76vw, 101.3rem) !important;
	top: calc(-1 * clamp(64.6rem, 52.55vw, 100.9rem)) !important;
	background-position: bottom center !important;
	background-size: 100% 100% !important;
}
}

/* 1366px〜1440px前後 */
@media screen and (min-width: 1200px) and (max-width: 1440px) {
	.top-photo-loop {
		padding-bottom: 8rem !important;
	}

	.top-movie {
		padding-top: 13.9rem;
		padding-bottom: 8.6rem;
	}

.top-movie::before {
	height: 76rem !important;
	top: -75.6rem !important;
	width: 100vw !important;
	background-size: 100% 100% !important;
}
}

/* 897px〜1199px */
@media screen and (min-width: 897px) and (max-width: 1199px) {
	.top-photo-loop {
		padding-bottom: 6.8rem !important;
	}

	.top-photo-loop__list {
		gap: 2.2rem !important;
	}

	.top-photo-loop__item {
		width: 34rem !important;
		height: 25.5rem !important;
	}

	.top-movie {
	padding-top: 13.9rem;
	padding-bottom: 7.8rem;
}

.top-movie::before {
	height: 65rem !important;
	top: -64.6rem !important;
	width: 100vw !important;
	background-size: 100% 100% !important;
}

	.top-movie-inner {
		width: calc(100% - 6rem) !important;
		max-width: 104rem !important;
	}
}

/* SPでは非表示のまま */
@media screen and (max-width: 767px), (max-width: 896px)  {
	.module-section::before {
		content: none !important;
		display: none !important;
	}
}

/* ===================================================
  PC中幅のみ：KV・左ヘッダー補正
  ※大きいモニターは触らない
=================================================== */

/* 1401px〜1679px */
@media screen and (min-width: 1401px) and (max-width: 1679px) {
	#header {
		min-height: auto;
	}

	#header .content-wrap {
		min-height: auto;
		height: 68rem;
		justify-content: flex-start;
		padding-top: 5rem;
		padding-bottom: 0;
	}

	#header .content-wrap .logo {
		width: 20rem;
	}

	#header .content-wrap .gnavi > ul li {
		font-size: 1.4rem;
		margin-bottom: 1.2rem;
	}

		#header .content-wrap .tel-info {
		margin-top: 1.6rem;
		margin-bottom: 1.6rem;
	}
	#header .content-wrap .tel-info small {
		font-size: 1.4rem;
	}
}

/* 1200px〜1400px */
@media screen and (min-width: 1200px) and (max-width: 1400px) {
	#header {
		width: 28rem;
	}

	#header .content-wrap {
		height: 57rem;
		padding-top: 4.4rem;
	}

	#header .content-wrap .gnavi > ul li {
		font-size: 1.3rem;
		margin-bottom: 1rem;
	}

	#header .content-wrap .tel-info p {
		font-size: 2.4rem;
	}

	#header .content-wrap .tel-info small {
		font-size: 1.2rem;
	}

	#header .content-wrap .mail-btn {
		width: 20rem;
		height: 5.4rem;
	}

	#header .content-wrap .mail-btn a {
		min-height: 5.4rem;
		font-size: 1.5rem;
	}

	.module-section {
		width: calc(100% - 28rem);
		padding-top: 4.8rem;
	}

	.top-main-visual.fix-height {
		width: 72rem;
		height: 57rem;
		margin-left: calc((100vw - 72rem) / 2 - 28rem);
	}
}

/* 897px〜1199px */
@media screen and (min-width: 897px) and (max-width: 1199px) {
	#header {
		min-height: auto;
	}

	#header .content-wrap .gnavi > ul li {
		font-size: 1.5rem;
		margin-bottom: 1.4rem;
		letter-spacing: 0.12rem;
	}

		#header .content-wrap .gnavi > ul li a {
		line-height: 1.25;
	}

		#header .content-wrap .gnavi > ul li img {
		transform: scale(0.9);
		transform-origin: left center;
	}

	#header .content-wrap .tel-info {
		margin-top: 1.8rem;
		margin-bottom: 1.8rem;
	}

	#header .content-wrap .tel-info p {
		font-size: 2.2rem;
	}

	#header .content-wrap .tel-info small {
		font-size: 1.1rem;
	}

	#header .content-wrap .mail-btn {
		width: 18rem;
		height: 5rem;
	}

	#header .content-wrap .mail-btn a {
		min-height: 5rem;
		font-size: 1.4rem;
	}

	.module-section {
		width: calc(100% - 24rem);
		padding-top: 4rem;
	}

	.top-main-visual.fix-height {
		width: 62rem;
		height: 50rem;
		margin-left: calc((100vw - 62rem) / 2 - 24rem);
	}

	.module-section::before {
		width: 66rem;
		height: 31.8rem;
		background-size: contain;
	}
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	#header {
		position: static !important;
		float: none !important;
		width: 100% !important;
		min-height: 0 !important;
		background: transparent !important;
	}

	#header .content-wrap {
		min-height: 0 !important;
		height: auto !important;
		padding: 1.4rem 0 0 1.5rem !important;
		background: transparent !important;
		display: block !important;
	}

	#header .content-wrap .logo {
		position: static !important;
		margin: 0 !important;
	}
		body #header {
		top: 0 !important;
		margin-top: 0 !important;
	}

	body #header .content-wrap {
		margin-top: 0 !important;
	}

	body .sp-menu-btn {
		top: 1rem !important;
	}
}


/* ---------------------------------------------------
	トップリード
------------------------------------------------------ */
.top-lead {
	position: absolute;
	top: 26.2rem;
	right: 11rem;
	z-index: 10;
}

.top-lead h2 {
	text-align: left;
}

.top-lead p {
	color: #103A44;
	font-size: 1.118541667vw; /* 21.476px（1920px幅基準） */
	font-weight: 700;
	line-height: 2.2;
	letter-spacing: 0.21em;
	text-align: left;
	writing-mode: vertical-rl;
	font-family: "Zen Kaku Gothic New", sans-serif;
	text-combine-upright: none;
	font-feature-settings: "palt";
	text-orientation: upright;
}
.top-lead .tcy {
	text-combine-upright: all;
}

/* ---------------------------------------------------
  トップ：右側キャッチコピー PCレスポンシブ
------------------------------------------------------ */

/* 1400px〜1679px */
@media screen and (min-width: 1400px) and (max-width: 1679px) {
	.top-lead {
		top: 12rem;
		right: 4rem;
	}

	.top-lead p {
		font-size: 2.5rem;
		line-height: 2;
		letter-spacing: .06em;
	}
}

/* 1200px〜1399px */
@media screen and (min-width: 1200px) and (max-width: 1399px) {

	.top-lead p {
		font-size: 2.2rem;
		line-height: 1.85;
		letter-spacing: .05em;
	}
}

/* 897px〜1199px */
@media screen and (min-width: 897px) and (max-width: 1199px) {
	.top-lead {
		right: 7.6rem;
	}

	.top-lead p {
		font-size: 1.8rem;
		line-height: 1.75;
		letter-spacing: .04em;
	}
}

@media screen and (max-width: 767px), (max-width: 896px)  {
		.module-section {
		position: relative;
		width: 100%;
		float: none;
		padding-top: 30.2rem;
		overflow: visible;
	}

		.top-lead {
		position: absolute !important;
		top: 12.5rem;
		left: 50% !important;
		right: auto !important;
		z-index: 20;
		width: 100%;
		margin: 0 !important;
		padding: 0;
		transform: translateX(-50%);
		text-align: center;
		pointer-events: none;
	}

.top-lead p {
	display: inline-block;
	margin: 0 auto;
	color: #103A44;
	font-size: 1.77rem;
	font-weight: 700;
	line-height: 1.65;
	letter-spacing: 0.12em;
	text-align: left;
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-family: "Zen Kaku Gothic New", sans-serif;
}

	.top-lead .tcy {
		text-combine-upright: all;
	}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-main-visual.fix-height {
		width: calc(100vw - 2rem) !important;
		height: 29.2rem !important;
		margin: 0 2rem 0 0 !important;
		border-radius: 1rem;
		overflow: hidden;
	}

	.top-main-visual .main-slider-image {
		height: 29.2rem !important;
		background-size: cover;
		background-position: center center;
	}

	.top-main-visual .slick-list,
	.top-main-visual .slick-track,
	.top-main-visual .slick-slide,
	.top-main-visual .slick-slide > div,
	.top-main-visual__item,
	.top-main-visual .main-slider-image,
	.top-main-visual .main-slider-image a {
		height: 29.2rem !important;
	}
}

#container {
	position: relative;
	background-color: #fcfcfc;
	isolation: isolate;
}

#container::before {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		z-index: -1;
		width: 24rem;    /* 28rem → 21rem */
		height: 22rem; /* 26rem → 19.5rem */
		background: url(../images/top/bg-sp-kv.jpg) no-repeat right top;
		background-size: cover;
		pointer-events: none;
	}

#header,
.module-section {
	position: relative;
	z-index: 1;
}

.top-lead .tcy {
	display: inline-block;
	-webkit-writing-mode: horizontal-tb;
	writing-mode: horizontal-tb;
	text-orientation: mixed;
	letter-spacing: 0;
	line-height: 1;
	transform: translateX(0.01em);
}
.top-service-list {
	gap: 6rem;
}
.top-service-image img {
	border-radius: 0;
}
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-mission-content {
		display: flex;
		flex-direction: column;
	}

	.top-mission-person {
		order: 1;
		width: 100%;
		margin: 0 auto 3rem;
	}

	.top-mission-text {
		order: 2;
		width: 100%;
	}

	.top-mission-photo {
		order: 3;
		width: 100%;
		max-width: 100%;
		margin: 4rem auto 0;
		border-radius: 1rem;
	}

	.top-mission-person-img {
		width: 16rem;
        height: 16rem;
		margin: 0 auto 1.4rem;
		border-radius: 50%;
	}

	.top-mission-person-copy {
		position: relative;
		display: flex;
		justify-content: center;
		width: 100%;
		margin: 0 auto;
	}

	.top-mission-person-copy p {
		margin: 0;
		font-size: 1.6rem;
		line-height: 1.8;
		letter-spacing: 0.15rem;
		writing-mode: vertical-rl;
		text-orientation: upright;
		direction: ltr;
	}

	.top-mission-person-label {
		position: absolute;
		top: 0;
		right: calc(50% - 8.5rem);
		padding: 0.6rem 0.4rem;
		font-size: 1rem;
		writing-mode: vertical-rl;
		text-orientation: upright;
	}

	.top-mission-text p {
		font-size: 1.8rem;
		line-height: 2;
		text-align: left;
	}

	.top-mission-name {
		margin-top: 2.4rem;
		text-align: left;
	}

	.top-mission-btns {
		flex-direction: column;
		gap: 2rem;
		margin-top: 4rem;
	}

	.btn-white-sm {
		width: 100%;
		max-width: 100%;
		height: 6rem;
		font-size: 1.6rem;
	}
		.top-mission-person-label {
		writing-mode: horizontal-tb;
		text-orientation: mixed;
		right: calc(50% - 10.5rem);
		padding: 0.5rem 2rem;
		font-size: 1.4rem;
	}

		.top-mission-person-copy {
		display: block;
		width: 100%;
		text-align: center;
	}

		.top-mission-person-copy p {
		writing-mode: horizontal-tb;
		text-orientation: mixed;
		white-space: normal;
		width: 100%;
		margin: 0;
		font-size: 2.8rem;
		line-height: 1.4;
		letter-spacing: 0;
		text-align: center;
	}

		.top-mission-person-label {
		position: static;
		display: inline-block;
		margin-top: 3.2rem;
		margin-bottom: 2.1rem;
		padding: 0.5rem 2rem;
		font-size: 1.4rem;
		writing-mode: horizontal-tb;
		text-orientation: mixed;
		transform: none;
	}
	.top-mission-text p:not(.top-mission-name) {
	word-break: normal;
}
}

.top-mission-name > .top-mission-position {
  display: block;
  white-space: nowrap;
}

@media screen and (min-width: 897px) {
  .top-mission-name .pc-inline {
    display: inline !important;
  }

  .top-mission-name .sp-block {
    display: none !important;
  }
}

@media screen and (max-width: 767px), (max-width: 896px)  {
  .top-mission-name > .top-mission-position {
    white-space: normal;
	opacity: 1;
	margin-top: 3.6rem;
  }

  .top-mission-name .pc-inline {
    display: none !important;
  }

  .top-mission-name .sp-block {
    display: block !important;
  }
}

/* SP */
@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-movie {
		width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding: 7.2rem 1.5rem 6rem !important;
		background-image: url("../images/top/bg-movie-sp.png") !important;
		background-repeat: no-repeat !important;
		background-position: top center !important;
		background-size: 100% auto !important;
		overflow: visible !important;
	}

	.top-movie::before {
		width: 100vw !important;
		height: 26rem !important;
		top: -25.8rem !important;

		/* SP専用背景画像 */
		background-image: url("../images/top/bg-movie-wave-sp.png") ;
		background-repeat: no-repeat !important;
		background-size: 100% 100% !important;
		background-position: bottom center !important;
	}

	.top-movie-inner {
		width: 100% !important;
		max-width: 100% !important;
	}
}

/* SP：フッター店舗情報エリア 背景 */
@media screen and (max-width: 767px), (max-width: 896px)  {
	.footer-shop-info {
		position: relative;
		z-index: 1;
		width: 100%;
		margin-left: 0;
		margin-right: 0;
		padding: 3.6rem 0;

		/* 本体背景 */
		background-image: url("../images/common/bg-footer-shop-info-sp.png");
		background-repeat: no-repeat;
		background-position: top center;
		background-size: 100% 100%; /* ← auto → 100% に変更：中身の高さに合わせて縦にも伸びる */

		overflow: visible;
		isolation: isolate;
	}

	.footer-shop-info::before {
		content: "";
		position: absolute;
		left: 50%;
		top: -8rem;
		z-index: 1;
		width: 100vw;
		height: 8rem;
		transform: translateX(-50%);
		pointer-events: none;

		background-image: url("../images/common/bg-footer-shop-info-wave-sp.png");
		background-repeat: no-repeat;
		background-position: bottom center;
		background-size: 100% auto;
	}

	.footer-shop-info-inner {
		position: relative;
		z-index: 1;
	}
}

/* ===================================================
  快眠にいがたのサービス：背景
=================================================== */

.top-service {
	position: relative;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 18.3rem 0 0;   /* 6.6rem → 0 */
	background-image: url("../images/top/bg-service.png");
	background-repeat: repeat;
	background-position: top center;
	background-size: min(100%, 192rem) auto;
	overflow: hidden;
	isolation: isolate;
}

/*.top-service::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	z-index: 0;
	width: 100%;
	height: 36rem;
	pointer-events: none;
	background-image: url("../images/top/bg-service-wave.png");
	background-repeat: no-repeat;
	background-position: top center;
	background-size: 100% auto;
}*/

.top-service-inner {
	position: relative;
	z-index: 1;
}

/* SP */
@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-service {
		width: 100%;
		margin-left: 0;
		margin-right: 0;
		padding: 8rem 0rem 0rem;
		background-image: url("../images/top/bg-service-sp.png");
		background-repeat: repeat-y;   /* ← ここを修正 */
		background-position: top center;
		background-size: 100% auto;
	}

	.top-service::before {
		top: -0.1rem;
		width: 100%;
		height: 10rem;
		background-image: url("../images/top/bg-service-wave-sp.png");
		background-repeat: no-repeat;
		background-position: top center;
		background-size: 100% auto;
		-webkit-mask-image: none;
		mask-image: none;
	}

	.top-service-inner {
		width: 100%;
		max-width: 100%;
		position: relative;
		z-index: 1;
	}

			.top-service-head {
		margin-bottom: 5.3rem;
		padding-top: 0;
	}

	.top-service-mark {
		position: relative;
		z-index: 1;
	}
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.footer-contact-item {
		position: relative;
		width: 100%;
	}

	.footer-contact-item::after {
		content: "";
		display: block;
		width: 100%;
		max-width: 30rem;
		height: 0.1rem;
		background-image: repeating-linear-gradient(
			to right,
			rgba(255, 255, 255, 0.8) 0,
			rgba(255, 255, 255, 0.8) 0.4rem,
			transparent 0.4rem,
			transparent 1rem
		);
	}

	.footer-contact-item:last-child::after {
		display: none;
	}

	.footer-contact-item:last-child {
		margin-bottom: 0;
	}

	.footer-contact-item + .footer-contact-item::before {
		display: none !important;
	}

	.footer-contact-item:not(:last-child)::after {
		content: "";
		position: absolute;
		left: 50%;
		top: calc(100% + 4rem);
		width: 80%;
		height: 0.2rem;
		transform: translateX(-50%);
		background-image: repeating-linear-gradient(
			to right,
			rgba(255, 255, 255, 0.8) 0,
			rgba(255, 255, 255, 0.8) 0.7rem,
			transparent 0.7rem,
			transparent 1.4rem
		);
		background-repeat: repeat-x;
	}
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.footer-shop-info-item {
		position: relative;
		padding-bottom: 2.4rem;
		margin-bottom: 2rem;
		border-bottom: 0.1rem solid rgba(67, 47, 44, 0.35);
	}

	.footer-shop-info-item:last-child {
		padding-bottom: 0;
		margin-bottom: 0;
		border-bottom: none;
	}

	.footer-shop-info-item:last-child::after {
		display: none;
	}

	.f-company-logo {
		margin-bottom: 3.4rem;
	}
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.fixed-menu-panel__nav {
		width: 100% !important;
		max-width: 34rem !important;
		margin: 0 auto 3.2rem !important;
	}

	.fixed-menu-panel__list {
		display: grid !important;
		grid-template-columns: 1fr !important;
		row-gap: 1.8rem !important;
		width: 100% !important;
		max-width: 26rem !important;
		margin: 0 auto !important;
		padding: 0 !important;
		justify-items: center !important;
	}

	.fixed-menu-panel__item {
		width: 100% !important;
		display: flex !important;
		justify-content: center !important;
	}

	.fixed-menu-panel__item a {
		position: relative !important;
		display: grid !important;
		grid-template-columns: 2.8rem max-content !important;
		grid-template-rows: auto auto !important;
		column-gap: 1.7rem !important;
		align-items: center !important;
		width: max-content !important;
		min-width: 18rem !important;
		margin: 0 auto !important;
		padding: 0 !important;
		color: #103A44 !important;
		text-align: left !important;
	}

	.fixed-menu-panel__item span {
		grid-column: 2 !important;
		grid-row: 1 !important;
		margin-bottom: 0.4rem !important;
	}

	.fixed-menu-panel__item em {
		grid-column: 2 !important;
		grid-row: 2 !important;
	}
}

/* ---------------------------------------------------
	SP：下固定フッター
------------------------------------------------------ */
.sp-fixed-footer {
	display: none;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	body {
		padding-bottom: 5.2rem;
	}

	.sp-fixed-footer {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 3000;
		display: grid;
		grid-template-columns: 1fr 1fr 5.4rem;
		width: 100%;
		height: 5.2rem;
		background: #48A99E;
		box-shadow: 0 -0.2rem 0.8rem rgba(0, 0, 0, 0.12);
	}

	.sp-fixed-footer__item {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.7rem;
		height: 5.2rem;
		color: #fff !important;
		text-decoration: none;
		font-family: "Zen Kaku Gothic New", sans-serif;
		font-size: 1.5rem;
		font-weight: 700;
		line-height: 1;
		letter-spacing: 0.03em;
	}

	.sp-fixed-footer__item--tel,
	.sp-fixed-footer__item--mail {
		background: #48A99E;
		border-right: 0.1rem solid rgba(255, 255, 255, 0.6);
	}

	.sp-fixed-footer__item--top {
		background: #fff;
	}

	.sp-fixed-footer__icon img {
		display: block;
		width: 2.4rem;
		height: 2.4rem;
		object-fit: contain;
	}

	.sp-fixed-footer__item--top img {
		display: block;
		width: 100%;
		object-fit: contain;
	}

	/* 既存のスクロール後ページトップボタンはSPで非表示 */
	.pagetop {
		display: none !important;
	}
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.module-section {
		width: 100vw !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		overflow: visible !important;
	}

	.module-section .top-main-visual.fix-height,
	.module-section .js-slider.fix-height,
	.top-main-visual.fix-height {
		width: calc(100vw - 2rem) !important;
		max-width: none !important;

		/* 高さ固定をやめて、370:292の比率を維持 */
		height: auto !important;
		aspect-ratio: 370 / 292;

		min-height: 0 !important;
		max-height: none !important;

		margin: 0 2rem 0 0 !important;
		border-radius: 0 1rem 2rem 0 !important;
		overflow: hidden;
	}

	.top-main-visual .slick-list,
	.top-main-visual .slick-track,
	.top-main-visual .slick-slide,
	.top-main-visual .slick-slide > div,
	.top-main-visual__item,
	.top-main-visual .main-slider-image,
	.top-main-visual .main-slider-image a {
		width: 100% !important;
		height: 100% !important;
		min-height: 0 !important;
		max-height: none !important;
	}

	.top-main-visual .main-slider-image {
		background-size: cover;
		background-position: center center;
		background-repeat: no-repeat;
		border-radius: 0 !important;
	}
}

/* ---------------------------------------------------
	KV：お問い合わせ + 電話番号（右上）
------------------------------------------------------ */
.top-kv-contact {
	position: absolute;
	top: 6rem;
	right: 8.8rem;
	z-index: 20;
	margin-bottom: 5.6rem;
	text-align: right;
}

.top-kv-contact .mail-btn {
	width: 26.9rem; /* 240px → 269px */
	height: 6rem;
	margin: 0 0 2.3rem;
	margin-left: auto;
}

.top-kv-contact .mail-btn a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	border-radius: 99.9rem;
	background: #48A99E;
	color: #fff;
	font-size: 1.8rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	font-family: "Zen Kaku Gothic New"; /* 追加 */
}

.top-kv-contact .mail-btn a::before {
	content: "";
	display: inline-block;
	width: 2.25rem; /* 20px → 22.5px */
	height: 1.575rem; /* 14px → 15.75px */
	margin-right: 0.9rem; /* 8px → 9px */
	background: url(../images/common/ico-mail.png) no-repeat center/contain;
}

.top-kv-contact .tel-info p {
	margin: 0 0 0.6rem;
	color: #103A44;
	font-size: 3.8rem; /* 30px → 38px */
	font-weight: 900;
	line-height: 1;
	font-family: "Zen Maru Gothic"; /* "Roboto" → "Zen Maru Gothic" */
}

.top-kv-contact .tel-info small {
	display: block;
	margin-right: -1.6rem; /* 追加、左にずらす */
	padding-right: 0;
	color: #103A44;
	font-size: 1.6rem;
	font-weight: 700;
	font-family: "Noto Sans JP";
	margin-top: 0.8rem;
}

@media screen and (min-width: 1400px) and (max-width: 1679px) {
	.top-kv-contact { top: 5rem; right: 4rem; } /* 30px → 50px */
}
@media screen and (min-width: 897px) and (max-width: 1199px) {
	.top-kv-contact { top: 4rem; right: 1.6rem; } /* 18px → 40px */
}
@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-kv-contact { display: none; } /* SPは下部固定フッターのTel/メールで対応 */
}

/* ---------------------------------------------------
	KV右：縦書き短冊コピー（交互背景）
------------------------------------------------------ */
.top-lead-list {
	display: flex;
	flex-direction: row-reverse;
	align-items: flex-start;
	gap: 0.599479vw; /* 11.51px */
	list-style: none;
	margin: 0;
	padding: 0;
}

.top-lead-list li {
	writing-mode: vertical-rl;
	text-orientation: upright;
	color: #103A44;
	font-size: 1.118541667vw;
	font-weight: 700;
	line-height: 1.8;
	letter-spacing: 0.1em;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-feature-settings: "palt";
	padding: 1.151rem 0.1rem;
}

.top-lead-list li:nth-child(odd) {
	background: #fff;
}

.top-lead-list li:nth-child(even) {
	background: #fff;
}

.top-lead-list .tcy {
	text-combine-upright: all;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-lead-list {
		display: flex;
		flex-direction: row-reverse;
		align-items: flex-start;
		justify-content: center;
		gap: 0.4rem;
	}
	.top-lead-list li {
		display: block;
		padding: 0;
		background: none !important;
		font-size: 1.68rem;
		line-height: 1.98;
		letter-spacing: 0.12em;
		white-space: nowrap;
	}
}

/* ---------------------------------------------------
	KV下：CTA帯（レンタル導線）
------------------------------------------------------ */
.top-kv-cta {
	position: relative;
	z-index: 1100;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-wrap: wrap;
	gap: 4rem;
	width: 100vw;
	height: 21.3rem;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 4rem 10rem;   /* 左右を同じ値に戻す */
	background: #48A99E;
	overflow: hidden;
}

.top-kv-cta::before,
.top-kv-cta::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	height: 100%;
	width: 55rem; /* 380px → 550px */
	background-repeat: no-repeat;
	background-size: contain;
	pointer-events: none;
	z-index: 0;
}

.top-kv-cta::before {
	left: -4.5rem;
	background-position: top left;
	background-image: url("../images/top/kv-cta-deco-left.png");
}

.top-kv-cta::after {
	right: 0;
	background-position: bottom right; /* 下揃え */
	background-image: url("../images/top/kv-cta-deco-right.png");
}

.top-kv-cta-inner {
	position: relative;
	z-index: 1;
	text-align: center;
}

.top-kv-cta-badge {
	position: absolute;
	top: -2.5rem;
	right: -13.5rem;
	z-index: 3;
	margin: 0;
	width: 11.5rem;
	line-height: 1;
}

.top-kv-cta-text {
	margin-bottom: 1rem;
	color: #fff;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	font-family: "Zen Kaku Gothic New", sans-serif;
}

.top-kv-cta-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	max-width: 100%;
	padding: 2.4rem 12rem;
	border-radius: 99.9rem;
	background: #fff;
	color: #103A44 !important;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.03em;
}

.top-kv-cta-btn::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 2rem;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: #103A44;
	transform: translateY(-50%);
}

.top-kv-cta-btn::before {
	content: "";
	position: absolute;
	top: 50%;
	right: 2.7rem;
	z-index: 1;
	width: 0.6rem;
	height: 0.6rem;
	border-top: 0.2rem solid #fff;
	border-right: 0.2rem solid #fff;
	transform: translateY(-50%) rotate(45deg);
}

.top-kv-cta-badge img {
	display: block;
	width: 100%;
	height: auto;
}

.top-kv-cta-btn::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 3rem;
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 50%;
	background: #103A44;
	transform: translateY(-50%);
	transition: right 0.25s ease, background 0.25s ease; /* transformのtransitionを削除、rightに変更 */
}

.top-kv-cta-btn::before {
	content: "";
	position: absolute;
	top: 50%;
	right: 4rem;
	z-index: 1;
	width: 0.6rem;
	height: 0.6rem;
	border-top: 0.2rem solid #fff;
	border-right: 0.2rem solid #fff;
	transform: translateY(-50%) rotate(45deg);
	transition: right 0.25s ease, border-color 0.25s ease; /* transformのtransitionを削除、rightに変更 */
}

.top-kv-cta-btn:hover {
	background: #F39353;
	color: #fff !important;
	opacity: 1 !important;
}

.top-kv-cta-btn:hover::after {
	right: 1.1rem;
	background: #fff;
}

.top-kv-cta-btn:hover::before {
	right: 2rem;
	border-color: #F39353;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-kv-cta {
		display: none;
	}
}

@media screen and (max-width: 1679px) and (min-width: 897px) {
		#header {
		width: clamp(24rem, calc(15.3257vw + 10.2529rem), 36rem);
	}

	.module-section {
		width: calc(100% - clamp(24rem, calc(15.3257vw + 10.2529rem), 36rem));
	}

		.top-main-visual.fix-height {
		width: clamp(49rem, calc(42.5vw + 10.44rem), 81rem);
		height: auto;
		aspect-ratio: 3 / 2;
		margin-left: calc(
			(100vw - clamp(49rem, calc(42.5vw + 10.44rem), 81rem)) / 2
			- clamp(24rem, calc(15.3257vw + 10.2529rem), 36rem)
		);
	}
}

@media screen and (min-width: 1400px) and (max-width: 1679px) {
	.top-kv-contact { top: 6rem; right: 4rem; }
	.top-kv-contact .mail-btn { width: 22rem; height: 5.2rem; }
	.top-kv-contact .mail-btn a { font-size: 1.8rem; }
	.top-kv-contact .tel-info p { font-size: 3.4rem; }
	.top-kv-contact .tel-info small { font-size: 1.6rem; }

	.top-lead { top: 25rem; right: 8.5rem; }
	.top-lead p { font-size: 2.5rem; line-height: 2; letter-spacing: .06em; }
}

@media screen and (min-width: 1200px) and (max-width: 1399px) {
	.top-lead p { font-size: 2.2rem; line-height: 1.85; letter-spacing: .05em; }
}

@media screen and (min-width: 897px) and (max-width: 1199px) {
	.top-kv-contact { top: 6rem; right: 1.6rem; }
	.top-lead p { font-size: 1.8rem; line-height: 1.75; letter-spacing: .04em; }
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-service-box,
	.top-service-item.is-reverse .top-service-box {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

		.top-service-icon {
		width: 4.8rem;
		margin-bottom: 1rem;
	}

	.top-service-box h3 {
		margin: 0 0 0.4rem;
		font-size: 2.8rem;
	}

	.top-service-sub {
		margin: 0 0 1.6rem;
		font-size: 1.4rem;
	}

	.top-service-txt {
		margin: 0 0 2rem;
		text-align: left;
		font-size: 1.6rem;
		line-height: 2;
	}

	.btn-teal-sm {
		width: 100%;
		max-width: 30rem;
		margin: 0 auto;
	}
	.top-service-item:nth-child(1) .top-service-sub {
	margin-bottom: 1.6rem;
}
}

@media screen and (min-width: 897px) and (max-width: 1679px) {
		.top-service-txt {
		margin-top: 2rem;
		font-size: 1.7rem;
		line-height: 2;
	}

	.btn-teal-sm {
		margin-top: 3.6rem;
	}
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-recommend-box::after {
		top: 4.5rem;
		right: 1.69rem;
		width: 1.8851rem;
		height: 1.8851rem;
		aspect-ratio: 1 / 1;
		border-width: 0.18rem;
		transform: translateY(-50%);
	}

	.top-recommend-box::before {
		top: 4.5rem;
		right: 2.56rem;
		width: 0.5rem;
		height: 0.5rem;
		border-top-width: 0.18rem;
		border-right-width: 0.18rem;
		transform: translateY(-50%) rotate(45deg);
	}
}

@media screen and (min-width: 897px) and (max-width: 1200px) {

	.f-company-nav-icon,
	.f-company-nav-icon img {
		width: 2.2rem;
		height: 2.2rem;
	}
	
}

@media screen and (max-width: 1679px) and (min-width: 897px) {

	.footer-contact-col--right {
		padding-right: 0;
	}
}

/* ---------------------------------------------------
	フッター：お問い合わせフォームボタン文字サイズ（SPのみ）
------------------------------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px)  {
	.footer-contact-pill--tel > div {
		padding: 0 0.5rem;
	}
  .footer-contact-btn--mail span {
    font-size: 1.6rem;
	padding: 0 0.5rem;
  }
  .footer-contact-line-title {
    display: none;
  }
  .footer-contact-col--right {
    display: flex;
    flex-direction: column;
  }

  .footer-contact-line-label {
    order: 1;
	font-size: 2.4rem;
  }

  .footer-contact-line-desc {
    order: 2;
	margin-bottom: 1.4rem;
  }

  .footer-contact-btn--line {
    order: 3;
	padding: 0;
  }

  .footer-contact-line-char {
    order: 4;
  }
  .footer-contact-item::after {
    display: none;
  }

  /* フォームボタンの下（LINEセクションの上）に点線を追加 */
  .footer-contact-col--left::after {
    content: "";
    display: block;
    width: 100%;
    max-width: 30rem;
    height: 0.2rem;
    background-image: repeating-linear-gradient(
      to right,
      rgba(255, 255, 255, 0.8) 0,
      rgba(255, 255, 255, 0.8) 0.4rem,
      transparent 0.4rem,
      transparent 1rem
    );
  }
}

.contact-lead a,
.contact-lead a:visited {
  color: #F39353;
  text-decoration: underline;
}

.contact-box .btn-cta-orange {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38rem;
	height: 5.9rem;
	max-width: 100%;
	margin: 0 auto;
	padding: 0;
	background: #F39353;
	color: #fff;
	font-weight: 700;
	font-size: 1.8rem;
	text-align: center;
	border: none;
	border-radius: 0.6rem;
	cursor: pointer;
	transition: opacity 0.25s ease;
}

.contact-box .btn-cta-orange:hover {
	opacity: 0.8;
}

.contact-box .form-note {
	margin-top: 1.5rem;
	text-align: center;
	font-size: 1.2rem;
	color: #666;
}
.contact-box .btn-cta-orange-wide {
	max-width: 100%;
}

.contact-lead p {
	text-align: center;
}

.entry-column .contact-lead p {
	margin-bottom: 6rem;
	text-align: left;
	letter-spacing: 0.05em;
}

.entry-column .contact-lead {
	width: 100%;
	padding-left: 1rem;
	padding-right: 1rem;
	box-sizing: border-box;
}

@media (max-width: 896px) {
	.contact-box .acms-admin-form-radio {
		display: flex;
		align-items: flex-start;
	}

	.contact-box .acms-admin-form-radio input[type=radio] {
		position: static;
		margin-top: 0.3rem;
		margin-right: 0.8rem;
		flex-shrink: 0;
	}

	.contact-box .acms-admin-form-radio label {
		display: block;
		margin-left: 0;
		font-size: 1.4rem;
	}

	.contact-box .form-note {
		font-size: 1.1rem;
	}
}

.faq-group h2.faq-page-title:not(:first-of-type) {
	margin-top: 7.75rem;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.faq-group h2.faq-page-title:first-of-type {
		margin-top: 5.75rem;
	}
}

/* ---------------------------------------------------
   見出し下線アイコン：SPのみ 30×3 に統一
------------------------------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-service-en-dash,
	.top-mission-en-dash,
	.top-voice-en-dash,
	.footer-contact-en-dash {
		width: 3rem;
		height: 0.3rem;
		margin: 1.2rem auto 0;
	}

	.top-service-en-dash img,
	.top-mission-en-dash img,
	.top-voice-en-dash img,
	.footer-contact-en-dash img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: contain;
	}
}

.unit-bg-gray .btn-link,
.unit-bg-gray .btn-link a {
  color: #fff;
}

@media screen and (max-width: 767px), (max-width: 896px)  {
	.top-kv-cta-text {
		font-family: "Zen Kaku Gothic New";
		font-size: 2.4rem;
		font-weight: 700;
		line-height: 2;
		letter-spacing: 0.03em; /* 0.72px ÷ 24px */
	}
	.footer-contact-mail {
    margin-bottom: 5.968rem;
  }
}

@media screen and (max-width: 767px),
       (max-width: 896px)  {

	.fixed-menu-panel__rental {
	margin: 0 auto 3rem;
}

	.fixed-menu-panel__tel--sp {
	display: block;
	width: calc(100vw - 6rem);
	max-width: none;
	margin: 0 auto 3.9rem;
	padding: 2rem 1.6rem 2.464rem; /* 左右 3.6rem → 1.6rem */
	border: 0.2rem dashed #48A99E;
	border-top: 0.2rem dashed #48A99E;
	border-radius: 2rem;
	text-align: center;
	box-sizing: border-box;
}

	.fixed-menu-panel__tel--sp .fixed-menu-panel__tel-label {
	margin: 0 0 0.708rem;
	color: #103A44;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.05em;
}

	.fixed-menu-panel__tel--sp .fixed-menu-panel__tel-number {
	margin: 0 0 1.124rem;
	color: #48A99E;
	font-family: "Zen Maru Gothic";
	font-size: min(3.6rem, 8vw); /* 狭い画面では縮める */
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap; /* 折り返さない */
}

	.fixed-menu-panel__tel--sp small {
		display: block;
		color: #103A44;
		font-size: 1.4rem;
		font-weight: 400;
		line-height: 1.4;
	}
}



/* =========================================================
   タブレット縦（768〜896px）
   ※html の font-size 指定より後ろに置く
========================================================= */
@media screen and (min-width: 768px) and (max-width: 896px) and (orientation: portrait) {

	html { font-size: 1.35vw; } /* 768px≒10.4px / 896px≒12.1px */

	/* KV：370/292 のままだと縦長すぎるので横長比率に */
	.module-section .top-main-visual.fix-height,
	.module-section .js-slider.fix-height,
	.top-main-visual.fix-height {
		width: calc(100vw - 3rem) !important;
		height: auto !important;
		aspect-ratio: 3 / 2;
		margin: 0 3rem 0 0 !important;
		border-radius: 0 1.6rem 2.4rem 0 !important;
	}

	/* 縦書きコピーをKV上の余白内に収める */
	.module-section { padding-top: 28rem; }
	.top-lead { top: 11rem; }
	.top-lead-list li { font-size: 1.6rem; line-height: 1.9; }

	/* 右上の飾り背景 */
	#container::before { width: 20rem; height: 18rem; }

	/* 1行が長くなりすぎる本文の抑制 */
	.top-about-inner,
	.top-mission-text,
	.footer-bottom-inner { max-width: 62rem; margin-inline: auto; }

	/* 下固定フッター */
	body { padding-bottom: 6rem; }
	.sp-fixed-footer { height: 6rem; grid-template-columns: 1fr 1fr 6.4rem; }
	.sp-fixed-footer__item { height: 6rem; }
	
	/* SERVICEセクションの改行をSP同様に解除 */
	.top-service br.pc-block {
		display: none;
	}
	.footer-contact-inner {
		aspect-ratio: auto;        /* 幅に連動した高さ縮小をやめる */
		padding-bottom: 8rem;      /* 元11.7rem相当→タブレットで実質広めに確保 */
	}

	.footer-contact-pill,
	.footer-contact-btn--mail,
	.footer-contact-btn--line {
		margin-bottom: 3rem;       /* ボタン自体の下にも余白を追加 */
	}

	.footer-shop-info-inner {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		column-gap: 4rem;      /* 15rem → 4rem に縮小 */
		width: calc(100% - 4rem);
	}
	.footer-shop-info-item {
		min-width: 0;
	}
}

@media screen and (max-width: 1024px) and (orientation: portrait) {
	br.pc-block {
		display: none !important;
	}
}


/* ---------------------------------------------------
	タブレット：フッターナビ 3列
------------------------------------------------------ */
@media screen and (min-width: 768px) and (max-width: 1024px) {
	.f-company-info-inner {
		display: block;
		width: calc(100% - 6rem);
		max-width: 100%;   /* ← 追加：SPの42rem制限を打ち消す */
		margin: 0 auto;    /* ← 追加：明示しておく */
		padding: 6rem 0 5rem;
	}

	.f-company-logo {
		margin: 0 auto 4rem;
	}

	.f-company-nav {
		width: 100%;
		max-width: 100%;
	}

	.f-company-nav-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		column-gap: 2rem;
		row-gap: 2.8rem;
		justify-items: start;
	}

	.f-company-nav-item a {
		grid-template-columns: 2.8rem 1fr;
		column-gap: 1rem;
		width: 100%;
	}

	.f-company-nav-icon,
	.f-company-nav-icon img {
		width: 2.8rem;
		height: 2.8rem;
	}

	.f-company-nav-text strong {
		font-size: 1.6rem;
		letter-spacing: 0.02em;
		white-space: normal;
	}

	.f-company-nav-text em {
		font-size: 1rem;
		letter-spacing: 0.05em;
	}
}

/* ---------------------------------------------------
	タブレット：フッター下部リード文
------------------------------------------------------ */
@media screen and (min-width: 768px) and (max-width: 1024px) {
	.footer-bottom-inner {
		width: calc(100% - 6rem);
		max-width: 100%;
	}

	.footer-bottom-lead {
		font-size: 1.4rem;
		line-height: 1.9;
		letter-spacing: 0;
	}

	.footer-bottom-lead br {
		display: none;
	}
}

/* タブレット（横向き含む）：MISSION・SERVICE本文の改行を解除 */
@media screen and (min-width: 897px) and (max-width: 1366px) and (hover: none) and (pointer: coarse) {
	.top-mission-text br.pc-block,
	.top-service-txt br.pc-block {
		display: none;
	}
}

/* タブレット（縦・横）：店舗住所の［MAP］だけ改行＋住所は折り返さない */
@media screen and (min-width: 768px) and (max-width: 1366px) and (hover: none) and (pointer: coarse) {
	.footer-shop-info-address {
		white-space: nowrap;
	}

	.footer-shop-info-address a {
		display: block;
		width: fit-content;
	}
}

/* ---------------------------------------------------
	トップ：快眠にいがたの想い 897px〜1199px
	写真をグリッド列の幅に収めて本文との重なりを防ぐ
------------------------------------------------------ */
@media screen and (min-width: 897px) and (max-width: 1199px) {
	.top-mission-photo {
		width: 100%;
		max-width: 52.8rem;
	}
}

/* ---------------------------------------------------
	タブレット：フッターナビ 3列を中央寄せ
------------------------------------------------------ */
@media screen and (min-width: 768px) and (max-width: 1024px) {
	.f-company-nav {
		display: flex;
		justify-content: center;
	}

	.f-company-nav-list {
		grid-template-columns: repeat(3, max-content);
		justify-content: center;
		column-gap: 8rem;
	}

	.f-company-nav-item a {
		width: auto;
	}
}

/* ---------------------------------------------------
	SP横向き：レンタルバナー下の余白（店舗情報の波と重ならないように）
------------------------------------------------------ */
@media screen and (max-width: 896px) and (orientation: landscape) {
	.footer-contact {
		margin-bottom: 12rem;   /* 波の高さ 8rem ＋ 余白 4rem */
	}
}

/* ---------------------------------------------------
  固定MENU：開閉時のボタン位置をそろえる
------------------------------------------------------ */
/* 開いている間、消えたスクロールバーの幅だけボタンを左へ */
.fixed-menu-btn.is-open {
	right: var(--sbw, 0px);
}

/* 背面のページが横にずれないように */
body.is-fixed-menu-open {
	padding-right: var(--sbw, 0px);
}

/* パネル内のスクロールバーは非表示（スクロールは可能） */
.fixed-menu-panel,
.fixed-menu-panel__content {
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.fixed-menu-panel::-webkit-scrollbar,
.fixed-menu-panel__content::-webkit-scrollbar {
	display: none;
}

/* ---------------------------------------------------
	お問い合わせ：確認画面のボタン配置
	[戻る][送信] を横並び中央、注意書きはその下中央
------------------------------------------------------ */
.contact-box .form-btn-box--confirm {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 2rem;
}

.contact-box .form-btn-box--confirm .form-btn {
	display: block;
	width: auto;
	max-width: 100%;
	margin: 0;
}

.contact-box .form-btn-box--confirm .btn-cta-orange {
	width: 38rem;
	max-width: 100%;
}

/* 戻る：送信ボタンと同じ高さ・角丸 */
.contact-box .form-btn-box--confirm .btn-large {
	display: block;
	width: 16rem;
	height: 5.9rem;
	padding: 0;
	border: none;
	border-radius: 0.6rem;
	font-size: 1.8rem;
	line-height: 1;
	cursor: pointer;
}

/* 注意書き：ボタンの下で全幅・中央 */
.contact-box .form-btn-box--confirm .form-note {
	width: 100%;
	margin: 0;
	text-align: center;
}

/* SP：送信 → 戻る → 注意書き の縦並び */
@media screen and (max-width: 896px) {
	.contact-box .form-btn-box--confirm {
		flex-direction: column;
		gap: 1.6rem;
	}

	.contact-box .form-btn-box--confirm .form-btn {
		width: 100%;
		max-width: 38rem;
	}

	.contact-box .form-btn-box--confirm .form-btn-send   { order: 1; }
	.contact-box .form-btn-box--confirm .form-btn-return { order: 2; }
	.contact-box .form-btn-box--confirm .form-note       { order: 3; }

	.contact-box .form-btn-box--confirm .btn-cta-orange,
	.contact-box .form-btn-box--confirm .btn-large {
		width: 100%;
	}
}

/* ---------------------------------------------------
	FAQ：開閉後に回答の文字サイズが変わる対策
	（タブレットの文字自動拡大を止める）
------------------------------------------------------ */
.faq-group .faq-content .faq-a,
.faq-group .faq-content .faq-a * {
	max-height: 999999px; /* 高さの上限を付けると、Android Chromeの自動拡大が止まる */
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}