@charset "utf-8";
/* CSS Document */

* {
    line-height: 1;
}

html {
    scroll-padding-top: 100px;
    scroll-behavior: smooth;
}

img {
    border: 0;
    vertical-align: top;
    object-fit: cover;
}


/*clearfix*/
.clearfix:after {
    content: " ";
    display: block;
    visibility: hidden;
    clear: both;
    height: 0.1px;
    font-size: 0.1em;
    line-height: 0;
}

* html .clearfix {
    display: inline-block;
}

/* no ie mac \*/
* html .clearfix {
    height: 1%;
}

.clearfix {
    display: block;
}

.clearfix {
    overflow: hidden;
}

/* Hides from IE-mac \*/
* html .clearfix {
    height: 1%;
    overflow-x: hidden;
}

* {
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    word-wrap: break-word;
}

/*body*/

body {
    width: 100%;
    -webkit-text-size-adjust: 100%;
}


li {
    list-style-type: none;
}

a {
    text-decoration: none;
    transition: .5s;
}

a:hover {
    opacity: 0.75;
    transition: .5s;
}

/* basefont */
:root {
    --base-font: "Noto Sans JP", sans-serif;
    --title-font: "Zen Maru Gothic", sans-serif;
    --title-font2: "M PLUS Rounded 1c", sans-serif;
    --title-font3: "Zen Old Mincho", serif;
    --subtitle-font: "Josefin Sans", sans-serif;
    --number-font: "Zen Old Mincho", serif;

    --base-font-size: 16px;

    --base-weight: 400;
    --base-weight2: 500;
    --base-weight3: 600;

    --color-base: #000;
    --color-main: #0068b7;
    --color-sub: #003f73;
    --color-sub2: #006d9d;
    --color-sub3: #0ac7d3;
    --color-sub4: #04a7ac;
    --color-sub5: #54c2f0;
    --color-sub6: #004896;
    --color-sub7: #0078b0;
    --color-sub8: #7cacaf;
    --color-sub9: #006837;
    --color-back1: #d2e4ee;
    --color-back2: #eeeff7;
    --color-back3: #d4ebf3;
    --color-back4: #e7ebdb;
    --color-back5: #f5fbfe;
}


.contents-box {
    font-family: var(--base-font);
    font-weight: var(--base-weight);
    font-size: var(--base-font-size);
    color: var(--color-base);
    clear: both;
    margin-right: auto;
    margin-left: auto;
    line-height: 1;
}

.contents-box p {
    font-family: var(--base-font);
    font-weight: var(--base-weight);
    font-size: var(--base-font-size);
    color: var(--color-base);
    line-height: 1.8;
    letter-spacing: 0.05em;
}

.contents-box p br.sp-view {
    display: none;
}

.contents-box a {
    color: var(--color-base);
    font-weight: var(--base-weight);
}

.contents-box p a {
    color: var(--color-base);
    font-weight: var(--base-weight);
}


/* animation_box */

.animation_box {
    transition: 1s ease;
    opacity: 0;
    transition-delay: .5s;
    transform: translate(0px, 0px);
}

.animation_box-left {
    transform: translateX(-100px);
}

.animation_box-right {
    transform: translateX(100px);
}

.animation_box-top {
    transform: translateY(100px);
}

.animation_box-bottom {
    transform: translateY(-100px);
}

.animation_box2 {
    transition-delay: 1s;
}

.animation_box3 {
    transition-delay: 1.5s;
}

.animation_box4 {
    transition-delay: 2s;
}

.animation_box.effect {
    opacity: 1;
    transform: translate(0px, 0px);
}



/*header*/

.header-wrap {
    z-index: 9999999;
    width: 100%;
    position: fixed;
    left: 0px;
    top: 0px;
}

.header {
    width: 100%;
    min-width: 1360px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: flex-start;
    padding: 0px 15px 10px;
    transition: .5s;
    background-color: rgba(255, 255, 255, 0.8);
}

.hidden .header {
    background-color: rgba(255, 255, 255, 0);
}

.header .header-left {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0px 30px;
}

.header .header-left .logo-wrap img,
.header .header-left h1 img {
    height: 85px;
    width: auto;
}

.header .header-left h6 img {
    height: 100px;
    width: auto;
}

.header .header-right {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    align-items: center;
    gap: 0px 20px;
}

.header-nav ul {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    align-items: center;
    gap: 0px 25px;
}

.header-nav ul li a {
    font-family: var(--title-font);
    font-weight: var(--base-weight2);
    color: var(--color-sub3);
    font-size: 19px;
    line-height: 1.2;
    letter-spacing: 0.05em;
}

.header-nav ul li a:hover {
    color: var(--color-sub2);
    opacity: 1;
}


/*メニュー部分*/
nav {
    display: none;
    position: absolute;
    top: 0;
    width: 100%;
    height: 100vh;
    left: 0;
    overflow: auto;
    background-color: #FFF;
}

nav .box-menu {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}

/*開閉ボタン*/
#nav_toggle {
    display: inline-block;
    vertical-align: top;
    float: right;
    width: 80px;
    height: 80px;
    position: relative;
    top: 0px;
    right: 0px;
    z-index: 10000000000;
    background-color: var(--color-sub2);
    padding: 20px 20px;
    margin-right: 0px;
    margin-top: 0px;
    border-radius: 0px 0px 8px 8px;
    cursor: pointer;
}

#nav_toggle::before {
    content: "MENU";
    position: absolute;
    left: 0px;
    bottom: 10px;
    display: block;
    text-align: center;
    font-family: var(--subtitle-font);
    font-weight: var(--base-weight);
    color: #FFF;
    font-size: 12px;
    line-height: 1.2;
    letter-spacing: 0.05em;
    width: 100%;
}

#nav_toggle div {
    position: relative;
}

