@charset "UTF-8";

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 1.0em;
  font-style: normal;
  font-weight: normal;
  vertical-align: baseline;
  -webkit-text-size-adjust: none;
  box-sizing: border-box;
  text-decoration: none;
}

article, aside, main, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
  content: '';
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

fieldset, img {
  border: 0;
}

address, caption, cite, code, dfn, em, strong, th, var {
  font-style: normal;
  font-weight: normal;
}

ol, ul {
  list-style: none;
}

caption, th {
  text-align: left;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  font-weight: normal;
}

q:before, q:after {
  content: '';
}

abbr, acronym {
  border: 0;
  font-variant: normal;
}

/* to preserve line-height and selector appearance */
sup {
  vertical-align: text-top;
}

sub {
  vertical-align: text-bottom;
}

input, textarea, select {
  margin: 0;
  padding: 0;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
}

a:focus {
  outline: none;
}

/* because legend doesn't inherit in IE */
legend {
  color: #000;
}
@charset "UTF-8";

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

！このファイルは基本的に編集しないでください。
！headerや見出し等のスタイルはlayout.cssに記述してください。

========================================================================== */
body {
  min-width: 1300px;
  color: #333;
  font-family: 'San Fransisco', 'Helvetica', 'Arial', 'Yu Gothic Medium', '游ゴシック Medium', 'YuGothic', '游ゴシック体', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', sans-serif;
  font-size: 14px;
  line-height: 1.5;
}

a {
  color: #333;
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
  image-rendering: -webkit-optimize-contrast;
}

.grecaptcha-badge {
  visibility: hidden;
}

/* clearfix */
.cf::after {
  display: block;
  content: '';
  clear: both;
}

.clear {
  clear: both;
}

/* fade */
.fade {
  transition: 0.3s ease-in-out;
}

.fade:hover {
  opacity: .5;
}

/* link */
.p-link {
  color: var(--link-color);
  text-decoration: underline;
  margin: 0 1px;
  transition: 0.3s ease-in-out;
}

.p-link:hover {
  opacity: .5;
}

/* font */
.gothic {
  font-family: 'San Fransisco', 'Helvetica', 'Arial', 'Yu Gothic Medium', '游ゴシック Medium', 'YuGothic', '游ゴシック体', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', sans-serif;
}

.mincho {
  font-family: 'Times New Roman', 'Noto Serif JP', 'ヒラギノ明朝 ProN', 'Hiragino Mincho ProN', 'YuMincho', 'Yu Mincho', '游明朝体', serif;
}

.jost {
  font-family: 'Jost', sans-serif;
}

/* テキスト */
.bold {
  font-weight: bold;
}

.txt130 {
  font-size: 130%;
}

.txt120 {
  font-size: 120%;
}

.txt110 {
  font-size: 110%;
}

.txt90 {
  font-size: 90%;
}

.txt80 {
  font-size: 80%;
}

.or {
  color: #fc9b2a;
}

.re {
  color: #FF373A;
}

i.fa,
i.fas,
i.far {
  margin-right: 5px;
}

.nowrap {
  white-space: nowrap !important;
}

.underline {
  text-decoration: underline;
}

/* 画像 */
.img-border {
  box-sizing: border-box;
  padding: 3px;
  max-width: 100%;
  border: 1px solid #ccc;
  background-color: #fff;
}

/* object-fit */
.object-fit-img {
  object-fit: contain;
}

.obf-cover {
  object-fit: cover;
}

/* flex */
.flex {
  display: flex;
}

.flex img {
  max-width: 100%;
  height: auto;
}

.fdC {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.between {
  justify-content: space-between;
}

.justC {
  justify-content: center;
}

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

.align-start {
  align-items: flex-start;
}

.align-base {
  align-items: baseline;
}

.fx_grow_1 {
  flex: 1 0 auto;
}

/* align */
.center {
  text-align: center;
}

.alignR {
  text-align: right !important;
}

.alignL {
  text-align: left !important;
}

.vAlignM {
  vertical-align: middle !important;
}

.vAlignT {
  vertical-align: top !important;
}

.vAlignB {
  vertical-align: bottom !important;
}

/* display */
.dispB {
  display: block;
}

.dispI {
  display: inline;
}

.dispFr {
  display: flow-root;
}

/* 余白 */
.p10 {
  padding: 10px;
}

.pt10 {
  padding-top: 10px;
}

.pr10 {
  padding-right: 10px;
}

.pl10 {
  padding-left: 10px;
}

.pb10 {
  padding-bottom: 10px;
}

.mb5 {
  margin-bottom: 5px;
}

.mb10 {
  margin-bottom: 10px;
}

.mb15 {
  margin-bottom: 15px;
}

.mb20 {
  margin-bottom: 20px;
}

.mb30 {
  margin-bottom: 30px;
}

.mb40 {
  margin-bottom: 40px;
}

.mb50 {
  margin-bottom: 50px;
}

.mb60 {
  margin-bottom: 60px;
}

.mt5 {
  margin-top: 5px;
}

.mt10 {
  margin-top: 10px;
}

.mt20 {
  margin-top: 20px;
}

.mt30 {
  margin-top: 30px;
}

.mt40 {
  margin-top: 40px;
}

.mr5 {
  margin-right: 5px;
}

.mr10 {
  margin-right: 10px;
}

.mr15 {
  margin-right: 15px;
}

.mr20 {
  margin-right: 20px;
}

.mr30 {
  margin-right: 30px;
}

.ml5 {
  margin-left: 5px;
}

.ml10 {
  margin-left: 10px;
}

.ml15 {
  margin-left: 15px;
}

.ml20 {
  margin-left: 20px;
}

.ml30 {
  margin-left: 30px;
}

/* 非表示 */
.pc-none {
  display: none !important;
}
@charset "UTF-8";

:root {
  --main-color: #39beb5;
  --sub-color: #b6701e;
  --link-color: #ef83a3;
}

/*
  header
========================================================================== */
header {
  position: relative;
  line-height: 1;
  font-feature-settings: "palt";
}

header .header_lead {
  position: absolute;
  padding-top: max(0.714vw, 9px);
  padding-left: max(1.143vw, 14px);
  font-family: "Noto Sans JP";
  font-size: max(0.893vw, 11px);
  font-weight: 400;
  letter-spacing: .1em;
  text-shadow: 0 0 max(0.714vw, 9px) #fff, 0 0 max(0.714vw, 9px) #fff, 0 0 max(0.714vw, 9px) #fff, 0 0 max(0.714vw, 9px) #fff, 0 0 max(0.714vw, 9px) #fff, 0 0 max(0.714vw, 9px) #fff, 0 0 max(0.714vw, 9px) #fff, 0 0 max(0.714vw, 9px) #fff;
}

.header_logo {
  position: absolute;
  top: max(3.143vw, 40px);
  left: max(2.286vw, 29px);
  z-index: 1;
}

.header_logo img {
  width: max(22vw, 286px);
}

.header_supplement {
  position: absolute;
  top: max(4.643vw, 60px);
  left: max(17.357vw, 225px);
  width: max(20.714vw, 269px);
  height: max(4.286vw, 55px);
  background: url(../images/common/header_supplement_bg.png) left top no-repeat;
  background-size: cover;
}

.header_supplement p {
  font-family: "Noto Sans JP";
  font-size: max(1.083vw, 14px);
  font-weight: 400;
  letter-spacing: .06em;
  color: #fff;
}

.header_supplement p:first-of-type {
  padding-top: max(0.286vw, 3px);
  padding-left: max(5.643vw, 73px);
}

.header_supplement p:last-of-type {
  padding-top: max(1.429vw, 18px);
  padding-left: max(7vw, 91px);
}

/** header_fix_btn **/
.header_fix_btn {
  position: fixed;
  top: 50%;
  right: 0;
  z-index: 999;
  transform: translateY(-50%);
}

.header_fix_btn a {
  display: block;
}

.header_fix_btn a + a {
  margin-top: max(0.286vw, 3px);
}

.header_fix_btn a img {
  width: max(5.714vw, 74px);
}

.header_fix_btn_low {
  position: absolute;
  right: 0;
  top: 0;
  display: flex;
}

.header_fix_btn_low .tel {
  width: max(17.5vw, 227px);
  margin-right: max(1.214vw, 15px);
}

.header_fix_btn_low .tel span {
  display: block;
  text-align: center;
}

.header_fix_btn_low .tel span:nth-of-type(1) {
  padding: max(1.286vw, 16px) 0 max(0.857vw, 11px) max(2.143vw, 27px);
  font-family: 'Noto Sans JP';
  font-size: max(1.191vw, 15px);
  font-weight: 400;
  border-bottom: #444 1px solid;
  background: url(../images/common/header_fix_btn_low_tel.png) left 11px bottom 8px no-repeat;
  background-size: max(1.429vw, 18px);
}

.header_fix_btn_low .tel span:nth-of-type(2) {
  margin-top: max(0.857vw, 11px);
  font-family: 'Times New Roman', Times, serif;
  font-size: max(2.381vw, 30px);
  font-weight: 400;
  font-style: italic;
  letter-spacing: 0.05em;
}

.header_fix_btn_low div {
  font-size: 0;
}

.header_fix_btn_low div a img {
  width: max(8.571vw, 111px);
}

/*
  gnav
========================================================================== */
.gnav {
  width: 100%;
  line-height: 1;
  font-feature-settings: "palt";
}

.gnav ul {
  position: relative;
  display: flex;
  justify-content: center;
  width: 96%;
  margin: max(3.071vw, 39px) auto 0;
}

.gnav ul li {
  border-right: #333 solid 1px;
	width: 100%;
}

.gnav ul li:first-of-type {
  border-left: #2e2e2e solid 1px;
}

.gnav ul li a {
  display: block;
  padding: max(0.714vw, 9px) 0 max(0.571vw, 7px);
  text-align: center;
  font-family: 'Noto Sans JP';
  font-size: max(1.071vw, 13px);
  font-weight: 400;
  letter-spacing: .1em;
}

.gnav ul li:first-of-type a {
  font-size: max(1.143vw, 14px);
}

.gnav li a span {
  display: block;
  margin-top: max(0.714vw, 9px);
  font-family: 'Roboto';
  font-size: max(1.071vw, 13px);
  font-weight: 300;
  color: #ccc;
  letter-spacing: .1em;
}

/*
  footer
========================================================================== */
footer {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  line-height: 1;
  margin-top: max(5vw, 65px);
  background: url(../images/common/footer_bg.jpg) left top no-repeat;
  background-size: cover;
  font-feature-settings: "palt";
}

footer::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 50%;
  height: 100%;
  background-color: #e2a0b3;
  mix-blend-mode: multiply;
}

.ft_left {
  width: 50%;
  padding: max(3.643vw, 47px) max(3.571vw, 46px) 0 max(7.143vw, 92px);
  font-family: 'Noto Serif JP';
  font-weight: 400;
}

.ft_right {
  width: 50%;
  padding: max(5vw, 65px) 0 0 max(3.571vw, 46px);
  font-family: 'Noto Sans JP';
  font-weight: 400;
  color: #fff;
}

.ft_logo img {
  width: max(34.429vw, 447px);
}

.ft_info {
  display: flex;
  justify-content: space-between;
  margin-top: max(2.929vw, 38px);
}

.ft_info .btn {
  position: relative;
  display: block;
  width: max(17.857vw, 232px);
  height: max(5.714vw, 74px);
  line-height: max(5.714vw, 74px);
  padding-left: max(4.571vw, 59px);
  font-size: max(1.488vw, 19px);
  letter-spacing: .05em;
  color: #fff;
  text-decoration: none;
  background: #f29cb5 url(../images/common/footer_icon_web.png) left max(1.286vw, 16px) center no-repeat;
  background-size: max(2.214vw, 28px) auto;
}

.ft_info .btn::before {
  content: "";
  display: block;
  position: absolute;
  pointer-events: none;
  width: max(0.714vw, 9px);
  aspect-ratio: 1 / 1;
  right: max(0.429vw, 5px);
  bottom: max(0.429vw, 5px);
  background-color: #fff;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.ft_info .tel {
  width: max(20vw, 260px);
  height: max(5.786vw, 75px);
  padding-top: max(0.714vw, 9px);
  text-align: center;
  font-size: max(1.205vw, 15px);
  letter-spacing: .08em;
  border-top: #333 solid 1px;
  border-bottom: #333 solid 1px;
}

.ft_info .tel span {
  display: block;
  margin-top: max(0.571vw, 7px);
  padding-left: max(2.143vw, 27px);
  font-size: max(2.381vw, 30px);
  letter-spacing: .05em;
  background: url(../images/common/footer_icon_tel.png) left max(1.071vw, 13px) top max(0.571vw, 7px) no-repeat;
  background-size: max(1.357vw, 17px) auto;
}

.ft_access {
  margin-top: max(1.929vw, 25px);
}

