@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');

/*!
 * ress.css • v5.0.2
 * MIT License
 * github.com/filipelinhares/ress
 */
html{-webkit-text-size-adjust:100%;box-sizing:border-box;-moz-tab-size:4;tab-size:4;word-break:normal}*,:after,:before{background-repeat:no-repeat;box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{margin:0;padding:0}hr{color:inherit;height:0;overflow:visible}details,main{display:block}summary{display:list-item}small{font-size:80%}[hidden]{display:none}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}a{background-color:transparent}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}pre{font-size:1em}b,strong{font-weight:bolder}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}iframe{border-style:none}input{border-radius:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}button,select{text-transform:none}[role=button],[type=button],[type=reset],[type=submit],button{cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:1px dotted ButtonText}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,input,select,textarea{background-color:transparent;border-style:none}a:focus,button:focus,input:focus,select:focus,textarea:focus{outline-width:0}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;max-width:100%;white-space:normal}::-webkit-file-upload-button{-webkit-appearance:button;color:inherit;font:inherit}[disabled]{cursor:default}img{border-style:none}progress{vertical-align:baseline}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled=true]{cursor:default}



/*====================================

	----------------------------------
  		Structure
  	----------------------------------

  	0. General
  	1. Header
  	2. Main
  	3. Footer

====================================*/

/*====================================

	0. General

====================================*/
@keyframes fadeIn {
    0% {opacity: 0; }
    100% {opacity: 1; }
}
@-webkit-keyframes fadeIn {
    0% {opacity: 0; }
    100% {opacity: 1; }
}