#nav_toggle span {
    display: block;
    height: 1px;
    background: #FFF;
    position: absolute;
    width: 100%;
    left: 0;
    -webkit-transition: 0.5s ease-in-out;
    -moz-transition: 0.5s ease-in-out;
    transition: 0.5s ease-in-out;
}

#nav_toggle span:nth-child(1) {
    top: 0px;
}

#nav_toggle span:nth-child(2) {
    top: 11px;
}

#nav_toggle span:nth-child(3) {
    top: 22px;
}

/*開閉ボタンopen時*/
.open #nav_toggle span:nth-child(1) {
    top: 11px;
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    transform: rotate(135deg);
}

.open #nav_toggle span:nth-child(2) {
    width: 0;
    left: 50%;
}

.open #nav_toggle span:nth-child(3) {
    top: 11px;
    -webkit-transform: rotate(-135deg);
    -moz-transform: rotate(-135deg);
    transform: rotate(-135deg);
}


/*main-img*/

.main-img-wrap {
    position: relative;
    width: 100%;
    padding-bottom: 40px;
}

.main-img-wrap::before {
    content: "";
    position: absolute;
    left: 0px;
    bottom: 0px;
    display: block;
    background-image: url("../../common/images/top/back01.png");
    background-position: left bottom;
    background-repeat: repeat-x;
    background-size: auto 480px;
    width: 100%;
    height: 45%;
    z-index: -1;
}

.main-img-wrap .main-img {
    position: relative;
    width: 92%;
    max-width: 1560px;
}

.main-img img {
    width: 100%;
    height: auto;
    border-radius: 30px 30px 280px 280px;
}


.title-box {
    position: absolute;
    right: 0px;
    bottom: 0px;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    padding-right: 5%;
    text-align: center;
}

.title-box h1,
.title-box h2 {
    letter-spacing: 0.1em;
}

.title-box h1 {
    font-family: var(--title-font3);
    font-weight: var(--base-weight);
    line-height: 1.4;
    font-size: 54px;
    color: var(--color-sub);
}

.title-box h2 {
    font-family: var(--subtitle-font);
    font-size: 28px;
    line-height: 1.1;
    font-weight: 300;
}

/* contents */

.contents {
    width: 100%;
    padding-top: 140px;
}

.contents-contact {
    padding-top: 0px;
}

.maincontents-inner {
    width: 100%;
    padding-top: 90px;
}

.maincontents-inner section:not(:last-child) {
    margin-bottom: 120px;
}


/* lay */

.lay img {
    width: 100%;
    height: auto;
}

.lay p {
    line-height: 2;
    letter-spacing: 0.05em;
    font-weight: var(--base-weight);
}

.lay1000 {
    width: 1000px;
    margin-left: auto;
    margin-right: auto;
}

.lay1100 {
    width: 1100px;
    margin-left: auto;
    margin-right: auto;
}

.lay1160 {
    width: 1160px;
    margin-left: auto;
    margin-right: auto;
}

.lay-85 {
    width: 85%;
    max-width: 1380px;
    margin-left: auto;
    margin-right: auto;
}

.lay-90 {
    width: 90%;
    max-width: 1450px;
    margin-left: auto;
    margin-right: auto;
}

/* midashi-box */

.midashi-box {
    width: 100%;
    margin-bottom: 60px;
    position: relative;
    text-align: center;
}

.midashi-box h2 {
    font-family: var(--subtitle-font);
    color: var(--color-sub);
    font-size: 60px;
    line-height: 0.8;
    letter-spacing: 0.15em;
    font-weight: 300;
    margin-bottom: 12px;
    display: flex;
    align-items: flex-end;
}

.midashi-box2 h2 {
    font-family: var(--title-font);
    font-weight: var(--base-weight);
    color: var(--color-sub4);
    font-size: 50px;
    line-height: 1.4;
    letter-spacing: 0.15em;
    margin-bottom: 0px;
    align-items: center;
}

.midashi-box h2::before,
.midashi-box h2::after {
    content: "";
    height: 14px;
    flex-grow: 1;
    background-image: url("../../common/images/common/icon-title02.svg");
    background-repeat: no-repeat;
    background-size: auto 100%;
}

.midashi-box h2::before {
    background-position: right top;
    margin-right: 60px;
}

.midashi-box h2::after {
    background-position: left top;
    margin-left: 60px;
}

.midashi-box h3 {
    font-family: var(--title-font3);
    font-weight: var(--base-weight);
    font-size: 28px;
    line-height: 1.2;
    letter-spacing: 0.2em;
    position: relative;
    padding-bottom: 30px;
}

.midashi-box h3::after {
    content: "";
    position: absolute;
    left: 0px;
    bottom: 0px;
    display: block;
    background-image: url("../../common/images/common/icon-title01.svg");
    background-position: center bottom;
    background-repeat: no-repeat;
    background-size: auto 100%;
    width: 100%;
    height: 6px;
}

.midashi-box2 h3 {
    font-family: var(--title-font);
    font-weight: var(--base-weight2);
    color: #FFF;
    font-size: 24px;
    line-height: 1.2;
    letter-spacing: 0.1em;
    padding-bottom: 0px;
    margin-top: 30px;
    display: inline-block;
    padding: 12px 60px;
    border-radius: 60px;
    background-color: var(--color-sub4);
}

.midashi-box2 h3::after {
    display: none;
}

.midashi-box p {
    padding-top: 38px;
}

/* box-title-page01 */

.box-title-page01 {
    margin-bottom: 50px;
    text-align: center;
}

.box-title-page01 h4 {
    font-family: var(--title-font);
    font-weight: var(--base-weight2);
    color: #FFF;
    font-size: 28px;
    line-height: 1.2;
    letter-spacing: 0.1em;
    display: inline-block;
    min-width: 800px;
    border-radius: 60px;
    padding: 10px;
    background-color: var(--color-sub4);
}

