@charset "utf-8";
/* tablet〜pc */
@media (min-width:768px){}
/* pcのみ */
@media (min-width:1025px){}

html{
font-size:62.5%;
-webkit-text-size-adjust:100%;
-webkit-tap-highlight-color:rgba(0,0,0,0);
font-family: "Helvetica Neue",
Arial,
"Hiragino Kaku Gothic ProN",
"Hiragino Sans",
"Noto Sans JP",
sans-serif;
}

@media (min-width:768px){
html{
font-size:68.5%;
}
}

body{
margin:0;
font-size:1.6rem;
background:#fff;
color:#1e1e1e;
width:100%;
max-width:100%;
font-weight:400;
-webkit-overflow-scrolling:touch;
}
html,
body {
overflow-x: hidden;
}
*,
*::before,
*::after{
box-sizing:border-box;
}
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,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,section,summary,
time,mark,audio,video,input,button,textarea,select{
margin:0;
padding:0;
border:0;
vertical-align:baseline;
letter-spacing:0.03em;
line-height:1.5;
}
article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section{
display:block;
}
ol,ul{
list-style:none;
}
img,picture{
max-width:100%;
height:auto;
display:block;
}
a{
color:inherit;
text-decoration:none;
-webkit-tap-highlight-color:rgba(0,0,0,0);
}
button,input,textarea,select{
font:inherit;
background:none;
border-radius:0;
}
button{
cursor:pointer;
display:block;
appearance:none;
-webkit-appearance:none;
border:0;
box-sizing:border-box;
cursor:pointer;
font-family:inherit;
}

h1,h2,h3,h4,h5,h6,em,strong,b{
font-style:normal;
font-weight:normal;
}
table{
border-collapse:collapse;
border-spacing:0;
}
::placeholder{
opacity:.8;
}

/* font-face */
@font-face{
font-family:'english';
src:url('./CinzelDecorative-Regular.woff2') format('woff2'),
    url('./CinzelDecorative-Regular.woff') format('woff');
font-display:swap;
}
@font-face{
font-family:'int';
src:url('./Cardo-Italic.woff2') format('woff2'),
    url('./Cardo-Italic.woff') format('woff');
font-display:swap;
}
@font-face{
font-family:'mincho_font';
src:url('./NotoSerifJP-SemiBold.woff2') format('woff2'),
    url('./NotoSerifJP-SemiBold.woff') format('woff');
font-display:swap;
}

.mincho{
font-family:'mincho_font', serif;
-webkit-font-smoothing:antialiased;
font-feature-settings:"palt";
}

.english{
font-family:'english',cursive;
}
.int{
font-family:'int',serif;
}
.cute{
font-family:
"Noto Sans JP",
-apple-system,
BlinkMacSystemFont,
"Helvetica Neue",
"Yu Gothic",
YuGothic,
Meiryo,
sans-serif;
color:#474747;
}
/* 共通 */
.hover{
transition:.25s ease;
}
.hover:hover{
transform:translateY(-2px);
box-shadow:0 10px 30px rgba(0,0,0,.05);
}
.shadow_text {
text-shadow:
0 2px 4px rgba(0,0,0,.07),
0 8px 18px rgba(0,0,0,.07);
font-weight:500;
-webkit-font-smoothing:antialiased;
font-feature-settings:"palt";
}
.shadow_smoll{
box-shadow: 5px 5px 10px rgba(0,0,0,0.20);
-webkit-transition: box-shadow .3s cubic-bezier(0.25, 0.46, 0.45, 0.94),
-webkit-transform .3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition: box-shadow .3s cubic-bezier(0.25, 0.46, 0.45, 0.94),
transform .3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.shadow{
box-shadow:
0 2px 6px rgba(0,0,0,0.04),
0 10px 20px rgba(0,0,0,0.06);
}
canvas{
pointer-events:none;
}
.block{
display:block;
}
.flex_center{
display:flex;
flex-wrap: wrap;
justify-content:center;
align-items:center;
}
.relative{
position:relative;
}
.hidden {
overflow:hidden;
}
.center{
width:100%;
display:block;
text-align:center;
}
.flex_align_center{
display:flex;
align-items:center;
}
.main_h2{
color:#6b5744;
}
.sub_main_comment{
color:#4c3522;
}
.main_color{
color:#BA9670;
display:inline-block;
letter-spacing:.08em;
}
.main_text{
color:#7a6853;
}
.main_black_mincho{
color:#595959;
}
.nav_text{
font-size:1.2rem;
letter-spacing:.08em;
line-height:1.5;
color:#968477;
font-weight:bold;
}
.width{
width:94%;
max-width:900px;
margin:0rem auto 0rem;
padding-top:0rem;
}
.border{
border:1px solid #f2ece7;
}
.margit_top{
margin:1.4rem 0 0 0;
}
.grid_not{
grid-column:1 / -1;
}
.profile_absolute{
position:absolute;
right:-5px;
top:5px;
z-index:1;
}
.profile_absolute img{
width:108px;
opacity:0.28;
}
.no_hit{
width:100%;
border:1px solid #cccccc;
margin-top:1rem;
height:90px;
background:rgba(255,255,255,0.2);
}
.no_hit p{
display:block;
text-align:center;
font-size:1.2rem;
color:#5b401b;
line-height:1;
letter-spacing:0.08em;
line-height:90px;
}
/* form botan グレイ*/
.form_botan{
max-width:90%;
width:180px;
margin:0rem auto 0px auto;
background:#666666;
padding:0.9rem 1.5rem 0.9rem 1rem;
text-align:center;
color:#e6e6e6;
font-size:1.5rem;
border-radius:30px;
cursor:pointer;
font-weight:normal;
position:relative;
}
.form_botan::before {
  content: '';
  position: absolute;
  top: calc(50% - 2px);
  right: 1em;
  transform: translateY(calc(-50% - 2px)) rotate(45deg);
  width: 10px;
  height: 1px;
  background: #b3b3b3;
}
.form_botan::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 1em;
  transform: translateY(-50%);
  width: 20px;
  height: 1px;
  background-color: #b3b3b3;
}
/* form botan ベージュ*/
.common_botan{
max-width:90%;
min-width:220px;
margin:0 auto 0 auto;
background:#A8907B;
padding:1.2rem 1.5rem 1.2rem 1rem;
text-align:center;
color:#e6e6e6;
font-size:1.5rem;
border-radius:30px;
cursor:pointer;
position:relative;
display:block;
}
.common_botan::before {
  content: '';
  position: absolute;
  top: calc(50% - 2px);
  right: 1em;
  transform: translateY(calc(-50% - 2px)) rotate(45deg);
  width: 10px;
  height: 1px;
  background: #e6e6e6;
}
.common_botan::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 1em;
  transform: translateY(-50%);
  width: 20px;
  height: 1px;
  background-color: #e6e6e6;
}