html { font-size: 62.5%; }
@media screen and (max-width: 767px) {
  html { font-size: 2.34375vw; }
}
body { position: relative; background: #fff; color: #000; font-size: 1.0rem; font-family: "Noto Sans JP", sans-serif; line-height: 1.5; -webkit-animation: fadeIn 1s ease 0s 1 normal; animation: fadeIn 1s ease 0s 1 normal; }

img { height: auto; max-width: 100%; vertical-align: bottom; }
a { color: #000; text-decoration: none; cursor: pointer; }
a:hover { opacity: 0.8; }
input:hover { opacity: 0.8; }
ul, ol { list-style: none; }

@media (min-width: 768px) {
  .spOnly { display: none !important; }
  #page-top { position: fixed; right: 20px; bottom: 20px; z-index: 100; }
  #page-top a { display: block; width: 50px; height: 50px; background: url("../image/icon_gototop.png") no-repeat 0 0 / contain; text-indent:-9999px; }
}
@media (max-width: 767px) {
  .pcOnly { display: none !important; }
  #page-top { position: fixed; right: 3vw; bottom: 3vw; z-index: 100; }
  #page-top a { display: block; width: 6vw; height: 6vw; background: url("../image/icon_gototop.png") no-repeat 0 0 / contain; text-indent:-9999px; }
}


/*====================================

	1. Header

====================================*/
@media (min-width: 768px) {
  header { position: relative; margin: 0 auto; min-width: 1100px; font-size: 1.6rem; line-height: 1; overflow: hidden; display: block; }
  header p.description { background: #f1efea; text-align: right; padding: 10px; font-size: 1.4rem; }
  header h1 { float: left; width: 130px; padding: 5px 0 0 15px; }
  header h1 img { width: 70px; height: auto; }
  header nav { float: left; margin-top: 30px; }
  header nav ul { display: flex; }
  header nav ul li { margin-right: 25px; font-weight: 500; }
  header address { float: right; background: #81ae92 url("../image/bg_address.png"); font-style: normal; font-size: 1.2rem; font-family: "Noto Serif JP", serif; }
  header address a { display: block; color: #fff; text-decoration: none; border: 2px solid #81ae92; }
  header address dl { border: 1px solid #abc9b7; padding: 5px 60px 5px 10px; background: url("../image/parts_leaf.svg") no-repeat 97% 50% / 48px auto; }
  header address dt { font-size: 1.4rem; margin-bottom: 5px; }
  header address dd { font-size: 3rem; }
  header address dd span { font-size: 1.2rem; display: block; margin-top: 5px; }
}
@media (max-width: 767px) {
  header { position: relative; height: 17vw; border-bottom: 1px solid #e2e1d9; }
  header p.description { display: none; }
  header h1 { float: left; margin: 1.5vw 0 0 4vw; }
  header h1 img { margin-right: 5vw; width: auto; height: 14vw; }
  header p.copy { padding: 5vw 0 0; font-weight: bold; font-size: 1.2rem; }
  #panel-btn { position: absolute; top: 2vw; right: 2vw; z-index: 2000; display: inline-block; padding: 3.7vw; width: 12vw; height: 12vw; border-radius: 1vw; background: #918C86; text-indent: -9999px; } 
  #panel-btn.cls { background: #ffffff; }
  #panel-btn-icon { position: absolute; top: 0; bottom: 0; left: 0; right: 0; display: block; margin: auto; width: 6vw; height: 0.4vw; background: #ffffff; transition: .2s; } 
  #panel-btn-icon::before,
  #panel-btn-icon::after { position: absolute; top: 50%; left: 0; display: block; width: 6vw; height: 0.4vw; background: #ffffff; content: ""; transition: .3s; } 
  #panel-btn-icon::before { margin-top: -2.4vw; }
  #panel-btn-icon::after { margin-top: 2vw; } 
  #panel-btn .close { background: transparent; }
  #panel-btn .close::before,
  #panel-btn .close::after { margin-top: 0; } 
  #panel-btn .close::before { -webkit-transform: rotate(-45deg); transform: rotate(-45deg); } 
  #panel-btn .close::after { -webkit-transform: rotate(-135deg); transform: rotate(-135deg); } 
  .gnav { position: absolute; top: 17vw; z-index: 1000; display: none; width: 100%; background: #F0EEE9; box-shadow: 0 0 3px rgba(0,0,0,0.2); }
  .gnav nav li { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; border-bottom: 1px solid #e2e1d9; }
  .gnav nav li a { position: relative; display: block; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 3vw 5vw 3vw 10vw; color: #231815; vertical-align: middle; text-decoration: none; }
  .gnav nav ul a:before { position: absolute; top: 50%; left: 5vw; margin-top: -5px; border-top: 4px solid transparent; border-bottom: 4px solid transparent; border-left: 8px solid #918C86; content: ""; }
  .gnav nav li span { position: relative; display: block; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 3vw 5vw 3vw 10vw; color: #999; vertical-align: middle; text-decoration: none; }
  .gnav nav ul span:before { position: absolute; top: 50%; left: 5vw; margin-top: -5px; border-top: 4px solid transparent; border-bottom: 4px solid transparent; border-left: 8px solid #8fd0e3; content: ""; }
  header address { background: #81ae92 url("../image/bg_address.png"); font-style: normal; font-family: "Noto Serif JP", serif; }
  header address a { display: block; color: #fff; text-decoration: none; border: 2px solid #81ae92; }
  header address dl { border: 1px solid #abc9b7; padding: 2vw; background: url("../image/parts_leaf.svg") no-repeat 97% 50% / 12vw auto; }
  header address dt { font-size: 3vw; margin-bottom: 1vw; }
  header address dd { font-size: 6vw; }
  header address dd span { font-size: 3vw; display: block; margin-top: 5px; }
}


/*====================================

  3. Footer

====================================*/
@media (min-width: 768px) {
  footer { display: block; overflow: hidden; margin: 50px 0 0; padding: 20px calc(50% - 500px); background: #e2e1d9; border-top: 20px solid #f1efea; font-size: 1.4rem; line-height: 1; }
  footer dl { padding-left: 90px; background: url("../image/logo.svg") no-repeat 0 0 / 65px auto; }
  footer dt { font-weight: 600; }
  footer dd { margin-top: 10px; line-height: 1.4; }
  footer ul { text-align: right; display: flex; -webkit-justify-content: flex-end; justify-content: flex-end; margin-bottom: 45px; float: right; }
  footer ul li { padding-right: 15px; margin-right: 15px; border-right: 1px solid #333; }
  footer ul li:last-child { margin: 0; padding: 0; border: none; }
  footer p { text-align: right; margin-top: -1em; }
}
@media (max-width: 767px) {
  footer { display: block; overflow: hidden; margin: 8vw auto 0; line-height: 1; }
  footer dl {padding: 5vw 5vw 5vw 23vw; background: #e2e1d9 url("../image/logo.svg") no-repeat 3vw 5vw / 17vw auto; border-top: 5vw solid #f1efea; }
  footer dt { margin-bottom: 3vw; font-weight: bold; }
  footer dt span { display: block; font-weight: normal; }
  footer dd { font-size: 3.5vw; line-height: 1.2; }
  footer ul { -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; flex-wrap: wrap; border-top: 1px solid #e2e1d9; }
  footer ul a { display: block; width: 33vw; text-align: center; padding: 3vw 0; border-right: 1px solid #e2e1d9; font-size: 3vw; }
  footer ul li:nth-child(3) a { border-right: none; }
  footer ul li:last-child a { border-right: none; width: 100vw; border-top: 1px solid #e2e1d9; }
  footer p { background: #e2e1d9; padding-bottom: 5vw; text-align: center; font-size: 3.5vw; }
}


/*====================================

	3. Main

====================================*/
main { margin: 0 auto; min-width: 1000px; background: #fff; font-size: 1.6rem; line-height: 1.6; }
@media (max-width: 767px) {
  main { min-width: auto; font-weight: 300; }
}

.pageTitle { background: url("../image/bg_pagetitle.png") no-repeat 50% 50% / cover; padding: 40px 0; line-height: 1.2; margin-bottom: 50px; }
.pageTitle span { display: block; padding: 15px; text-align: center; font-size: 3.6rem; font-weight: 500; background: rgba(255,255,255,0.60); }
.pageTitle em { font-style: normal; font-size: 1.8rem; display: block; }
@media (max-width: 767px) {
  .pageTitle { background: url("../image/bg_pagetitle.png") no-repeat 100% 50% / cover; padding: 8vw 0; margin-bottom: 10vw; }
  .pageTitle span { padding: 8vw 0; font-size: 6vw; }
  .pageTitle em { font-size: 4vw; }
}

.pageSubTitle { text-align: center; font-size: 2.4rem; font-weight: 500; line-height: 1.2; margin-bottom: 40px; position: relative; }
.pageSubTitle span { display: inline-block; margin-top: 5px; font-size: 1.8rem; }
@media (max-width: 767px) {
  .pageSubTitle { font-size: 5vw; margin-bottom: 7vw; }
  .pageSubTitle span { margin-top: 2vw; font-size: 3.5vw; }
}

.pageSubTitle.shampoo { padding-top: 65px; background: url("../image/icon06.svg") no-repeat 50% 0 / 50px auto; }
.pageSubTitle.trimming { padding-top: 70px; background: url("../image/icon07.svg") no-repeat 50% 0 / 63px auto; }
.pageSubTitle.grooming { padding-top: 65px; background: url("../image/icon08.svg") no-repeat 50% 0 / 59px auto; }
.pageSubTitle.option { padding-top: 70px; background: url("../image/icon09.svg") no-repeat 50% 0 / 57px auto; }
.pageSubTitle.service { padding-top: 70px; background: url("../image/icon10.svg") no-repeat 50% 0 / 60px auto; }
.pageSubTitle.andmore { padding-top: 70px; background: url("../image/icon16.svg") no-repeat 50% 0 / 40px auto; }
.pageSubTitle.hotel { padding-top: 65px; background: url("../image/icon02.svg") no-repeat 50% 0 / 58px auto; }
.pageSubTitle.entrust { padding-top: 50px; background: url("../image/icon17.svg") no-repeat 50% 0 / 59px auto; }
.pageSubTitle.training { padding-top: 55px; background: url("../image/icon03.svg") no-repeat 50% 0 / 89px auto; }
.pageSubTitle.trainer { padding-top: 70px; background: url("../image/icon04.svg") no-repeat 50% 0 / 60px auto; }
.pageSubTitle.ozone { padding-top: 70px; background: url("../image/icon20.svg") no-repeat 50% 0 / 65px auto; }
.pageSubTitle.ozonePower { padding-top: 85px; background: url("../image/icon12.svg") no-repeat 50% 0 / 30px auto; }
.pageSubTitle.price { padding-top: 70px; background: url("../image/icon18.svg") no-repeat 50% 0 / 67px auto; }
.pageSubTitle.bath { padding-top: 65px; background: url("../image/icon05.svg") no-repeat 50% 0 / 67px auto; }
.pageSubTitle.map { padding-top: 65px; background: url("../image/icon19.svg") no-repeat 50% 0 / 60px auto; }
@media (max-width: 767px) {
  .pageSubTitle.shampoo { padding-top: 17vw; background: url("../image/icon06.svg") no-repeat 50% 0 / 14vw auto; }
  .pageSubTitle.trimming { padding-top: 18vw; background: url("../image/icon07.svg") no-repeat 50% 0 / 15vw auto; }
  .pageSubTitle.grooming { padding-top: 17vw; background: url("../image/icon08.svg") no-repeat 50% 0 / 15vw auto; }
  .pageSubTitle.option { padding-top: 18vw; background: url("../image/icon09.svg") no-repeat 50% 0 / 14vw auto; }
  .pageSubTitle.service { padding-top: 16vw; background: url("../image/icon10.svg") no-repeat 50% 0 / 14vw auto; }
  .pageSubTitle.andmore { padding-top: 18vw; background: url("../image/icon16.svg") no-repeat 50% 0 / 11vw auto; }
  .pageSubTitle.hotel { padding-top: 17vw; background: url("../image/icon02.svg") no-repeat 50% 0 / 15vw auto; }
  .pageSubTitle.entrust { padding-top: 14vw; background: url("../image/icon17.svg") no-repeat 50% 0 / 15vw auto; }
  .pageSubTitle.training { padding-top: 13vw; background: url("../image/icon03.svg") no-repeat 50% 0 / 20vw auto; }
  .pageSubTitle.trainer { padding-top: 17vw; background: url("../image/icon04.svg") no-repeat 50% 0 / 15vw auto; }
  .pageSubTitle.ozone { padding-top: 17vw; background: url("../image/icon20.svg") no-repeat 50% 0 / 15vw auto; }
  .pageSubTitle.ozonePower { padding-top: 18vw; background: url("../image/icon12.svg") no-repeat 50% 0 / 6vw auto; }
  .pageSubTitle.price { padding-top: 17vw; background: url("../image/icon18.svg") no-repeat 50% 0 / 15vw auto; }
  .pageSubTitle.bath { padding-top: 17vw; background: url("../image/icon05.svg") no-repeat 50% 0 / 16vw auto; }
  .pageSubTitle.map { padding-top: 17vw; background: url("../image/icon19.svg") no-repeat 50% 0 / 14vw auto; }
}

p.copy { text-align: center; font-size: 2.4rem; margin-bottom: 40px; color: #666; font-weight: 600; }
@media (max-width: 767px) {
  p.copy { font-size: 5vw; margin-bottom: 7vw; }
}
.c-notes { font-size: 85%; }


/*----------------------
	3-1. top page
----------------------*/
.topInfo { margin: 40px auto; max-width: 1000px; }
.topInfo dl { border: 1px solid #b9b4a9; padding: 20px 20px 20px 165px; display: grid; grid-template-columns: 100px 1fr; gap: 5px; position: relative; }
.topInfo dl::before { position: absolute; content: ""; width: 50px; height: 50px; top: 30px; left: 60px; background: url("../image/icon01.svg") no-repeat 0 0 / contain; }
.topInfo dt { font-weight: 600; }
.topInfo ul { display: grid; margin-top: 20px; gap: 20px; }
.topInfo li { font-size: 1.4rem; position: relative; padding-left: 45px; }
.topInfo li::before { position: absolute; content: ""; width: 30px; height: 30px; top: 5px; left: 5px; }
.topInfo .reservation::before { background: url("../image/icon22.svg") no-repeat center / contain; }
.topInfo .vaccine::before { background: url("../image/icon23.svg") no-repeat center / contain; }
.topInfo .swing { margin-top: -80px; margin-left: 850px; width: 150px; height: 107px; animation-duration: 4s; animation-fill-mode: both; animation-iteration-count:infinite; transform-origin: top center; animation-name: swing; }
.topInfo .swing img { width: 150px; }
@keyframes swing { 
  20% { transform: rotate(15deg); } 
  40% { transform: rotate(-10deg); } 
  60% { transform: rotate(5deg); } 
  80% { transform: rotate(-5deg); } 
  100% { transform: rotate(0deg); } 
}
@media (max-width: 767px) {
  .topInfo { margin: 5vw 4vw 0; }
  .topInfo dl { border: 0.2vw solid #b9b4a9; padding: 18vw 3vw 3vw; display: grid; grid-template-columns: 22vw 1fr; gap: 3vw; position: relative; }
  .topInfo dl::before { width: 10vw; height: 10vw; top: 4vw; left: 0; right: 0; margin: auto; }
  .topInfo ul { margin-top: 3vw; gap: 2vw; }
  .topInfo li { padding-left: 10vw; }
  .topInfo li::before { position: absolute; content: ""; width: 7vw; height: 7vw; top: 1vw; left: 1vw; }
  .topInfo li:last-child { padding-right: 30vw; }
  .topInfo .swing { margin-top: -19vw; margin-left: 67vw; width: 25vw; height: 21.4vw; }
}

.topNav { margin: 35px auto 0; max-width: 1000px; }
.topNav ul { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 15px 12px; }
@media (max-width: 767px) {
  .topNav { margin: 3vw 4vw 0; max-width: 1000px; }
  .topNav ul { gap: 2vw; justify-content: center; }
  .topNav li:nth-child(1),
  .topNav li:nth-child(2) { width: 92vw; }
  .topNav li:nth-child(3),
  .topNav li:nth-child(4),
  .topNav li:nth-child(5),
  .topNav li:nth-child(6) { width: 45vw; }
}


/*----------------------
	3-2. page
----------------------*/
.aboutBlock { max-width: 800px; margin: 0 auto 50px; }
.aboutBlock p { margin-bottom: 1em; }
.aboutBlock .more { margin-top: 20px; text-align: center; }
.aboutBlock .more a { background: #b9b4a9; color: #fff; display: inline-block; padding: 10px; min-width: 250px; position: relative; border: 3px double rgba(252,252,252,0.60); }
.aboutBlock .more a:after { background: #fff; bottom: 0; clip-path: polygon(0 0, 0 100% , 100% 50%); content: ""; height: 12px; margin: auto; position: absolute; right: 20px; top: 0; width: 10px; }
@media (max-width: 767px) {
  .aboutBlock { margin: 0 4vw 7vw; }
  .aboutBlock .more { margin-top: 5vw; }
  .aboutBlock .more a { padding: 3vw; min-width: 65vw; }
  .aboutBlock .more a::after { width: 10px; height: 10px; top: 50%; right: 20px; margin-top: -5px; border: 4px solid transparent; border-left: 6px solid #fff; content: ""; }
}

.trimmingBlock { margin: 0 auto 40px; max-width: 800px; display: grid; grid-template-columns: 280px 1fr; }
.trimmingBlock__text { display: grid; gap: 10px; align-items: flex-start; }
.trimmingBlock ul { display: flex; flex-wrap: wrap; gap: 5px 40px; }
.trimmingBlock li { padding-left: 1em; position: relative; }
.trimmingBlock li::before { content: "・"; position: absolute; left: 0; }
@media (max-width: 767px) {
  .trimmingBlock { margin: 0 4vw 7vw; grid-template-columns: 1fr; gap: 5vw; }
  .trimmingBlock__text { gap: 2vw; }
  .trimmingBlock ul { gap: 1vw 5vw; }
  .trimmingBlock figure { text-align: center; }
  .trimmingBlock figure img { width: 50vw; height: auto; }
}

.optionList { margin: 0 auto 40px; max-width: 1000px; }
.optionList ul { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.optionList ul li { border: 1px solid #aeab99; padding: 15px; font-size: 1.4rem; }
.optionList figure { display: block; margin-bottom: 15px; text-align: center; }
.optionList dt { font-weight: 600; text-align: center; margin-bottom: 10px; }
@media (max-width: 767px) {
  .optionList { margin: 0 4vw 7vw; }
  .optionList ul { grid-template-columns: repeat(2, 1fr); gap: 3vw; }
  .optionList ul li { border: 0.2vw solid #aeab99; padding: 2vw; }
  .optionList figure { display: block; margin-bottom: 2vw; }
  .optionList dt { margin-bottom: 1vw; }
}

.serviceBlock { margin: 0 auto 60px; max-width: 1000px; display: grid; align-items: self-start; grid-template-columns: repeat(2, 1fr); gap: 30px 20px; }
.serviceBlock dt { border-bottom: 1px solid #827942; padding: 8px 0 8px 45px; font-size: 1.8rem; position: relative; }
.serviceBlock dt::before { content: ""; position: absolute; width: 35px; height: 35px; top: 0; bottom: 0; left: 0; margin: auto; }
.serviceBlock dd { margin: 15px 20px 0; font-size: 1.4rem; }
.serviceBlock dd figure { float: right; }
.serviceBlock dd em { color: #ff4848; font-style: normal; }
.serviceBlock p { font-size: 1.4rem; border: 3px solid #ff4848; color: #ff4848; padding: 15px 0; text-align: center; }
.serviceBlock .service:before { background: url("../image/icon13.svg") no-repeat center / contain; }
.serviceBlock .multiple:before { background: url("../image/icon15.svg") no-repeat center / contain; }
.serviceBlock .discount:before { background: url("../image/icon10.svg") no-repeat center / contain; }
.serviceBlock .card:before { background: url("../image/icon14.svg") no-repeat center / contain; }
@media (max-width: 767px) {
  .serviceBlock { margin: 0 4vw 7vw; grid-template-columns: 1fr; gap: 5vw; }
  .serviceBlock dt { border-bottom: 0.2vw solid #827942; padding: 2vw 0 3vw 10vw; }
  .serviceBlock dt::before { content: ""; position: absolute; width: 8vw; height: 8vw; top: 0; bottom: 0; left: 0; margin: auto; }
  .serviceBlock dd { margin: 2vw 3vw 0; }
  .serviceBlock dd figure { float: none; display: block; margin-bottom: 2vw; }
  .serviceBlock p { border: 0.6vw solid #ff4848; padding: 2vw; }
}

.andmoreBlock { margin: 0 auto 20px; max-width: 720px; }
.andmoreBlock figure { margin-bottom: 30px; display: flex; justify-content: center; gap: 30px; }
.andmoreBlock p { font-size: 1.4rem; }
@media (max-width: 767px) {
  .andmoreBlock { margin: 0 4vw 7vw; }
  .andmoreBlock figure { margin-bottom: 2vw; display: grid; grid-template-columns: repeat(2, 1fr); gap: 3vw; }
}

.hotelBlock { margin: 0 auto 40px; max-width: 800px; display: grid; grid-template-columns: 220px 1fr; gap: 60px; }
.hotelBlock__text { display: grid; gap: 10px; }
.hotelBlock li { padding-left: 1em; position: relative; }
.hotelBlock li::before { content: "・"; position: absolute; left: 0; }
.hotelBlock dl { background: #ebf4f2; padding: 15px; font-size: 1.2rem; }
.hotelBlock dt { font-weight: 600; }
@media (max-width: 767px) {
  .hotelBlock { margin: 0 4vw 7vw; grid-template-columns: 1fr; gap: 3vw; }
  .hotelBlock__text { display: grid; gap: 2vw; }
  .hotelBlock figure { text-align: center; }
  .hotelBlock figure img { width: 40vw; height: auto; }
  .hotelBlock dl { padding: 3vw; }
}

.trainingBlock { max-width: 760px; margin: 0 auto 40px; }
.trainingBlock h3 { text-align: center; margin-bottom: 40px; font-size: 1.8rem; }
.trainingBlock p { margin-bottom: 1em; }
@media (max-width: 767px) {
  .trainingBlock { margin: 0 4vw 7vw; }
  .trainingBlock h3 { margin-bottom: 7vw; }
}

.trainerBlock { max-width: 760px; margin: 0 auto 40px; }
.trainerBlock dl.female { border: 3px solid #d4e7e3; margin-bottom: 40px; padding: 30px 30px 30px 215px; background: url("../image/icon11.svg") no-repeat 60px 50% / 97px auto; }
.trainerBlock dt { margin-bottom: 10px; font-weight: 600; }
@media (max-width: 767px) {
  .trainerBlock { margin: 0 4vw 7vw; }
  .trainerBlock dl.female { border: 0.6vw solid #d4e7e3; margin-bottom: 5vw; padding: 24vw 3vw 3vw; background: url("../image/icon11.svg") no-repeat 38vw 3vw / 14vw auto; }
  .trainerBlock dt { margin-bottom: 2vw; }
}

.ozoneBlock { max-width: 760px; margin: 0 auto 40px; }
.ozoneBlock h3 { text-align: center; margin-bottom: 40px; font-size: 1.8rem; }
.ozoneBlock p { margin-bottom: 1em; }
.ozoneBlock figure { display: block; text-align: center; margin: 30px 0; }
@media (max-width: 767px) {
  .ozoneBlock { margin: 0 4vw 7vw; }
  .ozoneBlock h3 { margin-bottom: 7vw; }
  .ozoneBlock figure { margin: 5vw 0; }
}

.ozonePowerBlock { max-width: 1000px; margin: 0 auto 40px; }
.ozonePowerBlock ol { display: grid; grid-template-columns: repeat(5, 1fr); }
.ozonePowerBlock ol li { width: 190px; height: 190px; border-radius: 50%; text-align: center; border: 1px solid #c0ccca; color: #666; position: relative; }
.ozonePowerBlock li::before { position: absolute; top: 10px; left: 0; right: 0; margin: auto; color: #ff4848; font-size: 3rem; font-weight: 600; }
.ozonePowerBlock li:nth-child(1)::before { content: "1"; }
.ozonePowerBlock li:nth-child(2)::before { content: "2"; }
.ozonePowerBlock li:nth-child(3)::before { content: "3"; }
.ozonePowerBlock li:nth-child(4)::before { content: "4"; }
.ozonePowerBlock li:nth-child(5)::before { content: "5"; }
.ozonePowerBlock dl { margin-top: 50px; }
.ozonePowerBlock dt { font-size: 1.8rem; font-weight: 600; margin-bottom: 5px; }
.ozonePowerBlock dd { font-size: 1.4rem; line-height: 1.2; }
@media (max-width: 767px) {
  .ozonePowerBlock { margin: 0 4vw 7vw; }
  .ozonePowerBlock ol { grid-template-columns: repeat(2, 1fr); gap: 4vw; }
  .ozonePowerBlock ol li { width: 44vw; height: 44vw; border: 0.2vw solid #c0ccca; }
  .ozonePowerBlock li::before { top: 2vw; }
  .ozonePowerBlock dl { margin-top: 11vw; }
  .ozonePowerBlock dt { margin-bottom: 2vw; }
}

.priceBlock { max-width: 1000px; margin: 0 auto 40px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.priceBlock table { width: 100%; border-collapse: collapse; margin-bottom: 5px; }
.priceBlock caption { text-align: left; font-size: 1.8rem; margin-bottom: 10px; padding-left: 35px; position: relative; }
.priceBlock caption::before { position: absolute; content: ""; top: 0; bottom: 0; left: 0; margin: auto; width: 30px; height: 30px; }
.priceBlock th,
.priceBlock td { border: 1px solid #918D86; padding: 10px; }
.priceBlock thead th { background: #d4e7e3; font-size: 1.4rem; }
.priceBlock tbody th { text-align: left; font-weight: normal; }
.priceBlock td { text-align: center; }
.priceBlock em { font-size: 1.2rem; font-style: normal; }
.priceBlock p.notice { margin-bottom: 50px; font-size: 1.2rem; }
.priceBlock caption.shampoo::before { background: url("../image/icon06.svg") no-repeat center / contain; }
.priceBlock caption.trimming::before { background: url("../image/icon08.svg") no-repeat center / contain; }
.priceBlock caption.option::before { background: url("../image/icon09.svg") no-repeat center / contain; }
.priceBlock caption.hotel::before { background: url("../image/icon02.svg") no-repeat center / contain; }
@media (max-width: 767px) {
  .priceBlock { margin: 0 4vw 7vw; grid-template-columns: 1fr; }
  .priceBlock table { margin-bottom: 3vw; }
  .priceBlock caption { padding-left: 8vw; }
  .priceBlock caption::before { width: 7vw; height: 7vw; }
  .priceBlock thead th { font-size: 2.8vw; }
  .priceBlock th,
  .priceBlock td { border: 0.2vw solid #918D86; padding: 2vw; font-size: 3.125vw; }
  .priceBlock em { font-size: 3vw; }
  .priceBlock p.notice { margin-bottom: 6vw; font-size: 3vw; }
  .priceBlock .colS { width: 20vw; }
  .priceBlock .colM { width: 35vw; }
}

.mapBlock { max-width: 800px; margin: 0 auto 50px; }
.mapBlock h3 { text-align: center; margin-bottom: 40px; font-size: 1.8rem; }
.mapBlock p { margin: 1em 0; }
@media (max-width: 767px) {
  .mapBlock { margin: 0 4vw 7vw; }
  .mapBlock h3 { text-align: center; margin-bottom: 7vw; }
  .mapBlock iframe { width: 92vw; height: 50vw; }
}

.privacyBlock { margin: 0 auto 50px; max-width: 900px; }
.privacyBlock h2 { text-align: center; font-weight: normal; border-bottom: 2px solid #eee; margin-bottom: 30px; padding-bottom: 10px; }
.privacyBlock p.sign { text-align: right; line-height: 1.8; }
.privacyBlock p.sign img { width: 110px; height: auto; }
.privacyBlock ul { margin-bottom: 4em; }
.privacyBlock ul > li { padding-left: 1em; position: relative; }
.privacyBlock ul > li::before { content: "・"; position: absolute; left: 0; }
.privacyBlock ol { margin: 2em 0 2em 1em; list-style: decimal; }
.privacyBlock ol > li { margin-bottom: 1.5em; }
.privacyBlock dt { font-weight: bold; }
@media (max-width: 767px) {
  .privacyBlock { margin: 0 4vw 7vw; }
  .privacyBlock p.sign img { width: 25vw; }
}

.companyBlock { max-width: 800px; margin: 0 auto 50px; }
.companyBlock table { border-top: 1px solid #c0ccca; border-collapse: collapse; margin-bottom: 80px; width: 100%; }
.companyBlock th { border-bottom: 1px solid #c0ccca; padding: 15px 10px 15px 20px; text-align: left; vertical-align: top; width: 260px; }
.companyBlock td { border-bottom: 1px solid #c0ccca; padding: 15px 0; }
@media (max-width: 767px) {
  .companyBlock { margin: 0 4vw 7vw; }
  .companyBlock table { border-top: 0.2vw solid #c0ccca;  margin-bottom: 0; }
  .companyBlock th { display: block; border-bottom: none; padding: 3vw 0 0; width: auto; }
  .companyBlock td { display: block; border-bottom: 0.2vw solid #c0ccca; padding: 2vw 0 3vw; }
}

.postBlock { margin: 0 auto 75px; max-width: 700px; }
.postBlock time { color: #666; }
.postBlock h2 { font-size: 2.4rem; margin-bottom: 30px; }
.postBlock article p,
.postBlock article ul,
.postBlock article ol,
.postBlock article blockquote { margin-bottom: 1em; }
.postBlock article strong { font-weight: bold; }
.postBlock article blockquote { border-left: 5px solid #d5d5d5; padding-left: 10px; }
.postBlock article ul { margin-left: 1em; list-style: disc; }
.postBlock article ol { margin-left: 1em; list-style: decimal; }
@media (max-width: 767px) {
  .postBlock { margin: 0 4vw 10vw; }
  .postBlock h2 { margin-bottom: 10vw; }
  .postBlock article blockquote { border-left: 1vw solid #d5d5d5; padding-left: 2vw; }
}

.contactBlock { margin: 0 auto; width: 1000px; min-height: 300px; }
.contactBlock .fsL { font-size: 2.4rem; }
.contactBlock span.required { display: inline-block; margin-left: 7px; padding: 1px 10px; background: #d12b2b; color: #fff; font-size: 1.2rem; }
.contactBlock p { margin-bottom: 40px; }
.contactBlock table { margin-bottom: 45px; width: 100%; border-collapse: collapse; border-top: 1px solid #a0a0a0; }
.contactBlock th,
.contactBlock td { border-bottom: 1px solid #a0a0a0; }
.contactBlock th { padding: 22px 0; width: 240px; text-align: left; font-weight: normal; vertical-align: top; }
.contactBlock td { padding: 15px 0; }
.contactBlock input[type="text"],
.contactBlock input[type="email"],
.contactBlock input[type="tel"] { padding: 3px; width: 440px; border: 1px solid #a9a9a9; background: #fff; }
.contactBlock input[type="number"] { padding: 3px; width: 200px; border: 1px solid #a9a9a9; background: #fff; }
.contactBlock input[type="radio"] { margin-right: 5px; }
.contactBlock input::-webkit-input-placeholder { color: #aaa; }
.contactBlock input:-moz-placeholder,
.contactBlock input::-moz-placeholder{ color: #aaa; opacity: 1; }
.contactBlock input:-ms-input-placeholder { color: #aaa; }
.contactBlock input:placeholder-shown { color: #aaa; }
.contactBlock input[type="number"]::-webkit-outer-spin-button,
.contactBlock input[type="number"]::-webkit-inner-spin-button { margin: 0; -webkit-appearance: none; }
.contactBlock input[type="number"] { -moz-appearance:textfield; }
.contactBlock textarea { padding: 3px; width: 100%; height: 10em; border: 1px solid #a9a9a9; background: #fff; }
.contactBlock label { display: inline-block; margin-right: 15px; }
.contactBlock span.notice { margin-left: 20px; }
.contactBlock select { margin-bottom: 5px; padding: 3px; width: 200px; border: 1px solid #a9a9a9; background: #fff url("/assets/image/icon_select.png") no-repeat 175px 50%; }
.contactBlock div.btn { text-align: center; }
.contactBlock div.btn input { display: inline-block; margin: 0 10px; padding: 10px 0; width: 240px; border-radius: 30px; background: #d12b2b; color: #fff; text-align: center; font-size: 2.2rem; cursor: pointer; }
.contactBlock div.btn a { display: inline-block; margin: 0 10px; padding: 9px 0; width: 240px; border: 1px solid #1792d2; border-radius: 30px; background: #fff; color: #1792d2; text-align: center; font-size: 2.2rem; cursor: pointer; }
.contactComplete { margin: 0 auto 75px; padding: 55px 80px; width: 1000px; border-radius: 40px; text-align: center; }
.contactComplete dt { margin-bottom: 35px; font-size: 1.8rem; line-height: 1.6; font-weight: bold; }
@media (max-width: 767px) {
  .contactBlock { margin: 0 4vw 10vw; min-height: 36vw; }
  .contactBlock .fsL { font-size: 5vw; }
  .contactBlock span.required { display: inline-block; margin-left: 7px; padding: 1px 7px; background: #d12b2b; color: #fff; font-size: 3vw; }
  .contactBlock p { margin-bottom: 1.5em; }
  .contactBlock table { margin-bottom: 8vw; width: 100%; border-collapse: collapse; border-top: 1px solid #a0a0a0; }
  .contactBlock th,
  .contactBlock td { display: block; }
  .contactBlock th { padding-top: 3vw; text-align: left; }
  .contactBlock td {  margin-top: 3vw; padding-bottom: 3vw; border-bottom: 1px solid #a0a0a0; }
  .contactBlock input[type=text],
  .contactBlock input[type=email],
  .contactBlock input[type=tel],
  .contactBlock input[type=number] { padding: 3px; width: 100%; border: 1px solid #a9a9a9; background: #fff; }
  .contactBlock input[type=radio] { margin-right: 5px; }
  .contactBlock textarea { padding: 3px; width: 100%; height: 5em; border: 1px solid #a9a9a9; background: #fff; }
  .contactBlock label { display: inline-block; margin-right: 15px; }
  .contactBlock span.notice { display: block; font-size: 2.5vw; }
  .contactBlock select { margin-bottom: 5px; padding: 3px; width: 60vw; border: 1px solid #a9a9a9; background: #fff url(/pharmacy/common/img/icon_select.png) no-repeat 54vw 50%; }
  .contactBlock div.btn { text-align: center; }
  .contactBlock div.btn input { display: inline-block; margin: 0 10px; padding: 2vw 0; width: 50vw; border-radius: 1.5em; background: #d12b2b; color: #fff; text-align: center; font-size: 5vw; }
  .contactBlock div.btn a { display: inline-block; margin: 0 10px; padding: 1.7vw 0; width: 31vw; border: 1px solid #1792d2; border-radius: 1em; background: #fff; color: #1792d2; text-align: center; font-size: 5vw; }
  .contactComplete { margin: 0 4vw 8vw; padding: 7vw 5vw; border-radius: 20px; text-align: center; }
  .contactComplete dt { margin-bottom: 5vw; font-size: 3.5vw; line-height: 1.6; font-weight: bold; }
}


.sp-slides-container { margin-bottom: 20px; }
@media (max-width: 767px) {
  .sp-slides-container { margin-bottom: 3vw; }
}