/* box-title-page02 */

.box-title-page02 {
    margin-bottom: 50px;
    text-align: center;
}

.layout-contents01 > div.box-title-page02:not(:last-child) {
    margin-bottom: 50px;
}

.box-title-page02 h3 {
    font-family: var(--subtitle-font);
    font-weight: 300;
    color: var(--color-sub);
    font-size: 54px;
    line-height: 0.8;
    letter-spacing: 0.1em;
}

.box-title-page02 h4 {
    font-family: var(--title-font);
    font-weight: var(--base-weight2);
    color: var(--color-sub6);
    font-size: 32px;
    line-height: 1.4;
    letter-spacing: 0.1em;
    padding-top: 12px;
}

/* box-title-page03 */

.box-title-page03 {
    margin-bottom: 40px;
    text-align: center;
}

.box-title-page03 h4 {
    font-family: var(--title-font);
    font-weight: var(--base-weight2);
    color: var(--color-sub6);
    font-size: 27px;
    line-height: 1.6;
    letter-spacing: 0.1em;
    padding-bottom: 7px;
    background: linear-gradient(transparent 50%, #fcf8cc 50%);
    display: inline;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}

/* link01 */

.link01 a {
    font-family: var(--title-font);
    font-weight: var(--base-weight2);
    color: var(--color-sub);
    font-size: 18px;
    line-height: 1.2;
    letter-spacing: 0.1em;
    display: inline-block;
    min-width: 380px;
    border-style: solid;
    border-color: var(--color-sub);
    border-width: 1px;
    padding: 20px 0px;
    text-align: center;
}

.link01 a:hover {
    color: #FFF;
    background-color: var(--color-sub);
    opacity: 1;
}


/* layout-contents01 */

.layout-contents01-wrap {
    width: 100%;
    padding: 100px 0px;
    background-image: url("../../common/images/common/back-contents.png");
    background-position: center top;
    background-repeat: repeat;
    background-size: auto 700px;
}

.layout-contents01 {
    border-style: solid;
    border-color: var(--color-sub6);
    border-width: 2px;
    padding: 70px 90px;
    background-color: #FFF;
    border-radius: 20px;
    position: relative;
}

.layout-contents01:not(:last-child) {
    margin-bottom: 90px;
}

/* layout01 */

.layout-contents01 .layout01 .box-wrap:not(:last-child) {
    margin-bottom: 80px;
}

.layout-contents01 .layout01 .item {
    background-color: var(--color-back3);
    padding: 30px 10px;
    border-radius: 10px;
    text-align: center;
}

.layout-contents01 .layout01 .item:not(:last-child) {
    margin-bottom: 30px;
}

.layout-contents01 .layout01 h6,
.layout-contents01 .layout02 h6,
.layout-contents01 > .box-text h6 {
    font-family: var(--title-font2);
    font-weight: var(--base-weight);
    color: var(--color-sub6);
    font-size: 22px;
    line-height: 1.2;
    letter-spacing: 0.05em;
    margin-bottom: 15px;
}

/* layout02 */

.layout-contents01 .layout02 {
    padding-top: 70px;
}

.layout-contents01 .layout02 .box:not(:last-child) {
    margin-bottom: 45px;
}

.layout-contents01 .layout02 table {
    width: 100%;
}

.layout-contents01 .layout02 table td {
    line-height: 1.6;
    font-size: 14px;
    letter-spacing: 0em;
    padding: 15px 10px;
    border-style: solid;
    border-color: var(--color-sub8);
    border-width: 1px;
    width: calc(100% / 3);
    vertical-align: middle;
}

.layout-contents01 .layout02 table td:first-child {
    text-align: left;
}

.layout-contents01 .layout02 table tr:first-child td {
    background-color: var(--color-sub8);
    text-align: center;
    color: #FFF;
    font-size: 20px;
    padding: 10px;
}

.layout-contents01 .layout02 table tr:first-child td:not(:last-child) {
    border-right-color: #FFF;
}

.layout-contents01 .layout02 h6 {
    font-size: 28px;
    margin-bottom: 30px;
}

.layout-contents01 .layout02 .box p {
    padding-top: 15px;
    text-align: left;
}

/* layout-frame */

.layout-frame {
    border-style: solid;
    border-color: var(--color-main);
    border-width: 2px;
    border-radius: 20px;
    padding: 35px 5%;
}

/* layout-table */

.layout-table table {
    width: 100%;
}

.layout-table table td {
    border-style: solid;
    border-color: var(--color-base);
    border-width: 1px;
    padding: 15px 20px;
    vertical-align: middle;
    line-height: 1.6;
}

.layout-table table td:first-child {
    text-align: center;
    font-weight: var(--base-weight2);
    white-space: nowrap;
}



/* contents-home */

.contents-home {
    width: 100%;
    position: relative;
    background-image: url("../../common/images/top/back03.png");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: cover;
    padding: 80px 0px;
}

/* layout-home */

.layout-home {
    width: 100%;
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    align-items: flex-end;
    position: relative;
    gap: 0px 20px;
}

.layout-home .box-img {
    width: 55%;
}

.layout-home .box-img img {
    border-radius: 40px 0px 0px 380px;
    height: 680px;
}

.layout-home .box-detail {
    padding-bottom: 140px;
}

.layout-home .box-title {
    text-align: center;
}

.layout-home .box-link {
    position: absolute;
    left: 0px;
    bottom: 0px;
    width: 100%;
}

.layout-home h2 {
    font-family: var(--title-font);
    font-weight: var(--base-weight2);
    color: var(--color-main);
    font-size: 82px;
    line-height: 1.2;
    letter-spacing: 0.2em;
}

.layout-home h3 {
    font-family: var(--subtitle-font);
    font-weight: var(--base-weight2);
    color: var(--color-sub);
    font-size: 20px;
    font-weight: 300;
    line-height: 0.8;
    letter-spacing: 0.2em;
    padding: 20px 0px 40px;
}

.layout-home h6 a {
    font-family: var(--title-font);
    font-weight: var(--base-weight2);
    color: var(--color-main);
    font-size: 28px;
    line-height: 1.2;
    letter-spacing: 0.05em;
    background-color: #FFF;
    display: inline-block;
    padding: 22px;
    text-align: center;
    border-radius: 0px 60px 15px 0px;
    min-width: 40%;
    position: relative;
}

.layout-home h6 a:hover {
    opacity: 1;
}

.layout-home h6 a::before {
    content: "";
    position: absolute;
    right: 80px;
    top: 0px;
    display: block;
    background-image: url("../../common/images/common/link-arrow01.svg");
    background-position: right center;
    background-repeat: no-repeat;
    background-size: auto 20px;
    width: 20px;
    height: 100%;
    transition: .5s;
}

.layout-home h6 a:hover::before {
    right: 70px;
}

.layout-home p {
    font-family: var(--title-font);
    font-weight: var(--base-weight2);
    color: var(--color-sub6);
    font-size: 22px;
    letter-spacing: 0.2em;
    line-height: 2.2;
}


/* contents-treatment */

.contents-treatment {
    position: relative;
    padding-top: 200px;
}

.contents-treatment::before {
    content: "";
    position: absolute;
    top: 0px;
    left: 0px;
    display: block;
    background-image: url("../../common/images/top/back01.png");
    background-position: center top;
    background-repeat: repeat;
    background-size: auto 480px;
    width: 100%;
    height: 100px;
}

.layout-treatment a {
    display: block;
}

.layout-treatment a:hover {
    background-color: #e1eaf2;
}

.layout-treatment a:hover {
    opacity: 1;
}

.layout-treatment .box-img {
    width: 100%;
    height: 120px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

_::-webkit-full-page-media,
_:future,
:root .layout-treatment .box-img {
    display: block;
}

.layout-treatment .box-img img {
    width: auto;
    max-height: 120px;
}

_::-webkit-full-page-media,
_:future,
:root .layout-treatment .box-img img {
    height: 120px;
}

.layout-treatment > div {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 40px 4%;
    text-align: center;
}

.layout-treatment > div:not(:last-child) {
    margin-bottom: 40px;
}

.layout-treatment .box {
    border-style: solid;
    border-color: var(--color-main);
    border-width: 2px;
    border-radius: 20px;
    overflow: hidden;
}

.layout-treatment .box-t01 .box {
    width: 30%;
}

.layout-treatment .box-t02 .box {
    width: 100%;
}

.layout-treatment .box-t03 .box {
    width: 48%;
}

.layout-treatment .box a {
    width: 100%;
    height: 130px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    flex-direction: column;
}

.layout-treatment .box-t01 .box a {
    height: 300px;
}

.layout-treatment .box-t02 .box a {
    flex-direction: row;
    gap: 0px 30px;
}

.layout-treatment h4,
.layout-treatment h5 {
    font-family: var(--title-font);
    font-weight: var(--base-weight2);
    color: var(--color-main);
    font-size: 38px;
    line-height: 1.2;
    letter-spacing: 0.2em;
}

.layout-treatment h5 {
    font-size: 25px;
}

.layout-treatment h6 {
    font-family: var(--subtitle-font);
    font-weight: 300;
    font-size: var(--base-font-size);
    line-height: 0.8;
    letter-spacing: 0.05em;
    padding-top: 15px;
}


/* contents-treatmentmenu */

.contents-treatmentmenu {
    text-align: center;
    padding: 70px 0px;
}

.contents-treatmentmenu .box-inner,
.contents-treatmentmenu .box-inner2 {
    width: 100%;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px;
}

.contents-treatmentmenu .box-inner2 {
    padding-top: 40px;
}

.contents-treatmentmenu .box {
    width: 280px;
}

.contents-treatmentmenu h2 {
    font-family: var(--title-font3);
    font-weight: var(--base-weight);
    color: var(--color-main);
    font-size: 24px;
    line-height: 1.2;
    letter-spacing: 0.3em;
    margin-bottom: 35px;
    padding-bottom: 30px;
    position: relative;
}

.contents-treatmentmenu h2::after {
    content: "【 様々な不調に幅広く対応します 】";
    position: absolute;
    left: 0px;
    bottom: 0px;
    display: block;
    width: 100%;
    font-family: var(--base-font);
    font-weight: var(--base-weight);
    color: var(--color-base);
    font-size: 14px;
    line-height: 1.2;
    letter-spacing: 0.05em;
}

.contents-treatmentmenu h4,
.contents-treatmentmenu h5 {
    font-family: var(--title-font);
    font-weight: var(--base-weight);
    line-height: 1.2;
}

.contents-treatmentmenu h5 {
    font-family: var(--title-font3);
}

.contents-treatmentmenu h4 {
    color: #FFF;
    font-size: 15px;
    letter-spacing: 0.1em;
    padding: 35px 0px 10px;
    height: 75px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    position: relative;
    border-radius: 15px;
    background-color: var(--color-sub8);
}

.contents-treatmentmenu .box-inner2 h4 {
    background-color: var(--color-sub2);
}

.contents-treatmentmenu h4::before {
    content: "";
    position: absolute;
    left: 0px;
    top: 10px;
    width: 100%;
    display: inline-block;
    font-size: 24px;
}

.contents-treatmentmenu .box:nth-child(1) h4::before {
    content: "01";
}

.contents-treatmentmenu .box:nth-child(2) h4::before {
    content: "02";
}

.contents-treatmentmenu .box:nth-child(3) h4::before {
    content: "03";
}

.contents-treatmentmenu .box:nth-child(4) h4::before {
    content: "04";
}

.contents-treatmentmenu .box:nth-child(5) h4::before {
    content: "05";
}

.contents-treatmentmenu .box:nth-child(6) h4::before {
    content: "06";
}

.contents-treatmentmenu .box:nth-child(7) h4::before {
    content: "07";
}

.contents-treatmentmenu .box:nth-child(8) h4::before {
    content: "08";
}

.contents-treatmentmenu h5 {
    font-size: 20px;
    letter-spacing: 0.2em;
    padding-top: 15px;
}



/*pagetop_btn*/

.pagetop_btn {
    display: none;
    position: fixed;
    bottom: 20px;
    right: 15px;
    z-index: 100;
}

.pagetop_btn a {
    filter: alpha(opacity=100);
    -moz-opacity: 1;
    opacity: 1;
}

.pagetop_btn a:hover {
    opacity: 0.75;
}

.pagetop_btn img {
    height: 65px;
    width: auto;
}

/*footer-link*/

.footer-link {
    width: 100%;
    text-align: center;
    position: fixed;
    left: 0px;
    bottom: 0px;
    display: none;
}

.footer-link ul {
    display: flex;
    justify-content: center;
    align-items: center;
}

.footer-link ul li {
    width: 82%;
}

.footer-link ul li:last-child {
    width: 18%;
}

.footer-link ul li img {
    width: auto;
    height: 55px;
}

.footer-link ul a {
    display: block;
}

.footer-link ul li:nth-child(1) a {
    background-color: var(--color-sub4);
}

.footer-link ul li:nth-child(2) a {
    background-color: var(--color-sub);
}


/*footer*/

footer {
    width: 100%;
    text-align: center;
    padding-top: 110px;
    background-image: url("../../common/images/common/back-guide.png");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: auto 350px;
}

/*footer-guide*/

.footer-guide {
    margin-bottom: 60px;
}

.footer-guide .box-img {
    padding: 50px 0px;
}

.footer-guide .box-img img {
    width: 100%;
    height: auto;
    border-radius: 30px;
}

.footer-guide .box-tel {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0px 80px;
}

.footer-guide h2 {
    padding-bottom: 45px;
    position: relative;
}

.footer-guide h2::after {
    content: "お気軽にご相談ください";
    position: absolute;
    left: 0px;
    bottom: 0px;
    display: block;
    width: 100%;
    font-family: var(--title-font3);
    font-weight: var(--base-weight);
    color: var(--color-sub);
    font-size: 17px;
    line-height: 1.2;
    letter-spacing: 0.2em;
}

.footer-guide h2 img {
    height: 250px;
    width: auto;
}

.footer-guide h3,
.footer-guide h3 a {
    font-family: var(--number-font);
    line-height: 1.2;
    font-weight: var(--base-weight);
    font-size: 45px;
}

.footer-guide .box:nth-child(1) h3,
.footer-guide .box:nth-child(1) h3 a {
    color: var(--color-sub8);
}

.footer-guide .box:nth-child(2) h3,
.footer-guide .box:nth-child(2) h3 a {
    color: var(--color-main);
}

.footer-guide h3 {
    display: inline-block;
    position: relative;
    padding-top: 30px;
    padding-left: 35px;
    padding-left: 35px;
}

.footer-guide h3::before {
    content: "";
    position: absolute;
    left: 0px;
    bottom: 6px;
    background-position: left bottom;
    background-repeat: no-repeat;
    background-size: auto 100%;
    width: 26px;
    height: 32px;
}

.footer-guide .box:nth-child(1) h3::before {
    background-image: url("../../common/images/common/tel-footer01.svg");
}

.footer-guide .box:nth-child(2) h3::before {
    background-image: url("../../common/images/common/tel-footer02.svg");
}

.footer-guide h3::after {
    content: "";
    position: absolute;
    left: 25%;
    top: 0px;
    width: 50%;
    font-size: 16px;
    line-height: 1.2;
    letter-spacing: 0.2em;
    color: #FFF;
    font-family: var(--base-font);
    display: inline-block;
    padding: 4px 0px;
    border-radius: 60px;
}

.footer-guide .box:nth-child(1) h3::after {
    content: "外来専用";
    background-color: var(--color-sub8);
}

.footer-guide .box:nth-child(2) h3::after {
    content: "在宅専用";
    background-color: var(--color-main);
}

/* footer-map */

.footer-map {
    width: 100%;
    text-align: center;
}

.footer-map .box-address {
    background-color: var(--color-sub5);
    padding: 20px 0px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 0px 40px;
}

.footer-map .box-address p {
    color: #FFF;
    line-height: 1.2;
    padding: 10px 0px;
    padding-left: 40px;
    border-left-style: solid;
    border-color: #FFF;
    border-width: 1px;
}

.footer-map .box-text {
    background-color: var(--color-back1);
    padding: 20px 0px;
}

.footer-map .box-text p {
    color: var(--color-main);
    line-height: 1.2;
}

.footer-map h6 img {
    height: 26px;
    width: auto;
}

.footer-map .map-box iframe {
    width: 100%;
    height: 450px;
}


/*footer*/

.footer {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: center;
    padding: 30px 20px;
}

.footer ul {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
}

.footer ul li a,
.footer p {
    font-size: 12px;
    color: #4d4d4d;
    line-height: 1.2;
}

.footer ul li a {
    display: inline-block;
    padding: 0px 20px;
}

.footer ul li a:hover {
    text-decoration: underline;
    opacity: 1;
}

.footer ul li:not(:last-child) a {
    border-right-style: solid;
    border-color: #4d4d4d;
    border-width: 1px;
}

/*layout-doctor_schedulee */

.layout-doctor_schedule {
    text-align: center;
    padding-top: 60px;
}

.layout-doctor_schedule img {
    width: 88%;
    max-width: 400px;
    height: auto;
}

/* layout-time */

.layout-time {
    text-align: center;
}

footer .layout-time {
    width: 700px;
}

.box-time {
    border-style: solid;
    border-color: #666666;
    border-width: 1px;
    border-radius: 15px;
}

.box-time table {
    width: 100%;
    text-align: center;
}

.box-time table td {
    padding: 10px;
    font-size: 14px;
    vertical-align: middle;
}

.box-time table tr td:first-child {
    width: 25%;
}

.box-time table tr:first-child td {
    font-size: 16px;
}

.box-time table tr:not(:last-child) td {
    border-bottom-style: solid;
    border-color: #666666;
    border-width: 1px;
}

.box-time table tr td:not(:last-child) {
    border-right-style: solid;
    border-color: #666666;
    border-width: 1px;
}

.layout-time h2 {
    font-family: var(--title-font3);
    font-weight: var(--base-weight);
    color: var(--color-main);
    font-size: 24px;
    line-height: 1.2;
    letter-spacing: 0.25em;
    margin-bottom: 15px;
}

.layout-time p {
    font-size: 14px;
    padding-top: 15px;
    letter-spacing: 0em;
}


/**
 * for SmartPhone
 */
@media screen and (min-width: 768px) {

    body {
        min-width: 1360px;
    }

    a[href^="tel:"] {
        pointer-events: none;
    }

    #header .sp-view {
        display: none;
    }


}

@media screen and (max-width: 767px) {
    body {}

    /* basefont */
    :root {
        --base-font-size: 14px;
    }

    .contents-box p br.sp-view {
        display: inline-block;
    }


    /*header*/


    .header {
        padding: 0px 10px 5px;
        min-width: 100%;
    }

    .header .header-left {
        padding-top: 10px;
    }

    .header .header-left .logo-wrap img,
    .header .header-left h1 img {
        height: 47px;
    }

    .header .header-left h6 {
        display: none;
    }

    .header .header-right {
        gap: 0px 10px;
    }

    .header .header-right h6 img {
        height: 55px;
        width: auto;
    }

    .header-nav {
        display: none;
    }

    /*開閉ボタン*/
    #nav_toggle {
        width: 55px;
        height: 55px;
        padding: 14px 10px 0px;
        margin-right: 0px;
        margin-top: 0px;
        right: 0px;
        top: 0px;
    }

    #nav_toggle span:nth-child(1) {
        top: 0px;
    }

    #nav_toggle span:nth-child(2) {
        top: 9px;
    }

    #nav_toggle span:nth-child(3) {
        top: 18px;
    }

    /*開閉ボタンopen時*/
    .open #nav_toggle span:nth-child(1) {
        top: 9px;
    }

    .open #nav_toggle span:nth-child(3) {
        top: 9px;
    }

    #nav_toggle::before {
        bottom: 5px;
        font-size: 9px;
    }

    .nav-pc {
        display: none;
    }

    nav .box-menu {
        justify-content: center;
        padding-top: 0px;
    }

    /*main-img*/

    .main-img-wrap {
        padding-bottom: 25px;
    }

    .main-img-wrap::before {
        background-size: 200% auto;
        height: 70%;
    }

    .main-img img {
        min-height: 160px;
        border-radius: 20px 20px 100px 100px;
    }


    .title-box {
        justify-content: center;
        position: static;
        padding-right: 0%;
        padding-top: 20px;
    }

    .title-box h1 {
        font-size: 26px;
    }

    .title-box h2 {
        font-size: 18px;
        padding-top: 10px;
    }


    /* contents */

    .contents {
        width: 100%;
        padding-top: 70px;
    }

    .contents-contact {
        padding-top: 0px;
    }

    .maincontents-inner {
        width: 100%;
        padding-top: 50px;
    }

    .maincontents-inner section:not(:last-child) {
        margin-bottom: 50px;
    }

    /* lay */

    .lay1000,
    .lay1100,
    .lay1160,
    .lay-85,
    .lay-90 {
        width: 88%;
    }


    /* midashi-box */

    .midashi-box {
        margin-bottom: 35px;
    }

    .midashi-box h2 {
        font-size: 32px;
        letter-spacing: 0.1em;
        margin-bottom: 12px;
        line-height: 1.1;
    }

    .midashi-box2 h2 {
        font-size: 22px;
        letter-spacing: 0.05em;
        margin-bottom: 0px;
        line-height: 1.4;
    }

    .midashi-box h2::before,
    .midashi-box h2::after {
        height: 8px;
    }

    .midashi-box h2::before {
        margin-right: 25px;
    }

    .midashi-box h2::after {
        margin-left: 25px;
    }

    .midashi-box h3 {
        font-size: 18px;
        letter-spacing: 0.1em;
    }

    .midashi-box2 h3 {
        font-size: 14px;
        margin-top: 15px;
        padding: 8px 20px;
    }

    .midashi-box p {
        text-align: left;
        padding: 30px 6% 0px;
    }

    /* box-title-page01 */

    .box-title-page01 {
        margin-bottom: 30px;
    }

    .box-title-page01 h4 {
        font-size: 17px;
        letter-spacing: 0.05em;
        min-width: 88%;
        padding: 8px;
    }

    /* box-title-page02 */

    .box-title-page02 {
        margin-bottom: 35px;
    }

    .layout-contents01 > div.box-title-page02:not(:last-child) {
        margin-bottom: 35px;
    }

    .box-title-page02 h3 {
        font-size: 26px;
        line-height: 1.1;
        letter-spacing: 0.05em;
    }

    .box-title-page02 h4 {
        font-size: 17px;
        line-height: 1.4;
        letter-spacing: 0.05em;
        padding-top: 10px;
    }

    /* box-title-page03 */

    .box-title-page03 {
        margin-bottom: 30px;
    }

    .box-title-page03 h4 {
        font-size: 22px;
        padding-bottom: 5px;
    }

    /*  link01 */

    .link01 a {
        font-size: 15px;
        min-width: 280px;
        padding: 17px 0px;
    }


    /* layout-contents01 */

    .layout-contents01-wrap {
        padding: 50px 0px;
        background-size: 200% auto;
    }

    .layout-contents01 {
        padding: 50px 20px;
    }

    .layout-contents01:not(:last-child) {
        margin-bottom: 50px;
    }

    /* layout01 */

    .layout-contents01 .layout01 .box-wrap:not(:last-child) {
        margin-bottom: 50px;
    }

    .layout-contents01 .layout01 .item {
        padding: 25px 6%;
    }

    .layout-contents01 .layout01 .item:not(:last-child) {
        margin-bottom: 20px;
    }

    .layout-contents01 .layout01 h6,
    .layout-contents01 .layout02 h6,
    .layout-contents01 > .box-text h6 {
        font-size: 20px;
    }

    .layout-contents01 .layout01 .item p {
        text-align: left;
    }

    /* layout02 */

    .layout-contents01 .layout02 {
        padding-top: 50px;
    }

    .layout-contents01 .layout02 .box:not(:last-child) {
        margin-bottom: 30px;
    }

    .layout-contents01 .layout02 .inner {
        overflow-x: auto;
        padding-bottom: 10px;
    }

    .layout-contents01 .layout02 table {
        width: 1100px;
    }

    .layout-contents01 .layout02 table tr:first-child td {
        font-size: 18px;
    }

    .layout-contents01 .layout02 h6 {
        font-size: 22px;
        margin-bottom: 20px;
    }

    /* layout-frame */

    .layout-frame {
        padding: 30px 6%;
    }

    /* layout-table */

    .layout-table table td {
        padding: 12px 15px;
        display: block;
        border-bottom-style: none;
    }

    .layout-table table tr:last-child td:last-child {
        border-bottom-style: solid;
    }

    .layout-table table td:last-child {
        border-top-style: none;
        padding-top: 0px;
    }

    /* contents-home */

    .contents-home {
        padding: 50px 0px 40px;
    }

    /* layout-home */

    .layout-home {
        justify-content: center;
        flex-direction: column;
        gap: 40px 20px;
        text-align: center;
    }

    .layout-home .box-img {
        width: 100%;
    }

    .layout-home .box-img img {
        border-radius: 0px;
        height: auto;
    }

    .layout-home .box-detail {
        width: 100%;
        padding-bottom: 0px;
    }

    .layout-home .box-link {
        position: static;
        text-align: center;
    }

    .layout-home h2 {
        font-size: 34px;
        letter-spacing: 0.3em;
    }

    .layout-home h3 {
        font-size: 14px;
        padding: 15px 0px 30px;
    }

    .layout-home h6 a {
        font-size: 18px;
        padding: 18px;
        border-radius: 8px;
        min-width: 300px;
    }

    .layout-home h6 a::before {
        right: 30px;
        background-size: auto 16px;
    }

    .layout-home h6 a:hover::before {
        right: 30px;
    }

    .layout-home p {
        font-size: 15px;
        letter-spacing: 0.1em;
        line-height: 2;
    }


    /* contents-treatment */

    .contents-treatment {
        padding-top: 80px;
    }

    .contents-treatment::before {
        background-size: 200% auto;
        height: 40px;
    }

    .layout-treatment .box-img {
        height: 40px;
        margin-bottom: 15px;
    }

    .layout-treatment .box-img img {
        width: auto;
        max-height: 40px;
    }

    .layout-treatment > div {
        gap: 20px 3%;
        text-align: center;
    }

    .layout-treatment > div:not(:last-child) {
        margin-bottom: 20px;
    }

    .layout-treatment .box {
        border-radius: 15px;
    }

    .layout-treatment .box-t01 .box {
        width: 31.3%;
    }

    .layout-treatment .box-t02 .box {
        width: 100%;
    }

    .layout-treatment .box-t03 .box {
        width: 48.5%;
    }

    .layout-treatment .box a {
        height: 90px;
    }

    .layout-treatment .box-t01 .box a {
        height: 150px;
    }

    .layout-treatment .box-t02 .box a {
        flex-direction: column;
    }

    .layout-treatment h4,
    .layout-treatment h5 {
        font-size: 18px;
        letter-spacing: 0.1em;
    }

    .layout-treatment h5 {
        font-size: 13px;
        padding-top: 5px;
    }

    .layout-treatment h6 {
        font-size: 12px;
        line-height: 1.1;
        padding-top: 10px;
    }



    /* contents-treatmentmenu */

    .contents-treatmentmenu {
        padding: 30px 0px;
    }

    .contents-treatmentmenu .box-inner,
    .contents-treatmentmenu .box-inner2 {
        width: 88%;
        gap: 15px 4%;
    }

    nav .contents-treatmentmenu .box-inner,
    nav .contents-treatmentmenu .box-inner2 {
        width: 88%;
    }

    .contents-treatmentmenu .box-inner2 {
        padding: 30px 0px 40px;
    }

    .contents-treatmentmenu .box {
        width: 48%;
    }

    .contents-treatmentmenu h2 {
        font-size: 22px;
        margin-bottom: 20px;
    }


    .contents-treatmentmenu h2 img {
        height: 90px;
        width: auto;
    }

    .contents-treatmentmenu h4 {
        font-size: 12px;
        padding: 35px 0px 10px;
        height: 70px;
    }

    .contents-treatmentmenu h4::before {
        top: 5px;
    }

    .contents-treatmentmenu h5 {
        font-size: 16px;
        letter-spacing: 0.1em;
    }

    /*btn-top*/

    .pagetop_btn {
        bottom: 70px;
        right: 10px;
    }

    .pagetop_btn img {
        height: 50px;
    }


    /*banner-24*/

    #banner-24 {
        display: none;
    }

    /*footer-link*/

    .footer-link {
        display: block;
    }



    /*footer*/

    footer {
        padding-top: 40px;
        background-size: auto 150px;
    }

    /*footer-guide*/

    .footer-guide {
        margin-bottom: 50px;
    }

    .footer-guide .box-img {
        padding: 35px 0px;
    }

    .footer-guide .box-img img {
        border-radius: 20px;
    }

    .footer-guide .box-tel {
        flex-direction: column;
        gap: 20px;
    }

    .footer-guide h2 {
        padding-bottom: 40px;
    }

    .footer-guide h2 img {
        height: 130px;
        width: auto;
    }

    .footer-guide h3,
    .footer-guide h3 a {
        font-size: 35px;
    }

    .footer-guide h3 {
        padding-top: 25px;
        padding-left: 30px;
    }

    .footer-guide h3::before {
        bottom: 3px;
        height: 28px;
    }

    .footer-guide h3::after {
        font-size: 14px;
    }

    /* footer-map */

    .footer-map .box-address {
        padding: 15px 0px;
        flex-direction: column;
    }

    .footer-map .box-address p {
        padding: 5px 0px 0px;
        padding-left: 0px;
        border-left-style: none;
    }

    .footer-map .box-text {
        padding: 15px 0px;
    }

    .footer-map .box-text p {
        line-height: 1.4;
    }

    .footer-map .map-box iframe {
        height: 200px;
    }


    /*footer*/

    .footer {
        justify-content: center;
        text-align: center;
        padding: 0px 0px 80px;
        gap: 20px;
    }

    .footer p {
        font-size: 10px;
    }

    .footer ul {
        justify-content: center;
        gap: 10px;
        padding: 15px 0px;
        background-color: #e5e5e5;
    }

    .footer ul li {
        display: block;
        width: 100%;
    }

    .footer ul li a {
        display: block;
        width: 100%;
    }

    .footer ul li:not(:last-child) a {
        border-right-style: none;
        border-bottom-style: solid;
        border-color: #FFF;
        padding: 0px 20px 10px;
    }

    /*layout-doctor_schedulee */

    .layout-doctor_schedule {
        padding-top: 40px;
    }

    /* layout-time */

    footer .layout-time {
        width: 88%;
    }

    .box-time {
        border-radius: 12px;
    }

    .box-time table td {
        font-size: 3.5vw;
        padding-left: 0px;
        padding-right: 0px;
    }

    .box-time table tr:first-child td {
        font-size: 4vw;
    }

    .box-time table td span.sp-view {
        display: block;
        padding: 3px 0px;
        font-size: 3vw;
    }

    .layout-time h2 {
        font-size: 18px;
        margin-bottom: 12px;
    }


}