/* =========================
エラー
========================= */
.entry_error{
display:block;
text-align:center;
width:100%;
}
.entry_error p{
position:relative;
border-radius:20px;
display:inline-block;
max-width:300px;
background:#EF609A;
color:white;
font-size:1.2rem;
line-height:1.7;
padding:0.6rem 1rem;
text-align:left;
box-shadow:
0 2px 6px rgba(0,0,0,0.04),
0 10px 20px rgba(0,0,0,0.06);
}
.entry_error p::before{
content:"";
position:absolute;
top:-10px;
left:20px;
width:0;
height:0;
border-left:8px solid transparent;
border-right:8px solid transparent;
border-bottom:10px solid #EF609A;
}


/* =========================
リンク矢印1
========================= */
.next_icon{
position:relative;
display:block;
padding-right:1rem;
}
.next_icon::after{
content:"";
position:absolute;
right:3px;
top:53%;
width:6px;
height:6px;
border-top:1px solid #c7b299;
border-right:1px solid #c7b299;
transform:translateY(-50%) rotate(45deg);
}
.prev_icon{
position:relative;
display:block;
padding-left:1rem;
}

.prev_icon::before{
content:"";
position:absolute;
left:0;
top:50%;
width:7px;
height:7px;
border-top:1px solid #c7b299;
border-left:1px solid #c7b299;
transform:translateY(-50%) rotate(-45deg);
}

/* =========================
リンク矢印2
========================= */

.detail_arrow{
position:relative;
display:block;
padding-right:1rem;
}
.detail_arrow::after{
content:"";
position:absolute;
right:0;
top:50%;
width:28px;
height:10px;
border-right:1px solid #c7b299;
border-bottom:1px solid #c7b299;
transform:skewX(45deg);
margin-top:-2px;
}

/* 左矢印 */
.detail_arrow_left{
position:relative;
display:block;
padding-left:1rem;
}
.detail_arrow_left::before{
content:"";
position:absolute;
left:0;
top:50%;
width:28px;
height:10px;
border-left:1px solid #c7b299;
border-bottom:1px solid #c7b299;
transform:skewX(-45deg);
margin-top:-2px;
}

.back_img{
background-image:url("../img/common/mortar_bg.webp");
background-repeat:repeat;
background-size:28rem auto;
background-position:center top;
}
.back_gradient{
background: linear-gradient(
to bottom,
rgb(249,247,244,0.7) 0%,
rgb(250,248,246,0.6) 30%,
rgb(253,252,251,0.5) 70%,
rgb(255,255,255,0.1) 100%
);
}
.back_gradient_center{
background: linear-gradient(
to bottom,
rgb(255,255,255,0.1) 0%,
rgb(249,247,244,0.8) 30%,
rgb(249,247,244,0.8) 70%,
rgb(255,255,255,0.1) 100%
);
}
.back_white{
background:white;
}
.back_glay{
background:rgb(249,247,244,0.8);
padding-bottom:0.5rem;
}
.back_dark{
background-image:url("../img/common/dark_back.webp");
background-repeat:repeat;
background-size:28rem auto;
background-position:center top;
}
.back_mortar {
background-image:url("../img/common/mortar_bg.webp");
background-repeat:repeat;
background-size:28rem auto;
background-position:center top;
}
.back_mortar2 {
background-image:url("../img/common/mortar_bg2.webp");
background-repeat:repeat;
background-size:28rem auto;
background-position:center top;
}
/* TOP文字 */
.show{
animation:top_fade 1.5s ease forwards;
}
.hide{
opacity:0;
}
/* 左から右 */
.item_fade_left{
opacity:0;
transform:translateX(-20px);
transition:1.2s ease;
}
.item_fade_left.fade_left_show{
opacity:1;
transform:translateX(0);
}

/* 右から左 */
.item_fade_right{
opacity:0;
transform:translateX(20px);
transition:1.2s ease;
}
.item_fade_right.fade_right_show{
opacity:1;
transform:translateX(0);
}

/* 左右＆ぼわー演出 */
.blur_right{
opacity:0;
filter:blur(18px);
transform:translateX(-20px) scale(1.04);
transition:
  opacity 1.2s ease,
  filter 1.2s ease,
  transform 1.2s ease;
}
.blur_right.is_show{
opacity:1;
filter:blur(0);
transform:translateX(0) scale(1);
}
/* 左右＆ぼわー演出 */
.blur_left{
opacity:0;
filter:blur(18px);
transform:translateX(20px) scale(1.04);
transition:
  opacity 1.2s ease,
  filter 1.2s ease,
  transform 1.2s ease;
}
.blur_left.is_show{
opacity:1;
filter:blur(0);
transform:translateX(0) scale(1);
}


