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

html{
/*font-size:62.5%;*/
font-size:64.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:#fcfefd;
color:#26332f;
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:#1d8a72;
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 dashed #d5e9e2;
border-radius:12px;
margin-top:1rem;
height:90px;
background:#fff;
}
.no_hit p{
display:block;
text-align:center;
font-size:1.2rem;
color:#6c7d78;
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:#ADADAD;
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);
}
/* Androidは倍率が端数で枠との間にすき間が見えるので、1px伸ばして枠に重ねる */
.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:11px solid #ADADAD;
}


/* =========================
リンク矢印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 #03bc96;
border-right:1px solid #03bc96;
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_green{
background:#eef7f3;
}
.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:#fff;
border-bottom:1px solid #d5e9e2;
}
.top_menu{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:6px;
padding:10px 0;
border-radius:0px;
width:94%;
max-width:930px;
margin:auto;
}
.top_menu li{
position:relative;
}
.top_menu li a{
position:relative;
z-index:1;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
width:100%;
padding:8px 1px 7px;
text-decoration:none;
color:inherit;
box-sizing:border-box;
background:#eef7f3;
border-radius:10px;
}
/* 今いるページ：緑のタイル */
.top_menu li.current a{
background:#1d8a72;
}
/* アイコンは include/global.php の SVG。色は color で変わる */
.top_menu_icon{
display:block;
width:22px;
height:22px;
color:#1d8a72;
margin-bottom:3px;
}
.top_menu li.current .top_menu_icon{
color:#fff;
}
.top_menu em{
display:block;
text-align:center;
font-size:.8rem;
font-weight:500;
color:#1d8a72;
line-height:1;
letter-spacing:.04em;
margin:2px 0 3px 0;
}
.top_menu p{
display:block;
text-align:center;
font-size:0.9rem;
color:#26332f;
line-height:1;
letter-spacing:0em;
}
.top_menu li.current em,
.top_menu li.current p{
color:#fff;
}
















/* =========================
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;
}

/* 中央の見出し（英字イタリック＋日本語＋緑の短い線） */
.title_center{
text-align:center;
margin:0 auto 1.4rem;
padding:0;
}
.title_center_en{
display:block;
font-size:1.5rem;
letter-spacing:.06em;
line-height:1;
color:#03bc96;
}
.title_center_ja{
display:block;
margin-top:.5rem;
font-size:1.8rem;
letter-spacing:.12em;
line-height:1.3;
color:#26332f;
}
.title_center .border_off_center{
width:36px;
height:2px;
margin:.9rem auto 0;
border-radius:2px;
background:#1d8a72;
}








/* =========================
サブメニュー 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{
width:100%;
margin:1.2rem auto 0;
display:grid;
grid-template-columns:repeat(3,1fr);
gap:10px 8px;
align-items:start;
padding:0 0.2rem;

}
.therapist_ul li{
height:100%;
background:#fff;
box-shadow:0 4px 14px rgba(18,51,44,.06);
border-radius:12px;
border:1px solid #d5e9e2;
overflow:hidden;
}
.therapist_ul li.blog_show{
opacity:1;
}

/* 部屋タブ（大久保ルーム・コンセプトルーム）
   TOPの本日の出勤（index.php）と出勤情報ページ（schedule/）で共用 */
.schedule_room{
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:8px;
margin:0 auto 2rem;
}
/* スマホでも1段で等分（増えても折り返さない） */
.schedule_room li{
flex:1 1 0;
min-width:0;
max-width:160px;
}
.schedule_room button{
width:100%;
height:36px;
padding:0 0.3rem;
white-space:nowrap;
background:#fff;
border:1px solid #1d8a72;
border-radius:20px;
color:#1d8a72;
font-size:1.2rem;
letter-spacing:.04em;
line-height:1;
cursor:pointer;
transition:background .25s ease, color .25s ease;
}
.schedule_room li.on button{
background:#1d8a72;
color:#fff;
}
@media (hover:hover) and (pointer:fine){
.schedule_room button:hover{
background:#eef7f3;
}
.schedule_room li.on button:hover{
background:#1d8a72;
}
}
/* TOP：タブの下の「〜を表示中」 */
.top_room_name{
margin:-1.2rem 0 0;
text-align:center;
font-size:1.15rem;
letter-spacing:.06em;
color:#6c7d78;
}
.top_room_list[hidden]{
display:none;
}
.sch_relative{
width:100%;
position:relative;
padding:0;
}
.detail_li_img{

width:100%;
display:block;
border-radius:0;
}
.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.2rem;
letter-spacing:.02em;
font-weight:bold;
line-height:1.2;
text-align:center;
margin:0.7rem 0 0.2rem;
color:#26332f;
}
.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:#6c7d78;
font-weight:bold;
padding:0 0.1rem 0.1rem;
}
.sch_time{
display:flex;
gap:1px;
margin:0.3rem 0.4rem 0.6rem;
border-radius:20px;
justify-content:center;
background:#eef7f3;
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:#1d8a72;
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;
left:0;
right:0;
z-index:3;
background:rgba(29,138,114,.9);
color:#fff;
display:flex;
justify-content:center;
padding:0.1rem 0.7rem;
font-size:1rem;
}