/* ==========================
  モーダル（ポップアップ）
========================== */

.contact-modalwrap h2 {
    font-family: var(--title-font);
    font-weight: var(--base-weight2);
    color: var(--color-sub);
    font-size: var(--base-font-size);
    font-size: 19px;
    line-height: 1.2;
    letter-spacing: 0em;
    margin-bottom: 35px;
}

.contact-modalwrap h3 a {
    opacity: 1;
}


.js_modalBtnCont:hover,
.js_modalBtnCont:focus {
    opacity: 0.75;
}

.js_modalWrap {
    opacity: 0;
    z-index: -1;
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    inset: 0;
}

.js_modalWrap.active {
    animation: modalOpen 0.5s ease forwards;
}

.js_modalWrap.active2 {
    animation: modalClose 0.5s ease forwards;
}

.js_modalBG {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.15);
    /*
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
*/
}

.js_modalContInner {
    position: absolute;
    top: 0%;
    left: 0%;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    /*
	overflow-y: scroll;
	padding: 100px 0px;
*/
    /* IE, Edge 対応 */
    -ms-overflow-style: none;
    /* Firefox 対応 */
    scrollbar-width: none;
}

/* Chrome, Safari 対応 */
.js_modalContInner::-webkit-scrollbar {
    display: none;
}