/* ぼわー演出 */
.blur_reveal{
opacity:0;
filter:blur(18px);
transform:scale(1.04);
transition:
  opacity 1.5s ease,
  filter 1.5s ease,
  transform 1.5s ease;
}
.blur_reveal.is_show{
opacity:1;
filter:blur(0);
transform:scale(1);
}
.hide .hero_line,
.hide .hero_line2,
.hide .gold_line{
animation-play-state:paused;
}
.blog_show{
animation:blog_fade 0.9s ease forwards;
}
@keyframes top_fade{
from{
opacity:0;
filter:blur(12px);
transform:translateY(10px);
}
to{
opacity:1;
filter:blur(0);
transform:translateY(0);
}
}
@keyframes blog_fade{
from{
opacity:0;
filter:blur(6px);
transform:translateY(20px);
}
to{
opacity:1;
filter:blur(0);
transform:translateY(0);
}
}



/* =========================
プラチナム枠
========================= */
.platina-box{
  display: flex;
  justify-content: center;
}
.platina-text{
  display:block;
font-size:1.1rem;
letter-spacing:1.5px;
line-height:150%;
  color: transparent;
  background-color: #1f84c1;
  background-image: radial-gradient(circle, rgb(255, 255, 255) 0%, rgba(255, 255, 255, 0) 75%);
  background-repeat: no-repeat;
  background-size: 0em 0em;
  background-position: 0% 0%;
  -webkit-background-clip: text;
  background-clip: text;
  animation-name: platina_kirari;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}
@keyframes platina_kirari{
  0% {
    background-size: 0em 0em;
    background-position: 0% 50%;
  }
  50% {
    background-size: 2em 2em;
  }
  100% {
    background-size: 0em 0em;
    background-position: 100% 50%;
  }
}








/* =========================
loading
========================= */

.loading_box{
display:none;
}
.top_visual{
position:relative;
overflow:hidden;
}
.loading_box.showInput{
display:flex;
position:absolute;
inset:0;
z-index:9999;
background:rgba(0,0,0,.25);
align-items:center;
justify-content:center;
}
.loading_box.showInput::before{
content:"";
width:36px;
height:36px;
border:3px solid rgba(255,255,255,.35);
border-top-color:#fff;
border-radius:50%;
animation:spin .8s linear infinite;
}
@keyframes spin{
to{
transform:rotate(360deg);
}
}








/* =========================
globalMenu
========================= */

.max_size{
width:100%;
background:rgba(249,247,244,0.8);
background:#fcfbfa;
background:rgba(248,245,240,0.7);
box-shadow:
0 8px 22px rgba(80,60,35,.06),
inset 0 1px 0 rgba(255,255,255,.9);
}
.top_menu{
display:grid;
grid-template-columns:repeat(5,1fr);
gap:2px 3px;
padding:8px 0px 8px 0;
border-radius:0px;
width:98%;
max-width:930px;
margin:auto;
}
.top_menu li{
position:relative;
}
.top_menu li::after{
content:'';
position:absolute;
top:27%;
right:0;
width:1px;
height:50%;
background:rgba(0,0,0,0.15);
}
/* 各行の最後（5個ごと）を消す */
.top_menu li:nth-child(5n)::after{
display:none;
}
.top_menu li a{
position:relative;
z-index:1;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
width:100%;
padding:7px 1px 7px;
text-decoration:none;
color:inherit;
box-sizing:border-box;
}
/* menu glay */
.top_menu li.current a {
opacity: 0.6;
position: relative;
}
.top_menu li.current a::after {
content: '';
position: absolute;
bottom: 0px; /* 位置はお好みで調整 */
left: 50%;
transform: translateX(-50%);
width: 50%;
height: 1px;
background: #c7b299;
border-radius: 2px;
}
.top_menu img{
width:20px;
height:18px;
object-fit:contain;
margin-bottom:2px;
}
.top_menu em{
display:block;
text-align:center;
font-size:.78rem;
font-weight:500;
color:#7a6853;
line-height:1;
letter-spacing:.08em;
margin:1px 0 3px 0;
font-family:
"Times New Roman",
"Hiragino Mincho ProN",
"Yu Mincho",
"YuMincho",
serif;
}
.top_menu p{
display:block;
text-align:center;
font-size:0.9rem;
color:#442d11;
line-height:1;
letter-spacing:0em;
}
















/* =========================
fade タイトルborder
========================= */

.border_off_center {
display: block;
width: 170px;
height: 1px;
margin: 3px auto;
/* 中央濃く → 外に向かってフェード */
background: linear-gradient(to right,
rgba(214,196,172,0) 0%,
rgba(214,196,172,0.7) 25%,
rgba(214,196,172,1) 50%,
rgba(214,196,172,0.7) 75%,
rgba(214,196,172,0) 100%
);
transform: scaleX(0);
transform-origin: center;
transition: transform 0.8s ease;
}
.border_off_left {
display: block;
width: 120px;
height: 1px;
margin: 3px 0;
background: linear-gradient(to right,
rgba(214,196,172,1) 0%,
rgba(214,196,172,0.7) 51%,
rgba(214,196,172,0) 100%
);
transform: scaleX(0);
transform-origin: left; /* ← 左から伸びる */
transition: transform 0.8s ease;
}
/* これ必ず後ろ */
.border_on {
transform: scaleX(1);
}

/* fade text */
.fade_off{
opacity:0;
transform:translateX(16px); /* ← 最初にずらす */
transition:opacity 1s ease-out,transform 1s ease-out;
}
/* これ必ず後ろ */
.fade_on{
opacity:1;
transform:translateX(0); /* ← 元に戻す */
}

















/* =========================
表題
========================= */
.title_div{
margin:0rem auto 0.8rem auto;
padding:0 1rem 0rem 0.7rem;
}
.title_h2{
display:inline-block;
font-size:1.6rem;
line-height:1;
padding-left:0px;
letter-spacing:.06em;
color:#827163;
color:#6b5744;
font-weight:bold;
}
.title_span{
display:inline-block;
font-size:1rem;
line-height:1;
margin-bottom:0rem;
}

.title_h2_sch{
display:block;
font-size:1.6rem;
line-height:1.2;
padding-left:0px;
letter-spacing:.06em;
color:#6b5744;
color:#6b5744;
/* #515151 */
font-weight:bold;
}
.title_span_sch{
display:block;
font-size:1rem;
line-height:1.2;
font-weight:bold;
margin-bottom:0rem;
}