/* =========================
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;
left:0;
right:0;
background:rgba(29,138,114,.9);
color:white;
display:block;
font-size:1.05rem;
padding:6px 0 5px;
letter-spacing:.08em;
line-height:0.8;
text-align:center;
}
.annnai_end{
position:absolute;
bottom:0;
left:0;
right:0;
background:rgba(110,120,117,.85);
color:white;
display:block;
font-size:1.05rem;
padding:6px 0 5px;
letter-spacing:.08em;
line-height:0.8;
text-align:center;
}
.annnai_owari{
position:absolute;
bottom:0;
left:0;
right:0;
background:rgba(110,120,117,.85);
color:white;
display:block;
font-size:1.05rem;
padding:6px 0 5px;
letter-spacing:.08em;
line-height:0.8;
text-align:center;
}
/* エリアの札（エリアが複数の店だけ。include/guidance.php） */
.sch_place{
position:absolute;
top:0;
left:0;
z-index:3;
max-width:calc(100% - 2.4rem);
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
box-sizing:border-box;
background:rgba(29,138,114,.9);
color:#fff;
font-size:0.95rem;
line-height:1.5;
letter-spacing:0;
padding:0.2rem 0.5rem;
border-radius:0 0 6px 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:0 auto 0rem;
padding:2.6rem 0 2.8rem 0;
}
.blog_ul{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:10px 8px;
margin-top:1.6rem;
padding-bottom:0.7rem;
}
.blog_ul li{
transition:.35s ease;
padding:0;
background:white;
border-radius:12px;
border:1px solid #d5e9e2;
overflow:hidden;
}


.blog_ul img{
width:100%;
height:110px;
object-fit:cover;
object-position:center top;
}

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

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

.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;
color:#03bc96;
}

.blog_ribon{
position:absolute;
bottom:6px;
left:6px;
border-radius:20px;
background:#1d8a72;
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:#1d8a72;
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:2rem auto 0;
text-align:center;
}
.next_page a{
display:inline-flex;
align-items:center;
justify-content:center;
min-width:220px;
height:42px;
padding:0rem 1.8rem;
border:1px solid #1d8a72;
border-radius:30px;
background:#fff;
color:#1d8a72;
}
.next_page span{
position:relative;
display:block;
font-size:1.2rem;
letter-spacing:.1em;
color:#1d8a72;
font-weight:bold;
line-height:42px;
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 #1d8a72;
border-right:1px solid #1d8a72;
transform:translateY(-50%) rotate(45deg);
}
@media (hover:hover) and (pointer:fine){
.next_page a{
transition:background .25s ease;
}
.next_page a:hover{
background:#1d8a72;
}
.next_page a:hover span{
color:#fff;
}
.next_page a:hover span::after{
border-color:#fff;
}
}













