@charset "utf-8";
/* ===========================================================
 *
 * こすもす治療院 スタイルシート
 * Last UpDate : 2025/08/11
 *
=========================================================== */

/* ----------------------------------------------------------
	style.css
---------------------------------------------------------- */

/* ----------------------------------------------------------
 common
---------------------------------------------------------- */

html{ font-size: 62.5%; }
body {
	color: #333;
	background: url("/info/wp-content/uploads/bg_img01.jpg");
	font-family: 'Zen Maru Gothic',"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
	font-weight: 400;
	font-style: normal;
	letter-spacing: 2px;
	font-feature-settings: "palt";
	font-size: 16px;
	font-size: 1.6rem;
}
/*
@media all and (-ms-high-contrast: none) {
  *::-ms-backdrop, .h2Wrap{ line-height: 1.7 !important; }

}
*/
/*
a.anker{ display: block; padding-top: 100px; margin-top: -100px; }
*/
/* zen-maru-gothic-regular - japanese */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Zen Maru Gothic';
  font-style: normal;
  font-weight: 400;
  src: url('zen-maru-gothic-v18-japanese-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* zen-maru-gothic-700 - japanese */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Zen Maru Gothic';
  font-style: normal;
  font-weight: 700;
  src: url('zen-maru-gothic-v18-japanese-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* zen-maru-gothic-900 - japanese */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Zen Maru Gothic';
  font-style: normal;
  font-weight: 900;
  src: url('zen-maru-gothic-v18-japanese-900.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* rubik-regular - arabic */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Rubik';
  font-style: normal;
  font-weight: 400;
  src: url('rubik-v30-arabic-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* rubik-500 - arabic */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Rubik';
  font-style: normal;
  font-weight: 500;
  src: url('rubik-v30-arabic-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}


:root{
--main-color: #d24473;
}

strong{ font-weight: 700; }

/* ----------------------------------------------------------
 link
---------------------------------------------------------- */
a:link		{ color: #666; text-decoration: none; }
a:visited	{ color: #666; text-decoration: none; }
a:hover		{ color: var(--main-color); text-decoration: none; }
a:active	{ color: var(--main-color); text-decoration: none; }

a { -ms-filter: "alpha( opacity=60 )"; -webkit-transition: 0.5s ease-in-out; -moz-transition: 0.5s ease-in-out; -o-transition: 0.5s ease-in-out; transition: 0.5s ease-in-out; }

/* ----------------------------------------------------------
 header
---------------------------------------------------------- */
header{ position: fixed; top: 0; right: 0; width: 100%; height: 80px; background-color: #fff; border-radius: 0 0 10px 10px; display: flex; justify-content: space-between; align-items: center; z-index: 2; box-shadow: 0px 10px 10px -6px rgb(0 0 0 / 10%); }

.header_logo{ margin-left: 20px; display: flex; align-items: center; }
.header_logo i{ font-size: 3.5rem; color: var(--main-color); }
.header_logo a:hover{ opacity: .6; }

.header_logo_top{ display: inline-block; background-color: var(--main-color); color: #fff; font-size: 2rem; font-weight: 700; letter-spacing: 2px; padding: 2px 15px; border-radius: 30px; margin-right: 10px; }

.global-nav{ flex-basis: 45%; position: relative; margin-left: 6%; }

.mega-menu{ display: flex; align-items: center; }
.menu-list{ flex: 1 0 auto; text-align: center; }
.menu-list a{ display: inline-block; font-size: 2rem; font-weight: 700; font-feature-settings: "palt"; position: relative; transition: .3s; }
.menu-list a:after{ position: absolute; bottom: -5px; left: 50%; content: ""; width: 0; height: 3px; background-color: var(--main-color); transition: .3s; transform: translateX(-50%); border-radius: 5px; }
.menu-list a:hover:after{ width: 100%; }



.header_tel{ flex-basis: 20%; text-align: center; padding: 0 10px; display: flex; align-items: center; justify-content: center;  }
.header_tel_ico{ margin-right: 10px; }
.header_tel_ico i{ font-size: 2.3rem; vertical-align: middle; }
.header_tel_num{ font-size: 3rem; font-family: 'Rubik', sans-serif; letter-spacing: 1px; }

.header_yoyaku{ flex-basis: 7%; width: 106px; background-color: var(--main-color); color: #fff; font-size: 2.6rem; font-weight: 700; text-align: center; line-height: 1.1; padding: 5px 5px 5px 8px; border-radius: 10px; }



/* ----------------------------------------------------------
 footer
---------------------------------------------------------- */
footer{ background: var(--main-color) url("/info/wp-content/uploads/footer_cosmos.png") no-repeat 90% 100%; padding: 80px 0 10px 0; }
.footer_logo{ margin: 0 auto 20px auto; text-align: center; }
.footer_logo a{ color: #fff; font-size: 3rem; }
.footer_logo a:hover{ opacity: .6; }
.footer_add{ color: #fff; font-size: 1.8rem; text-align: center; letter-spacing: 1px; margin-bottom: 5px; }
.footer_tel{ color: #fff; font-size: 1.8rem; text-align: center; letter-spacing: 1px; }

.footer_nav{ margin: 30px 0; }
.footer_nav_list{ display: flex; justify-content: center; }
.footer_nav_item{ position: relative; margin: 0 10px; }
.footer_nav_item:after{ position: absolute; top: 3px; right: -15px; content: "/"; display: block; color: #fff; font-size: 1.3rem; }
.footer_nav_item:last-child:after{ display: none; }
.footer_nav_item a{ color: #fff; font-size: 1.3rem; }
.footer_nav_item a:hover{ opacity: .6; }

.footer_btn{ width: 250px; margin: 0 auto; }
.footer_btn a{ display: block; color: #094; font-size: 1.4rem; padding: 15px 0 10px 0; text-align: center; background-color: #fff; border: 2px solid #fff; border-radius: 40px; font-family: heisei-mincho-std, serif; font-weight: 700; font-style: normal; }
.footer_btn a:hover{ background-color: #094; color: #fff; }

.footer_copyright{ margin-top: 30px; color: rgba(255,255,255,0.6); font-size: 1rem; text-align: center; letter-spacing: 1px; }

.pagetop{
	position: fixed;
	right: 20px;
	bottom: 20px;
	cursor: pointer;
	transition: .3s;
	text-indent: -9999px;
  
	/*デフォルトで非表示にする*/
	opacity: 0;
	visibility: hidden;
}
/*このクラスが付与されると表示する*/
.pagetop.active{
	opacity: 1;
	visibility: visible;
}
.pagetop a{ display: block; background-color: var(--main-color); color: #fff; width: 80px; height: 80px; border-radius: 100%; position: relative; }

.pagetop a:before{
	position: absolute;
	top: 7px;
	right: 0;
	bottom: 0;
	left: 0;
	display: block;
	width: 14px;
	height: 14px;
	margin: auto;
	content: '';
	transform: rotate(-45deg);
	border-top: 1px solid #FFF;
	border-right: 1px solid #FFF;
}

.footer_contact{ background-color: #eee; padding: 60px 0; }
.footer_contact_list{ width: 760px; margin: 0 auto; background-color: #eee; padding: 40px 0; border-radius: 20px; box-shadow: 5px 5px 20px 5px rgba(0, 0, 0, 0.1); display: flex; justify-content: space-between; }
.footer_contact_item{ flex-basis: 50%; }
.footer_contact_item:nth-child(1){ border-right: 1px solid #ccc; }
.footer_contact_item01{ width: 80%; margin: 0 auto; }

.footer_contact_time{ text-align: right; font-size: 1.6rem; font-family: heisei-mincho-std, serif; font-weight: 500; font-style: normal; }



/* ----------------------------------------------------------
 hx
---------------------------------------------------------- */
h1{}


h2{ font-size: 4.5rem; font-weight: 700; text-align: center; margin-bottom: 40px; }
h2:first-letter{ color: var(--main-color); }
h3{ font-size: 3.5rem; font-weight: 700; text-align: center; margin-bottom: 40px;
    padding: 1.3rem 0;
    background-image: repeating-linear-gradient(-45deg, #7cbb75, #7cbb75 5px, #c8deb1 5px, #c8deb1 10px);
    background-repeat: no-repeat;
    background-size: 35% 5px;
    background-position: center bottom;
    color: #353535;
}
h4{ font-size: 2.5rem; font-weight: 700; margin-bottom: 30px; }

.wrapper h1{ font-size: 4.5rem; font-weight: 700; text-align: center; margin-bottom: 40px; }
.wrapper h1:first-letter{ color: var(--main-color); }

.wrapper h2{ font-size: 3.5rem; font-weight: 700; text-align: center; margin-bottom: 40px;
    padding: 1.3rem 0;
background-color: #fae9ef;
border-radius: 10px;
    color: #353535;
}
.wrapper h2:first-letter{ color: #333; }
.wrapper h3{ font-size: 3.5rem; font-weight: 700; text-align: center; margin-bottom: 40px;
    padding: 1.3rem 0;
    background-image: repeating-linear-gradient(-45deg, #7cbb75, #7cbb75 5px, #c8deb1 5px, #c8deb1 10px);
    background-repeat: no-repeat;
    background-size: 35% 5px;
    background-position: center bottom;
    color: #353535;
}
.wrapper h4{ font-size: 2.5rem; font-weight: 700; margin-bottom: 30px; }

/* ----------------------------------------------------------
 contents
---------------------------------------------------------- */
/*
.anchor{
    padding-top: 80px;
    margin-top: -80px;
}
*/
body{ scroll-padding-top: 100px; scroll-behavior: smooth; }

.main{ width: 1200px; margin: 0 auto; background-color: #fff; padding: 50px 50px 80px 50px; border-radius: 20px; position: relative; }
.main:before{ display: block; content: ""; position: absolute; background: url("/info/wp-content/uploads/bg_cosmos01.png") no-repeat; right: -30px; bottom: -30px; width: 200px; height: 222px; background-size: contain; }

.wrapper{ margin: 120px auto 0 auto; }
.wrapper .main{ margin-bottom: 120px; }
.wrapper p{ font-size: 2.5rem; margin-bottom: 30px; }
.wrapper .main ul{ margin-left: 30px; }
.wrapper .main ul > li{ list-style-type: disc; font-size: 2.5rem; margin-bottom: 5px; }
.wrapper .main ol > li{ list-style-type: decimal; font-size: 2.5rem; margin-bottom: 5px; }

.main_nav{ margin-bottom: 40px; }
.main_nav nav{}
.main_nav nav ul{ display: flex; justify-content: center; flex: 1 0 auto; }
.nav_item{ flex-basis: auto; margin: 0 20px; }
.nav_item a{ display: block; font-size: 2.5rem; font-weight: 700; padding: 10px 20px; border: 2px solid var(--main-color); background-color: #fff; border-radius: 10px; }
.nav_item a:hover{ background-color: var(--main-color); color: #fff; }


.top_important .main{ border: 2px solid var(--main-color); }
.top_important .main:before{ display: none; }
.top_important_txt{ font-size: 1.8rem; }

.top_img{ width: 1200px; margin: 100px auto 60px auto; position: relative; display: flex; justify-content: space-between; align-items: center; padding-top: 30px; }
.top_tit{ flex-basis: 47%; }

.top_tit01{ font-size: 8rem; color: var(--main-color); font-weight: 700; margin-bottom: 20px; }

.top_tit span{ font-size: 6rem; }
.top_txt01{ flex-basis: 100%; font-size: 2.2rem; font-weight: 400; line-height: 2; }

.top_img01{ flex-basis: 50%; }
.top_img01 img{ width: 100%; height: auto; border-radius: 30px; }
.swiper{ width: 600px; height: 600px; }
.swiper-pagination-bullet-active{ background-color: var(--main-color) !important; }

.top_important,
.top_symptoms,
.top_news,
.top_about,
.top_guide,
.top_zaitaku,
.top_greeting,
.top_access{ margin-bottom: 100px; }

/* 重要なお知らせ */
.top_important{ margin-bottom: 100px; }
.top_important_txt{}


.top_symptoms{ width: 1200px; margin: 0 auto 100px auto; }
.top_symptoms_list{ display: flex; justify-content: space-between; margin-bottom: 30px; }
.top_symptoms_item{ flex-basis: 23%; }
.top_symptoms_tit{ font-size: 3.5rem; font-weight: 700; text-align: center; letter-spacing: 3px;
 text-shadow:
    #fff 2px 0px,  #fff -2px 0px,
    #fff 0px -2px, #fff 0px 2px,
    #fff 2px 2px , #fff -2px 2px,
    #fff 2px -2px, #fff -2px -2px,
    #fff 1px 2px,  #fff -1px 2px,
    #fff 1px -2px, #fff -1px -2px,
    #fff 2px 1px,  #fff -2px 1px,
    #fff 2px -1px, #fff -2px -1px;
}
.top_symptoms_img{}
.top_symptoms_img img{ width: 100%; height: auto; object-fit: cover; border-radius: 50%; background-color: #fff; }
.top_symptoms_btn{ width: 40%; margin: 40px auto 0 auto; }
.top_symptoms_btn a{ display: block; font-size: 2.5rem; text-align: center; color: #fff; background-color: var(--main-color); border: 2px solid var(--main-color); font-weight: 700; padding: 10px; border-radius: 40px; }
.top_symptoms_btn a:hover{ background-color: #fff; color: var(--main-color); }



/* お知らせ */
.top_news{ }
.top_news_list{ width: 90%; margin: 0 auto; height: 300px; overflow-y: scroll; }
.top_news_item{ display: flex; justify-content: space-between; flex-wrap: wrap; padding-bottom: 20px; border-bottom: 1px solid #ccc; margin-bottom: 20px; }
.top_news_date01{ flex-basis: 5%; font-size: 2.3rem; }
.top_news_tit01{ flex-basis: 85%; font-size: 2.3rem; font-weight: 700; }
.top_news_txt01{ flex-basis: 100%; padding-left: 15%; font-size: 2.3rem; }
.top_news_txt01 p{ margin-bottom: 20px; }


/* こすもす治療院について */
.top_about_sec{ margin-bottom: 100px; }
.top_about_table{ width: 100%; border-collapse: collapse; margin-bottom: 20px; }
.top_about_table th{ width: 20%; text-align: left; }
.top_about_table td{ text-align: left; }

.top_about_att{ font-size: 2rem; margin-bottom: 20px; }
.top_about_att span{ display: block; font-size: 2.8rem; font-weight: 700; color: var(--main-color); margin-bottom: 10px; }

.top_about_img{}
.top_about_img{}
.top_about_img{}
.top_about_img_list{ display: flex; justify-content: space-between; }
.top_about_img_item{ flex-basis: 49%; }
.top_about_img_item img{ width: 100%; height: auto; }

.top_uketsuke{}
.top_uketsuke_table{ width: 100%; border-collapse: collapse; }
th{ border: 1px solid #ccc; padding: 20px; font-size: 2.5rem; font-weight: 700; background-color: #f5f5f5; }
td{ border: 1px solid #ccc; padding: 20px; font-size: 2.5rem; text-align: center; vertical-align: middle; }
.th_sun{ width: 100px; color: #e30000; }
.th_mon,
.th_tue,
.th_wed,
.th_thu,
.th_fri{ width: 100px; }
.th_mon{}
.th_tue{}
.th_wed{}
.th_thu{}
.th_fri{}
.th_sat{ width: 250px; color: #0000c4; }
.th_hol{ width: 250px; color: #e30000; }

td span{ font-size: 3.5rem; font-weight: 700; }
/* アニメーション前のスタイル */
.marker {
  display: inline;
  position: relative;
  background-image: linear-gradient(90deg, #ffff66, #ffff66);
  background-repeat: no-repeat;
  background-position: bottom left;
  background-size: 0 30%;
  transition: all 1s ease-in-out;
}

/* アニメーション発火時 */
.marker.inview {
  background-size: 100% 30%; /* '30%'の部分は上で設定した太さに合わせる */
}

.td01{}
.td02{ font-size: 3.5rem !important; font-weight: 700; }
.td03{ font-size: 3.5rem !important; font-weight: 700; }
.td04{ font-size: 3.5rem !important; font-weight: 700; }


/* 施術案内 */
.top_guide p{ font-size: 2.5rem; margin-bottom: 30px; }
.top_guide_list{ display: flex; justify-content: space-between; align-items: center; margin-bottom: 60px; }
.top_guide_item{ }
.top_guide_img01{ flex-basis: 35%; }
.top_guide_txt01{ flex-basis: 60%; }
.top_guide_item img{ width: 100%; height: auto; }
.top_guide_item p{ font-size: 2rem; margin-bottom: 15px; }

.price_table{ width: 50%; margin: 0 auto 80px auto; border-collapse: collapse; }
.price_table th{ padding: 20px; border: 1px solid #ccc; }
.price_table td{ padding: 20px; border: 1px solid #ccc; text-align: center; }


.top_zaitaku_att{ width: 40%; margin: 0 auto 30px auto; border: 3px solid #ce0000; border-radius: 40px; padding: 10px; font-size: 2.5rem; text-align: center; font-weight: 700; }
.top_zaitaku_list{ display: flex; justify-content: space-between; align-items: center; }
.top_zaitaku_item{}
.top_zaitaku_img01{ flex-basis: 30%; }
.top_zaitaku_img01 img{ width: 100%; height: auto; }
.top_zaitaku_list01{ flex-basis: 70%; }
.massage_list{ margin-left: 30px; }
.massage_item{ list-style-type: disc; font-size: 2rem; margin-bottom: 5px; }


.top_greeting_list{ display: flex; justify-content: space-between; }
.top_greeting_item{}
.top_greeting_txt{ flex-basis: 70%; }
.top_greeting_txt01{}
.top_greeting_txt01 p{ font-size: 2.3rem; line-height: 1.9; margin-bottom: 15px; }
.top_greeting_name{ font-size: 2rem; text-align: center; margin-bottom: 20px; }
.top_greeting_name span{ font-size: 1.8rem; margin-right: 10px; }
.top_greeting_tit{ font-size: 1.8rem; }
.top_greeting_shikaku{}
.top_greeting_shikaku_list{ margin-left: 30px; }
.top_greeting_shikaku_item{ list-style-type: disc; font-size: 1.6rem; }
.top_greeting_img{ flex-basis: 25%; }
.top_greeting_img01{}
.top_greeting_img01 img{ width: 100%; height: auto; border-radius: 10px; margin-bottom: 20px; }



.top_map{ position: relative; width: 100%; height: 0; padding-top: 30%; }
.top_map iframe{ position: absolute; top: 0; left: 0; width: 100%; height: 100%; }


.column_kouka01{ justify-content: space-between; }
.column_kouka01 .wp-block-column{ flex-basis: 49% !important; border: 2px solid #e8a1b8; border-radius: 20px; }

.column_kouka01 h4{ background-color: #f8e0e8; padding: 20px 20px; border-radius: 20px 20px 0 0; color: #d24473; }


.flow04 {
padding-left: 0;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
justify-content: center;
gap: 60px;
margin-left: 0 !important;
}

.flow04 > li {
list-style-type: none;
width: 100%;
max-width: 350px;
display: flex;
}

.flow04 > li .icon04 {
line-height: 2;
width: 2em;
height: 2em;
text-align: center;
color: #fff;
background: #d24473;
margin: 0 auto 10px;
display: block;
border-radius: 100vh;
position: relative;
}

.flow04 > li .icon04::before {
content: "";
border: solid transparent;
border-width: 7px;
border-top-color: #d24473;
position: absolute;
top: calc(100% - 2px);
left: 50%;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
}

.flow04 > li dl {
padding: 30px 20px;
margin: 0;
border: 3px solid #d24473;
position: relative;
border-radius: 15px;
}

.flow04 > li:not(:first-child) dl::before {
content: "";
width: 14px;
height: 14px;
margin-right: 10px;
display: inline-block;
border-top: 4px solid #d24473;
border-right: 4px solid #d24473;
position: absolute;
top: calc(50% - 14px);
left: -45px;
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}

.flow04 > li dl dt {
font-size: 1.3em;
font-weight: 600;
color: #d24473;
-ms-flex-preferred-size: 20%;
flex-basis: 20%;
margin-bottom: 10px;
text-align: center;
}

.flow04 > li dl dd {
margin-left: 0;
font-size: 23px;
}

@media(max-width: 767px){
.flow04 {
gap: 20px;
flex-wrap: wrap;
}
.flow04 > li {
max-width: unset;
display: block;
}
.flow04 > li:not(:first-child) dl::before {
display: none;
}
}





/* スマホでは中央寄せを無効化して左詰め＋横スクロールを許可 */
@media (max-width: 1024px) {
  .wp-block-flexible-table-block-table.is-content-justification-center {
    display: block !important;            /* flexをやめる */
    justify-content: flex-start !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0 !important;                /* 余白で左端が隠れないように */
  }

  /* テーブルは内容幅で広がる → ちゃんとスクロールできる */
  .wp-block-flexible-table-block-table.is-content-justification-center > table {
    width: max-content;                   /* 内容に合わせて横幅を確保 */
    min-width: 100%;                      /* ただし画面より狭い場合は100% */
    margin: 0 !important;                 /* 自動中央寄せを殺す */
    border-collapse: collapse;
  }

  .wp-block-flexible-table-block-table.is-content-justification-center th,
  .wp-block-flexible-table-block-table.is-content-justification-center td {
    white-space: nowrap;                  /* 必要なら折り返し防止。外してもOK */
    border: 1px solid #ddd;
  }
}




/* ----------------------------------------------------------
 SP CSS
---------------------------------------------------------- */
@media screen and (max-width:1024px){

html{ }

body{ }

/* 非表示用 */
.noneSP		{ display: none !important; }

/* テーブル関連のスタイル */
.js-scrollable{
	white-space: nowrap;
/* max-height: 500px; */
}
.scroll-hint-icon{ height: 85px !important; }

/*
.js-scrollable table{ width: 100%; border-collapse: collapse; margin-bottom: 20px; }
*/

.wp-block-media-text>.wp-block-media-text__content {
    padding: 0 0 !important;
}

/* ----------------------------------------------------------
 header
---------------------------------------------------------- */
header{ position: fixed; top: 0; right: 0; width: 100%; height: 60px; border-radius: 0 0 10px 10px; display: flex; justify-content: space-between; align-items: center; z-index: 2; box-shadow: 0px 10px 10px -6px rgb(0 0 0 / 10%); }

.header_logo{ padding: 0 60px 0 0; margin-left: 5px; }
.header_logo i{ font-size: 2.5rem; }

.header_logo_top{ display: inline-block; background-color: var(--main-color); color: #fff; font-size: 1.4rem; font-weight: 700; letter-spacing: 2px; padding: 2px 15px; border-radius: 30px; margin-right: 10px; }


.global-nav{ display: none; }

.header_tel{ display: none; }
.header_yoyaku{ display: none; }

/* バーガーメニュー */
.toggle {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	display: block;
	position: fixed;
	top: 0px;
	right: 0px;
	z-index: 101;
	margin: 0;
	padding: 0;
	width: 60px;
	height: 60px;
	border: none;
	background-color: var(--main-color);
	transition: background-color 0.2s ease;
	cursor: pointer;
	border-radius: 0;
}
.toggle > span, .toggle:before, .toggle:after {
	display: block;
	position: absolute;
	top: 40%;
	right: 15px;
	width: 30px;
	height: 1px;
	margin: -2px 0 0 -15px;
}
.toggle > span {
	background-color: #fff;
	transition: opacity 0.3s ease;
	will-change: opacity;
}
.toggle::before, .toggle::after {
	content: "";
	background-color: #fff;
	transition: background-color 0.3s ease;
}
.toggle::before {
	transform: translateY(-7px);
}
.toggle::after {
	transform: translateY(7px);
}

.toggle p{ position: absolute; bottom: 10px; right: 11px; color: #fff; font-size: 1.1rem; letter-spacing: 1px; }

.toggle[aria-expanded=true] > span {
	opacity: 0;
}
.toggle[aria-expanded=true]::before, .toggle[aria-expanded=true]::after {
	background-color: white;
}
.toggle[aria-expanded=true]::before {
	-webkit-animation: 0.3s ease closeBar1 forwards;
	animation: 0.3s ease closeBar1 forwards;
}
.toggle[aria-expanded=true]::after {
	-webkit-animation: 0.3s ease closeBar2 forwards;
	animation: 0.3s ease closeBar2 forwards;
}
.toggle.-close::before {
	-webkit-animation: 0.3s ease closeBar1Rev forwards;
	animation: 0.3s ease closeBar1Rev forwards;
}
.toggle.-close::after {
	-webkit-animation: 0.3s ease closeBar2Rev forwards;
	animation: 0.3s ease closeBar2Rev forwards;
}

.nav {
	display: flex;
	justify-content: center;
	align-content: center;
	align-items: center;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background: rgba(210,68,115,.8);
	color: black;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}
.nav[aria-hidden=true] {
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
}
.nav[aria-hidden=false] {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}

.menu li {
	font-weight: bold;
	font-size: 1.8rem;
	line-height: calc(1em + 0.5rem);
	margin-bottom: 20px;
	color: #fff;
}
.menu li ul{ margin-left: 0; margin-top: 10px; }

.menu li a { color: #fff; font-size: 2.5rem; font-weight: 700; }
.menu li a:hover{ opacity: .6; }

.nav_header{ margin-bottom: 20px; }
.nav_tit{ padding-bottom: 20px; margin-bottom: 30px; border-bottom: 1px solid #fff; }

.main_nav{ margin-bottom: 40px; }
.main_nav nav{}
.main_nav nav ul{ display: flex; justify-content: center; flex: 1 0 auto; flex-wrap: wrap; }
.nav_item{ flex-basis: 100%; margin: 0 20px; }
.nav_item a{ display: block; font-size: 1.8rem !important; font-weight: 700; padding: 10px 20px; border: 2px solid var(--main-color); background-color: #fff; border-radius: 10px; color: #333 !important; }
.nav_item a:hover{ background-color: var(--main-color); color: #fff; }


@-webkit-keyframes closeBar1 {
  0% {
    transform: translateY(-10px);
  }
  50% {
    transform: translateY(0) rotate(0);
  }
  100% {
    transform: translateY(0) rotate(45deg);
  }
}

@keyframes closeBar1 {
  0% {
    transform: translateY(-10px);
  }
  50% {
    transform: translateY(0) rotate(0);
  }
  100% {
    transform: translateY(0) rotate(45deg);
  }
}
@-webkit-keyframes closeBar2 {
  0% {
    transform: translateY(10px);
  }
  50% {
    transform: translateY(0) rotate(0);
  }
  100% {
    transform: translateY(0) rotate(-45deg);
  }
}
@keyframes closeBar2 {
  0% {
    transform: translateY(10px);
  }
  50% {
    transform: translateY(0) rotate(0);
  }
  100% {
    transform: translateY(0) rotate(-45deg);
  }
}
@-webkit-keyframes closeBar1Rev {
  0% {
    transform: translateY(0) rotate(45deg);
  }
  50% {
    transform: translateY(0) rotate(0);
  }
  100% {
    transform: translateY(-10px);
  }
}
@keyframes closeBar1Rev {
  0% {
    transform: translateY(0) rotate(45deg);
  }
  50% {
    transform: translateY(0) rotate(0);
  }
  100% {
    transform: translateY(-10px);
  }
}
@-webkit-keyframes closeBar2Rev {
  0% {
    transform: translateY(0) rotate(-45deg);
  }
  50% {
    transform: translateY(0) rotate(0);
  }
  100% {
    transform: translateY(10px);
  }
}
@keyframes closeBar2Rev {
  0% {
    transform: translateY(0) rotate(-45deg);
  }
  50% {
    transform: translateY(0) rotate(0);
  }
  100% {
    transform: translateY(10px);
  }
}







/* ----------------------------------------------------------
 footer
---------------------------------------------------------- */
/* ページ下部 固定メニュー */
.btm_menu { position: fixed; bottom: -60px; width: 100%; border-top: 1px solid #333; z-index: 99; }
.btm_menu ul { display: flex; justify-content: space-between; }
.btm_menu li { flex-basis: 50%; }
.btm_menu li a { display: block; height: 30px; text-align: center; font-size: 16px; padding: 15px 10px 10px 10px; background-color: #fff; border-right: 1px solid #333; font-family: tbudmincho-std, sans-serif; font-weight: 500; font-style: normal; }
.btm_menu li:last-child a { border-right: 0px solid #333; }
.btm_menu li a i{ font-size: 20px; margin-right: 10px; vertical-align: middle; }
.btm_menu li a:hover { background-color: #666464; color: #fff; }
.btm_menu ul:after { content: ''; clear: both; display: block; }


.pagetop{ display: none; }
	
footer{ padding: 40px 0 70px 0; }


/* ----------------------------------------------------------
 hx
---------------------------------------------------------- */
h1{}
h2{ font-size: 3rem; width: 90%; margin: 0 auto 30px auto; }
h3{ font-size: 2.5rem; font-weight: 700; text-align: center; margin-bottom: 40px;
    padding: 1.3rem 0;
    background-image: repeating-linear-gradient(-45deg, #7cbb75, #7cbb75 5px, #c8deb1 5px, #c8deb1 10px);
    background-repeat: no-repeat;
    background-size: 35% 5px;
    background-position: center bottom;
    color: #353535;
}
h4{ font-size: 2rem; font-weight: 700; margin-bottom: 30px; }


/* ----------------------------------------------------------
 contents
---------------------------------------------------------- */
.main{ width: 90%; margin: 0 auto; background-color: #fff; padding: 30px 20px 60px 20px; border-radius: 20px; position: relative; }
.main:before{ display: block; content: ""; position: absolute; background: url("/info/wp-content/uploads/bg_cosmos01.png") no-repeat; right: -10px; bottom: -20px; width: 150px; height: 167px; background-size: contain; }

.top_img{ width: 90%; margin: 60px auto 60px auto; flex-wrap: wrap; padding-top: 30px; }
.top_tit{ flex-basis: 100%; margin-bottom: 20px; }

.top_tit01{ font-size: 5rem; margin-bottom: 20px; }

.top_tit span{ font-size: 3rem; }
.top_txt01{ flex-basis: 100%; font-size: 2rem; font-weight: 400; line-height: 2; }
.top_txt01 br{ display: none; }

.top_img01{ flex-basis: 100%; }
.top_img01 img{ width: 100%; height: auto; border-radius: 30px; }
.swiper{ width: 330px; height: 330px; }
.swiper-pagination-bullet-active{ background-color: var(--main-color) !important; }


.top_important,
.top_news,
.top_about,
.top_guide,
.top_zaitaku,
.top_greeting,
.top_access{ margin-bottom: 100px; }

/* 重要なお知らせ */
.top_important{ margin-bottom: 100px; }
.top_important h2{ width: 100%; }
.top_important_txt{}

.top_symptoms{ width: 90%; margin: 0 auto 100px auto; }
.top_symptoms_list{ flex-wrap: wrap; margin-bottom: 30px; }
.top_symptoms_item{ flex-basis: 48%; margin-top: 20px; }
.top_symptoms_tit{ font-size: 2.5rem; }
.top_symptoms_img{}
.top_symptoms_img img{ width: 100%; height: auto; object-fit: cover; border-radius: 50%; background-color: #fff; }
.top_symptoms_btn{ width: 100%; margin: 40px auto 0 auto; }
.top_symptoms_btn a{ display: block; font-size: 2.5rem; text-align: center; color: #fff; background-color: var(--main-color); border: 2px solid var(--main-color); font-weight: 700; padding: 10px; border-radius: 40px; }
.top_symptoms_btn a:hover{ background-color: #fff; color: var(--main-color); }



/* お知らせ */
.top_news{ margin-bottom: 100px; }
.top_news_list{ width: 90%; margin: 0 auto; height: 300px; overflow-y: scroll; }
.top_news_item{ display: flex; justify-content: space-between; flex-wrap: wrap; padding-bottom: 20px; border-bottom: 1px solid #ccc; margin-bottom: 20px; }
.top_news_date01{ flex-basis: 100%; font-size: 2rem; }
.top_news_tit01{ flex-basis: 100%; font-size: 2.1rem; font-weight: 700; }
.top_news_txt01{ flex-basis: 100%; padding-left: 0; font-size: 1.8rem; }


/* こすもす治療院について */
.top_about_sec{ margin-bottom: 100px; }
.top_about_table{ width: 100%; border-collapse: collapse; margin-bottom: 20px; }
.top_about_table th{ width: 20%; text-align: left; }
.top_about_table td{ text-align: left; }

.top_about_att{ font-size: 2rem; margin-bottom: 20px; }
.top_about_att span{ display: block; font-size: 2.8rem; font-weight: 700; color: var(--main-color); margin-bottom: 10px; }

.top_about_img{}
.top_about_img{}
.top_about_img{}
.top_about_img_list{ flex-wrap: wrap; }
.top_about_img_item{ flex-basis: 100%; margin-top: 20px; }
.top_about_img_item img{ width: 100%; height: auto; }

.top_uketsuke{}
.top_uketsuke_table{ width: 100%; border-collapse: collapse; }
th{ border: 1px solid #ccc; padding: 20px; font-size: 2.5rem; font-weight: 700; background-color: #f5f5f5; }
td{ border: 1px solid #ccc; padding: 20px; font-size: 2.3rem; text-align: center; vertical-align: middle; }
.th_sun{ width: 100px; color: #e30000; }
.th_mon,
.th_tue,
.th_wed,
.th_thu,
.th_fri{ width: 100px; }
.th_mon{}
.th_tue{}
.th_wed{}
.th_thu{}
.th_fri{}
.th_sat{ width: 250px; color: #0000c4; }
.th_hol{ width: 250px; color: #e30000; }

td span{ font-size: 3.5rem; font-weight: 700; }
/* アニメーション前のスタイル */
.marker {
  display: inline;
  position: relative;
  background-image: linear-gradient(90deg, #ffff66, #ffff66);
  background-repeat: no-repeat;
  background-position: bottom left;
  background-size: 0 30%;
  transition: all 1s ease-in-out;
}

/* アニメーション発火時 */
.marker.inview {
  background-size: 100% 30%; /* '30%'の部分は上で設定した太さに合わせる */
}

.td01{}
.td02{ font-size: 3.5rem !important; font-weight: 700; }
.td03{ font-size: 3.5rem !important; font-weight: 700; }
.td04{ font-size: 3.5rem !important; font-weight: 700; }


/* 施術案内 */
.top_guide p{ font-size: 2.3rem; margin-bottom: 30px; }
.top_guide_list{ flex-wrap: wrap; align-items: center; margin-bottom: 60px; }
.top_guide_item{ }
.top_guide_img01{ flex-basis: 100%; text-align: center; }
.top_guide_txt01{ flex-basis: 100%; }
.top_guide_item img{ width: 250px; height: auto; }
.top_guide_item p{ font-size: 2rem; margin-bottom: 15px; }

.price_table{ width: 50%; margin: 0 auto 80px auto; border-collapse: collapse; }
.price_table th{ padding: 20px; border: 1px solid #ccc; }
.price_table td{ padding: 20px; border: 1px solid #ccc; text-align: center; }


.top_zaitaku_att{ width: 100%; margin: 0 auto 30px auto; border: 3px solid #ce0000; border-radius: 40px; padding: 10px; font-size: 2.3rem; text-align: center; font-weight: 700; }
.top_zaitaku_list{ flex-wrap: wrap; }
.top_zaitaku_item{}
.top_zaitaku_img01{ flex-basis: 100%; text-align: center; }
.top_zaitaku_img01 img{ width: 250px; height: auto; }
.top_zaitaku_list01{ flex-basis: 100%; }
.massage_list{ margin-left: 30px; }
.massage_item{ list-style-type: disc; font-size: 2rem; margin-bottom: 5px; }


.top_greeting_list{ flex-wrap: wrap; }
.top_greeting_item{}
.top_greeting_txt{ flex-basis: 100%; }
.top_greeting_txt01{}
.top_greeting_txt01 p{ font-size: 2.3rem; line-height: 1.5; margin-bottom: 15px; }
.top_greeting_name{ font-size: 2rem; text-align: center; margin-bottom: 20px; }
.top_greeting_name span{ font-size: 1.8rem; margin-right: 10px; }
.top_greeting_tit{ font-size: 1.8rem; }
.top_greeting_shikaku{ text-align: left; }
.top_greeting_shikaku_list{ margin-left: 30px; }
.top_greeting_shikaku_item{ list-style-type: disc; font-size: 1.6rem; }
.top_greeting_img{ flex-basis: 100%; }
.top_greeting_img01{ text-align: center; }
.top_greeting_img01 img{ width: 250px; height: auto; border-radius: 10px; margin: 0 auto 20px auto; }


.top_map{ position: relative; width: 100%; height: 0; padding-top: 60%; }
.top_map iframe{ position: absolute; top: 0; left: 0; width: 100%; height: 100%; }


.column_kouka01 .wp-block-column{ margin-bottom: 30px; }


/* figure全体を横スクロール可能に */
.wp-block-flexible-table-block-table {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 1px; /* スクロールバー分の余白 */
}

/* テーブルは最低幅を確保して詰まり防止 */
.wp-block-flexible-table-block-table table {
  min-width: 480px; /* 列内容に合わせて調整 */
  border-collapse: collapse;
  width: 100%;
}

.wp-block-flexible-table-block-table th,
.wp-block-flexible-table-block-table td {
  border: 1px solid #ddd;
  padding: .6rem .8rem;
  text-align: left;
  white-space: nowrap; /* 折り返し防止（不要なら外す） */
}


}
/* ----------------------------------------------------------
 SP CSS END
---------------------------------------------------------- */


/* ----------------------------------------------------------
 PC CSS
---------------------------------------------------------- */
@media print, screen and (min-width:1025px) and (max-width:1300px){

html{}
body{}

/* 非表示用 */
.nonePC		{ display: none !important; }

/* ----------------------------------------------------------
 header
---------------------------------------------------------- */


/* ----------------------------------------------------------
 footer
---------------------------------------------------------- */
/* ページ下部 固定メニュー */
.btm_menu{ display: none; }


/* ----------------------------------------------------------
 hx
---------------------------------------------------------- */


/* ----------------------------------------------------------
 contents
---------------------------------------------------------- */




}
/* ----------------------------------------------------------
 PC CSS END
---------------------------------------------------------- */
/* ----------------------------------------------------------
 PC WIDE CSS
---------------------------------------------------------- */
@media screen and (min-width:1301px){

html{ }
body{ }

/* 非表示用 */
.nonePCWIDE		{ display: none !important; }

/* ----------------------------------------------------------
 header
---------------------------------------------------------- */
.toggle,
#nav{ display: none; }

/* ----------------------------------------------------------
 footer
---------------------------------------------------------- */
/* ページ下部 固定メニュー */
.btm_menu{ display: none; }



/* ----------------------------------------------------------
 hx
---------------------------------------------------------- */



/* ----------------------------------------------------------
 contents
---------------------------------------------------------- */




}
/* ----------------------------------------------------------
 PCWIDE CSS END
---------------------------------------------------------- */