.title_span_center{
display:block;
font-size:2rem;
line-height:1;
text-align:center;
font-weight:bold;
}
.title_h2_center{
display:block;
font-size:1.2rem;
line-height:1;
letter-spacing:.06em;
color:#6b5744;
color:#6b5744;
text-align:center;
margin:0rem 0 0.3rem;
}
.title_h2_center_big{
display:block;
font-size:1.7rem;
line-height:1;
letter-spacing:.07em;
color:#6b5744;
color:#6b5744;
text-align:center;
margin:0rem 0 0.2rem;
}
.title_span_center_big{
display:block;
font-size:0.8rem;
line-height:1;
text-align:center;
margin:0rem 0 0.5rem;
}








/* =========================
サブメニュー width comment
========================= */
.sub_width{
width:92%;
max-width:900px;
margin:1.5rem auto 2rem auto;
padding:1.9rem 0rem 1.9rem;
overflow:hidden;
border:1px solid #f2ece7;
position:relative;
overflow:hidden;
}
/* system comment */
.sub_comment{
position:relative;
z-index:2;
font-size:1.3rem;
line-height:1.9;
letter-spacing:.07em;
margin:1.4rem 0 0rem 0;
padding:0.5rem;
}
.sub_menu_width{
width:90%;
margin:auto;
max-width:500px;
}
/* =========================
サブメニュー タイトル
========================= */
.sub_title{
text-align:center;
margin:0.2rem auto 0rem;
position:relative;
z-index:2;
}
.sub_title p{
font-size:1.8rem;
letter-spacing:.06em;
color:#4f382b;
font-weight:normal;
line-height:1.2;
}
.sub_title h2{
font-size:1.1rem;
letter-spacing:.09em;
color:#4f382b;
font-weight:normal;
line-height:1.2;
display:block;
margin-top:0.6rem;
}

.sub_line{
width:150px;
height:auto;
display:block;
margin:.5rem auto 0;
}


/* =========================
サブメニュー左上リボン
========================= */

.sub_ribbon{
position:absolute;
top:13px;
left:-42px;
width:160px;
height:23px;
display:flex;
align-items:center;
justify-content:center;
background:linear-gradient(
90deg,
rgba(146,116,83,.95) 0%,
rgba(199,178,153,.95) 50%,
rgba(146,116,83,.95) 100%
);
color:#fff;
font-size:.85rem;
letter-spacing:.12em;
line-height:1;
transform:rotate(-38deg);
z-index:5;
box-shadow:0 3px 8px rgba(80,55,35,.18);
}

/* 光沢 */
.sub_ribbon::after{
content:"";
position:absolute;
inset:0;
background:linear-gradient(
90deg,
rgba(255,255,255,0) 0%,
rgba(255,255,255,.28) 50%,
rgba(255,255,255,0) 100%
);
opacity:.7;
}





/* =========================
出勤情報
========================= */
.sch{
width:94%;
max-width:900px;
margin:0rem auto 0rem;
padding-top:0rem;
}
.therapist_ul{
widtt:100%;
margin:1.2rem auto 0;
display:grid;
grid-template-columns:repeat(3,1fr);
gap:8px 8px;
align-items:start;
padding:0 0.2rem;

}
.therapist_ul li{
height:100%;
opacity:0;
box-shadow:
0 2px 6px rgba(0,0,0,0.04),
0 10px 20px rgba(0,0,0,0.06);
border-radius:6px;
border:1px solid #f2f4ef;
}
.therapist_ul li.blog_show{
opacity:1;
}
.sch_relative{
width:100%;
position:relative;
padding:0.4rem 0.4rem 0 0.4rem;
}
.detail_li_img{

width:100%;
display:block;
border-radius:6px;
}
.sch_proff_div{
width:100%;
display:flex;
flex-wrap:wrap;
align-items:center;
justify-content:center;
padding:0.1rem 0 0.3rem;
}
.sch_proff_div h3{
width:100%;
display:block;
font-size:1.1rem;
letter-spacing:.02em;
font-weight:bold;
line-height:1.2;
text-align:center;
margin:0.6rem 0 0.2rem;
color:#595959;
}
.sch_age{
display:flex;
justify-content:center;
margin:0.5rem 0 0.5rem;
text-align:center;
width:100%;
}
.sch_age p{
display:block;
font-size:1.1rem;
letter-spacing:.1em;
line-height:0.8;
text-align:center;
color:#7a6853;
font-weight:bold;
padding:0 0.1rem 0.1rem;
}
.sch_time{
display:flex;
gap:1px;
margin:0.2rem auto 0.4rem auto;
padding:3px 0px;
border-radius:12px;
justify-content:center;

background: linear-gradient(
to right,
/*
rgba(250,244,232,0.5),
rgba(231,209,173,0.6)
*/
rgba(199,178,153,0.1),
rgba(199,178,153,0.4)
);
padding:3px 2px;
left:0;
right:0;
}
.sch_time img{
width:10px;
height:10px;
margin:0.5px 2px 1px 0;
}
.sch_time em{
font-size:1.1rem;
padding:0.8px 7px 0px 7px;
letter-spacing:.06em;
line-height:0.8;
color:#7a6853;
font-weight:bold;
}

.sch_time .sch_ended{
font-size:1rem;
color:#555555;
font-weight:normal;
letter-spacing:0.03em;
}
/* 出勤中リボン */

.sch_ribon{
position:absolute;
bottom:0.4rem;
left:0.7rem;
z-index:3;
background: rgba(255,123,172,0.7);
color:#fff;
display:inline-flex;
padding:0.1rem 0.7rem;
border-radius:12px;
font-size:1rem;
color:white;
}