.ft_access p {
  min-height: max(5vw, 65px);
  line-height: 1.6;
  padding-left: max(6.286vw, 81px);
  font-size: max(1.191vw, 15px);
  letter-spacing: .1em;
}

.ft_access .address {
  padding-top: max(0.714vw, 9px);
  background: url(../images/common/footer_icon_address.png) left top no-repeat;
  background-size: max(5vw, 65px);
}

.ft_access .traffic {
  margin-top: max(1.643vw, 21px);
  background: url(../images/common/footer_icon_access.png) left top no-repeat;
  background-size: max(5vw, 65px);
}

.ft_access .traffic span {
  display: block;
}

.ft_bnr {
  width: 100%;
  margin-top: max(2.143vw, 27px);
}

.ft_sns {
  position: relative;
  margin-right: max(7.143vw, 92px);
  text-align: right;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: max(0.857vw, 11px);
}

.ft_sns a {
  display: inline-block;
  width: max(5vw, 65px);
}

.ft_sns img {
  aspect-ratio: 1 / 1;
}

.ft_sns .btn{
  display:inline-flex;
  width: 12em;
  height:max(4.000vw, 52.000px);
  justify-content:center;
  align-items:center;
  text-align:center;
  background-color: #fff;
  color: #f29cb5;
  font-size: max(0.952vw, 12px);
  line-height: 1.5;
  letter-spacing: 0.16em;
  vertical-align: top;
	position: relative;
	margin-right:0.8em;
  margin-left: 0;
}
.ft_sns .btn:after{
	position: absolute;
	content: "";
	width: 0.7em;
	height: 0.7em;
	right: 0.3em;
	bottom: 0.3em;
	background-color: #f29cb5;
	clip-path: polygon(0 100%, 100% 100%, 100% 0);
}
.ft_sns .btn span{
	font-weight: 500;
}
.ft_timetable {
  position: relative;
  margin-top: max(3.429vw, 44px);
  margin-right: max(7.143vw, 92px);
}

.ft_timetable table {
  width: 100%;
  table-layout: fixed;
  border-top: #fff solid 1px;
  border-bottom: #fff solid 1px;
}

.ft_timetable table th,
.ft_timetable table td {
  text-align: center;
  vertical-align: middle;
}

.ft_timetable table thead th {
  width: max(12.571vw, 163px);
  padding: max(0.857vw, 11px) 0;
  font-size: max(1.413vw, 18px);
  letter-spacing: .05em;
  border-bottom: #fff solid 1px;
}

.ft_timetable table thead td {
  padding: max(0.857vw, 11px) max(1vw, 13px);
  font-size: max(1.413vw, 18px);
  border-bottom: #fff solid 1px;
}

.ft_timetable table tbody th {
  padding: max(0.857vw, 11px) 0;
  font-size: max(1.361vw, 17px);
  letter-spacing: .1em;
  white-space: nowrap;
  border-bottom: #fff solid 1px;
}

.ft_timetable table tbody th span {
  display: block;
  margin-top: max(0.571vw, 7px);
  font-size: max(1vw, 13px);
}

.ft_timetable table tbody td {
  padding: max(0.857vw, 11px) 0;
  font-size: max(1.143vw, 14px);
  border-bottom: #fff solid 1px;
}

.ft_timetable ul {
  margin-top: max(0.5vw, 6px);
  text-align: right;
  font-family: 'Noto Sans JP';
  font-size: max(1.041vw, 13px);
  letter-spacing: .05em;
  color: #fff;
}

.ft_nav {
  position: relative;
}

.ft_nav nav {
  margin-top: max(2.5vw, 32px);
}

.ft_nav nav:not(:first-of-type) {
  display: flex;
  flex-wrap: wrap;
}

.ft_nav dt {
  margin-bottom: max(0.714vw, 9px);
  font-size: max(0.952vw, 12px);
  letter-spacing: .05em;
}

.ft_nav ul.flex {
  display: flex;
  flex-wrap: wrap;
  max-width: max(28.571vw, 371px);
}

.ft_nav ul li {
  position: relative;
  padding-left: 1em;
}

.ft_nav ul.flex li {
  width: 50%;
}

.ft_nav ul li::before {
  content: "▶";
  position: absolute;
  top: 1.35em;
  left: 0;
  display: block;
  font-size: max(0.594vw, 7px);
}

.ft_nav ul li a {
  line-height: 2.19;
  font-size: max(0.952vw, 12px);
  letter-spacing: .05em;
  white-space: nowrap;
  color: #fff;
  text-decoration: underline;
  text-underline-offset: max(0.5vw, 6px);
  text-decoration-color: #fff;
}

footer .clinic_lst {
  margin: 6em auto 10em;
  width: max(85.71svw, 1114.29px);
  font-family: 'Noto Sans JP';
  position: relative;
}

footer .clinic_lst .ttl {
  padding: .4em 0;
  text-align: center;
  color: #fff;
  font-size: max(1.14svw, 14.86px);
  line-height: 1;
  letter-spacing: .1em;
  background-color: #e5396b;
}

footer .clinic_lst .ttl2 {
  margin-top: max(2.14svw, 27.86px);
  padding: .4em 0;
  text-align: center;
  color: #fff;
  line-height: 1;
  letter-spacing: .1em;
  background-color: #e5396b;
  border-radius: 100px;
}

footer .clinic_lst ul {
  margin-top: max(0.71svw, 9.29px);
  gap: max(1.43svw, 18.57px);
}

footer .clinic_lst ul:nth-of-type(1) {
  display: flex;
  justify-content: center;
}

