@charset "utf-8";
/*-----------------------------------------------------
Reset
----------------------------------------------------- */
html, body, div, span,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, 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: 100%; font: inherit; vertical-align: baseline;
}

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

ol, ul { list-style: none; line-height: 1.5; }
table { border-collapse: collapse; border-spacing: 0; }

* { margin: 0; padding: 0; }
img { max-width: 100%; width: 100%; height: auto; vertical-align: top; image-rendering: -webkit-optimize-contrast; }

* { min-height: 0; min-width: 0; }

html { scroll-behavior: smooth; }
body { line-height: 1; margin: 0; padding: 0; height: 100%; font-family: "Noto Sans JP","Josefin Sans", sans-serif; letter-spacing : 0.1em; color: #333333; }
a {	text-decoration: none; color: inherit; transition: 0.3s ease-in-out; }
@media (min-width: 1025px) {
	a[href*="tel:"] { pointer-events: none; cursor: default; text-decoration: none;}
}
p , div { text-align: justify; }
button { margin: 0; padding: 0; outline: 0; border: 0; border-radius: 0; color: inherit; vertical-align: middle; text-align: inherit;font: inherit; -webkit-appearance: none; appearance: none; }
picture { display: block; }
p.small { font-size: 1.1rem; line-height: 20px; }
p.mini { font-size: clamp(0.813rem, 0.734rem + 0.39vw, 1.125rem); }

.pc { display: block; }
.sp { display: none; }
[data-color="pink"]{ color: #d25d57; }
[data-size="w1000"]{ max-width: 1000px; width: 90%; margin: 0 auto; }
[data-size="w1200"]{ max-width: 1200px; width: 90%; margin: 0 auto; }
[data-size="w1600"]{ max-width: 1600px; width: 90%; margin: 0 auto; position: relative;  }

/*オーバーレイ*/
.overlay { background: #fff; position: fixed; top: 0; left: 0; height: 100%; width: 100%; z-index: 10000; }

header { position: relative; }
header h1 { position: absolute; background: #fff; border-radius: 0 0 30px 30px; padding: 1% 3%; box-sizing: border-box; margin-left: 3%; display: flex; align-items: center; justify-content: center; }
header h1 img { max-width: 393px; width: 100%; } 

#Intro { position: relative; background: url("../img/intro_bg.png")no-repeat; background-size: cover; background-position: left; padding: 300px 5% 100px; }
#Intro::after { content: ''; display: block; background: url("../img/intro_arrow.svg")no-repeat; background-size: contain; aspect-ratio: 140 / 150; width: 10%; position: absolute; right: 0; left: 0; margin: auto; bottom: -100px; }
#Intro .genin { background: #fff; border: 5px solid #d25d57; box-sizing: border-box; border-radius: 20px; position: absolute; right: 0; left: 0; margin: 0 auto; top: -70px; }
#Intro .genin_ttl { background: #d25d57; border-radius: 10px 10px 0 0; text-align: center; }
#Intro .genin_ttl img { max-width: 412px; width: 100%; padding: 5px 0 10px; }
#Intro .genin_inner { display: flex; flex-wrap: wrap; justify-content: space-around; padding: 30px; }
#Intro .genin_box { display: flex; align-items: center; }
#Intro .genin_box img { max-width: 95px; margin-right: 10px; }
#Intro .genin_box p.txt { font-size: clamp(0.938rem, 0.781rem + 0.78vw, 1.563rem); line-height: 45px; font-weight: 700; }
#Intro .txt_wrap { width: 75%; margin-left: auto; }
#Intro .txt_wrap span.marker { background: #f5ee62; color: #d25d57; }
#Intro .txt_wrap p.txt { font-size: clamp(0.875rem, 0.5rem + 1.88vw, 2.375rem); line-height: 64px; font-weight: 700; margin-bottom: 20px; }

#Genin_contents { padding: 120px 0; }
#Genin_contents .genin01 { margin-bottom: 80px; }
#Genin_contents .genin_flex { display: flex; justify-content: space-between; margin: 40px 0; }
#Genin_contents .genin_flex .box { width: calc(80% / 3); display: flex; flex-direction: column; }
#Genin_contents .genin_flex .box:first-child { width:30%; }
#Genin_contents .genin_flex .box:not(:first-child) p { font-size: clamp(0.813rem, 0.703rem + 0.55vw, 1.25rem); }
#Genin_contents .genin_flex .box p { text-align: center; font-size: clamp(1rem, 0.891rem + 0.55vw, 1.438rem); line-height: 26px; font-weight: 700; margin-top: auto; }
#Genin_contents .genin_ttl { display: flex; align-items: center; margin-bottom: 30px; }
#Genin_contents .genin_ttl img.icon { max-width: 65px; width: 100%; margin-right: 20px; }
#Genin_contents .genin_ttl p.main { font-size: clamp(1.125rem, 0.969rem + 0.78vw, 1.75rem); line-height: 35px; font-weight: 700; }
#Genin_contents p.sub { font-size: 20px; line-height: 28px; text-align: center; }

#Genin_contents .type { width: 48%; }
#Genin_contents .type figure { width: 47%; }
#Genin_contents .type figcaption { text-align: center; line-height: 22px; margin-top: 10px; font-size: clamp(0.75rem, 0.688rem + 0.31vw, 1rem); }
#Genin_contents .type .inner_flex { display: flex; justify-content: space-between; padding: 40px; }
#Genin_contents .type01 .inner_flex { background: #f5efeb; border-radius: 0 0 20px 20px;}
#Genin_contents .type02 .inner_flex { background: #e7e7e7; border-radius: 0 0 20px 20px;}
/*#Genin_contents .type01 p.ttl { background: #cba495; border-radius: 20px 20px 0 0; }*/

#Mattress .mattress_intro { background: #ffede5; padding: 100px 0; position: relative; }
#Mattress .mattress_intro::before { content: ''; display: block; background: url("../img/wave01.svg") repeat-x; background-size: contain; width: 100%; position: absolute; height: 80px; top: -40px; }
#Mattress .mattress_intro h3 { text-align: center; font-size: clamp(1.375rem, 1.016rem + 1.8vw, 2.813rem); font-weight: 700; margin-bottom: 50px; }
#Mattress .mattress_intro h3::before { content: ''; display: inline-block; background: url("../img/icon_nattoku.svg")no-repeat; background-size: contain; aspect-ratio: 168 / 168; width: 10%; vertical-align: -30px; margin-right: 10px; }
#Mattress .flex { display:flex; justify-content: space-between; }
#Mattress .flex .how { width: calc(94% / 3); }
#Mattress .flex .how p.ttl { background: #d25d57; text-align: center; color: #fff; font-size: clamp(0.938rem, 0.781rem + 0.78vw, 1.563rem); padding: 10px 0; border-radius: 20px 20px 0 0; }
#Mattress .flex .how picture img { border-radius: 0 0 20px 20px; margin-bottom: 20px; }
#Mattress .flex .how p { font-size: clamp(0.875rem, 0.813rem + 0.31vw, 1.125rem); line-height: 24px; font-weight: 700; text-align: center; }

#Mattress .mattress_step::before { content: ''; display: block; background: url("../img/wave02.svg") repeat-x; background-size: contain; width: 100%; position: absolute; height: 80px; top: -40px; }
#Mattress .mattress_step { background: #ffe1d5; padding: 100px 0; position: relative; }
#Mattress .mattress_step .flex { display: flex; justify-content: space-between; align-items: center; }
#Mattress .mattress_step .flex picture img { width: 40em; border-radius: 20px; }
#Mattress .mattress_step .flex .txt_wrap { margin-right: 20px; }
#Mattress .mattress_step h3 { font-size: clamp(1.375rem, 1.016rem + 1.8vw, 2.813rem); font-weight: 700; margin-bottom: 40px; text-align: center; }
#Mattress .mattress_step .step_box { background: #fff; border-radius: 20px; padding: 40px; box-sizing: border-box; position: relative; }
#Mattress .mattress_step .step_box:not(:last-child) { margin-bottom: 100px; }
#Mattress .mattress_step .step_box:not(:last-child)::after { content: ''; display: block; width: 0; height: 0; border-style: solid; border-right: 17px solid transparent; border-left: 17px solid transparent; border-top: 20px solid #d25d57; border-bottom: 0; position: absolute; bottom: -60px; right: 0; left: 0; margin: auto; }
#Mattress .mattress_step p.num { background: #d25d57; display: inline-block; color: #fff; border-radius: 5px; padding: 5px; margin-bottom: 15px; font-size: clamp(0.75rem, 0.688rem + 0.31vw, 1rem); }
#Mattress .mattress_step p.step_ttl { font-weight: 700; font-size: clamp(0.938rem, 0.891rem + 0.23vw, 1.125rem); line-height: 20px; margin-bottom: 15px; }
#Mattress .mattress_step p.txt { font-size: clamp(0.875rem, 0.859rem + 0.08vw, 0.938rem); line-height: 24px; }

.product .omamori { position: relative; background: #005277; border-radius: 20px; padding: 40px; box-sizing: border-box; max-width: 830px; width: 100%; margin: 0 auto 60px; }
.product .omamori::before { content: ''; display: block; background: url("../img/omamori_wave01.svg")no-repeat; background-size: contain; aspect-ratio: 167 / 38; width: 30%; position: absolute; top: -30px; left: -100px; }
.product .omamori::after { content: ''; display: block; background: url("../img/omamori_wave02.svg")no-repeat; background-size: contain; aspect-ratio: 167 / 38; width: 30%; position: absolute; bottom: 20px; right: -60px; }

.product { padding: 100px 0; }
.product .omamori p { color: #fff; }
.product .omamori p.omamori_ttl { font-size: clamp(1rem, 0.891rem + 0.55vw, 1.438rem); font-weight: 700; margin-bottom: 20px; line-height: 32px; }
.product .omamori p.omamori_ttl span.bold { font-size: clamp(1.188rem, 1.016rem + 0.86vw, 1.875rem); font-weight: 700; color: #edcb4f; }
.product .omamori p.omamori_txt { font-size: clamp(0.813rem, 0.734rem + 0.39vw, 1.125rem); line-height: 30px; }
.product .omamori .txt_wrap { margin-right: 20px; }
.product .omamori .omamori_inner { display: flex; justify-content: space-between; }
.product .omamori picture { max-width: 260px; width: 100%; }
.product .omamori picture img { border-radius: 20px; }
.product .product_wrap { display: flex; justify-content: space-between; flex-wrap: wrap; }
.product .product_wrap p.cap { margin: 15px 0; font-size: 13px; }
.product .product_wrap .item { width: 48%; text-align: center; margin-bottom: 30px; }
.product .product_wrap p.item_ttl { display: flex; align-items: center; font-weight: 700; font-size: clamp(1.125rem, 1.016rem + 0.55vw, 1.563rem); margin-bottom: 10px; }
.product .product_wrap p.item_ttl img { max-width: 110px; margin-right: 10px; }
.product .product_wrap a.btn_link { text-align: center; color: #fff; background: #898e6c; border-radius: 50px; padding: 10px 15px 12px; margin: 20px auto; display: inline-block; font-size: clamp(0.875rem, 0.844rem + 0.16vw, 1rem); }
.product .product_wrap a.btn_link:hover { background: #3a3c2b; }
.product .product_wrap dl { font-size: clamp(0.813rem, 0.734rem + 0.39vw, 1.125rem); }
.product .product_wrap dl dt { margin-bottom: 10px; text-align: left; line-height: 1.4; }
.product .product_wrap dl dd { text-align: left; margin-bottom: 20px; }
.product .product_wrap dl dd span { font-size: 80%; }

#Kuchikomi { background: #3f74b6; position: relative; padding: 80px 0; }
#Kuchikomi .line_top { position: absolute; width: 100%; top: 0; display: flex; }
#Kuchikomi .line_top .line:first-child { background: #d64335; width: calc(100% / 3); height: 10px; }
#Kuchikomi .line_top .line:nth-child(2n) { background: #eaaf1b; width: calc(100% / 3); height: 10px; }
#Kuchikomi .line_top .line:last-child { background: #349b52; width: calc(100% / 3); height: 10px; }
#Kuchikomi .line_bottom { position: absolute; width: 100%; bottom: 0; display: flex; z-index: 1; }
#Kuchikomi .line_bottom .line:first-child { background: #349b52; width: calc(100% / 3); height: 10px; }
#Kuchikomi .line_bottom .line:nth-child(2n) { background: #eaaf1b; width: calc(100% / 3); height: 10px; }
#Kuchikomi .line_bottom .line:last-child { background: #d64335; width: calc(100% / 3); height: 10px; }

#Kuchikomi p.txt { color: #fff; text-align: center; font-size: clamp(0.875rem, 0.734rem + 0.7vw, 1.438rem); line-height: 40px; margin-bottom: 40px; }
#Kuchikomi .btn_kuchikomi { max-width: 485px; width: 100%; text-align: center; margin: 0 auto; position: relative; }
#Kuchikomi .btn_kuchikomi a { display: inline-block; padding: 20px 40px; line-height: 1.2; color: #fff; border: 5px solid #000000; border-radius: 10px; background: #ff7705; font-weight: 700; font-size: clamp(1.25rem, 1.172rem + 0.39vw, 1.563rem); }
#Kuchikomi .btn_kuchikomi a:hover { background: #ee0c0c; color: #fff; }
#Kuchikomi::before { content: ''; display: inline-block; background: url("../img/kuchikomi01.png")no-repeat; background-size: contain; aspect-ratio: 185 / 193; width: 15%; position: absolute; left: 120px; bottom: 0; }
#Kuchikomi::after { content: ''; display: inline-block; background: url("../img/kuchikomi02.png")no-repeat; background-size: contain; aspect-ratio: 185 / 193; width: 15%; position: absolute; right: 120px; bottom: 0; }

.cv_tel { background: #f4edde; padding: 50px 0; }
.cv_tel p.cv_tel_txt { font-size: clamp(0.813rem, 0.766rem + 0.23vw, 1rem); text-align: center; margin-bottom: 20px; }
.cv_tel p.cv_tel_txt span { font-weight: 700; font-size: 110%; }
.cv_tel .tel_wrap { display: flex; justify-content: center; }
.cv_tel .tel_num_wrap { text-align: center; }
.cv_tel .tel_wrap img { max-width: 98px; width: 100%; margin-right: 30px; }
.cv_tel .tel_wrap p.obi { background: #fff; font-size:clamp(0.875rem, 0.781rem + 0.47vw, 1.25rem); font-weight: 700; color: #60854b; text-align: center; padding: 10px; margin-bottom: 5px; } 
.cv_tel .tel_wrap a { font-size: clamp(1.563rem, 1.203rem + 1.8vw, 3rem); font-weight: 700; }
.cv_tel .tel_wrap a span { font-size: 70%; }
.yoyaku .yoyaku_btn { max-width: 400px; width: 100%; margin: 0 auto;  }
.yoyaku .yoyaku_btn a { display: block; background: #d25d57; color: #fff; text-align: center; padding: 20px 20px 26px; box-sizing: border-box; border-radius: 50px; font-weight: 700; transition: .3s; font-size: clamp(1.25rem, 1.016rem + 1.17vw, 2.188rem); }
.yoyaku .yoyaku_btn a:hover { opacity: .5; }

.yoyaku { background: #ededef; padding: 50px 0 100px; text-align: center; }
.yoyaku h3 { text-align: center; font-size: clamp(1.375rem, 1.094rem + 1.41vw, 2.5rem); font-weight: 700; margin-bottom: 10px; }
.yoyaku h3 + img { display: block; max-width: 195px; width: 100%; margin: 0 auto 30px; text-align: center; }
.yoyaku h3 span { display: block; font-size: 65%; margin-bottom: 10px; }
.yoyaku .yoyaku_flow { display: flex; justify-content: space-between; margin-bottom: 50px; }
/*.yoyaku .yoyaku_flow::after { content: ''; display: inline-block; width: 0; height: 0; border-top: 7px solid transparent; border-bottom: 7px solid transparent; border-left: 12px solid #d25d57; border-right: 0; }*/
.yoyaku .flow_item { width: calc(90% / 4); text-align: center; background: #fff; padding: 20px; box-sizing: border-box; position: relative; }
.yoyaku .flow_item:not(:last-child)::after { content: ''; display: inline-block; width: 0; height: 0; border-top: 7px solid transparent; border-bottom: 7px solid transparent; border-left: 12px solid #d25d57; border-right: 0; position: absolute; right: -23px; }
.yoyaku .flow_item p.txt { font-size: clamp(1.063rem, 0.984rem + 0.39vw, 1.375rem); text-align: center; font-weight: 700; margin-bottom: 20px; }
.yoyaku .flow_item img.flow01 { max-width: 30px; }
.yoyaku .flow_item img.flow02 { max-width: 50px; }
.yoyaku .flow_item img.flow03 { max-width: 97px; }
.yoyaku .flow_item img.flow04 { max-width: 50px; }

.care h3 { background: #ffe1d5; text-align: center; color: #d25d57; font-size: clamp(1.375rem, 1.094rem + 1.41vw, 2.5rem); font-weight: 700; padding: 35px; line-height: 30px; }
.care .care_inner { background: #ffede5; padding: 50px 0; }
.care .care_inner p { text-align: center; } 
.care .care_inner p.intro_txt { font-size: clamp(0.813rem, 0.734rem + 0.39vw, 1.125rem); margin-bottom: 50px; line-height: 32px; }
.care .care_inner p.txt { font-size: clamp(1rem, 0.875rem + 0.63vw, 1.5rem); font-weight: 700; margin-bottom: 60px; line-height: 38px; }
.care .care_inner_flex { display: flex; justify-content: space-between; }
.care .care_inner .care_box { width: 45%; }
.care .care_inner .care_box:first-child { position: relative; }
.care .care_inner .care_box:first-child::after { content: ''; display: inline-block; background: url("../img/service_icon.svg") no-repeat; background-size: contain; aspect-ratio: 47 / 47; width: 10%; position: absolute; right: -16%; top: 35%; }
.care .care_inner .care_box p.obi { background: #fff; text-align: center; padding: 10px; font-weight: 700; font-size: clamp(0.813rem, 0.734rem + 0.39vw, 1.125rem); margin-bottom: 20px; }
.care .care_inner .care_box p.care_inner_txt { font-size: clamp(0.75rem, 0.688rem + 0.31vw, 1rem); font-weight: 400; line-height: 28px; margin-bottom: 20px; }
.care .care_inner .care_box.step01 p.obi { color: #3f74b6; position: relative; }
.care .care_inner .care_box.step02 p.obi { color: #2f787f; }
.care .care_inner .care_box.step01 p.obi::before { content: ''; display: inline-block; background: url("../img/icon_free.svg")no-repeat; background-size: contain; aspect-ratio: 75 / 75; width: 15%; position: absolute; left: 10px; top: -15px; }

.care .care_inner .care_box picture { margin-bottom: 20px; }
.care .care_inner .price_wrap { display: flex; justify-content: center; }
.care .care_inner .price_wrap p.price , .care .care_inner .price_wrap p.price_red { display: inline-block; font-weight: 700; font-size: clamp(1rem, 0.891rem + 0.55vw, 1.438rem); }
.care .care_inner .price_wrap span.small { font-size: 70%; }

.master_wrap { background: #60854b; padding: 50px; box-sizing: border-box; border-radius: 20px; }
.master_wrap p.ttl { color: #fff; margin-bottom: 10px; font-size: clamp(1.125rem, 0.984rem + 0.7vw, 1.688rem); font-weight: 700;}
.master_wrap p.ttl::before { content: ''; display: inline-block; background: url("../img/star.png")no-repeat; background-size: contain; width: 40px; height: 23px; vertical-align: -4px; }
.master_wrap p.txt { color: #fff; font-size: clamp(0.875rem, 0.844rem + 0.16vw, 1rem); line-height: 1.5; }
.master_wrap .master_flex { display: flex; justify-content: space-between; gap: 20px; }

#Map { padding: 100px 0 0; }
#Map h3 { text-align: center; font-size: clamp(1.438rem, 1.172rem + 1.33vw, 2.5rem); font-weight: 700; margin-bottom: 20px;}
#Map p.h3_sub { text-align: center; font-size: clamp(0.75rem, 0.625rem + 0.63vw, 1.25rem); margin-bottom: 50px; }

footer { padding: 100px 0 0; }
footer .f_inner { text-align: center; }
footer picture.f_logo { max-width: 280px; width: 100%; margin: 0 auto 30px; }
footer a.tel { font-size: clamp(1.25rem, 1.125rem + 0.63vw, 1.75rem); text-align: center; font-weight: 700; margin-bottom: 20px; display: inline-block; }
footer a.tel span { font-size: 70%; }
footer address { display: block; font-size: clamp(0.875rem, 0.844rem + 0.16vw, 1rem); margin-bottom: 40px; line-height: 28px; }
footer small { background: #ededef; font-size: 11px; text-align: center; display: block; padding: 10px; }
footer .footer_btn { width: 300px; margin: 0 auto 40px; }
footer .footer_btn a img { width: 18px; margin-right: 5px; }
footer .footer_btn a { position: relative; top: 0; display: block; padding: 26px 0; background-color: #2c93af; box-shadow: 0 9px #00769e; border-radius: 5px; font-size: clamp(0.875rem, 0.844rem + 0.16vw, 1rem); font-weight: 700; color: #fff; text-align: center; text-decoration: none; transition: .2s ease-in-out; }
footer .footer_btn a:hover { border-bottom: solid 2px #2c93af; transform: translateY(3px); }
footer .footer_btn a:hover { top: 9px; box-shadow: 0 0 #00769e; }

h2 { font-weight: 700; }
a.txt_link { position: relative;font-size: 14px; transition: ease .2s; display:inline-block; padding: 10px 25px 10px 5px; }
a.txt_link::before , a.txt_link::after{ content:''; position:absolute; z-index:1; bottom:0; left:0; background:#333; width:100%; height:2px; transition:all 0.3s ease-in-out; }

a.txt_link::after{ width:0; background:#61bed5; }
a.txt_link:hover::after { width:100%; }
a.txt_link span::after { content: ''; position: absolute; top: 12px; right: 10px; width: 10px; height: 9px; background: url("../img/common/arrow.svg")no-repeat; background-size: contain; transition: all .3s; }
a.txt_link:hover span::after { right:5px; }

.floating_banner { display: none!important; }

@media screen and (max-width:1200px){
header nav ul li.has-child dt{
	height: 12vh;
}
	
}

/*== 2層目の設定 */

header nav li.has-child ul { position: absolute; z-index: 4; justify-content: space-between; flex-wrap: wrap; background:#ccd6d6; width:100%; display: none; visibility: hidden; opacity: 0; transition: all .3s; }

/*hoverしたら表示*/
header nav li.has-child:hover > ul { display:flex; visibility: visible; opacity: 1; }
header nav li.has-child ul li { width:100%; }
header nav li.has-child ul li a { color: #fff; }

/*==768px以下の形状*/
@media screen and (max-width:768px){
	header nav ul { display: block; }
	header nav li.has-child ul{ position: relative; left:0; top:0; width:100%; visibility:visible; opacity:1; display: none; transition:none; }
  header nav li.has-child:hover > ul { display: none; }
	header nav li.has-child ul li { width:100%; text-align: left; }
	header nav li.has-child ul li dl{ display: flex; justify-content: space-between; align-items: center; }
	header nav li.has-child ul li dt{ width:30%; height: auto; margin: 0; }
	header nav li.has-child ul li dd{ width:64%; }
  header nav ul li a { padding: 10px 20px; border-bottom:1px solid #ccc; }
  header nav ul li li a { padding: 0; }
}


/*ノートPC*/
@media (max-width: 1600px) and (max-height: 900px) {
}

@media (max-width: 1366px) and (max-height: 768px) {
}

/*DynaBook*/
@media (max-width: 1263px) and (max-height: 569px) {
}

/*tab*/
@media only screen and (max-width: 600px){
  .pc { display: none; }
  .sp { display: block; }
  
  header { width: 100%; }
  header h1 { width: 100%; height: 60px; position: fixed; z-index: 10; border-radius: initial; margin-left: inherit; padding: 2% 3%; box-shadow: 0 3px 20px #47391159; }
  header h1 img { width: 75%; }
  header .kv { padding-top: 40px; }
  
  #Intro { background: url("../img/intro_bg_sp.png")no-repeat; background-size: cover; background-position: bottom; padding: 350px 5% 40px; }
  #Intro::after { width: 20%; bottom: -50px; }
  #Intro .genin { border-radius: 15px; top: -30px; }
  #Intro .genin_inner { padding: 20px; }
  #Intro .genin_ttl img { width: 60%; }
  #Intro .genin_box img { max-width: 40px; }
  #Intro .txt_wrap { width: 100%; background: #ffffffd1; padding: 18px 15px; box-sizing: border-box; border-radius: 3px; }
  #Intro .txt_wrap p.txt { line-height: 26px; letter-spacing: -.01em; margin-bottom: 15px; }
  #Intro .genin_box p.txt { line-height: 24px; }
  #Intro .genin_box:first-child { margin-bottom: 13px; }
  #Intro .genin_ttl { border-radius: 5px 5px 0 0; }
  #Genin_contents .genin_flex .box p { margin-top: inherit; }
  #Genin_contents { padding: 50px 0; }
  #Genin_contents .genin_flex { flex-wrap: wrap; margin: 20px 0; }
  #Genin_contents .genin_flex .box:first-child , #Genin_contents .genin_flex .box { width: 48%; }
  #Genin_contents .genin_flex .box:first-child picture { margin-bottom: 20px; }
  #Genin_contents .genin_flex .box:not(:first-child) p { text-align: left; line-height: 20px; font-weight: 400; }
  #Genin_contents .genin_ttl p.main { line-height: 28px; }
  #Genin_contents p.sub { font-size: clamp(0.875rem, 0.781rem + 0.47vw, 1.25rem); text-align: left; line-height: 22px; }
  #Genin_contents .type { width: 100%; }
  #Genin_contents .type .inner_flex { padding: 15px; }
  #Genin_contents .type.type01 { margin-bottom: 20px; }
  #Genin_contents .genin_ttl img.icon { max-width: 40px; width: 100%; margin-right: 10px; }
  #Genin_contents .genin01 { margin-bottom: 50px; }
  #Mattress .mattress_intro h3::before { display: block; width: 30%; margin: 0 auto 15px; }
  #Genin_contents .genin_ttl { align-items: flex-start; margin-bottom: 20px; }
  #Genin_contents .type figcaption { line-height: 17px; }
  .product .omamori::after { right: 0; width: 50%; bottom: -30px; }
  #Mattress .mattress_intro { padding: 20px 0 40px; }
  #Mattress .flex { flex-direction: column; }
  #Mattress .flex .how { width: 100%; }
  #Mattress .flex .how:not(:last-child) { margin-bottom: 30px; }
  #Mattress .flex .how picture img { margin-bottom: 10px; }
  #Mattress .flex .how p { line-height: 20px; }
  #Mattress .mattress_intro::before , #Mattress .mattress_step::before { top: -20px; }
  #Mattress .mattress_step { padding: 40px 0; }
  #Mattress .mattress_step .flex .txt_wrap { margin-right: 0; margin-bottom: 10px; }
  #Mattress .mattress_step .step_box { padding: 25px; }
  #Mattress .mattress_step h3 ,  #Mattress .mattress_intro h3 { margin-bottom: 20px; line-height: 25px; }
  #Mattress .mattress_step p.num { margin-bottom: 5px; }
  #Mattress .mattress_step .step_box:not(:last-child) { margin-bottom: 70px; }
  #Mattress .mattress_step .step_box:not(:last-child)::after { bottom: -45px; }
  .product { padding: 60px 0; }
  .product .omamori .omamori_inner { flex-direction: column; }
  .product .omamori .txt_wrap { margin-right: 0; margin-bottom: 20px; }
  .product .omamori { padding: 25px; }
  .product .omamori picture { max-width: inherit; }
  .product .omamori::before { width: 50%; top: -30px; }
  .product .omamori p.omamori_ttl { margin-bottom: 10px; line-height: 25px; }
  .product .omamori p.omamori_txt { line-height: 20px; }
  .product .product_wrap { flex-direction: column; }
  .product .product_wrap .item { width: 100%; margin-bottom: 0; }
  .product .product_wrap p.item_ttl img { max-width: 60px; }
  .product .product_wrap .item:not(:last-child) { margin-bottom: 20px; }
  #Kuchikomi p.txt { line-height: 24px; margin-bottom: 20px; text-align: left; }
  #Kuchikomi { padding: 60px 0 80px; }
  #Kuchikomi .btn_kuchikomi a { padding: 20px; }
  #Map { padding: 60px 0 0; }
  #Map h3 { line-height: 28px; }
  #Map p.h3_sub { margin-bottom: 30px; }
  .yoyaku { padding: 50px 0 60px; }
  .yoyaku h3 + img { width: 40%; }
  .care h3 { padding: 20px; }
  .care .care_inner .care_box p.care_inner_txt { margin-bottom: 10px; line-height: 22px; }
  .care .care_inner { padding: 30px 0 50px; }
  .care .care_inner p.txt { margin-bottom: 30px; line-height: 28px; text-align: left;  }
  .care .care_inner p.intro_txt { margin-bottom: 20px; line-height: 24px; text-align: left; }
  .care .care_inner_flex { flex-direction: column; }
  .care .care_inner .care_box { width: 100%; }
  .care .care_inner .care_box:first-child::after { content: none; }
  .care .care_inner .care_box picture { margin-bottom: 10px; }
  .care .care_inner .care_box:first-child { margin-bottom: 20px; }
  .cv_tel .tel_wrap { flex-direction: column-reverse; align-items: center; }
  .care .care_inner .care_box p.obi { margin-bottom: 10px; }
  .cv_tel .tel_wrap img { margin-right: 0; }
  .cv_tel .tel_num_wrap { width: 100%; margin-bottom: 10px; }
  .cv_tel p.cv_tel_txt { line-height: 24px; }
  .yoyaku .yoyaku_flow { flex-wrap: wrap; gap: 20px; margin-bottom: 30px; }
  .yoyaku .flow_item { width: calc(90% / 2); padding: 15px; }
  .yoyaku .flow_item:nth-child(2)::after { content: none; }
  .yoyaku .flow_item p.txt { margin-bottom: 10px; }
  .care .care_inner .price_wrap p.price { margin-right: 8px; }
  footer { padding: 60px 0 0; }
  footer .footer_btn a { padding: 20px 0 15px; }
  footer .footer_btn { margin-bottom: 30px; }
  footer a.tel { margin-bottom: 10px; }
  footer address { line-height: 22px; }
  footer picture.f_logo { width: 70%; margin-bottom: 20px; }
	.floating_banner { position: fixed; backdrop-filter: blur(10px); align-items: center; width: 95%!important; bottom: 0; right: 0; left: 0; margin: auto; text-align: center; z-index: 99999!important; display: flex!important; justify-content: space-between; align-items: stretch; }
	.floating_banner .floating_box { backdrop-filter: blur(10px); display: flex; justify-content: center; align-items: center; background: #f18146; text-align: center; z-index: 99999!important; border-radius: 15px 15px 0 0; }
  .floating_banner .floating_box:first-child { width: 43%; }
  .floating_banner .floating_box:last-child { width: 55%; }
  .floating_banner a { width: 100%; display: block; padding: 15px 0 10px; }
	.floating_banner img { width: 80%; margin-bottom: 5px; }
	.floating_banner p { text-align: center; color: #fff; font-size: 13px; line-height: 1.3; }
	.floating_banner span { display: block; font-size: 1.15rem; margin-bottom: 5px; }
	.floating_banner span::before { content: ''; display: inline-block; background: url("../images/common/point.svg")no-repeat; background-size: contain; width: 15px; height: 10px; margin-right: 5px; }
	.floating_banner span::after { content: ''; display: inline-block; background: url("../images/common/point.svg")no-repeat; background-size: contain; width: 15px; height: 10px; transform: rotateZ(100deg); }
	.floating_banner.is-hidden { visibility: hidden; opacity: 0; }
  .master_wrap { padding: 30px 20px; }
  .master_wrap .master_flex { display: block; }
  .master_wrap p.txt { margin-bottom: 20px; }
  
}

@media only screen and (max-width: 375px){
}