/* =========================
ranking ribon small
========================= */
.ranking_ribon_small{
position:absolute;
top:0.2rem;
right:0rem;
z-index:30;
width:2.5rem;
height:3.5rem;
/* 透明感あるシャンパンゴールド */
background:linear-gradient(
180deg,
rgba(228,214,188,.93) 0%,
rgba(190,164,118,.97) 45%,
rgba(140,106,67,.91) 100%
);

backdrop-filter:blur(2px);
-webkit-backdrop-filter:blur(2px);

clip-path:polygon(
0 0,
100% 0,
100% 100%,
50% 78%,
0 100%
);

display:flex;
justify-content:center;
align-items:flex-start;
padding-top:0.3rem;

box-shadow:
0 10px 24px rgba(0,0,0,.24),
0 1px 0 rgba(255,255,255,.18) inset;


overflow:hidden;
}

/* 上にうっすら光 */
.ranking_ribon_small::after{
content:'';
position:absolute;
top:0;
left:0;
width:100%;
height:42%;

background:linear-gradient(
180deg,
rgba(255,255,255,.0) 0%,
rgba(255,255,255,0) 100%
);

pointer-events:none;
}

.ranking_ribon_small p{
position:relative;
text-align:center;
z-index:2;
color:rgba(255,248,238,1);
font-size:0.8rem;
line-height:1;
letter-spacing:.01em;
text-shadow:
0 1px 3px rgba(0,0,0,.38);
}

.ranking_ribon_small span{
font-size:1.2rem;
line-height:1.2;
display:block;
margin-top:0.1rem;
}


/* 最短案内 */
.annnai{
position:absolute;
bottom:0;
background:rgba(204,172,146,0.9);
color:white;
display:block;
font-size:1.1rem;
padding:5px 6px 4.5px 6px;
letter-spacing:.03em;
line-height:0.8;
text-align:center;
border-radius:0 10px 10px 0;
}
.annnai_end{
position:absolute;
bottom:0;
background:rgba(158,155,152,0.9);
color:white;
display:block;
font-size:1.1rem;
padding:5px 6px 4.5px 6px;
letter-spacing:.03em;
line-height:0.8;
text-align:center;
border-radius:0 10px 10px 0;
}
.annnai_owari{
position:absolute;
bottom:0;
background:rgba(158,155,152,0.9);
color:white;
display:block;
font-size:1.1rem;
padding:5px 6px 4.5px 6px;
letter-spacing:.03em;
line-height:0.8;
text-align:center;
border-radius:0 10px 10px 0;
}
.sch_icon{
position:absolute;
top:3px;
right:3px;
}
.sch_icon div{
width:15px;
}
.sch_icon img{
 transform: rotate(0deg);
}

.therapist_ul .no_hit{
grid-column:1 / -1;
width:100%;
text-align:center;
height:90px;
}





/* =========================
ブログ
========================= */
.blog{
width:94%;
max-width:900px;
margin:1.6rem auto 0rem;
padding:1.5rem 0 2.3rem 0;
}
.blog_ul{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:8px;
margin-top:1.6rem;
padding-bottom:0.7rem;
}
.blog_ul li{
transition:.35s ease;
padding:0.5rem;
background:white;
border-radius:12px;
}


.blog_ul img{
width:100%;
height:95px;
object-fit:cover;
object-position:center top;
border-radius:10px;
}

.blog_bottom{
padding:0.6rem 0.7rem 0rem;
flex:1;
display:flex;
flex-direction:column;
}

.blog_bottom span{
font-size:1rem;
font-weight:bold;
line-height:1.4;
color:#7a6853;
}

.blog_bottom p{
font-size:0.9rem;
margin:0rem 0 0rem;
line-height:1.5;
}

.blog_bottom em{
margin-top:auto;
text-align:right;
font-size:0.9rem;
padding-top:0.2rem;
}

.blog_ribon{
position:absolute;
bottom:2px;
left:3px;
border-radius:20px;
background: rgba(255,123,172,0.8);
color:#fff;
display:inline-flex;
padding:0.1rem 0.7rem;
font-size:0.9rem;
}
.therapist_ribon{
position:absolute;
bottom:4px;
left:4px;
border-radius:20px;
background: rgba(255,123,172,0.8);
color:#fff;
display:inline-flex;
padding:0.1rem 0.7rem;
font-size:1rem;
}
.therapist_access{
font-size:1.2rem;
display:block;
line-height:1;
text-align:center;
letter-spacing:0.05em;
color:#604e3e;
padding:0.5rem 0rem 0.1rem;
margin-bottom:0.1rem;
border-bottom:1px solid #c7b299;
}


/* =========================
一覧ボタン
========================= */

.next_page{
width:100%;
margin:1.8rem auto 0;
text-align:right;
}
.next_page a{
display:inline-flex;
align-items:center;
justify-content:center;
min-width:180px;
height:37px;
padding:0rem 1.8rem;
border:1px solid rgba(199,178,153,.55);
border-radius:30px;
background: linear-gradient(
to right,
rgba(239,228,220,0.3),
rgba(255,255,255,1)
);
box-shadow:
0 2px 6px rgba(0,0,0,0.04),
0 10px 20px rgba(0,0,0,0.06);
color:#827163;
}
.next_page span{
position:relative;
display:block;
font-size:1.2rem;
letter-spacing:.08em;
line-height:1.5;
color:#968477;
font-weight:bold;

line-height:37px;
padding:0rem 1.3rem 0rem 1.3rem;
}
.next_page span::after{
content:"";
position:absolute;
right:0;
top:49%;
width:7px;
height:7px;
border-top:1px solid #c7b299;
border-right:1px solid #c7b299;
transform:translateY(-50%) rotate(45deg);
}













/* =========================
header
========================= */
.header{
top:0;
left:0;
right:0;
width:100%;
height:56px;
z-index:98;
position:fixed;
-webkit-backdrop-filter: blur(0px);
backdrop-filter:blur(0px);
background: linear-gradient(to bottom, rgba(0,0,0,.8), transparent);

opacity:0;
  visibility:visible;
overflow: hidden;
}
/* header 表示 */
.header_show{
visibility:visible;
opacity:1;
transform:translateY(0);
}