footer .clinic_lst ul:nth-of-type(2) {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

footer .clinic_lst ul:nth-of-type(1) li {
  width: max(20.36svw, 264.64px);
}

footer .clinic_lst ul li a.bnr,
footer .clinic_lst ul li a.bnr2 {
  margin-top: 0;
  display: block;
  background-color: #fff;
  border: 1px solid #cbcbcb;
}

footer .clinic_lst ul li a.bnr {
  display: flex;
  align-items: center;
}

footer .clinic_lst ul li a.bnr img {
  width: max(7.14svw, 92.86px);
}

footer .clinic_lst ul li a.bnr span {
  padding: 2px max(0.71svw, 9.29px) 0;
  flex: 1 0 auto;
  color: #404040;
}

footer .clinic_lst ul li a.bnr2 img {
  display: block;
}

.humanity_logo {
  position: absolute;
  right: max(3.143vw, 40px);
  bottom: max(1.357vw, 17px);
}

.humanity_logo img {
  width: max(8.286vw, 107px);
}

.copyright {
  position: absolute;
  bottom: max(1.786vw, 23px);
  width: 100%;
  font-family: 'Noto Sans JP';
  font-size: max(1.143vw, 14px);
  text-align: center;
  letter-spacing: 0.1em;
  color: #fff;
}

/* pagetop */
.pagetop {
  display: none;
  position: fixed;
  bottom: max(2.143vw, 27px);
  right: max(0.714vw, 9px);
  z-index: 1000;
  cursor: pointer;
}

.pagetop img {
  width: max(5.643vw, 73px);
}

/*
  mainPhoto
========================================================================== */
.mainPhoto {
  margin: 0 auto;
  width: 100%;
}

/*
  sidemenu / sidebanner
========================================================================== */
.sidemenu {
  position: relative;
  width: 300px;
  padding: 35px 20px 27px;
  font-family: 'Noto Sans JP';
  background-color: #eef9f8;
}

.sidemenu h2 {
  text-align: center;
  font-family: 'Times New Roman', Times, serif;
  font-size: 41.67px;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: #444;
  line-height: 1;
}

.sidemenu h3 {
  margin-top: 18px;
  padding: 5px 0;
  text-align: center;
  font-size: 16.67px;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: #fff;
  background-color: #48c0b1;
}

.sidemenu p {
  margin-top: 20px;
  padding: 0 0 10px 10px;
  font-size: 16.67px;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: #48c0b1;
  border-bottom: #48c0b1 solid 2px;
}

.sidemenu ul + p {
  margin-top: 50px;
}

.sidemenu a {
  position: relative;
  display: block;
  padding: 18px 0 13px 30px;
  font-size: 16px;
  font-weight: 400px;
  letter-spacing: .1em;
  white-space: nowrap;
  color: #333;
  border-bottom: #000 dashed 1px;
}

.sidemenu a::before {
  content: "";
  display: block;
  position: absolute;
  width: 6px;
  aspect-ratio: 1 / 1;
  left: 9px;
  top: 28px;
  border-bottom: 1px solid #787979;
  border-right: 1px solid #787979;
  transform: rotate(-45deg);
}

/* sidebanner */
.sidebanner {
  margin-top: 68px;
}

.sidebanner ul li + li {
  margin-top: 22px;
}

/*
  lowinfo
========================================================================== */
.lowinfo {
  height: 460px;
  line-height: 1;
  margin-top: 20px;
  padding-top: 28px;
  padding-left: 28px;
  font-family: 'Noto Sans JP';
  background: url(../images/common/lowinfo_bg.jpg) center top no-repeat;
  background-size: cover;
  font-feature-settings: "palt";
}

.lowinfo .logo img {
  width: 425px;
}

.lowinfo ul {
  display: flex;
  margin-top: 35px;
}

.lowinfo li a {
  display: block;
  width: 210px;
  height: 65px;
  line-height: 65px;
  padding-left: 85px;
  font-size: 20.85px;
  font-weight: 400;
  letter-spacing: .05em;
  color: #fff;
}

.lowinfo li:nth-of-type(1) a {
  background: url(../images/common/lowinfo_btn01.png) center top no-repeat;
  background-size: cover;
}

.lowinfo li:nth-of-type(2) a {
  background: url(../images/common/lowinfo_btn02.png) center top no-repeat;
  background-size: cover;
}

.lowinfo .lowinfo_tel {
  width: 420px;
  margin-top: 25px;
  text-align: center;
}

.lowinfo .lowinfo_tel span {
  display: block;
}

.lowinfo .lowinfo_tel span:nth-of-type(1) {
  font-size: 16.67px;
  font-weight: 400;
  letter-spacing: .1em;
}

.lowinfo .lowinfo_tel span:nth-of-type(2) {
  margin-top: 8px;
  padding: 7px 0 5px 35px;
  font-family: 'Times New Roman', Times, serif;
  font-weight: 400;
  font-size: 37.5px;
  letter-spacing: 0.07em;
  border-top: #333 1px solid;
  border-bottom: #333 1px solid;
  background: url(../images/common/lowinfo_tel.png) left 79px top 15px no-repeat;
  background-size: 23px auto;
}

.lowinfo_info {
  display: flex;
  flex-wrap: wrap;
  column-gap: 25px;
  row-gap: 15px;
  width: 445px;
  margin-top: 25px;
  margin-left: 5px;
}

.lowinfo_info p {
  min-height: 19px;
  font-family: 'Noto Serif JP';
  font-size: 16px;
  font-weight: 400;
  letter-spacing: .05em;
  color: #4b4b4b;
}

.lowinfo_info p em {
  font-style: normal !important;
  color: #7d6451;
}

.lowinfo_info p:nth-of-type(1) {
  padding-left: 25px;
  background: url(../images/common/lowinfo_icon_train.png) left center no-repeat;
  background-size: 13px auto;
}

.lowinfo_info p:nth-of-type(2) {
  padding-left: 30px;
  background: url(../images/common/lowinfo_icon_info.png) left center no-repeat;
  background-size: 19px auto;
}

.lowinfo_info p:nth-of-type(3) {
  padding-left: 25px;
  background: url(../images/common/lowinfo_icon_time.png) left center no-repeat;
  background-size: 16px auto;
}

/*
  ページキャッチ・見出し・コラム
========================================================================== */
/* page-catch */
.page-catch {
  /* margin-bottomは固定値 */
  position: relative;
  margin-right: 10px;
  margin-bottom: 40px;
  padding: 55px 30px 40px 30px;
  text-align: center;
  font-family: 'Noto Sans JP';
  font-weight: 400;
  font-size: 18px;
  line-height: 1.8;
  letter-spacing: .1em;
  color: #282828;
  border: #39beb5 solid 1px;
}

.page-catch::after {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: -1;
  pointer-events: none;
  border: #39beb5 solid 1px;
}

/* 見出し */
.ttl-low {
  /* margin-bottomは固定値 */
  position: relative;
  margin-bottom: 20px;
  padding: 0.55em 2.5em;
  font-family: "Noto Sans JP";
  font-weight: 400;
  font-size: 18px;
  line-height: 1.3;
  letter-spacing: .1em;
  font-feature-settings: "palt";
  color: #fffdfc;
}

.ttl-low::before {
  content: "";
  position: absolute;
  left: 18px;
  bottom: 0;
  width: 6px;
  height: calc(100% - 11px);
  background-color: #FFF;
}

.ttl-low1-1 {
  background: url(../images/common/ttl-low1-1_bg.png) left top repeat;
}

.ttl-low1-2 {
  background: url(../images/common/ttl-low1-2_bg.png) left top repeat;
}

.ttl-low1-3 {
  background: url(../images/common/ttl-low1-3_bg.png) left top repeat;
}

.ttl-low2 {
  /* margin-bottomは固定値 */
  position: relative;
  margin-bottom: 20px;
  padding: 0.55em 1em 0.55em 2.5em;
  font-family: "Noto Sans JP";
  font-weight: 400;
  font-size: 18px;
  line-height: 1.3;
  letter-spacing: .1em;
  font-feature-settings: "palt";
  border-bottom-width: 1px;
  border-left-width: 10px;
  border-style: solid;
}

.ttl-low2::before {
  content: "";
  position: absolute;
  left: 3px;
  bottom: 0;
  width: 3px;
  height: 100%;
}

.ttl-low2-1 {
  color: #39beb5;
}

.ttl-low2-1::before {
  background-color: #39beb5;
}

.ttl-low2-2 {
  color: #b6701e;
}

.ttl-low2-2::before {
  background-color: #b6701e;
}

.ttl-low2-3 {
  color: #ef83a3;
}

.ttl-low2-3::before {
  background-color: #ef83a3;
}

.ttl-low3 {
  /* margin-bottomは固定値 */
  margin-bottom: 20px;
  padding: 0.55em 2.5em;
  font-family: "Noto Sans JP";
  font-weight: 400;
  font-size: 18px;
  line-height: 1.3;
  letter-spacing: .1em;
  font-feature-settings: "palt";
  border-top: 1px dashed;
  border-bottom: 1px dashed;
}

.ttl-low3-1 {
  color: #39beb5;
}

.ttl-low3-2 {
  color: #b6701e;
}

.ttl-low3-3 {
  color: #ef83a3;
}

.ttl-low4 {
  /* margin-bottomは固定値 */
  margin-bottom: 20px;
  font-family: "Noto Sans JP";
  font-weight: 400;
  font-size: 17px;
  line-height: 1.3;
  letter-spacing: .1em;
  color: #2e2e2e;
  font-feature-settings: "palt";
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 13px;
}

.ttl-low4 > span:first-of-type {
  padding: 0.25em 0.6em 0.2em;
  color: #fff;
}

.ttl-low4 > span:nth-of-type(n+2) {
  flex: 1;
}

.ttl-low4-1 > span:first-of-type {
  background-color: #39beb5;
}

.ttl-low4-2 > span:first-of-type {
  background-color: #b6701e;
}

.ttl-low4-3 > span:first-of-type {
  background-color: #ef83a3;
}

.ttl-low5 {
  /* margin-bottomは固定値 */
  margin-bottom: 20px;
  padding: 0.6em 2.7em;
  font-family: "Noto Sans JP";
  font-weight: 400;
  font-size: 18px;
  line-height: 1.2;
  letter-spacing: .1em;
  color: #fff;
  border-radius: 100px;
}

.ttl-low5-1 {
  background-color: #39beb5;
}

.ttl-low5-2 {
  background-color: #b6701e;
}

.ttl-low5-3 {
  background-color: #ef83a3;
}

/* コラム */
.colunm {
  padding: 30px;
}

.colunm .ttl-btn {
  position: relative;
  margin-bottom: 1px;
  padding: 10px 30px 10px 90px;
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: 18px;
  line-height: 1.3;
  letter-spacing: 0.1em;
  color: #fff;
}

.colunm .ttl-btn .colum {
  position: absolute;
  top: -4px;
  left: -14px;
  padding: 2px 18px 3px;
  font-family: "Noto Sans JP";
  font-size: 16.5px;
  letter-spacing: 0.1em;
  background: #fff;
  transform: rotate(-20deg);
}

.colunm .ttl-btn .colum::before {
  content: "";
  position: absolute;
  bottom: -8px;
  right: 14%;
  border-style: solid;
  border-color: #FFF transparent transparent transparent;
  border-width: 10px 5px 0 5px;
  z-index: 2;
}

.colunm {
  background: #fefcf0;
  border: #9fb98b solid 1px;
}

.colunm .ttl-btn {
  background-color: #9fb98b;
}

.colunm .ttl-btn .colum {
  color: #9fb98b;
  border: #9fb98b solid 1px
}

.colunm + .column {
  background: #fdf9f2;
  border: #7eadc6 solid 1px;
}

.colunm + .column .ttl-btn {
  background-color: #7eadc6;
}

.colunm + .column .ttl-btn .colum {
  color: #7eadc6;
  border: #7eadc6 solid 1px
}
/* Slider */
.slick-slider
{
    position: relative;

    display: block;
    box-sizing: border-box;

    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;

    -webkit-touch-callout: none;
    -khtml-user-select: none;
    -ms-touch-action: pan-y;
        touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}

.slick-list
{
    position: relative;

    display: block;
    overflow: hidden;

    margin: 0;
    padding: 0;
}
.slick-list:focus
{
    outline: none;
}
.slick-list.dragging
{
    cursor: pointer;
    cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list
{
    -webkit-transform: translate3d(0, 0, 0);
       -moz-transform: translate3d(0, 0, 0);
        -ms-transform: translate3d(0, 0, 0);
         -o-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
}

.slick-track
{
    position: relative;
    top: 0;
    left: 0;

    display: block;
    margin-left: auto;
    margin-right: auto;
}
.slick-track:before,
.slick-track:after
{
    display: table;

    content: '';
}
.slick-track:after
{
    clear: both;
}
.slick-loading .slick-track
{
    visibility: hidden;
}

.slick-slide
{
    display: none;
    float: left;

    height: 100%;
    min-height: 1px;
}
[dir='rtl'] .slick-slide
{
    float: right;
}
.slick-slide img
{
    display: block;
}
.slick-slide.slick-loading img
{
    display: none;
}
.slick-slide.dragging img
{
    pointer-events: none;
}
.slick-initialized .slick-slide
{
    display: block;
}
.slick-loading .slick-slide
{
    visibility: hidden;
}
.slick-vertical .slick-slide
{
    display: block;

    height: auto;

    border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
    display: none;
}
@charset "UTF-8";
/* Slider */
.slick-loading .slick-list
{
    background: #fff url('./ajax-loader.gif') center center no-repeat;
}

/* Icons */
@font-face
{
    font-family: 'slick';
    font-weight: normal;
    font-style: normal;
    font-display: swap;

    src: url('./fonts/slick.eot');
    src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg');
}
/* Arrows */
.slick-prev,
.slick-next
{
    font-size: 0;
    line-height: 0;

    position: absolute;
    top: 50%;

    display: block;

    width: 20px;
    height: 20px;
    padding: 0;
    -webkit-transform: translate(0, -50%);
    -ms-transform: translate(0, -50%);
    transform: translate(0, -50%);

    cursor: pointer;

    color: transparent;
    border: none;
    outline: none;
    background: transparent;
}
.slick-prev:hover,
.slick-prev:focus,
.slick-next:hover,
.slick-next:focus
{
    color: transparent;
    outline: none;
    background: transparent;
}
.slick-prev:hover:before,
.slick-prev:focus:before,
.slick-next:hover:before,
.slick-next:focus:before
{
    opacity: 1;
}
.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before
{
    opacity: .25;
}

.slick-prev:before,
.slick-next:before
{
    font-family: 'slick';
    font-size: 20px;
    line-height: 1;

    opacity: .75;
    color: white;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.slick-prev
{
    left: -25px;
}
[dir='rtl'] .slick-prev
{
    right: -25px;
    left: auto;
}
.slick-prev:before
{
    content: '←';
}
[dir='rtl'] .slick-prev:before
{
    content: '→';
}

.slick-next
{
    right: -25px;
}
[dir='rtl'] .slick-next
{
    right: auto;
    left: -25px;
}
.slick-next:before
{
    content: '→';
}
[dir='rtl'] .slick-next:before
{
    content: '←';
}

/* Dots */
.slick-dotted.slick-slider
{
    margin-bottom: 30px;
}

.slick-dots
{
    position: absolute;
    bottom: -25px;

    display: block;

    width: 100%;
    padding: 0;
    margin: 0;

    list-style: none;

    text-align: center;
}
.slick-dots li
{
    position: relative;

    display: inline-block;

    width: 20px;
    height: 20px;
    margin: 0 5px;
    padding: 0;

    cursor: pointer;
}
.slick-dots li button
{
    font-size: 0;
    line-height: 0;

    display: block;

    width: 20px;
    height: 20px;
    padding: 5px;

    cursor: pointer;

    color: transparent;
    border: 0;
    outline: none;
    background: transparent;
}
.slick-dots li button:hover,
.slick-dots li button:focus
{
    outline: none;
}
.slick-dots li button:hover:before,
.slick-dots li button:focus:before
{
    opacity: 1;
}
.slick-dots li button:before
{
    font-family: 'slick';
    font-size: 6px;
    line-height: 20px;

    position: absolute;
    top: 0;
    left: 0;

    width: 20px;
    height: 20px;

    content: '•';
    text-align: center;

    opacity: .25;
    color: black;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.slick-dots li.slick-active button:before
{
    opacity: .75;
    color: black;
}
@charset "utf-8";

/*
  common
========================================================================== */
body {
  line-height: 1;
  font-family: "Noto Serif JP";
  font-feature-settings: "palt";
}

.logomark::before {
  content: "";
  display: block;
  width: max(8.286vw, 107px);
  height: max(9.214vw, 119px);
  margin: 0 auto;
  background: url(../images/top/logomark.png) center top no-repeat;
  background-size: cover;
}

/*
  header
========================================================================== */
.header_catch {
  position: absolute;
  top: max(9.429vw, 122px);
  left: max(24.071vw, 312px);
}

.header_catch img {
  width: max(20.929vw, 272px);
}

.header_info {
  position: absolute;
  top: max(25vw, 325px);
  left: max(4.429vw, 57px);
  width: max(34.714vw, 451px);
  height: max(23.214vw, 301px);
  background: url(../images/top/header_info_bg.png) left top no-repeat;
  background-size: cover;
  box-shadow: 0 4px 6px rgba(67, 67, 67, 0.13);
}

.header_info p:nth-of-type(1) {
  padding-top: max(3.929vw, 51px);
  padding-left: max(13.786vw, 179px);
  font-size: max(2.143vw, 27px);
  font-weight: 400;
  letter-spacing: .02em;
  color: #494949;
}

.header_info p:nth-of-type(1)::first-letter {
  font-size: max(3.214vw, 41px);
}

.header_info p:nth-of-type(1) span {
  font-size: max(2.571vw, 33px);
}

.header_info p:nth-of-type(2) {
  padding-top: max(0.714vw, 9px);
  padding-left: max(15.714vw, 204px);
  font-size: max(1.571vw, 20px);
  font-weight: 400;
  letter-spacing: .04em;
  color: #494949;
}

.header_info .img {
  padding-top: max(2.643vw, 34px);
  padding-left: max(3.429vw, 44px);
}

.header_info .img img {
  width: max(28.643vw, 372px);
}

/*
  kv
========================================================================== */
.kv {
  width: 100%;
}

/*
  results
========================================================================== */
.results {
  margin-top: max(3.929vw, 51px);
  text-align: center;
}

.results h2 {
  position: relative;
  font-size: max(2.281vw, 29px);
  font-weight: 500;
  letter-spacing: 0.14em;
}

.results h2 * {
  font-weight: 500;
}

.results h2::before {
  content: "＼";
}

.results h2::after {
  content: "／";
}

.results h2 .fs25 {
  font-size: max(1.792vw, 23px);
}

.results h2 .fs38 {
  font-size: max(2.77vw, 36px);
}

.results h2 em {
  color: #f29cb5;
}

.results_box {
  display: flex;
  justify-content: center;
  column-gap: max(2.286vw, 29px);
}

.results_box dl {
  width: max(14.429vw, 187px);
  height: max(13.429vw, 174px);
  margin-top: max(2.143vw, 27px);
  padding-top: max(3.143vw, 40px);
  background: url(../images/top/results_bg.png) center top no-repeat;
  background-size: cover;
}

.results_box dt {
  line-height: 1.33;
  font-family: 'Noto Sans JP';
  font-size: max(1.071vw, 13px);
  font-weight: 500;
  color: #d4bd61;
}

.results_box dd {
  line-height: 1.1;
  font-family: 'Noto Sans JP';
  font-size: max(1.286vw, 16px);
  font-weight: 700;
}

.results_box dl:nth-of-type(3) dd {
  margin-top: .5em;
}

.results_box dd * {
  font-weight: 700;
}

.results_box dd .fs34 {
  font-size: max(2.482vw, 32px);
}

.results_box dd .fs30 {
  font-size: max(2.143vw, 27px);
}

.results_box dd .fs20 {
  font-size: max(1.489vw, 19px);
}

.results_box dd .fs16 {
  font-size: max(1.143vw, 14px);
}

.results_box dd .fs12 {
  display: block;
  font-size: max(0.857vw, 11px);
  font-weight: 500;
}

/** review_box **/
.review_box {
  height: max(31.429vw, 408px);
  margin-top: max(2.786vw, 36px);
  padding-top: max(1.786vw, 23px);
  background: #f3f2f0 url(../images/top/review_bg.png) center top no-repeat;
  background-size: cover;
}

.review_box h3 {
  font-family: 'Times New Roman', Times, serif;
  font-size: max(4.166vw, 54px);
  font-weight: 400;
  font-style: italic;
  letter-spacing: .05em;
  color: #fff;
}

.review_box h3 + p {
  font-family: 'Noto Sans JP';
  font-size: max(1.286vw, 16px);
  font-weight: 400;
  letter-spacing: .05em;
  color: #fff;
}

.review_box .inner {
  display: flex;
  justify-content: center;
  align-items: center;
  column-gap: max(2.714vw, 35px);
  margin-top: max(1.429vw, 18px);
}

.review_box .inner .head {
  width: max(14.286vw, 185px);
}

.review_box .inner .head p {
  position: relative;
  line-height: 1.33;
  font-family: 'Noto Sans JP';
  font-size: max(1.286vw, 16px);
  font-weight: 400;
  color: #fff;
}

.review_box .inner .head p::after {
  content: "";
  display: block;
  width: max(11.643vw, 151px);
  height: max(5.571vw, 72px);
  margin: max(0.357vw, 4px) auto 0;
  background: url(../images/top/review_img.png) left top no-repeat;
  background-size: cover;
}

.review_box .inner .review_list {
  width: max(63.571vw, 826px);
  height: max(19.286vw, 250px);
  display: flex;
  align-items: center;
}

/*
  instagram
========================================================================== */
.instagram {
  margin-top: max(6.214vw, 80px);
}

/*
  information
========================================================================== */
.info {
  position: relative;
  height: max(37.643vw, 489px);
  margin-top: max(6.214vw, 80px);
  padding-top: max(4.286vw, 55px);
  background: url(../images/top/info_bg.jpg) center top no-repeat;
  background-size: cover;
}

.info h2 {
  width: max(37.857vw, 492px);
  margin-left: max(28.5vw, 370px);
  padding-bottom: max(0.357vw, 4px);
  padding-left: max(4.071vw, 52px);
  color: #444;
  border-bottom: #333 solid 1px;
}

.info h2 .en {
  display: inline-block;
  font-family: 'Times New Roman', Times, serif;
  font-size: max(2.679vw, 34px);
  font-weight: 400;
  font-style: italic;
  letter-spacing: .15em;
}

.info h2 .en::first-letter {
  font-size: max(4.166vw, 54px);
}

.info h2 .ja {
  padding-left: max(2.429vw, 31px);
  font-size: max(1.488vw, 19px);
  font-weight: 400;
  font-style: italic;
  letter-spacing: .08em;
}

.info .catch {
  position: absolute;
  top: max(6.929vw, 90px);
  left: max(6.929vw, 90px);
}

.info .catch img {
  width: max(13.357vw, 173px);
}

.info .lead {
  position: relative;
  width: max(30.286vw, 393px);
  height: max(3.429vw, 44px);
  margin-top: max(2.143vw, 27px);
  margin-left: max(30.714vw, 399px);
  padding-top: max(0.429vw, 5px);
  text-align: center;
}

.info .lead::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  transform: skewX(-15deg);
}

.info .lead span {
  position: relative;
  font-size: max(2.286vw, 29px);
  font-weight: 400;
  letter-spacing: .1em;
  color: #444;
}

.info .lead em {
  color: #b19165;
}

.info ul.list {
  margin-top: max(3.429vw, 44px);
  margin-left: max(23.857vw, 310px);
}

.info ul.list li {
  padding-left: max(3.214vw, 41px);
  font-size: max(1.786vw, 23px);
  font-weight: 500;
  letter-spacing: .1em;
  background: url(../images/top/info_check.png) left center no-repeat;
  background-size: max(1.714vw, 22px) auto;
}

.info ul.list li * {
  font-weight: 500;
}

.info ul.list li:nth-of-type(1) {
  margin-left: max(6.429vw, 83px);
}

.info ul.list li:nth-of-type(2) {
  margin-left: max(4.286vw, 55px);
}

.info ul.list li:nth-of-type(3) {
  margin-left: max(2.143vw, 27px);
}

.info ul.list li + li {
  margin-top: max(1.643vw, 21px);
}

.info ul.list li span.fs30 {
  font-size: max(2.143vw, 27px);
}

.info ul.list li span.fs22 {
  font-size: max(1.571vw, 20px);
}

.info ul.list li em {
  color: #ef83a3;
}

.info .btn {
  margin-top: max(1.929vw, 25px);
  margin-left: max(50.714vw, 659px);
}

.info .btn a {
  padding-right: max(1.643vw, 21px);
  font-family: 'Times New Roman', Times, serif;
  font-size: max(1.191vw, 15px);
  font-weight: 400;
  font-style: italic;
  letter-spacing: .08em;
  background: url(../images/top/info_arrow.png) right center no-repeat;
  background-size: max(0.786vw, 10px) auto;
}

/*
  leading
========================================================================== */
.leading {
  margin-top: max(5.714vw, 74px);
}

.leading .inner {
  height: max(83.429vw, 1084px);
  margin-top: max(1.286vw, 16px);
  background: url(../images/top/leading_bg01.jpg) center top no-repeat;
  background-size: cover;
}

.leading h2 {
  writing-mode: vertical-rl;
}

.leading h2 .head01 {
  display: block;
  height: fit-content;
  margin-top: max(17.143vw, 222px);
  padding: max(1.429vw, 18px) max(1.429vw, 18px);
  font-size: max(3.275vw, 42px);
  font-weight: 500;
  letter-spacing: .02em;
  color: #fff;
  background-color: #b19165;
}

.leading h2 .head01 em {
  color: #000;
  font-weight: 500;
}

.leading h2 .head02 {
  display: block;
  height: fit-content;
  margin-top: max(17.143vw, 222px);
  margin-left: max(4.429vw, 57px);
  padding: max(0.929vw, 12px) max(1.571vw, 20px);
  font-size: max(5vw, 65px);
  font-weight: 400;
  color: #2e2e2e;
  background-color: #fff;
}

.leading h2 .head02 span {
  font-size: max(4.286vw, 55px);
}

.leading h2 .head02 em {
  color: #b19165;
}

.leading .lead {
  line-height: 1.6;
  margin-top: min(-14.143vw, -184px);
  text-align: center;
  font-size: max(2.357vw, 30px);
  font-weight: 500;
  letter-spacing: .08em;
  color: #fff;
}

.leading .lead * {
  font-weight: 500;
}

.leading .lead .bg_color {
  color: #312411;
  background-color: #fbfba5;
}

.leading .lead .fs39 {
  font-size: max(2.845vw, 36px);
}

.leading .lead .fs71 {
  font-size: max(5.131vw, 66px);
}

.leading .lead em {
  font-size: max(4.059vw, 52px);
  color: #e3c479;
}

.leading .lead .lh1 {
  line-height: 1;
}

.leading .contents {
  height: max(64.786vw, 842px);
  padding: max(3.786vw, 49px) max(5.714vw, 74px) max(5vw, 65px) max(8.571vw, 111px);
  background: url(../images/top/leading_bg02.png) center top no-repeat;
  background-size: cover;
}

.leading .contents_inner {
  position: relative;
  min-height: max(55.929vw, 727px);
  padding-top: max(3.429vw, 44px);
  background-color: #fefefe;
  background-image: url(../images/top/leading_bg03.png), url(../images/top/leading_bg04.png);
  background-position: left top, right bottom;
  background-repeat: no-repeat, no-repeat;
  background-size: max(26.071vw, 338px) auto, max(26.357vw, 342px) auto;
  box-shadow: 0 0 30px rgba(101, 101, 101, 0.15);
}

.leading .contents_inner .catch {
  position: absolute;
  top: min(-1.429vw, -19px);
  left: max(1.786vw, 23px);
}

.leading .contents_inner .catch::before,
.leading .contents_inner .catch::after {
  content: "";
  position: absolute;
  display: block;
  width: max(4.286vw, 55px);
  height: max(4.286vw, 55px);
  background-color: #e8e8e8;
  mix-blend-mode: multiply;
}

.leading .contents_inner .catch::before {
  top: min(-0.357vw, -5px);
  left: min(-0.357vw, -5px);
  clip-path: polygon(0 0, 100% 0, 0 100%);
}

.leading .contents_inner .catch::after {
  bottom: min(-0.357vw, -5px);
  right: min(-0.357vw, -5px);
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.leading .contents_inner .catch p {
  position: relative;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  width: max(8.571vw, 111px);
  height: max(24.286vw, 315px);
  line-height: 1.28;
  text-align: center;
  font-size: max(2.084vw, 27px);
  letter-spacing: .1em;
  border: #313131 solid 1px;
}

.leading .contents_inner .catch span {
  display: block;
  font-family: 'Noto Sans JP';
  font-size: max(5.357vw, 69px);
  font-weight: 100;
  color: #acacac;
}

.leading .contents_inner h3 {
  width: fit-content;
  margin-left: max(10.357vw, 134px);
  padding-bottom: max(1.429vw, 18px);
  padding-left: max(2.143vw, 27px);
  font-size: max(2.429vw, 31px);
  font-weight: 500;
  letter-spacing: .075em;
  border-bottom: #2e2e2e solid 1px;
}

.leading .contents_inner h3 em {
  display: block;
  padding-top: max(1.571vw, 20px);
  font-size: max(3.929vw, 51px);
  font-weight: 500;
  letter-spacing: .13em;
  color: #bda17e;
}

.leading .contents_inner ul {
  margin-top: max(1.786vw, 23px);
  margin-left: max(12.571vw, 163px);
}

.leading .contents_inner ul li {
  padding-left: max(2.143vw, 27px);
  font-family: 'Noto Sans JP';
  font-size: max(1.429vw, 18px);
  font-weight: 400;
  letter-spacing: .1em;
  color: #2e2e2e;
  background: url(../images/top/leading_check.png) left center no-repeat;
  background-size: max(1.714vw, 22px) auto;
}

.leading .contents_inner ul li em {
  font-family: 'Noto Serif JP';
  font-size: max(1.857vw, 24px);
  font-weight: 500;
  text-decoration: underline;
  text-decoration-color: #fcef96;
  text-decoration-thickness: max(0.357vw, 4px);
  text-underline-offset: max(0.357vw, 4px);
  text-decoration-skip-ink: none;
}

.leading .contents_inner ul li + li {
  margin-top: max(1.143vw, 14px);
}

.leading .contents_inner .leading_img01 {
  position: absolute;
  top: min(-1.857vw, -25px);
  right: max(1.714vw, 22px);
  width: max(37vw, 481px);
}

.leading .contents_inner .movie{
	position: absolute;
  top: max(5.357vw, 70px);
  right: max(1.714vw, 22px);
  width: max(32.14vw, 418px);
}

.leading .contents_inner .movie iframe{
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 560 / 315;
}

.leading .contents_inner .flex {
  display: flex;
  margin-top: max(5vw, 65px);
  margin-left: max(7.714vw, 100px);
}

.leading .contents_inner .flex img {
  width: max(32.929vw, 428px);
}

.leading .contents_inner .flex p {
  margin-top: 2.5em;
  font-size: max(2vw, 26px);
  font-weight: 500;
  letter-spacing: .075em;
  color: #2e2e2e;
}

.leading .contents_inner .flex p * {
  font-weight: 500;
}

.leading .contents_inner .flex p .fs40 {
  line-height: 1.7;
  font-size: max(2.857vw, 37px);
}

.leading .contents_inner .flex p .fs34 {
  font-size: max(2.429vw, 31px);
}

.leading .contents_inner .flex p em {
  position: relative;
  padding-left: max(14.286vw, 185px);
  font-size: max(3.929vw, 51px);
  color: #bda17e;
}

.leading .contents_inner .flex p em::before {
  content: "";
  position: absolute;
  top: 50%;
  left: max(4.429vw, 57px);
  width: max(9.143vw, 118px);
  height: 1px;
  background-color: #bda17e;
}

.leading .contents_inner .flex p em .fs97 {
  font-family: 'Times New Roman', Times, serif;
  font-size: max(6.929vw, 90px);
}

.leading .contents_inner .flex p em .fs70 {
  font-size: max(5vw, 65px);
}

/*
  technical
========================================================================== */
.technical {
  position: relative;
  height: max(124.786vw, 1622px);
  margin-top: max(10.714vw, 139px);
  background: url(../images/top/technical_bg.jpg) center top no-repeat;
  background-size: cover;
}

.technical .catch {
  position: absolute;
  top: min(-2.786vw, -37px);
  right: max(5.143vw, 66px);
}

.technical .catch img {
  width: max(22.714vw, 295px);
}

.technical .contents {
  padding: max(45vw, 585px) max(7.143vw, 92px) 0;
}

.technical .contents h2 {
  line-height: 1.4;
  padding-left: max(1.214vw, 15px);
  font-size: max(2.679vw, 34px);
  font-weight: 500;
  letter-spacing: .1em;
}

.technical .contents h2 * {
  font-weight: 500;
}

.technical .contents h2 em {
  font-size: max(3.581vw, 46px);
  text-decoration: underline;
  text-decoration-color: #fcef96;
  text-decoration-thickness: max(0.714vw, 9px);
  text-underline-offset: min(-0.357vw, -5px);
  text-decoration-skip-ink: none;
}

.technical .contents h2 + p {
  width: max(47.143vw, 612px);
  line-height: 1.8;
  margin-top: max(2.857vw, 37px);
  padding-left: max(1.214vw, 15px);
  font-size: max(1.429vw, 18px);
  font-weight: 400;
  letter-spacing: .1em;
  color: #4c4c4c;
}

.technical .contents h2 + p em {
  color: #dc932f;
}

.technical .contents .flex {
  display: flex;
  align-items: flex-start;
  column-gap: max(2.857vw, 37px);
}

.technical .contents > .flex {
  margin-top: max(5.714vw, 74px);
}

.technical .contents > .flex .img {
  flex-shrink: 0;
  width: max(31.5vw, 409px);
}

.technical .contents h3 {
  position: relative;
  width: max(51.5vw, 669px);
  line-height: 1.3;
  margin-top: min(-1.571vw, -21px);
  text-align: center;
  font-size: max(2.409vw, 31px);
  font-weight: 400;
  letter-spacing: .12em;
  background: url(../images/top/technical_kakko.png) center top max(1.571vw, 20px) no-repeat;
  background-size: 100% auto;
}

.technical .contents h3 em {
  font-size: max(2.766vw, 35px);
}

.technical .contents h3 em.br {
  color: #b19165;
}

.technical .contents h3 em.or {
  color: #dc932f;
}

.technical .contents h3 em .fs50 {
  font-size: max(3.622vw, 47px);
}

.technical .contents h3 em .fs53 {
  font-size: max(3.836vw, 49px);
}

.technical .contents dl {
  margin-top: max(1.786vw, 23px);
  width: max(23.786vw, 309px);
}

.technical .contents dl dt {
  text-align: center;
  font-size: max(2.558vw, 33px);
  font-weight: 400;
  letter-spacing: .12em;
}

.technical .contents dl dt span {
  font-size: max(3.197vw, 41px);
}

.technical .contents dl:nth-of-type(1) dt {
  color: #b19165;
}

.technical .contents dl:nth-of-type(2) dt {
  color: #dc932f;
}

.technical .contents dl dd p {
  margin-top: max(1.071vw, 13px);
  padding: max(0.357vw, 4px) 0 max(0.571vw, 7px);
  text-align: center;
  font-size: max(1.857vw, 24px);
  font-weight: 400;
  letter-spacing: .12em;
  color: #fff;
}

.technical .contents dl dd p span {
  font-size: max(2.571vw, 33px);
  color: #333;
}

.technical .contents dl:nth-of-type(1) dd p {
  background-color: #b19165;
}

.technical .contents dl:nth-of-type(2) dd p {
  background-color: #dc932f;
}

.technical .contents dl dd div {
  position: relative;
}

.technical .contents dl dd div img {
  width: max(12.643vw, 164px);
  mix-blend-mode: multiply;
  vertical-align: middle;
}

.technical .contents dl dd div span {
  position: absolute;
  top: max(1.429vw, 18px);
  left: max(10.857vw, 141px);
  font-size: max(2.857vw, 37px);
  font-weight: 400;
  letter-spacing: .12em;
}

.technical .contents dl dd div span em {
  font-family: 'Times New Roman', Times, serif;
  font-size: max(5.357vw, 69px);
  font-weight: 400;
  letter-spacing: .06em;
  text-decoration: underline;
  text-decoration-color: #fcef96;
  text-decoration-thickness: max(0.357vw, 4px);
  text-underline-offset: max(0.357vw, 4px);
  text-decoration-skip-ink: none;
}

.technical .contents dl:nth-of-type(1) dd div span em {
  color: #b19165;
}

.technical .contents dl:nth-of-type(2) dd div span em {
  color: #dc932f;
}

.technical .contents .difference {
  position: relative;
  width: max(77.071vw, 1001px);
  height: max(11.857vw, 154px);
  line-height: 1.6;
  margin: max(2.357vw, 30px) auto 0;
  padding-top: max(1.571vw, 20px);
  text-align: center;
  font-size: max(2vw, 26px);
  font-weight: 400;
  letter-spacing: .12em;
  background-color: #f4e6d3;
}

.technical .contents .difference::after {
  position: relative;
  top: min(-12.5vw, -163px);
  content: "";
  display: block;
  width: 1px;
  aspect-ratio: 1/50;
  margin: 0 auto;
  background: #2e2e2e;
}

.technical .contents .difference em {
  color: #dc932f;
}

.technical .contents .difference em.fs47 {
  font-size: max(3.426vw, 44px);
}

.technical .contents .difference em.fs42 {
  font-size: max(3.07vw, 39px);
}

/*
  case
========================================================================== */
.case {
  position: relative;
  height: max(114.286vw, 1485px);
  margin-top: max(5.571vw, 72px);
  padding-top: max(11.071vw, 143px);
  background: url(../images/top/case_bg.png) center top no-repeat;
  background-size: cover;
}

.case .catch {
  position: absolute;
  top: max(4.429vw, 57px);
  right: max(7.857vw, 102px);
}

.case .catch img {
  width: max(11.571vw, 150px);
}

.case .heading h2 {
  line-height: 1.6;
  margin-right: max(31.929vw, 415px);
  margin-left: max(9.643vw, 125px);
  font-size: max(3.14svw, 40.86px);
  font-weight: 400;
  letter-spacing: .1em;
  color: #473a34;
}

.case .heading h2 .fs56 {
  font-size: max(4.29svw, 55.71px);
}

.case .heading h2 .fs72 {
  font-size: max(5.57svw, 72.43px);
}

.case .heading h2 em {
  text-decoration: underline;
  text-decoration-color: #f8e9c3;
  text-decoration-thickness: max(1vw, 13px);
  text-underline-offset: min(-0.357vw, -5px);
  text-decoration-skip-ink: none;
}

.case .heading p {
  line-height: 1.5;
  margin-top: max(1.429vw, 18px);
  margin-left: max(9.643vw, 125px);
  font-size: max(1.714vw, 22px);
  font-weight: 400;
  letter-spacing: .14em;
  color: #2e2e2e;
}

.case .contents {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: max(7.143vw, 92px) max(3.714vw, 48px) 0 max(5.286vw, 68px);
}

.case .contents > p {
  width: 100%;
  text-align: center;
  font-family: 'Noto Sans JP';
  font-size: max(1.143vw, 14px);
  font-weight: 400;
  letter-spacing: .14em;
  color: #3d3d3d;
}

.case .contents .box {
  position: relative;
  width: max(27.714vw, 360px);
  height: max(29.143vw, 378px);
  margin-top: max(2.714vw, 35px);
  padding: max(0.929vw, 12px) max(2.214vw, 28px) 0 max(2.857vw, 37px);
  background-color: #fff;
  box-shadow: max(0.571vw, 7px) max(0.571vw, 7px) 0 rgba(235, 235, 235, 0.35);
}

.case .contents .box h3 span:first-of-type {
  position: absolute;
  left: min(-0.929vw, -13px);
  display: block;
  width: max(8.286vw, 107px);
  height: max(2.857vw, 37px);
  padding-top: max(0.5vw, 6px);
  padding-left: max(1.571vw, 20px);
  font-size: max(1.571vw, 20px);
  font-weight: 400;
  letter-spacing: .05em;
  color: #fff;
  background-color: #ef83a3;
}

.case .contents .box h3 span:first-of-type::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 0;
  display: block;
  width: max(0.929vw, 12px);
  height: max(0.357vw, 4px);
  background-color: #831919;
  clip-path: polygon(0 0, 100% 0, 100% 100%);
}

.case .contents .box h3 span:last-of-type {
  display: inline-block;
  padding-top: max(0.357vw, 4px);
  padding-left: max(5.857vw, 76px);
  font-size: max(1.929vw, 25px);
  font-weight: 400;
  letter-spacing: .05em;
  color: #393939;
}

.case .contents .box h3 span.fs26 {
  font-size: max(1.857vw, 24px);
  letter-spacing: 0;
  margin-right: -1em;
}

.case .contents .box h3 span.fs24 {
  font-size: max(1.714vw, 22px);
  letter-spacing: 0;
  margin-right: -1em;
}

.case .contents .box h3 span.fs22 {
  font-size: max(1.571vw,20px);
  letter-spacing: 0;
  margin-right: -1em;
  padding-top: max(0.571vw,7px);
}

.case .contents .box p {
  line-height: 1.42;
  margin-top: max(1.429vw, 18px);
  font-family: 'Noto Sans JP';
  font-size: max(1vw, 13px);
  font-weight: 400;
  letter-spacing: .02em;
  color: #383838;
}

.case .btn a {
  display: block;
  width: max(18.571vw, 241px);
  height: max(3.286vw, 42px);
  margin: max(4.857vw, 63px) auto 0;
  padding-top: max(0.857vw, 11px);
  text-align: center;
  font-size: max(1.286vw, 16px);
  font-weight: 400;
  letter-spacing: .1em;
  color: #fff;
  background: #5c5c5c url(../images/top/case_arrow.png) right max(0.857vw, 11px) center no-repeat;
  background-size: max(1vw, 13px);
}

/* スライダー */
.comparison-block {
  width: 100%;
  position: relative;
  margin: 0 auto;
  margin-top: max(1.929vw, 25px);
}

.comparison-block::selection {
  background-color: transparent;
}

.comparison-block::-moz-selection {
  background-color: transparent;
}

.comparison-block *::selection {
  background-color: transparent;
}

.comparison-block *::-moz-selection {
  background-color: transparent;
}

.comparison-before-img {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  z-index: 5;
}

.comparison-before-img img {
  width: 100%;
  max-width: none;
}

.comparison-after-img {
  position: relative;
  z-index: 1;
}

.comparison-after-img img {
  width: 100%;
}

.comparison-arrow {
  background-color: #474747;
  position: absolute;
  z-index: 10;
  top: 0;
  width: 1px;
  height: 100%;
  left: 50%;
  cursor: pointer;
}

.comparison-arrow:after {
  content: "";
  display: block;
  background: url(../images/top/slide_btn.png) no-repeat center center;
  background-size: contain;
  width: max(5.357vw, 69px);
  height: max(5.357vw, 69px);
  position: absolute;
  top: 50%;
  margin-top: min(-2.679vw, -35px);
  left: min(-2.679vw, -35px);
}

/*
  costs
========================================================================== */
.costs {
  position: relative;
  height: max(125.714vw, 1634px);
  margin-top: max(3.571vw, 46px);
  padding-top: max(9.857vw, 128px);
  background: url(../images/top/costs_bg01.png) right top no-repeat;
  background-size: auto 100%;
  overflow: hidden;
}

.costs::before {
  content: "";
  position: absolute;
  top: max(4.143vw, 53px);
  left: max(1.571vw, 20px);
  display: block;
  width: max(86.214vw, 1120px);
  height: max(119.357vw, 1551px);
  border: #4b4b4b solid 1px;
}

.costs .heading {
  position: relative;
  width: max(86.643vw, 1126px);
  height: max(23.429vw, 304px);
  margin-left: max(5.571vw, 72px);
  background: url(../images/top/costs_head_bg.jpg) left top no-repeat;
  background-size: cover;
  box-shadow: 0 max(0.714vw, 9px) max(0.429vw, 5px) rgba(90, 88, 86, 0.1);
}

.costs .heading h2 {
  position: absolute;
  top: min(-15.143vw, -197px);
  left: min(-5.571vw, -73px);
  width: max(33.429vw, 434px);
  height: max(38.071vw, 494px);
  padding-top: max(20vw, 260px);
  padding-left: max(7vw, 91px);
  background: url(../images/top/costs_ttl_bg.png) left top no-repeat;
  background-size: cover;
}

.costs .heading h2 span:first-of-type {
  font-size: max(3.929vw, 51px);
  font-weight: 400;
  letter-spacing: .2em;
  color: #4b4b4b;
}

.costs .heading h2 span:last-of-type {
  display: block;
  margin-top: max(0.714vw, 9px);
  font-size: max(1.668vw, 21px);
  font-weight: 400;
  letter-spacing: .1em;
  color: #4b4b4b;
}

.costs .heading h2::first-letter {
  font-size: max(5vw, 65px);
}

.costs .heading .flex {
  display: flex;
  column-gap: max(9.286vw, 120px);
  padding-left: max(26.071vw, 338px);
  padding-right: max(1.429vw, 18px);
}

.costs .heading ul {
  flex-shrink: 0;
  padding-top: max(4.286vw, 55px);
}

.costs .heading ul li {
  line-height: 1.4;
  padding-left: max(1.714vw, 22px);
  font-family: 'Noto Sans JP';
  font-size: max(1.214vw, 15px);
  font-weight: 400;
  color: #5d5d5d;
  background: url(../images/top/costs_check.png) left top max(0.714vw, 9px) no-repeat;
  background-size: max(1.143vw, 14px) auto;
}

.costs .heading ul li:nth-of-type(1) {
  margin-left: max(4.714vw, 61px);
}

.costs .heading ul li:nth-of-type(2) {
  margin-left: max(2.357vw, 30px);
}

.costs .heading ul li + li {
  margin-top: max(1.429vw, 18px);
}

.costs .heading ul li::first-letter {
  font-size: max(1.714vw, 22px);
}

.costs .heading ul li span {
  display: block;
}

.costs .heading ul li:nth-of-type(1) span {
  margin-left: 1em;
}

.costs .heading ul li:nth-of-type(2) span {
  margin-left: 4em;
}

.costs .heading ul li:nth-of-type(3) span {
  margin-left: 2em;
}

.costs .heading p {
  line-height: 1.7;
  padding-top: max(2.857vw, 37px);
  font-family: 'Noto Sans JP';
  font-size: max(1.214vw, 15px);
  font-weight: 400;
  letter-spacing: .06em;
  color: #fff;
}

.costs .heading p::first-letter {
  font-size: max(1.714vw, 22px);
}

.costs .heading p em {
  font-weight: 700;
  color: #fef4a2;
}

.costs .heading p b {
  font-weight: 700;
}

.costs .contents01 {
  position: relative;
  z-index: -1;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  width: max(79vw, 1027px);
  height: max(43vw, 559px);
  margin-top: min(-3.357vw, -44px);
  padding: max(9vw, 117px) max(3.714vw, 48px) 0 max(5.571vw, 72px);
  background: url(../images/top/costs_bg02.png) left top no-repeat;
  background-size: cover;
}

.costs .contents01 > div:nth-of-type(1) {
  width: max(38.571vw, 501px);
}

.costs .contents01 dl + dl {
  margin-top: max(3.929vw, 51px);
}

.costs .contents01 dl dt {
  position: relative;
  width: max(35.571vw, 462px);
  padding: max(0.357vw, 4px) 0 max(0.929vw, 12px);
  text-align: center;
  font-family: 'Noto Sans JP';
  font-size: max(2.589vw, 33px);
  font-weight: 700;
  color: #fff;
  background-color: #48c0b1;
}

.costs .contents01 dl dt::after {
  content: "";
  display: block;
  position: absolute;
  inset: 100% 0 auto 0;
  margin-inline: auto;
  width: max(1.571vw, 20px);
  height: max(1.714vw, 22px);
  background-color: #48c0b1;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.costs .contents01 dl dt span {
  font-size: max(2.143vw, 27px);
}

.costs .contents01 dl dt em {
  position: relative;
  z-index: 1;
  display: inline-block;
  margin: 0 max(1.929vw, 25px) 0 max(1.714vw, 22px);
}

.costs .contents01 dl dt em::before {
  content: "";
  position: absolute;
  top: min(-1.286vw, -17px);
  left: min(-1.071vw, -14px);
  width: max(6vw, 78px);
  height: max(6vw, 78px);
  background-color: #f8f4e2;
  border-radius: 50%;
}

.costs .contents01 dl dt em i {
  position: relative;
  z-index: 1;
  font-family: 'Noto Serif JP';
  font-size: max(3.384vw, 43px);
  font-weight: 400;
  font-style: italic;
  color: #494949;
}

.costs .contents01 dl dd {
  margin-top: max(1.429vw, 18px);
}

.costs .contents01 dl dd p {
  width: fit-content;
  padding-bottom: max(0.357vw, 4px);
  font-family: 'Noto Sans JP';
  font-weight: 500;
  color: #494949;
  border-bottom: #494949 solid 1px;
}

.costs .contents01 dl dd p * {
  font-weight: 500;
}

.costs .contents01 dl dd p i {
  font-family: 'Roboto';
  font-size: max(3.429vw, 44px);
}

.costs .contents01 dl dd p b {
  text-decoration: underline;
  text-decoration-color: #fef1c6;
  text-decoration-thickness: max(0.571vw, 7px);
  text-underline-offset: min(-0.143vw, -2px);
  text-decoration-skip-ink: none;
}

.costs .contents01 dl dd p em {
  color: #48c0b1;
}

.costs .contents01 dl:nth-of-type(1) dd p {
  font-size: max(1.929vw, 25px);
  letter-spacing: .02em;
}

.costs .contents01 dl:nth-of-type(1) dd p span {
  font-family: 'Noto Sans JP';
  font-size: max(2.278vw, 29px);
}

.costs .contents01 dl:nth-of-type(2) dd p {
  width: 100%;
  line-height: 1.3;
  font-size: max(1.714vw, 22px);
}

.costs .contents01 dl:nth-of-type(2) dd p .fs29 {
  font-size: max(2.071vw, 26px);
}

.costs .contents01 dl:nth-of-type(2) dd p .fs40 {
  font-size: max(2.857vw, 37px);
}

.costs .contents01 dl:nth-of-type(2) dd p .break {
  display: block;
  text-align: right;
}

.costs .contents01 dl dd ul {
  display: flex;
  margin-top: max(1.071vw, 13px);
}

.costs .contents01 dl dd ul li {
  margin-right: 2em;
  padding-left: max(1.286vw, 16px);
  font-family: 'Noto Sans JP';
  font-size: max(1.5vw, 19px);
  font-weight: 400;
  color: #494949;
  background: url(../images/top/costs_check.png) left center no-repeat;
  background-size: max(1.143vw, 14px) auto;
}

.costs .contents01 > div:nth-of-type(2) {
  width: max(30.643vw, 398px);
  height: max(30.643vw, 398px);
  padding-top: max(3.857vw, 50px);
  text-align: center;
  font-size: max(3.384vw, 43px);
  font-weight: 400;
  font-style: italic;
  letter-spacing: .02em;
  color: #fff;
  background: url(../images/top/costs_0yen_bg.png) left top no-repeat;
  background-size: cover;
}

.costs .contents01 > div:nth-of-type(2) span {
  display: block;
  font-size: max(4.021vw, 52px);
  font-weight: 600;
  font-style: italic;
  letter-spacing: 0;
}

.costs .contents01 > div:nth-of-type(2) em {
  font-family: 'Times New Roman', Times, serif;
  font-size: max(20vw, 260px);
  font-weight: 400;
  font-style: italic;
}

.costs .contents02 {
  position: relative;
  display: flex;
  column-gap: max(3.429vw, 44px);
  width: max(88.643vw, 1152px);
  height: max(25.786vw, 335px);
  margin-left: max(8.357vw, 108px);
  padding-top: max(5.214vw, 67px);
  padding-left: max(14.571vw, 189px);
  background-color: #fbf9ee;
}

.costs .contents02:before {
  content: "";
  position: absolute;
  top: min(-2.786vw, -37px);
  right: 0;
  width: max(18vw, 234px);
  height: max(2.786vw, 36px);
  background-color: #fbf9ee;
}

.costs .contents02 img {
  position: absolute;
  z-index: 1;
  top: max(8.143vw, 105px);
  left: min(-4.214vw, -55px);
  width: max(20.143vw, 261px);
}

.costs .contents02 dl {
  position: relative;
  width: max(33.714vw, 438px);
  height: max(19.714vw, 256px);
  padding-top: max(2.357vw, 30px);
  padding-left: max(2.143vw, 27px);
  background-color: #fff;
}

.costs .contents02 dl dt {
  position: absolute;
  top: min(-2.857vw, -38px);
  left: min(-1.571vw, -21px);
  width: 100%;
  height: max(3.929vw, 51px);
  padding-top: max(0.571vw, 7px);
  font-family: 'Noto Sans JP';
  font-size: max(2.286vw, 29px);
  font-weight: 500;
  letter-spacing: .075em;
  color: #fff;
}

.costs .contents02 dl:nth-of-type(1) dt {
  padding-left: max(2.857vw, 37px);
  background: url(../images/top/costs_dt_bg01.png) left top no-repeat;
  background-size: auto 100%;
}

.costs .contents02 dl:nth-of-type(2) dt {
  padding-left: max(5.571vw, 72px);
  background: url(../images/top/costs_dt_bg02.png) left top no-repeat;
  background-size: auto 100%;
}

.costs .contents02 dl dd ul li {
  position: relative;
  line-height: 1.3;
  padding-left: 1.1em;
  font-family: 'Noto Sans JP';
  font-size: max(1.714vw, 22px);
  font-weight: 400;
  letter-spacing: .075em;
  color: #494949;
}

.costs .contents02 dl dd ul li::before {
  content: "●";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  font-size: max(1.714vw, 22px);
  color: #b19165;
}

.costs .contents02 dl:nth-of-type(1) dd ul li + li {
  margin-top: max(1.071vw, 13px);
}

.costs .contents02 dl dd ul li span {
  font-size: max(1vw, 13px);
}

.costs .contents02 dl dd ul li em {
  color: #b19165;
}

.costs .contents02 dl dd p {
  margin-bottom: max(0.357vw, 4px);
  font-family: 'Noto Sans JP';
  font-size: max(1.429vw, 18px);
  font-weight: 400;
  color: #494949;
}

.costs .contents02 dl dd ul + p {
  margin-top: max(1.286vw, 16px);
}

.costs .contents03 {
  position: relative;
  width: max(96.929vw, 1260px);
  height: max(23.143vw, 300px);
  margin-left: max(3.071vw, 39px);
  padding: max(3.429vw, 44px) max(1.571vw, 20px) max(2.857vw, 37px) max(2.571vw, 33px);
  text-align: center;
  background-color: #fbf9ee;
  box-shadow: max(1.357vw, 17px) max(0.714vw, 9px) max(0.429vw, 5px) rgba(90, 88, 86, 0.1);
}

.costs .contents03 > div {
  display: flex;
  column-gap: max(3.571vw, 46px);
  height: 100%;
  padding: max(3vw, 39px) max(1.714vw, 22px) 0 max(1.286vw, 16px);
  background-color: #fff;
}

.costs .contents03 dl {
  position: relative;
}

.costs .contents03 dl:not(:last-of-type):after {
  content: "";
  display: block;
  position: absolute;
  width: 1px;
  height: 100%;
  right: min(-1.786vw, -24px);
  top: min(-0.929vw, -13px);
  border-right: #999 dashed 1px;
}

.costs .contents03 dl:nth-of-type(1) {
  width: max(29.429vw, 382px);
}

.costs .contents03 dl:nth-of-type(2) {
  width: max(19.857vw, 258px);
}

.costs .contents03 dl:nth-of-type(3) {
  width: max(33.5vw, 435px);
}

.costs .contents03 dl dt {
  padding: max(0.571vw, 7px) 0 max(0.429vw, 5px);
  font-family: 'Noto Sans JP';
  font-size: max(1.357vw, 17px);
  font-weight: 700;
  letter-spacing: .1em;
  color: #fff;
  background-color: #b19165;
  border-radius: max(1.143vw, 14px);
}

.costs .contents03 dl:nth-of-type(3) dt {
  width: max(16.571vw, 215px);
}

.costs .contents03 dl:nth-of-type(1) dd img {
  margin-top: max(1.5vw, 19px);
  width: max(14.43svw, 187.57px);
}

.costs .contents03 dl:nth-of-type(2) dd img {
  margin-top: max(0.571vw, 7px);
  width: max(16.286vw, 211px);
}

.costs .contents03 dl:nth-of-type(3) dd {
  text-align: left;
  padding-left: max(1.714vw, 22px);
}

.costs .contents03 dl:nth-of-type(3) dd img:nth-of-type(1) {
  margin-top: max(0.643vw, 8px);
  width: max(12.929vw, 168px);
}

.costs .contents03 dl:nth-of-type(3) dd img:nth-of-type(2) {
  position: absolute;
  top: 0;
  right: 0;
  width: max(16.143vw, 209px);
}

/*
  treatment
========================================================================== */
.treatment {
  margin-top: max(9.5vw, 123px);
  background-color: #edf5f5;
}

.treatment h2 {
  height: max(29.643vw, 385px);
  padding-top: max(5.571vw, 72px);
  background: url(../images/top/treatment_ttl_bg.jpg) center top no-repeat;
  background-size: cover;
}

.treatment h2 img {
  width: max(64.571vw, 839px);
  margin-left: max(30.357vw, 394px);
}

.treatment h2::after {
  content: "";
  position: relative;
  display: block;
  width: 1px;
  aspect-ratio: 1/100;
  margin: max(0.929vw, 12px) auto min(-4.214vw, -55px);
  background-color: #333;
}

.treatment h2 + p {
  line-height: 1.75;
  margin-top: max(5.714vw, 74px);
  text-align: center;
  font-family: 'Noto Sans JP';
  font-size: max(1vw, 13px);
  font-weight: 400;
  color: #333;
}

.treatment .contents {
  margin-top: max(2.143vw, 27px);
  padding: 0 0 max(5.357vw, 69px) max(4.643vw, 60px);
  background: url(../images/top/treatment_contents_bg.jpg) center bottom no-repeat;
  background-size: 100% auto;
}

.treatment h3 {
  position: relative;
  width: fit-content;
  height: max(5.5vw, 71px);
  margin: auto;
  padding: max(1vw, 13px) max(1.786vw, 23px) 0 max(2.857vw, 37px);
  text-align: center;
  font-size: max(2.857vw, 37px);
  font-weight: 500;
  letter-spacing: .1em;
  color: #fff;
  background-color: #48c0b1;
}

.treatment .set + h3 {
  margin-top: max(4.143vw, 53px);
}

.treatment h3 span {
  position: absolute;
  top: min(-1vw, -13px);
  left: min(-3.786vw, -50px);
  display: block;
  width: max(6.071vw, 78px);
  height: max(6.071vw, 78px);
  padding-top: max(1.071vw, 13px);
  font-size: max(3.571vw, 46px);
  font-weight: 500;
  background: url(../images/top/treatment_h3_bg.png) center top no-repeat;
  background-size: cover;
}

.treatment .set {
  display: flex;
  flex-wrap: wrap;
  gap: max(4.643vw, 60px) max(2.5vw, 32px);
  margin-top: max(1.929vw, 25px);
}

.treatment .set .box {
  position: relative;
  width: max(28.571vw, 371px);
  height: max(39.643vw, 515px);
  padding: max(1.786vw, 23px) max(1.786vw, 23px) 0;
  background-color: #fff;
  box-shadow: 0.2em 0.2em 0.2em rgba(51, 51, 51, 0.15);
}

.treatment .set .box::after {
  content: "";
  position: absolute;
  bottom: max(0.714vw, 9px);
  right: max(0.714vw, 9px);
  display: block;
  width: max(1.429vw, 18px);
  height: max(1.429vw, 18px);
  background-color: #d0d9e7;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.treatment .set .box .num {
  position: absolute;
  top: -0.25em;
  left: -0.03em;
  font-family: 'Times New Roman', Times, serif;
  font-size: max(8.929vw, 116px);
  font-weight: 400;
  letter-spacing: -0.05em;
  color: #444;
  opacity: 0.1;
  mix-blend-mode: multiply;
  transform: skewX(-10deg);
}

.treatment .set .box h4 {
  line-height: 1.45;
  text-align: center;
  font-size: max(1.571vw, 20px);
  font-weight: 500;
  letter-spacing: .1em;
  color: #444;
  border-bottom: #c1c1c1 solid 1px;
}

.treatment .set .box h4 * {
  font-weight: 500;
}

.treatment .set .box h4 span {
  font-size: max(2vw, 26px);
}

.treatment .set .box h4 em {
  display: block;
  font-size: max(2.357vw, 30px);
  color: #48c0b1;
}

.treatment .set .box .pic {
  width: max(21.429vw, 278px);
  margin: max(2.429vw, 31px) auto 0;
}

.treatment .set .box .text {
  line-height: 1.5;
  margin-top: max(1.786vw, 23px);
  min-height: 3em;
  font-family: 'Noto Sans JP';
  font-size: max(1.191vw, 15px);
  font-weight: 400;
  letter-spacing: .1em;
}

.treatment .set .box ul {
  margin-top: max(1.429vw, 18px);
  padding: max(1.071vw, 13px) max(1.071vw, 13px) max(1.143vw, 14px);
  background-color: #eff2f7;
}

.treatment .set .box ul li {
  line-height: 1.7;
  padding-left: max(1.786vw, 23px);
  font-family: 'Noto Sans JP';
  font-size: max(1.041vw, 13px);
  font-weight: 400;
  letter-spacing: .1em;
  background: url(../images/top/treatment_check.png) left center no-repeat;
  background-size: max(1.071vw, 13px) auto;
}

/*
  beauty
========================================================================== */
.beauty {
  margin-top: max(4.643vw, 60px);
  font-family: 'Noto Sans JP';
}

.beauty .inner {
  margin-top: max(6.071vw, 78px);
}

.beauty h2 {
  height: max(31.571vw, 410px);
  line-height: 1.4;
  padding-top: max(20.714vw, 269px);
  padding-left: max(6vw, 78px);
  font-size: max(2.688vw, 34px);
  font-weight: 500;
  letter-spacing: .12em;
  color: #fff;
  background: url(../images/top/beauty_ttl_bg.png) center top no-repeat;
  background-size: cover;
}

.beauty h2 * {
  font-weight: 500;
}

.beauty h2 em {
  color: #fff08b;
}

.beauty h2 i {
  padding-top: max(0.357vw, 4px);
  background-image: radial-gradient(circle, #fff calc(max(0.429vw, 5px) / 2), transparent calc(max(0.429vw, 5px) / 2));
  background-position: top right;
  background-repeat: repeat-x;
  background-size: 1em 0.5em;
}

.beauty .contents {
  /*height: max(101.5vw,1319px);*/
  margin: max(0.143vw, 1px) max(2.857vw, 37px) 0;
  padding: max(1.786vw, 23px) 0;
  background: url(../images/top/beauty_bg.png) center top no-repeat;
  background-size: cover;
}

.beauty .contents h3 {
  position: relative;
  width: fit-content;
  margin: auto;
  text-align: center;
  font-size: max(2.976vw, 38px);
  font-weight: 500;
  letter-spacing: .06em;
  color: #a27826;
}

.beauty .contents h3:before,
.beauty .contents h3:after {
  content: "";
  position: absolute;
  top: min(-1.286vw, -17px);
  width: max(4.5vw, 58px);
  height: max(5.571vw, 72px);
  background: url(../images/top/icon_hoshi.png) left center no-repeat;
  background-size: cover;
}

.beauty .contents h3:before {
  left: min(-8.286vw, -108px);
}

.beauty .contents h3:after {
  right: min(-7.929vw, -104px);
}

.beauty .contents h3 + p {
  margin-top: max(2.143vw, 27px);
  text-align: center;
  font-size: max(1.786vw, 23px);
  font-weight: 400;
  letter-spacing: .02em;
  color: #2e2e2e;
}

.beauty .contents h3 + p span {
  display: inline-block;
  margin: 0 max(0.714vw, 9px);
  padding: 0 max(1.429vw, 18px) max(0.357vw, 4px) max(1.214vw, 15px);
  text-align: center;
  font-family: "Noto Serif JP";
  font-size: max(2.084vw, 27px);
  font-weight: 500;
  letter-spacing: .1em;
  color: #fff;
  background-color: #48c0b1;
}

.beauty .contents .improvement {
  display: flex;
  justify-content: center;
  column-gap: max(3.929vw, 51px);
  margin-top: max(2.571vw, 33px);
}

.beauty .contents .improvement .box {
  width: max(24.286vw, 315px);
  padding-top: max(13vw, 169px);
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 100% auto;
}

.beauty .contents .improvement .box:nth-of-type(1) {
  background-image: url(../images/top/beauty_img01.png);
}

.beauty .contents .improvement .box:nth-of-type(2) {
  background-image: url(../images/top/beauty_img02.png);
}

.beauty .contents .improvement .box:nth-of-type(3) {
  background-image: url(../images/top/beauty_img03.png);
}

.beauty .contents .improvement .box h4 {
  margin: 0 max(0.714vw, 9px);
  padding: max(0.429vw, 5px) 0 max(0.5vw, 6px);
  text-align: center;
  font-family: "Noto Serif JP";
  font-size: max(1.427vw, 18px);
  font-weight: 500;
  letter-spacing: .075em;
  color: #fff;
  background-color: #48c0b1;
}

.beauty .contents .improvement .box p {
  line-height: 1.5;
  margin-top: max(2.857vw, 37px);
  font-size: max(1.141vw, 14px);
  font-weight: 400;
  letter-spacing: .1em;
  color: #3d3d3d;
}

.beauty .contents .improvement .box .btn {
  margin-top: max(1.071vw, 13px);
  text-align: right;
}

.beauty .contents .improvement .box .btn a {
  font-family: 'Times New Roman', Times, serif;
  font-size: max(1.191vw, 15px);
  font-weight: 400;
  font-style: italic;
  letter-spacing: .05em;
  color: #2e2e2e;
  text-decoration: underline;
  text-underline-offset: max(0.286vw, 3px);
}

.beauty .contents .before_after {
  display: flex;
  justify-content: center;
  column-gap: max(5.429vw, 70px);
  margin-top: max(5.357vw, 69px);
}

.beauty .contents .before_after .box {
  width: max(41.143vw, 534px);
}

.beauty .contents .before_after .box ul.before_after_img {
  display: flex;
  justify-content: space-between;
  background: url(../images/top/beauty_arrow.png) center center no-repeat;
  background-size: max(2vw, 26px) auto;
}

.beauty .contents .before_after .box ul.before_after_img li {
  position: relative;
}

.beauty .contents .before_after .box ul.before_after_img li::before {
  content: "";
  position: absolute;
  top: min(-1.786vw, -24px);
  left: min(-1.786vw, -24px);
  width: max(5.714vw, 74px);
  height: max(5.643vw, 73px);
  background-position: left top;
  background-repeat: no-repeat;
  background-size: cover;
}

.beauty .contents .before_after .box ul.before_after_img li:nth-of-type(1)::before {
  background-image: url(../images/top/beauty_icon_before.png);
}

.beauty .contents .before_after .box ul.before_after_img li:nth-of-type(2)::before {
  background-image: url(../images/top/beauty_icon_after.png);
}

.beauty .contents .before_after .box ul.before_after_img li img {
  width: max(18vw, 234px);
}

.beauty .contents .before_after .box dl {
  position: relative;
  height: max(33.071vw, 429px);
  margin-top: max(2.429vw, 31px);
  padding: max(2vw, 26px) max(2.286vw, 29px) 0 max(2vw, 26px);
  background-color: #fff;
}

.beauty .contents .before_after .box dl::before,
.beauty .contents .before_after .box dl::after {
  content: "";
  position: absolute;
  width: max(8.571vw, 111px);
  height: max(8.571vw, 111px);
  background-position: left top;
  background-repeat: no-repeat;
  background-size: cover;
}

.beauty .contents .before_after .box dl::before {
  top: min(-1vw, -13px);
  left: min(-1vw, -13px);
  background-image: url(../images/top/frame01.png);
}

.beauty .contents .before_after .box dl::after {
  bottom: min(-1vw, -13px);
  right: min(-1vw, -13px);
  background-image: url(../images/top/frame02.png);
}

.beauty .contents .before_after .box dt {
  width: fit-content;
  padding: max(0.714vw, 9px);
  font-family: "Noto Serif JP";
  font-size: max(1.786vw, 23px);
  font-weight: 400;
  letter-spacing: .1em;
  color: #fff;
  background-color: #48c0b1;
}

.beauty .contents .before_after .box dd {
  margin-top: max(2.5vw, 32px);
}

.beauty .contents .before_after .box dd ul li {
  position: relative;
  line-height: 1.5;
  padding-left: 1.4em;
  font-size: max(1.429vw, 18px);
  font-weight: 400;
  letter-spacing: .1em;
  color: #2e2e2e;
}

.beauty .contents .before_after .box dd ul li + li {
  margin-top: max(0.714vw, 9px);
}

.beauty .contents .before_after .box dd ul li::before {
  content: "■";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  font-size: max(1.429vw, 18px);
  color: #48c0b1;
}

/*
  retreatment
========================================================================== */
.retreatment {
  margin-top: max(6.143vw, 79px);
  font-family: 'Noto Sans JP';
}

.retreatment h2 {
  height: max(31.929vw, 415px);
  line-height: 1.4;
  padding-top: max(21.429vw, 278px);
  padding-left: max(12.36svw, 160.64px);
  font-size: max(2.688vw, 34px);
  font-weight: 500;
  letter-spacing: .12em;
  color: #fff;
  background: url(../images/top/retreatment_ttl.png) center top no-repeat;
  background-size: cover;
}

.retreatment h2 * {
  font-weight: 500;
}

.retreatment h2 span {
  display: inline-block;
  text-align: center;
}

.retreatment h2 em {
  color: #fff08b;
}

.retreatment h2 i {
  padding-top: max(0.357vw, 4px);
  background-image: radial-gradient(circle, #fff calc(max(0.429vw, 5px) / 2), transparent calc(max(0.429vw, 5px) / 2));
  background-position: top right;
  background-repeat: repeat-x;
  background-size: 1.15em 0.3em;
}

.retreatment .contents {
  height: max(57.571vw, 748px);
  margin: max(1vw, 13px) max(2.857vw, 37px) 0;
  padding-top: max(1.786vw, 23px);
  background: url(../images/top/retreatment_bg01.png) center top no-repeat;
  background-size: cover;
}

.retreatment .contents h3 {
  position: relative;
  width: fit-content;
  margin: auto;
  text-align: center;
  font-size: max(2.976vw, 38px);
  font-weight: 500;
  letter-spacing: .06em;
  color: #a27826;
}

.retreatment .contents h3:before,
.retreatment .contents h3:after {
  content: "";
  position: absolute;
  top: min(-1.286vw, -17px);
  width: max(4.5vw, 58px);
  height: max(5.571vw, 72px);
  background: url(../images/top/icon_hoshi.png) left center no-repeat;
  background-size: cover;
}

.retreatment .contents h3:before {
  left: min(-8.286vw, -108px);
}

.retreatment .contents h3:after {
  right: min(-7.929vw, -104px);
}

.retreatment .contents h3 + p {
  margin-top: max(1.786vw, 23px);
  text-align: center;
  font-size: max(2.714vw, 35px);
  font-weight: 400;
  letter-spacing: .02em;
  color: #2e2e2e;
  line-height: 1.25em;
}

.retreatment .contents h3 + p span {
  font-size: max(3.214vw, 41px);
  font-weight: 500;
}

.retreatment .contents h3 + p span span {
  font-size: max(3.929vw, 51px);
  font-weight: 500;
}

.retreatment .contents h3 + p img {
  margin: 0 max(0.714vw, 9px);
  width: max(18.429vw, 240px);
  ;
  vertical-align: text-bottom;
}

.retreatment .contents h3 + p + p {
  line-height: 1.5;
  margin-top: max(1.786vw, 23px);
  text-align: center;
  font-size: max(1.857vw, 24px);
  font-weight: 400;
  letter-spacing: .1em;
  color: #4a4a4a;
}

.retreatment .contents .box {
  position: relative;
  width: max(89.5vw, 1163px);
  height: max(33.643vw, 437px);
  margin: max(2.5vw, 32px) auto 0;
  padding: max(2.429vw, 31px) max(4.357vw, 56px) max(2.857vw, 37px) max(28.714vw, 373px);
  background: url(../images/top/retreatment_bg02.png) center top no-repeat;
  background-size: cover;
}

.retreatment .contents .box::before,
.retreatment .contents .box::after {
  content: "";
  position: absolute;
  width: max(8.571vw, 111px);
  height: max(8.571vw, 111px);
  background-position: left top;
  background-repeat: no-repeat;
  background-size: cover;
}

.retreatment .contents .box::before {
  top: min(-0.571vw, -8px);
  left: min(-0.571vw, -8px);
  background-image: url(../images/top/frame01.png);
}

.retreatment .contents .box::after {
  bottom: min(-0.571vw, -8px);
  right: min(-0.571vw, -8px);
  background-image: url(../images/top/frame02.png);
}

.retreatment .contents .box .box_inner {
  height: 100%;
  padding: max(1.5vw, 19px) max(1.714vw, 22px) 0 max(2.214vw, 28px);
  background-color: #fffbe3;
}

.retreatment .contents .box .box_inner h4 {
  font-family: "Noto Serif JP";
  font-size: max(1.571vw, 20px);
  font-weight: 500;
  letter-spacing: .1em;
  color: #a27826;
}

.retreatment .contents .box .box_inner h4 + p {
  line-height: 1.15;
  padding-left: max(1.429vw, 18px);
  padding-bottom: max(0.714vw, 9px);
  font-family: "Noto Serif JP";
  font-size: max(3.214vw, 41px);
  font-weight: 500;
  letter-spacing: .1em;
  color: #4a4a4a;
  background-color: #fff;
  margin: 0.4em 0;
}

.retreatment .contents .box .box_inner h4 + p * {
  font-weight: 500;
}

.retreatment .contents .box .box_inner h4 + p .fs28 {
  font-size: max(2vw, 26px);
  letter-spacing: .07em;
}

.retreatment .contents .box .box_inner h4 + p .fs50 {
  font-size: max(3.571vw, 46px);
}

.retreatment .contents .box .box_inner h4 + p .fs55 {
  font-size: max(3.929vw, 51px);
}

.retreatment .contents .box .box_inner h4 + p .fs60 {
  font-size: max(4.286vw, 55px);
}

.retreatment .contents .box .box_inner h4 + p em {
  color: #f19092;
  text-decoration: underline;
  text-decoration-color: #fff08b;
  text-decoration-thickness: max(0.857vw, 11px);
  text-underline-offset: min(-0.214vw, -3px);
  text-decoration-skip-ink: none;
}

.retreatment .contents .box .box_inner .flex {
  display: flex;
  column-gap: max(1.786vw, 23px);
  line-height: 1.5;
  /*margin-top: max(0.714vw,9px);*/
  margin-left: max(0.929vw, 12px);
  font-size: max(1.488vw, 19px);
  font-weight: 400;
  letter-spacing: .06em;
  color: #4a4a4a;
}

.retreatment .contents .box .box_inner .flex dl dd li {
  padding-left: 1em;
  text-indent: -0.5em;
}

/*
  consultation
========================================================================== */
.consultation {
  position: relative;
  height: max(42.857vw, 557px);
  margin-top: max(14.071vw, 182px);
  padding-top: max(7.5vw, 97px);
  background: url(../images/top/consultation_bg.jpg) center top no-repeat;
  background-size: cover;
  text-align: center;
}

.consultation .logo {
  position: absolute;
  top: min(-4.143vw, -54px);
  left: 0;
  right: 0;
  margin: auto;
  width: max(10vw, 130px);
  height: max(10vw, 130px);
  border-radius: 50%;
  box-shadow: 0 0.1em 0.5em rgba(99, 99, 99, 0.15);
}

.consultation .logo img {
  width: 100%;
}

.consultation .lead span {
  display: block;
  letter-spacing: .1em;
  color: #3a3a3a;
}

.consultation .lead span:nth-of-type(1) {
  font-size: max(2.976vw, 38px);
  font-weight: 500;
}

.consultation .lead span:nth-of-type(2) {
  padding-top: max(0.714vw, 9px);
  font-size: max(1.786vw, 23px);
  font-weight: 400;
}

.consultation h2 {
  position: relative;
  width: max(34.429vw, 447px);
  height: max(7.857vw, 102px);
  margin: max(1.786vw, 23px) auto 0;
  padding-top: max(0.857vw, 11px);
  background-color: #f19bb3;
}

.consultation h2::before,
.consultation h2::after {
  content: "";
  position: absolute;
  top: max(3.357vw, 43px);
  right: 0;
  margin: auto;
  height: 1px;
}

.consultation h2::before {
  left: min(-4.857vw, -64px);
  width: max(44.071vw, 572px);
  background-color: #888;
}

.consultation h2::after {
  left: 0;
  width: 100%;
  background-color: #fff;
}

.consultation h2 span {
  display: block;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: #fff;
}

.consultation h2 span:first-of-type {
  font-family: 'Times New Roman', Times, serif;
  font-size: max(1.786vw, 23px);
}

.consultation h2 span:last-of-type {
  font-size: max(2.143vw, 27px);
  margin-top: max(0.714vw, 9px);
  padding-top: max(0.857vw, 11px);
}

.consultation .desc p {
  line-height: 1.5;
  margin-top: max(2.143vw, 27px);
  font-size: max(1.191vw, 15px);
  font-weight: 400;
  letter-spacing: .075em;
  color: #3a3a3a;
}

.consultation .btn a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: max(18.571vw, 241px);
  height: max(2.714vw, 35px);
  margin: max(1.714vw, 22px) auto 0;
  font-family: 'Noto Sans JP';
  font-size: max(1.191vw, 15px);
  font-weight: 400;
  background: url(../images/top/consultation_arrow.png) right max(0.857vw, 11px) center no-repeat;
  background-size: max(0.714vw, 9px) auto;
  border: #333 solid 1px;
}

/*
  gallery
========================================================================== */
.gallery {
  margin-top: max(10.286vw, 133px);
}

.gallery .inner {
  position: relative;
}

.gallery .inner h2 {
  position: absolute;
  top: max(2.357vw, 30px);
  left: max(2.429vw, 31px);
  z-index: 10;
}

.gallery .inner h2 img {
  width: max(19.5vw, 253px);
}

.gallery .thumb {
  padding: max(3.071vw, 39px) max(4.143vw, 53px) max(3vw, 39px);
  background-color: #faf9f4;
}

.gallery .thumb li {
  margin: 0 max(0.429vw, 5px);
}

.gallery ul.thumb .slick-track {
  transform: unset !important;
}

/*
  news
========================================================================== */
.news {
  margin: max(6.286vw, 81px) max(3.571vw, 46px) 0;
}

.news .inner {
  padding: max(3.571vw, 46px) max(3.5vw, 45px) max(4.5vw, 58px) max(2.714vw, 35px);
  border: #ccc solid 1px;
}

.news h2 {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-bottom: max(0.714vw, 9px);
  font-family: 'Times New Roman', Times, serif;
  font-size: max(2.766vw, 35px);
  font-weight: 400;
  letter-spacing: .16em;
  color: #2e2e2e;
  border-bottom: #2c4166 double max(0.214vw, 2px);
}

.news h2 span {
  font-family: 'Noto Sans JP';
  font-size: max(1.429vw, 18px);
  font-weight: 400;
  letter-spacing: .1em;
  color: #2e2e2e;
}

.news ul {
  display: flex;
  flex-wrap: wrap;
  gap: max(0.929vw, 12px) max(3.857vw, 50px);
  margin-top: max(2.857vw, 37px);
}

.news li {
  width: calc(50% - 1.929vw);
  font-family: 'Noto Sans JP';
}

.news li a {
  display: flex;
  align-items: center;
  column-gap: max(1.786vw, 23px);
}

.news li img {
  width: max(13vw, 169px);
  flex-shrink: 0;
}

.news li dl dt {
  font-size: max(1.286vw, 16px);
  font-weight: 500;
  color: #f29cb5;
}

.news li dl dd {
  line-height: 1.5;
  margin-top: max(1.429vw, 18px);
  font-size: max(1.143vw, 14px);
  font-weight: 400;
  letter-spacing: .1em;
}

.news .btn {
  width: max(14.071vw, 182px);
  margin-top: max(2.643vw, 34px);
  margin-left: auto;
}

.news .btn a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  height: max(2.929vw, 38px);
  padding-left: max(2.714vw, 35px);
  font-family: 'Noto Sans JP';
  font-size: max(1.143vw, 14px);
  font-weight: 400;
  letter-spacing: .06em;
  color: #333;
  background: url(../images/top/news_arrow.png) right max(2.714vw, 35px) center no-repeat;
  background-size: max(2.429vw, 31px) auto;
  border: #333 solid 1px;
}

/*
  access
========================================================================== */
.access {
  margin: max(3.929vw, 51px) max(3.571vw, 46px) 0;
}

.access h2 {
  text-align: center;
  font-family: 'Times New Roman', Times, serif;
  font-size: max(2.857vw, 37px);
  font-weight: 400;
  letter-spacing: .16em;
  color: #2e2e2e;
}

.access h2::after {
  position: relative;
  content: "";
  display: block;
  width: 1px;
  aspect-ratio: 1/62;
  margin: max(0.714vw, 9px) auto min(-1.5vw, -20px);
  background: #2e2e2e;
}

.access .map iframe {
  display: block;
  width: 100%;
  height: 500px;
  line-height: 0;
}

.access .googlemap_link {
  margin-top: max(1.143vw, 14px);
  text-align: right;
}

.access .googlemap_link a {
  padding-right: max(2.714vw, 35px);
  font-family: 'Noto Sans JP';
  font-size: max(1.286vw, 16px);
  font-weight: 400;
  letter-spacing: .1em;
  color: #333;
  background: url(../images/top/access_arrow.png) right center no-repeat;
  background-size: max(1.714vw, 22px) auto;
}

.access .text {
  line-height: 1.75;
  margin-top: max(2.143vw, 27px);
  font-family: 'Noto Sans JP';
  font-size: max(1vw, 13px);
  font-weight: 400;
}

/*
  bnr
========================================================================== */
.bnr {
  margin-top: max(4.643vw, 60px);
  text-align: center;
}

.bnr01 img {
  width: max(84.429vw, 1097px);
}

.bnr02 img {
  width: max(85.929vw, 1117px);
}