.js_modalContWrap__wrap {
    position: relative;
    width: 88%;
}

.js_modalContWrap {
    width: 100%;
    position: relative;
}

.js_modalCont {
    width: 100%;
    height: 330px;
    background-color: #fff;
    overflow-y: auto;
    scrollbar-color: rgba(228, 228, 228, 1) rgba(255, 255, 255, 0);
    overflow: hidden;
    text-align: center;
}

.js_modalCont > div {
    height: 100%;
    overflow-y: auto;
    scrollbar-color: rgba(228, 228, 228, 1) rgba(255, 255, 255, 0);
    padding: 50px 6% 0px;
}


.js_modalCont > div::-webkit-scrollbar {
    width: 10px;
    height: 6px;
    border-radius: 30px;
}

.js_modalCont > div::-webkit-scrollbar-track-piece {
    background-color: rgba(255, 255, 255, 0);
    border-radius: 30px;
}

.js_modalCont > div::-webkit-scrollbar-thumb {
    border-radius: 30px;
    background-color: rgba(228, 228, 228, 1);
}


.js_modalClose {
    display: block;
    position: absolute;
    top: 0px;
    right: 0px;
    width: 40px;
    height: 40px;
    overflow: hidden;
    cursor: pointer;
    z-index: 1001;
    margin-right: -15px;
    margin-top: -15px;
}

.js_modalClose img {
    width: 100%;
    height: auto;
}

@keyframes modalOpen {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
        z-index: 1000;
    }
}

@keyframes modalClose {
    0% {
        opacity: 1;
        z-index: 1000;
    }

    100% {
        opacity: 0;
    }
}