.header_ul{
display:flex;
align-items:center;
height:100%;
width:100%;
height:56px;
}
.header_li1{
margin:0 auto 0.4rem 0.6rem;
}
.header_li1 img{
width:90px;
}
.header_li2{
margin:0 0 0.3rem auto;
display:flex;
align-items:center;
}
.header_item{
display:flex;
align-items:center;
height:56px;
}
.header_item1 a{
display:block;
margin-right:3rem;
width:45px;
height:100%;
}
.header_item1 img{
width:27px;
margin:auto;
}
.header_item2{
display:block;
height:100%;
padding-top:0.2rem;
}

/* =========================
menu bar
========================= */
.menu{
appearance:none;
-webkit-appearance:none;
width:45px;
height:56px;
position:relative;
padding:0;
margin:0 auto;
border:0;
background:none;
cursor:pointer;
z-index:99;
touch-action:manipulation;
}
.menu .bar{
display:inline-block;
height:1.3px;
background-color:white;
position:absolute;
left:0;
right:0;
transition:.15s ease-in-out;
}

.bar01{
width:40px;
top:18px;
}

.bar02{
width:23px;
top:33px;
}
.active .bar01{
top:26px;
transform:rotate(45deg);
width:35px;
}

.active .bar02{
top:26px;
transform:rotate(-45deg);
width:35px;
}


/* =========================
ハンバーガーメニュー
========================= */
.drawer{
position:fixed;
top:0;
left:0;
width:100%;
height:100vh;
background:url("../img/top/shop4.webp") no-repeat center top / cover;
z-index:97;
padding-top:56px;
}
.drawer::before{
content:'';
position:absolute;
inset:0;
background:rgba(0,0,0,0.9);
pointer-events:none;
z-index:0;
}
/* 非表示 表示 */
.drawer{
opacity:0;
visibility:hidden;
pointer-events:none;
transition:.4s ease;
  height:100dvh;
}
.drawer.drawer_show{
opacity:1;
visibility:visible;
pointer-events:auto;
}
.body_fixed{
overflow:hidden;
position: fixed;
}

/* 文字rgba対策 */
.drawer > *{
position:relative;
z-index:1;
}
.drewr_scroll{
overflow:scroll;
-webkit-overflow-scrolling:touch;
width:100%;
height:calc(100dvh - 56px);
overflow-y:auto;
}
.drawer_nav{
width:60%;
margin:.5rem 0% 5rem auto;
padding:0rem 6% 0rem 0rem;
}
.drawer_nav img{
width:65px;
margin:0 auto 0 auto;
}
.drawer_nav h3, .drawer_nav span{
line-height:1;
text-align:center;
display:block;
color:#c7b299;
}
.drawer_nav h3{
margin-top:-0rem;
font-size:2.3rem;
letter-spacing:.08em;
}
.drawer_nav span{
margin:.6rem 0 1.4rem 0;
font-size:.7rem;
letter-spacing:.18em;
}
.drawer_on{
opacity:0.3;
}
.drawer_ul{
display:grid;
grid-template-columns:repeat(2,auto);
justify-content:space-between;
border-top:1px solid #4c3e2e;
margin:0rem 0;
padding:2rem 0.9rem 1.7rem 0.9rem;
align-items:center;
}
.drawer_ul p{
color:#c7b299;
font-size:1.5rem;
line-height:1;
letter-spacing:.15em;
}
.drawer_ul em{
color:#c7b299;
font-size:1.1rem;
line-height:1;
}
.drwer_arrow{
display:inline-block;
width:1rem;
height:1rem;
border-top:1.5px solid #a38c72;
border-right:1.5px solid #a38c72;
transform:rotate(45deg);
}

.dower_bottom{
display: grid;
grid-template-columns:repeat(2,1fr);
gap:10px;
border-top:1px solid #4c3e2e;
padding:2rem 0;
}
.dower_bottom li{
border-radius:5px;
background: rgba(181,153,121,0.85);
padding:1rem 0.3rem 0.6rem 0.3rem;
}
.dower_bottom li:nth-of-type(2){
background:rgba(114,123,81,0.85);
}
.dower_bottom img{
width:20px;
height:22px;
margin:0rem auto 0.9rem auto;
opacity:0.7;
}
.dower_bottom p{
color:#e6e6e6;
font-size:1.1rem;
line-height:1.5;
letter-spacing:.1em;
display:block;
text-align:center;
}
.dower_bottom em{
color:#e6e6e6;
font-size:1.1rem;
line-height:1.5;
letter-spacing:.1em;
display:block;
text-align:center;
}






/* =========================
各ページトップ画像
========================= */

/* gold line */
.gold_line{
width:150px;
height:1px;
margin:0rem 0 0 0;
background:linear-gradient(
90deg,
rgba(255,230,140,.95) 0%,
rgba(230,190,70,.7) 35%,
rgba(230,190,70,.25) 70%,
rgba(230,190,70,0) 100%
);
box-shadow:0 0 4px rgba(255,220,120,.25);
transform: scaleX(0);
transform-origin: left center;
animation: expandLine 2s ease forwards;
animation-delay: .3s;
}
@keyframes expandLine{
  from{ transform: scaleX(0); }
  to  { transform: scaleX(1); }
}



/* =========================
トップ文字textillate
========================= */
@keyframes fadeInLeft {
  from { opacity: 0; transform: translateX(-12px); }
  to   { opacity: 1; transform: none; }
}