/* =========================
header
========================= */
.header{
top:0;
left:0;
right:0;
width:100%;
height:50px;
z-index:98;
position:fixed;
-webkit-backdrop-filter: blur(0px);
backdrop-filter:blur(0px);
/* トークルーム（css/talk.css）のヘッダーと同じ深緑のグラデ */
background:linear-gradient(135deg,rgba(11,61,51,.95),rgba(22,110,91,.95));

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

.header_ul{
position:relative;
display:flex;
align-items:center;
width:100%;
height:50px;
}
/* ロゴは真ん中（試し） */
.header_li1{
position:absolute;
top:50%;
left:50%;
margin-top:-1px;
transform:translate(-50%,-50%);
}
/* block にして行の下すきまを消す（-1px は画像の中の文字の上下を真ん中に合わせるぶん） */
.header_li1 img{
display:block;
width:72px;
}
.header_li2{
margin:0 0 0 auto;
}
.header_item{
display:flex;
align-items:center;
gap:1rem;
height:50px;
}
/* 電話：スマホは丸枠なしのアイコンだけ（押せる範囲は 44px）、PCは番号つきのピル（768 ブロック） */
.header_tel{
display:flex;
align-items:center;
justify-content:center;
gap:.6rem;
width:40px;
height:40px;
border-radius:20px;
color:#fff;
transition:background .2s;
}
/* アイコンは img/icon/tel.png（白・144×166）。高さで合わせる */
.header_tel_icon{
display:block;
position:relative;
top:1px;
width:auto;
height:23px;
flex-shrink:0;
}
.header_tel_num{
display:none;
font-size:1.7rem;
letter-spacing:.04em;
line-height:1;
}
/* Web予約：PCだけ */
.header_web_li{
display:none;
}
.header_web{
display:flex;
align-items:center;
gap:.4rem;
height:36px;
padding:0 1.6rem;
border-radius:18px;
background:#03bc96;
color:#fff;
font-size:1.3rem;
font-weight:bold;
letter-spacing:.05em;
transition:opacity .2s;
}
.header_web_icon{
display:block;
width:15px;
height:15px;
}

/* =========================
menu bar（白い丸に緑の3本線・開くと×）
========================= */
.menu{
appearance:none;
-webkit-appearance:none;
display:block;
width:36px;
height:36px;
position:relative;
padding:0;
margin:0;
border:0;
border-radius:50%;
background:#fff;
cursor:pointer;
z-index:99;
touch-action:manipulation;
}
.menu .bar{
display:block;
width:16px;
height:1.5px;
border-radius:2px;
background-color:#1d8a72;
position:absolute;
left:10px;
transition:.15s ease-in-out;
}
.bar01{
top:12.25px;
}
.bar02{
top:17.25px;
}
.bar03{
top:22.25px;
}
.active .bar01{
top:17.25px;
transform:rotate(45deg);
}
.active .bar02{
opacity:0;
}
.active .bar03{
top:17.25px;
transform:rotate(-45deg);
}
@media (hover:hover) and (pointer:fine){
.header_tel:hover{
background:rgba(255,255,255,.24);
}
.header_web:hover{
opacity:.85;
}
}


/* =========================
ハンバーガーメニュー
========================= */
.drawer{
position:fixed;
top:0;
left:0;
width:100%;
height:100vh;
z-index:97;
padding-top:50px;
}
.drawer::before{
content:'';
position:absolute;
inset:0;
/* 後ろのページを少し暗く */
background:rgba(8,30,25,.55);
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）に塗るので、下まで引っぱって跳ねても白は動かない
   シートの外の暗い所を押すと閉じる（js/common.js）ので、中身の .drawer_nav はシートいっぱいの高さにする */
.drewr_scroll{
-webkit-overflow-scrolling:touch;
height:calc(100dvh - 50px);
overflow-x:hidden;
overflow-y:auto;
overscroll-behavior:contain;
width:84%;
margin:0 0 0 auto;
background:#fff;
box-shadow:-10px 0 30px rgba(0,0,0,.18);
transform:translateX(100%);
transition:transform .4s ease;
}
.drawer_show .drewr_scroll{
transform:translateX(0);
}
.drawer_nav{
min-height:100%;
padding:1.2rem 0 3rem;
}
/* メニューの行。アイコンは include/top.php の $menu_icons */
.drawer_list li{
border-bottom:1px solid #eef2f0;
}
.drawer_link{
position:relative;
display:grid;
grid-template-columns:36px 1fr auto;
align-items:center;
gap:1.2rem;
padding:1.1rem 1.6rem;
transition:background .2s;
}
.drawer_icon_wrap{
display:grid;
place-items:center;
width:36px;
height:36px;
border-radius:50%;
background:#eef7f3;
color:#1d8a72;
}
.drawer_icon{
display:block;
width:19px;
height:19px;
}
.drawer_txt{
display:flex;
flex-direction:column;
}
.drawer_ja{
font-size:1.4rem;
font-weight:bold;
color:#24332f;
letter-spacing:.04em;
line-height:1.4;
}
.drawer_en{
font-size:1.1rem;
color:#8aa59c;
line-height:1.2;
}
.drawer_arrow{
width:7px;
height:7px;
border-top:1.5px solid #b9ddd1;
border-right:1.5px solid #b9ddd1;
transform:rotate(45deg);
}
/* 今いるページ：薄緑＋左に緑の線 */
.drawer_current .drawer_link{
background:#eef7f3;
}
.drawer_current .drawer_link::before{
content:'';
position:absolute;
left:0;
top:10px;
bottom:10px;
width:3px;
border-radius:0 3px 3px 0;
background:#1d8a72;
}
.drawer_current .drawer_icon_wrap{
background:#1d8a72;
color:#fff;
}
.drawer_current .drawer_ja{
color:#1d8a72;
}
/* 下のボタン（電話・Web予約・LINE） */
.drawer_btns{
display:grid;
gap:.8rem;
padding:2rem 1.6rem 0;
}
.drawer_btn{
display:flex;
align-items:center;
justify-content:center;
gap:.6rem;
height:46px;
border-radius:30px;
font-size:1.35rem;
font-weight:bold;
letter-spacing:.05em;
}
.drawer_btn_tel{
border:1.5px solid #1d8a72;
color:#1d8a72;
}
.drawer_btn_web{
background:#1d8a72;
color:#fff;
}
.drawer_btn_line{
background:#06c755;
color:#fff;
}
.drawer_btn_icon{
display:block;
width:18px;
height:18px;
}
.drawer_line_icon{
display:block;
width:22px;
height:22px;
}
.drawer_line_letter{
stroke:#06c755;
}
@media (hover:hover) and (pointer:fine){
.drawer_list li:not(.drawer_current) .drawer_link:hover{
background:#f6faf8;
}
.drawer_btn:hover{
opacity:.85;
}
}






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

/* gold line */
.gold_line{
width:150px;
height:1px;
margin:0rem 0 0 0;
background:linear-gradient(
90deg,
rgba(3,188,150,.95) 0%,
rgba(3,188,150,.7) 35%,
rgba(3,188,150,.25) 70%,
rgba(3,188,150,0) 100%
);
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: #7fe0c8; }
  to   { opacity: 1; transform: none; color: white; }
}

/* index.php のTOPコメント：緑からふわっと下から */
@keyframes fadeInUpColor {
  from { opacity: 0; transform: translateY(6px); color: #7fe0c8; }
  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:2.6rem 0 1.4rem;
background:#12332c;
overflow:hidden;
}

.footer_inner{
position:relative;
z-index:1;
}
/* ロゴは白文字なので暗い緑の上に置く */
.footer_logo img{
display:block;
width:150px;
margin:0 auto;
}

.footer_nav{
display:grid;
grid-template-columns:1fr 1fr;
gap:6px;
margin:2rem auto 0;
width:100%;
max-width:900px;
}

.footer_nav a{
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
gap:.25rem;
padding:1.1rem .5rem 1rem;
background:rgba(255,255,255,.07);
border:1px solid rgba(255,255,255,.1);
border-radius:10px;
text-decoration:none;
transition:.3s;
}

.footer_nav a em{
font-size:.9rem;
letter-spacing:.04em;
color:#03bc96;
}

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

.footer_nav a:active{
background:rgba(255,255,255,.14);
}

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

/* 電話ボタン */
.footer_tel{
display:block;
max-width:320px;
margin:2rem auto 1.4rem;
padding:1.1rem 0 1rem;
border-radius:40px;
background:#1d8a72;
text-align:center;
color:#fff;
}
.footer_tel_label{
display:block;
font-size:1rem;
letter-spacing:.14em;
color:#e3f6f0;
}
.footer_tel strong{
display:block;
font-size:2rem;
letter-spacing:.08em;
line-height:1.3;
}
.footer_tel em{
display:block;
font-size:1rem;
letter-spacing:.06em;
color:#e3f6f0;
}

.footer_copy{
text-align:center;
margin-top:0.4rem;
font-size:.9rem;
letter-spacing:.08em;
color:rgba(255,255,255,.55);
}
/* foterlink*/
.footer_link_ul{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:8px;
max-width:840px;
margin:2.6rem auto 1.4rem;
}
.footer_link_ul img{
width:100%;
height:auto;
display:block;
}









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

.pageng_all {
width:100%;
margin:2rem auto 0;
text-align:center;
}
/* BACK・NEXT（.next_page と同じ緑の線） */
.pageng_prenex {
width:100%;
margin:0 auto 1.4rem;
display:flex;
align-items:center;
justify-content:center;
gap:12px;
}
.pageng_back,
.pageng_next {
width:96px;
}
.pageng_back a,
.pageng_next a {
display:block;
height:36px;
line-height:36px;
border:1px solid #1d8a72;
border-radius:20px;
background:#fff;
color:#1d8a72;
font-size:1.1rem;
font-weight:bold;
letter-spacing:.1em;
text-align:center;
}
/* 番号 */
.pageng {
width:100%;
margin:0 auto;
display:flex;
align-items:center;
justify-content:center;
gap:6px;
}
.pageng_s,
.pageng_sC {
width:34px;
height:34px;
line-height:32px;
border:1px solid #d5e9e2;
border-radius:8px;
background:#fff;
color:#26332f;
font-size:1.2rem;
text-align:center;
}
.pageng_sC {
border-color:#1d8a72;
background:#1d8a72;
color:#fff;
}
.pageng_dot {
color:#6c7d78;
font-size:1.2rem;
}
.page_count {
display:block;
text-align:center;
margin-top:1rem;
font-size:1.15rem;
letter-spacing:.06em;
color:#6c7d78;
}
.pageng_disabled{
pointer-events:none;
}
@media (hover:hover) and (pointer:fine){
.pageng_back a,
.pageng_next a,
.pageng_s{
transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.pageng_back a:hover,
.pageng_next a:hover{
background:#1d8a72;
color:#fff;
}
.pageng_s:hover{
border-color:#1d8a72;
color:#1d8a72;
}
}
/* ページングここまで*/










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

.hero_top{
position:relative;
width:100%;
height:205px;
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,.23) 20%,
rgba(0,0,0,.13) 45%,
rgba(0,0,0,.13) 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_text{
position:absolute;
top:44%;
transform:translateY(-50%);
left:3%;
}

.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);
}
}

/* 説明文なしのTOP画像（英語と日本語だけ・真ん中寄せ）。include/hero.php が $hero_text 空のとき付ける */
.hero_center .hero_absolute{
left:0;
right:0;
margin:0 auto;
}
.hero_center .hero_text{
top:50%;
left:0;
right:0;
text-align:center;
}
/* 英語を大きく主役に */
.hero_center .hero_absolute p,
.hero_center .hero_absolute p span{
font-size:2.1rem;
letter-spacing:.16em;
line-height:1.1;
color:white;
text-align:center;
margin:0;
text-shadow:0 2px 12px rgba(0,0,0,.35);
}
/* 字間の分、最後の文字の右に空きが出るので左にも同じだけ足して真ん中に */
.hero_center .hero_absolute p{
padding-left:.16em;
}
.hero_center .hero_absolute h1{
padding-left:.24em;
}
/* 英語と日本語の間の緑の線（真ん中から左右に伸びる） */
.hero_center .hero_absolute p::after{
content:"";
display:block;
width:150px;
height:1px;
margin:0.9rem auto 0.8rem;
background:linear-gradient(
90deg,
rgba(3,188,150,0) 0%,
rgba(3,188,150,.95) 50%,
rgba(3,188,150,0) 100%
);
transform:translateX(-.08em) scaleX(0);
transform-origin:center;
animation:heroCenterLine 1.6s ease forwards;
animation-delay:.3s;
}
/* 文字が出るまで止めておく（common.js が hide を外す） */
.hero_center .hero_absolute.hide p::after{
animation-play-state:paused;
}
@keyframes heroCenterLine{
from{
transform:translateX(-.08em) scaleX(0);
}
to{
transform:translateX(-.08em) scaleX(1);
}
}
/* 日本語は小さく */
.hero_center .hero_absolute h1,
.hero_center .hero_absolute h1 span{
font-size:1.3rem;
letter-spacing:.24em;
line-height:1.4;
color:white;
text-align:center;
margin:0;
text-shadow:0 2px 10px rgba(0,0,0,.35);
}
/* 下の線は使わない */
.hero_center .gold_line{
display:none;
}

/* 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;
}
/* 予約の完了画面（contact/complete.php）：料金・予約ページと同じBOOK調の枠。.complete は求人・会員・アンケートの完了画面と共用なので触らない */
.complete_book{
margin-top:3rem;
padding:1.7rem 0 1rem;
text-align:center;
}
.complete_book_width{
width:92%;
max-width:640px;
margin:0 auto;
}
.complete_book_h1{
font-size:1.1rem;
letter-spacing:.09em;
color:#4f382b;
font-weight:normal;
line-height:1.2;
display:block;
margin-top:0.6rem;
}
.complete_book_text{
display:inline-block;
position:relative;
z-index:2;
margin:2.4rem 0 2rem;
font-size:1.3rem;
line-height:1.9;
letter-spacing:0.08em;
text-align:left;
}
/* iPhone SE（初代）など幅320px */
@media (max-width:374px){
/* 部屋タブ 幅320pxでも部屋名が1行に収まるように */
.schedule_room{
gap:5px;
}
.schedule_room button{
font-size:1.1rem;
letter-spacing:0;
}
/* セラピストの出勤時間 iPhone5（320px）で「12:00～00:00」が折り返さないように */
.sch_time{
margin:0.3rem 0.2rem 0.6rem;
}
.sch_time em{
padding:0.8px 2px 0px 2px;
letter-spacing:.02em;
white-space:nowrap;
}
/* ヘッダー 真ん中のロゴと電話が近いので、電話とメニューの間を詰めて電話を右へ */
.header_item{
gap:.4rem;
}
}
.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){

/* 部屋タブ */
.schedule_room{
gap:10px;
}
.schedule_room li{
max-width:180px;
}
.schedule_room button{
height:40px;
font-size:1.3rem;
}
.top_room_name{
font-size:1.25rem;
}

.top_menu{
grid-template-columns:repeat(8,1fr);
gap:8px;
padding:14px 0;
}
.top_menu_icon{
width:28px;
height:28px;
}
/* 各ページTOP画像 */
.hero_top{
height:270px;
}
/* 説明文なしのTOP画像の文字 */
.hero_center .hero_absolute p,
.hero_center .hero_absolute p span{
font-size:2.7rem;
}
.hero_center .hero_absolute p::after{
width:220px;
}
.hero_center .hero_absolute h1,
.hero_center .hero_absolute h1 span{
font-size:1.5rem;
}


/* セラピスト一覧 */
.therapist_ul{
grid-template-columns:repeat(5,1fr);
}
/* footer */
.footer_nav{
grid-template-columns:repeat(3,1fr);
}
/* リンクバナー 4列（旧 okasan1 と同じ） */
.footer_link_ul{
grid-template-columns:repeat(4,1fr);
}
/* ヘッダー：電話番号のピル＋Web予約 */
.header,
.header_ul,
.header_item{
height:58px;
}
/* PCは右のピルとぶつかるのでロゴは左のまま */
.header_li1{
position:static;
margin:0 auto .3rem 0;
transform:none;
}
.header_li1 img{
width:88px;
}
.header_tel{
width:auto;
height:36px;
padding:0 1.6rem;
background:rgba(255,255,255,.14);
}
.header_tel_icon{
top:0;
height:16px;
}
.header_tel_num{
display:block;
}
.header_web_li{
display:block;
}
.drawer{
padding-top:58px;
}
/* ハンバーガーメニュー：シートは固定幅 */
.drewr_scroll{
width:380px;
height:calc(100dvh - 58px);
}

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

}





















/* 戻るナビゲーション時: 初期非表示を適用しない */
html:not(.back-nav) .therapist_ul li{opacity:0;}

/* 戻るナビゲーション時: アニメーションをスキップして即表示 */
.back-nav .therapist_ul li,
.back-nav .blog_ul li,
.back-nav .item_fade,
.back-nav .item_fade_left,
.back-nav .item_fade_right,
.back-nav .blur_reveal,
.back-nav .blur_right,
.back-nav .blur_left{
opacity:1!important;
transform:none!important;
filter:none!important;
animation:none!important;
transition:none!important;
}