@keyframes fadeInLeftColor {
  from { opacity: 0; transform: translateX(-12px); color: #fbb03b; }
  to   { opacity: 1; transform: none; color: white; }
}

@keyframes rotateInDownLeft {
  from {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
  to {
    transform-origin: left bottom;
    transform: none;
    opacity: 1;
  }
}






/* =========================
footer
========================= */
.footer{
position:relative;
padding:1.8rem 0 1rem;
background:
linear-gradient(
180deg,
rgba(252,250,248,1) 0%,
rgba(248,244,240,.3) 100%
);
overflow:hidden;
}

.footer_inner{
position:relative;
z-index:1;
}
.footer_logo{
text-align:center;
font-size:2.4rem;
line-height:1;
letter-spacing:.08em;
color:#7a6853;
}

.footer_logo span{
display:block;
margin-top:.65rem;
font-size:.7rem;
letter-spacing:.18em;
color:#7a6853;
}

.footer_nav{
display:grid;
grid-template-columns:1fr 1fr;
margin:1.5rem auto 0;
border-top:1px solid #e0e0e0;
width:100%;
max-width:900px;
}

.footer_nav li{
border-right:1px solid #e0e0e0;
border-bottom:1px solid #e0e0e0;
}

.footer_nav li:nth-child(2n){
border-right:0;
}

.footer_nav a{
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
gap:.25rem;
padding:1.5rem .5rem 1.4rem;
background:#fffdfa;
text-decoration:none;
transition:.3s;
}

.footer_nav a em{
font-style:normal;
font-size:.72rem;
letter-spacing:.12em;
color:#444;
text-transform:uppercase;
}

.footer_nav a span{
font-size:1.1rem;
letter-spacing:.06em;
color:#444;
}

.footer_nav a:active{
background:rgba(199,178,153,.08);
}

.footer_nav a.on{
opacity:.4;
}

.footer_tel img{
display:block;
width:200px;
margin:2rem auto;
}

.footer_text{
display:inline-block;
text-align:left;
font-size:1rem;
letter-spacing:.03em;
color:#353535;
line-height:1.8;
padding:0 2rem 0 2rem;
}

.footer_copy{
text-align:center;
margin-top:0.4rem;
font-size:.9rem;
letter-spacing:.08em;
color:#606060;
}
/* foterlink*/
.link_site{
display:block;
text-align:center;
}
.link_site a{
display:inline-block;
font-size:1rem;
letter-spacing:0.04em;
line-height:1.9;
margin:.3rem 0 0rem;
color:#a89076;
}









/* =========================
ページング
========================= */

.pageng_all {
width:90%;
margin:5px auto;
text-align: center;
}
.pageng_prenex {
width:100%;
margin:25px auto 28px auto;
text-align: center;
display:flex;
align-items: center;
justify-content: center;
}
.pageng_back {
  display: inline-block;
background-color: white;
width: 90px;
color:#eaeaea;
font-size:1.1rem;
margin:0 8px;
background-color:#C7B299;
border-radius:2px;
text-align: center;
}
.pageng_back a {
  display: block;
width: 100%;
padding:10px 0 9px 0;
height: 100%;
color:#eaeaea;
font-weight: bold;
text-align: center;
}
.pageng_next {
  display: inline-block;
background-color: white;
width: 90px;
color:white;
font-size:1.1rem;
margin:0 8px;
background-color:#C7B299;
border-radius:2px;
text-align: center;
}
.pageng_next a {
  display: block;
width: 100%;
height: 100%;
padding:10px 0 9px 0;
color:#eaeaea;
font-weight: bold;
text-align: center;
}
.pageng {
width:100%;
margin:2px auto;
display:flex;
align-items: center;
justify-content: center;
}
.pageng_s {
  border: 1px #c1c1c1 solid;
background-color: white;
width: 30px;
padding:10px 0 9px 0;
color:#999999;
font-size:1.1rem;
margin:0 4px;
text-align: center;
}
.pageng_s a {
  display: block;
width: 100%;
height: 100%;
text-align: center;
}
.pageng_sC {
border: 1px #dcdcdc solid;
background-color: #dcdcdc;
width: 30px;
padding:10px 0 9px 0;
color: #A5A5A5;
font-size:1.1rem;
margin:0 4px;
text-align: center;
}
.pageng_sC a {
  display: block;
width: 100%;
height: 100%;
color: #A5A5A5;
text-align: center;
}

.page_count {
display:block;
text-align:center;
padding:10px 0 0% 0;
font-size:1.2rem;
color: #A5A5A5;
letter-spacing: 1px;
padding-bottom:0;
}

.page_count_top {
display:block;
text-align:center;
padding:10px 0 0% 0;
font-size:1.2rem;
color: #A5A5A5;
letter-spacing: 1px;
padding-bottom:0;

}

.page_count_not {
display:block;
text-align:center;
padding:10px 0 0% 0;
font-size:1.3rem;
color: #A5A5A5;
letter-spacing: 1px;
padding-bottom:0;
}
.pageng_disabled{
background:#eee;
color:#aaa;
border-color:#ddd;
pointer-events:none;
margin-top:15px;
}
/* ページングここまで*/










/* =========================
TOPアニメーション
========================= */

.hero_top{
position:relative;
width:100%;
height:260px;
overflow:hidden;
background:black;
}

.hero_bg{
position:absolute;
inset:0;
overflow:hidden;
}
.hero_bg::after{
content:'';
position:absolute;
inset:0;
z-index:1;

background:
linear-gradient(
180deg,
rgba(0,0,0,.18) 0%,
rgba(0,0,0,.35) 45%,
rgba(0,0,0,.58) 100%
);
}
.hero_sub{
position:absolute;
inset:0;
overflow:hidden;
}
.hero_sub::after{
content:'';
position:absolute;
inset:0;
z-index:1;
/* 左から右 */
background:
linear-gradient(
90deg,
rgba(0,0,0,.45) 0%,
rgba(0,0,0,.33) 20%,
rgba(0,0,0,.0) 45%,
rgba(0,0,0,0) 75%
),

radial-gradient(
rgba(0,0,0,.08) 0.35px,
transparent 0.7px
),

linear-gradient(
180deg,
rgba(0,0,0,.05) 0%,
rgba(0,0,0,.05) 45%,
rgba(0,0,0,.05) 100%
);

background-size:
100% 100%,
2px 2px,
100% 100%;
}
.hero_img{
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
z-index:0;
object-fit:cover;
object-position:center center;
transform:scale(1.12);
}

/* 右→左 */
.hero_move_left{
animation:heroMoveLeft 8s ease forwards;
}
@keyframes heroMoveLeft{
0%{
transform:scale(1.12) translateX(4%);
}
100%{
transform:scale(1.12) translateX(-4%);
}
}

.hero_width{
position:relative;
z-index:2;
width:100%;
height:100%;
max-width:900px;
margin:0 auto;
}
.hero_absolute{
position:absolute;
top:8%;
bottom:8%;
left:5%;
z-index:3;
width:100%;
max-width:500px;
padding:0 1rem;
box-sizing:border-box;
}
.hero_absolute::before{
content:"";
position:absolute;
height:100%;
inset:0% auto 0% 0%;
background:linear-gradient(
180deg,
rgba(199,178,153,0) 0%,
rgba(199,178,153,.95) 20%,
rgba(214,196,172,1) 50%,
rgba(199,178,153,.95) 80%,
rgba(199,178,153,0) 100%
);
width:1px;
transform:scaleY(0);
transform-origin:bottom;
animation:lineGrow 1.8s cubic-bezier(.22,.61,.36,1) forwards;
background:#998675;
}

.hero_text{
position:absolute;
top:44%;
transform:translateY(-50%);
left:5%;
}

@keyframes lineGrow{
0%{
transform:scaleY(0);
opacity:0;
}
40%{
opacity:1;
}
100%{
transform:scaleY(1);
opacity:1;
}
}

.hero_absolute h1 span,
.hero_absolute p span,
.hero_absolute em span{
display:inline-block;
vertical-align:top;
opacity:0;
animation-duration:.7s;
animation-timing-function:ease;
animation-fill-mode:forwards;
}

.hero_absolute p,
.hero_absolute p span{
font-size:0.9rem;
letter-spacing:.18em;
line-height:1.6;
color:white;
text-align:left;
margin:0rem 0 0.1rem 0.1rem;
}

.hero_absolute h1,
.hero_absolute h1 span{
font-size:1.8rem;
letter-spacing:.06em;
line-height:1.4;
color:white;
text-align:left;
margin:0rem 0 0.2rem 0;
}

.hero_absolute em,
.hero_absolute em span{
margin:1rem 0 0 0rem;
font-size:1.1rem;
line-height:1.4;
color:white;
text-align:left;
letter-spacing:.15em;
}

.hero_line{
width:180px;
height:1px;
margin:.25rem auto .35rem;
background:linear-gradient(
90deg,
rgba(230,190,70,0) 0%,
rgba(230,190,70,.75) 50%,
rgba(230,190,70,0) 100%
);
transform:scaleX(0);
transform-origin:center;
animation:heroLine 1.4s ease forwards;
animation-delay:.5s;
}
@keyframes heroLine{
from{
transform:scaleX(0);
}
to{
transform:scaleX(1);
}
}

/* complete */
.complete{
width:92%;
max-width:600px;
border-radius:20px;
padding:3rem 2.6rem 0.6rem;
margin:3.2rem auto 3rem;
overflow:hidden;
text-align:center;
border:1px solid #F4F4F4;
}
.complete h1{
font-size:1.7rem;
letter-spacing:0.03em;
line-height:1.7;
text-align:center;
color:#3F2F24;
font-weight:bold;
}
.complete p{
font-size:1.3rem;
letter-spacing:0.08em;
line-height:1.9;
margin:2rem 0 2rem;
display:inline-block;
text-align:left;
}
.complete span{
font-size:1.6rem;
letter-spacing:0.05em;
text-align:center;
margin:2.2rem 0;
}
.complete_form{
width:100%;
max-width:320px;
margin:0.5rem auto 2rem;
border:1px solid #D8CBC3;
background:white;
height:45px;
border-radius:1px;
font-size:1.5rem;
line-height:45px;
opacity:1;
color:black;
text-align:center;
padding:0 1rem;
overflow:scroll;
}
.input_botan{
display:inline-block;
border-radius:20px;
background:#B29A80;
color:white;
height:40px;
min-width:200px;
font-size:1.3rem;
line-height:40px;
position:0 2rem;
margin:2.1rem auto 4rem;
cursor:pointer;
}

/* ログイン保持ボタン anime */
.switch_flex{
display:flex;
justify-content:center;
margin:0rem auto 0;
}
.switch{
display:flex;
align-items:center;
gap:12px;
cursor:pointer;
user-select:none;
}
.switch input{
display:none;
}
.slider{
position:relative;
width:48px;
height:26px;
background:rgba(255,255,255,.15);
border:1px solid rgba(199,178,153,.4);
border-radius:30px;
transition:.3s;
}
.slider::before{
content:"";
position:absolute;
top:2px;
left:2px;
width:20px;
height:20px;
border-radius:50%;
background:#fff;
transition:.3s;
box-shadow:0 2px 6px rgba(0,0,0,.2);
}
.switch input:checked + .slider{
background:#c7b299;
border-color:#c7b299;
}
.switch input:checked + .slider::before{
transform:translateX(22px);
}
.switch_text{
font-size:1.4rem;
color:#ddd;
letter-spacing:.08em;
}























/* =========================
tablet〜pc
========================= */

@media (min-width:768px){

.top_menu{
grid-template-columns:repeat(10,1fr);
  padding:13px 6px;
}
.top_menu img{
  width:28px;
  height:28px;
  object-fit:contain;
  margin-bottom:2px;
}
.top_menu li:nth-child(5n)::after{
  display:block;
}
.top_menu li:nth-child(10n)::after{
  display:none;
}
/* 各ページTOP画像 */
.hero_top{
height:310px;
}


/* セラピスト一覧 */
.therapist_ul{
grid-template-columns:repeat(5,1fr);
}
/* footer */
.footer_text{
text-align:center;
}
/* バーガーメニューback */
.header_item1{
display:none;
}
.drawer_nav{
width:40%;
margin:.5rem 0% 20rem auto;
padding:0rem 6% 0rem 0rem;
}

/* ブログ一覧 */
.blog_ul{
grid-template-columns:repeat(5,1fr);
}
.blog_ul img{
height:140px;
}

}




















