@charset "UTF-8";

/* ============================================
スタイルCSS
 ============================================ */
@font-face {
    font-family: "ZenKakuGothicAntique-Medium";
    font-style: normal;
    font-weight: 500;
    src: url("../fonts/ZenKakuGothicAntique-Medium.woff2") format("woff2");
    font-display: swap;
}

@font-face {
    font-family: "ZenKakuGothicAntique-Bold";
    font-style: normal;
    font-weight: 700;
    src: url("../fonts/ZenKakuGothicAntique-Bold.woff2") format("woff2");
    font-display: swap;
}


@font-face {
    font-family: "Noto Serif JP";
    font-style: normal;
    font-weight: 400;
    src: url("../fonts/NotoSerifJP-Regular.woff2") format("woff2");
    font-display: swap;
}

@font-face {
    font-family: "Noto Serif JP Medium";
    font-style: normal;
    font-weight: 500;
    src: url("../fonts/NotoSerifJP-Medium.woff2") format("woff2");
    font-display: swap;
}

@font-face {
    font-family: 'Rubik';
    font-weight: 400;
    font-style: normal;
    src: url("../fonts/Rubik-Regular.woff2") format("woff2");
    font-display: swap;
}

.md {
    display: block;
}

@media (width >=650px) {
    .md {
        display: none;
    }
}

.f-serif,
.serif {
    font-family: 'Noto Serif JP Medium', serif;
}

.f-bold {
    font-family: 'ZenKakuGothicAntique-Bold', sans-serif;
}

.bold {
    font-weight: 600;
}


.thick {
    font-weight: bold;
}

.eng {
    font-family: 'Rubik', sans-serif;
    font-weight: 400;
    font-size: 1rem;
}

.big {
    font-size: larger;
}

.sec-ttl {
    color: var(--color-text-heading);
    text-align: center;
    margin-bottom: var(--space-md);
    /*letter-spacing: 0.1em;*/
}

.sec-ttl::before {
    content: "";
    display: inline-block;
    background: url(../img/common/bgAA.svg) no-repeat top left / contain;
    height: 3rem;
    width: 3rem;
    padding-left: 3.5rem;
    transform: rotate(150deg);
}

.sec-ttl-2 {
    border: 1px solid var(--color-primary);
    padding: 0.5em 1em;
    color: var(--color-primary);
    line-height: 1.6;
    background: url(../img/common/kazari03.svg) no-repeat left top / contain;
    margin-bottom: var(--space-md);
    text-indent: -2em;
    padding-left: 3em;
}

.sec-ttl-2::before {
    content: "";
    display: inline-block;
    background: url(../img/common/bgD.svg) no-repeat top left / contain;
    height: 2rem;
    width: 2rem;
    padding-left: 3rem;
}

.sec-ttl-3 {
    font-size: var(--size-lg);
    padding: 0.5em 1em 0.5em 3em;
    line-height: 1.4;
    font-family: 'Noto Serif JP', serif;
    position: relative;
    color: var(--color-text-heading);
    background: url(../img/common/logo-crane.svg) no-repeat left 12px center / 2em;
}

.sec-ttl-4,
.sec-ttl-7 {
    font-size: var(--size-md);
    font-weight: 400;
    padding: 0.5em 1em 0.5em 1em;
    line-height: 1.4;
    position: relative;
    color: var(--color-important);
    background: repeating-linear-gradient(45deg, #e5bf18 0, #f1d249 2px, transparent 2px, transparent 4px);
    background-repeat: no-repeat;
    background-size: 100% 0.5rem;
    background-position: bottom;
    text-align: center;
    margin-bottom: var(--space-sm);
}

.sec-ttl-7 {
    color: var(--color-notice);
    background: repeating-linear-gradient(45deg, #f4ad3b57 0, #f4ad3b30 2px, transparent 2px, transparent 4px);
}

.sec-ttl-5 {
    font-size: var(--size-md);
    font-weight: 400;
    padding: 0.5em 1em 0.5em 1em;
    line-height: 1.4;
    position: relative;
    color: var(--color-secondary);
    background: repeating-linear-gradient(180deg, #d8f5f3 0 2px, transparent 1px 3px), #4ab6ac82;
    color: var(--color-text);
    text-align: center;
}

.sec-ttl-6 {
    font-size: var(--size-md);
    color: var(--color-text-heading);
    position: relative;
}

.sec-ttl-6::before {
    content: "";
    display: inline-block;
    background: url(../img/common/bgD.svg) no-repeat top left / contain;
    height: 2rem;
    width: 2rem;
    padding-left: 2.5rem;
}


.sub_ttl {
    display: inline-block;
    padding: 5px 15px;
    color: #FFF;
    border-radius: 3px;
    background: #fc9b2a;
}

.info-ttl {
    color: var(--color-text-heading);
    text-align: center;
    margin-bottom: var(--space-md);
    letter-spacing: 0.2em;
    font-size: clamp(2rem, 3vw + 1rem, 4rem);
    background: #ffffff6e;
    padding: 0.5em 2rem;
    display: block;
}

.sp {
    display: block;
}

.pc {
    display: none;
}

body {
    background-color: var(--color-background);
}

header {
    width: 100vw;
    background: var(--color-background);
    padding: var(--space-sm) var(--space-md);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    box-shadow: var(--shadow-md-under);
    position: fixed;
    z-index: 9999;
}

/* headerのgridの基本設定を調整 */
#header {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: var(--space-xs);
    justify-content: center;
    align-items: center;
}

/* 各要素の最小幅を設定 */
.site-branding {
    min-width: 200px;
}

.header-adress {
    min-width: 180px;
}

.tel-link {
    min-width: 200px;
    text-align: center;
}

.site-branding h1 {
    font-size: 1rem;
    margin-bottom: var(--space-xs);
}

.header-adress p {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--color-accent);
    margin-bottom: 0;
}

.logo img {
    width: 100%;
    max-width: 300px;
}

.tel-link a {
    font-family: "Rubik", sans-serif;
    font-size: 2.5rem;
    color: var(--color-primary);
    padding-left: 1em;
}

.tel-link p {
    display: flex;
    border: 1px solid var(--color-primary);
    background: var(--color-primary);
    /* padding: 0.5em 1em; */
    text-align: center;
    border-radius: 1.5em;
    font-size: 1.2rem;
    max-width: 300px;
}

.header-info p {
    display: flex;
    border: 1px solid var(--color-primary);
    background: var(--color-primary);
    /* padding: 0.5em 1em; */
    text-align: center;
    border-radius: 1.5em;
    font-size: 1.2rem;
    min-width: 268px;
}

.header-info p .header-info-A {
    background: var(--color-background);
    /* display: block; */
    width: 50%;
    padding: 0.5em;
    border-radius: 1.5em 0 0 1.5em;
    flex-shrink: 0;
}

.header-info p .header-info-B {
    color: var(--color-background);
    width: 50%;
    padding: 0.5em;
    flex-shrink: 0;
}

.site-branding,
.header-adress,
.tel-link,
.header-info {
    grid-column: 1 / 4;
}

/* メニューコンテナの位置を固定 */
.menu-container {
    position: relative;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 77px;
    height: 77px;
    flex-shrink: 0;
    /* 縮まないように設定 */
    z-index: 9999;
}

.menu-button {
    background: none;
    border: none;
    cursor: pointer;
    height: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
}

.menu-button .bar {
    display: block;
    width: 30px;
    height: 3px;
    margin: 5px 0;
    background-color: var(--color-primary);
    transition: background-color 0.4s ease;
}

.menu-button:hover .bar {
    background-color: var(--color-background);
}

.menu-text {
    font-size: 14px;
    color: var(--color-text);
    margin-top: 5px;
    z-index: 900;
}

.close-button {
    background: none;
    border: none;
    font-size: 40px;
    color: var(--color-primary);
    cursor: pointer;
    width: 77px;
    height: 77px;
    position: absolute;
    top: 40%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: none;
    z-index: 900;
}

button#closeButton:hover {
    background: none;
}

.menu-button.hidden {
    opacity: 0;
    pointer-events: none;
    /* クリックを無効化 */
}

.close-button {
    display: none;
    /* 初期状態では非表示 */
}

/* モーダルメニュー（スマホ・タブレット用） */
.modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: var(--color-background);
    display: flex;
    /*justify-content: center;*/
    align-items: center;
    flex-direction: column;
    opacity: 0;
    transform: scale(1.1);
    transition: opacity 0.3s ease, transform 0.3s ease;
    visibility: hidden;
    z-index: 15;
}

.modal.active {
    opacity: 1;
    transform: scale(1);
    visibility: visible;
}

.modal.active .menu-button {
    display: none;
}

.modal.active .close-button {
    display: block;
}

.modal nav {
    text-align: center;
    width: 100%;
}

.modal .menu {
    list-style: none;
    margin-bottom: var(--space-md);
    padding: 0;
}

.modal .menu li {
    margin: 15px 0;
    position: relative;
}

.modal .menu li a {
    color: var(--color-tertiary);
    font-size: 20px;
    text-decoration: none;
    display: block;
    padding: 8px 0;
}

/*low-menu*/
.t-menu-area ul.treatment-menu {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    /* 可変幅にする */
    gap: 1em;
    max-width: 100%;
    padding: 0;
    list-style: none;
    overflow: hidden;
    /* 念のため */
}

.t-menu-area .treatment-menu li {
    aspect-ratio: 1 / 1;
    /*幅と高さを1:1に*/
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-md);
    position: relative;
}

.t-menu-area .treatment-menu li a {
    letter-spacing: 0;
    line-height: 1.3;
    position: absolute;
    top: 0;
    left: 0;
    font-size: 14px;
    text-align: center;
    color: var(--color-primary);
    font-feature-settings: initial;
    padding: 1em 0.5em;
    display: block;
    width: 100%;
    height: 100%;
}

.t-menu-area .treatment-menu li.caries {
    background: url(../img/common/menu-caries.png)no-repeat center 17px / 100%;
}

.t-menu-area .treatment-menu li.perio {
    background: url(../img/common/menu-perio.png)no-repeat center 17px / 100%;
}

.t-menu-area .treatment-menu li.extraction {
    background: url(../img/common/menu-wisdom.png)no-repeat center 17px / 100%;
}

.t-menu-area .treatment-menu li.denture {
    background: url(../img/common/menu-denture.png)no-repeat center 17px / 100%;
}

.t-menu-area .treatment-menu li.esthetics {
    background: url(../img/common/menu-ceramic.png)no-repeat center 17px / 100%;
}

.t-menu-area .treatment-menu li.whitening {
    background: url(../img/common/menu-white.png)no-repeat center 17px / 100%;
}

.t-menu-area .treatment-menu li.bridge {
    background: url(../img/common/menu-human-bridge.png)no-repeat center 22px / 100%;
}

.t-menu-area .treatment-menu li.short {
    background: url(../img/common/menu-mousepiece.png)no-repeat center 17px / 100%;
}

.t-menu-area .treatment-menu li.kids-orthodontic {
    background: url(../img/common/menu-kidsortho.png)no-repeat center 17px / 100%;
}

.t-menu-area .treatment-menu li.kids {
    background: url(../img/common/menu-kids.png)no-repeat center 17px / 100%;
}

.t-menu-area .treatment-menu li.root {
    background: url(../img/common/menu-root.png)no-repeat center 17px / 100%;
}

.t-menu-area .treatment-menu li.implant {
    background: url(../img/common/menu-implant.png)no-repeat center 17px / 100%;
}

.t-menu-area .treatment-menu li.prevent {
    background: url(../img/common/menu-preventive-dentistry.png)no-repeat center 17px / 100%;
}

.t-menu-area .treatment-menu li.halitosis {
    background: url(../img/common/menu-halitosis.png)no-repeat center 17px / 100%;
}

.t-menu-area .treatment-menu li.visit {
    background: url(../img/common/menu-visit.png)no-repeat center 17px / 100%;
}

.c-menu-area-low {
    padding-left: 0;
    padding-right: 0;
}

/*.c-menu-area-low ul.company-menu {
    display: grid;
    gap: 1em;
    grid-template-columns: repeat(3, 1fr);
    max-width: 100%;
    padding: 0;
    list-style: none;
}*/

.c-menu-area-low ul.company-menu {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    /* 可変幅にする */
    gap: 1em;
    max-width: 100%;
    padding: 0;
    list-style: none;
    overflow: hidden;
    /* 念のため */
}


.c-menu-area-low .company-menu li {
    aspect-ratio: 1 / 1;
    /*幅と高さを1:1に*/
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--color-primary);
    position: relative;
}

.c-menu-area-low .company-menu li a {
    display: block;
    width: 100%;
    height: 100%;
}

.c-menu-area-low .company-menu li.staff {
    background: url(../img/sp/c-staff.jpg)no-repeat center / contain;
}

.c-menu-area-low .company-menu li.tour {
    background: url(../img/sp/c-tour.jpg)no-repeat center / contain;
}

.c-menu-area-low .company-menu li.time {
    background: url(../img/sp/c-time.jpg)no-repeat center / contain;
}

.c-menu-area-low .company-menu li.price {
    background: url(../img/sp/c-price.jpg)no-repeat center / contain;
}

.c-menu-area-low .company-menu li.recruit {
    background: url(../img/sp/c-recruit.jpg)no-repeat center / contain;
}

.c-menu-area-low .company-menu li.contact {
    background: url(../img/sp/c-contact.jpg)no-repeat center / contain;
}

/*装飾*/
.arrow-Down {
    position: relative;
    height: 50px;
    margin: -1em auto 2em;
    width: 1px;
}

.arrow-Item {
    position: absolute;
    left: 1px;
    display: block;
    width: 1px;
    border-radius: 1px;
    background: #434343;
}

.arrow-Item:nth-of-type(1) {
    top: 0;
    height: 50px;
}

.arrow-Item:nth-of-type(2) {
    bottom: 0;
    height: 20px;
    transform: rotate(30deg) translateX(5px);
}

.arrow-Item:nth-of-type(3) {
    bottom: 0;
    height: 22px;
    transform: rotate(90deg) translateX(-6px);
}

.arrow {
    /* width: 120%; */
    height: 15px;
    border-bottom: 1px solid #000;
    border-right: 1px solid #000;
    transform: skew(45deg);
    margin: -10px 0 0 -25px;
    /* padding: 0; */
}

.underline {
    text-decoration: underline;
}

.line01 {
    display: inline;
    background: url(../img/common/line01.svg)repeat-x bottom / 14px;
    color: var(--color-line01)
}

.line02 {
    display: inline;
    background: url(../img/common/line02.svg)repeat-x bottom / 14px;
    height: 4px;
}

.line03 {
    background: linear-gradient(transparent 80%, #fff799 20%);
}

.line04 {
    background: linear-gradient(transparent 80%, #aacd06 20%);
}

.line05 {
    background: linear-gradient(transparent 80%, #f38a11 20%);
}

.fade {
    -webkit-transition: .3s ease-in-out;
    -moz-transition: .3s ease-in-out;
    -o-transition: .3s ease-in-out;
    transition: .3s ease-in-out;
}

a.hov:hover {
    opacity: .5;
    filter: alpha(opacity=60);
}

a.img-hover {
    transition: filter 0.3s ease;
}

a.img-hover:hover {
    filter: blur(2px);
}

.img-border {
    border: solid 1px var(--color-secondary);
    padding: 0.5em;
    position: relative;
}

.border-square {
    border-bottom: 1px solid var(--color-primary);
    padding: var(--space-xs);
}

.border_none {
    border: none;
}

.sp-img {
    width: 100%;
    display: block;
}

span.square,
span.square2 {
    position: relative;
    display: block;
}

span.square::before,
span.square2::before {
    content: "";
    display: block;
    position: absolute;
    background: url(../img/common/bgD.svg) no-repeat;
    height: 4em;
    width: 4em;
    top: -5px;
    left: -1rem;
    z-index: 999;
}

span.square2::before {
    height: 2em;
    width: 2em;
    top: 1rem;
    left: 1rem;
}

span.square::after,
span.square2::after {
    content: "";
    display: block;
    position: absolute;
    background: url(../img/common/bgC.svg) no-repeat;
    height: 4em;
    width: 4em;
    bottom: -5px;
    right: -1rem;
    z-index: 999;
}

span.square2::after {
    height: 2em;
    width: 2em;
    bottom: 4.5em;
    right: 0.5em;
}

span.bkt-o {
    display: inline-block;
    margin: 0 0 0 -.6em;
    transform: translateY(-0.4em);
    -webkit-transform: translateY(-0.4em);
    -moz-transform: translateY(-0.4em);
    -ms-transform: translateY(-0.4em);
    -o-transform: translateY(-0.4em);
}

span.bkt-c {
    display: inline-block;
    margin: 0 -.6em 0 0;
    transform: translateY(0.1em);
    -webkit-transform: translateY(0.1em);
    -moz-transform: translateY(0.1em);
    -ms-transform: translateY(0.1em);
    -o-transform: translateY(0.1em);
}

.dec01 {
    font-size: var(--size-md);
    color: var(--color-notice);
}

/*リスト*/
.list-dot li {
    background: url(../img/common/disc.png) no-repeat left 5px;
    padding-left: 1em;
    text-indent: 0;
}

.check li {
    margin-bottom: 0;
    font-size: var(--size-sm);
    font-family: "Times New Roman", Times, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "游明朝", YuMincho, "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
    display: table;
    text-indent: -1.5em;
    padding-left: 1.5em;
}

.check li:before {
    content: "";
    display: inline-block;
    background: url(../img/common/check.svg) no-repeat left center / contain;
    width: 1em;
    height: 1em;
    padding-right: 1.5em;
}

/*テーブル*/
.table01 {
    border-collapse: collapse;
    width: 100%;
    font-size: var(--size-xs);
    font-weight: normal;
}

.table01 th,
.table01 td {
    border: 1px solid var(--color-primary);
    background-color: var(--color-background);
    padding: 1em;
    font-weight: 400;
}

.table01 th {
    border-bottom: 1px solid var(--color-background);
    background-color: var(--color-primary);
    color: var(--color-background);
    text-align: center;
    width: 35%;
    min-width: 4em;
}

.table01 th.last-th {
    border-bottom: 1px solid var(--color-primary);
}

.table01 ul li,
.table02 ul li {
    font-size: var(--size-xs);
}

.table02 {
    border-collapse: collapse;
    width: 100%;
    font-size: var(--size-xs);
    font-weight: normal;
}

.table02 th {
    border-left: 1px solid var(--color-background);
    background-color: var(--color-primary);
    color: var(--color-background);
    text-align: center;
    width: 20%;
    min-width: 4em;
    padding: 0.5em;
    font-weight: 400;
}

.table02 td {
    border: 1px solid var(--color-primary);
    background-color: var(--color-background);
    padding: 0.5em;
}

.table02 th:first-of-type {
    border-left: 1px solid var(--color-primary);
}

.table02 tr:last-child th {
    border-left: 1px solid var(--color-primary);
}

td.top {
    vertical-align: top;
}

/*背景*/
section.bgA {
    padding: var(--space-lg) 0;
    background: #93a3a10f;
    width: 100vw;
    margin: 0 calc(50% - 50vw);
}

section.bgB {
    padding: var(--space-lg) 0;
    background-color: white;
    background-image:
        linear-gradient(#eeeeee 1px, transparent 1px),
        linear-gradient(90deg, #eeeeee 1px, transparent 1px);
    background-size: 19px 19px;
    /* マス目のサイズを固定 */
    background-position: 0 -1px, -1px 0;
    /* 上のラインを消す */
    width: 100vw;
    margin: var(--space-lg) calc(50% - 50vw);
}

section.bgC {
    padding: var(--space-lg) 0;
    background:
        url(../img/top/info-backcolor.svg) no-repeat center/cover,
        url(../img/top/info-back.jpg) no-repeat center/contain;
    margin: var(--space-lg) calc(50% - 50vw) 0;
}

section.bgD {
    padding: var(--space-lg);
    width: 100vw;
    margin: 0 calc(50% - 50vw) var(--space-lg);
    position: relative;
    border-bottom: 1px solid var(--color-primary);
}

section.bgD::before {
    content: "";
    display: block;
    background: url(../img/common/bg_line01.svg) no-repeat left top;
    width: 5vw;
    height: 5vw;
    position: absolute;
    left: 0;
    top: 0;
}

section.bgD::after {
    content: "";
    display: block;
    background: url(../img/common/bg_line02.svg) no-repeat right bottom;
    width: 5vw;
    height: 5vw;
    position: absolute;
    right: 0;
    bottom: 0;
}

section.bgE {
    width: 100vw;
    margin: var(--space-lg) calc(50% - 50vw);
    padding: var(--space-lg) 0;
    background: url(../img/common/bg_pick.svg) no-repeat center top/cover;
    position: relative;
}

section.bgG {
    width: 100vw;
    margin: 0 calc(50% - 50vw);
}

/* btn*/
.sec-btn {
    padding-right: 2em;
    text-align: right;
}

.link-box::before {
    content: "";
    display: block;
    width: 60px;
    height: 1px;
    background: #666;
    position: absolute;
    top: 0;
    bottom: 0;
    right: -30px;
    margin: auto;
}

.more {
    display: block;
    position: absolute;
    background: var(--color-tertiary);
    bottom: -0.5em;
    right: 0;
    padding: 1em 2em;
    z-index: 999;
}

a.sec-btn-b {
    color: var(--color-background);
}

.sec-btn-b {
    font-size: 1.2rem;
    display: flex;
}

.sec-btn-b::after {
    content: "";
    width: 80px;
    height: 15px;
    border-bottom: solid 1px;
    border-right: solid 1px;
    transform: skew(45deg);
}

.circle-btn {
    display: inline-flex;
    align-items: center;
    font-size: 18px;
    font-weight: bold;
    color: var(--color-notice);
    text-decoration: none;
    position: relative;
    padding-right: 50px;
}

.circle-btn::before {
    content: "";
    width: 40px;
    height: 40px;
    border: 1px solid var(--color-notice);
    border-radius: 50%;
    position: absolute;
    right: 29px;
    clip-path: inset(0 0 0 12%);
    transition: transform 0.3s ease;
}

.circle-btn::after {
    content: "\27F6";
    font-size: 24px;
    position: absolute;
    right: 14px;
    transition: transform 0.3s ease;
    top: -25%;
}

.circle-btn:hover::after {
    transform: translateX(5px);
}

.circle-btn:hover::before {
    transform: scale(1.2);
}

.link-box {
    border: 1px solid var(--color-text);
    text-align: center;
    max-width: 200px;
    margin: 1em auto;
    position: relative;
}

.link-box::before {
    content: "";
    display: block;
    width: 60px;
    height: 1px;
    background: var(--color-text);
    position: absolute;
    top: 0;
    bottom: 0;
    right: -30px;
    margin: auto;
}

a.link-box {
    color: var(--color-text);
    display: block;
    width: 100%;
    height: 100%;
    padding: 0.5em;
}

/* parts */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    -webkit-clip-path: inset(50%);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
    word-break: normal;
}

.screen-reader-text:focus {
    background-color: #f7f7f7;
    border-radius: 3px;
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
    clip: auto !important;
    -webkit-clip-path: none;
    clip-path: none;
    color: #007acc;
    display: block;
    font-size: 14px;
    font-size: 0.875rem;
    font-weight: 700;
    height: auto;
    right: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
}

.skip-link {
    left: -9999rem;
    top: 2.5rem;
    z-index: 999999999;
    text-decoration: underline;
}

.skip-link:focus {
    display: block;
    left: 6px;
    top: 7px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    line-height: normal;
    padding: 15px 23px 14px;
    z-index: 100000;
    right: auto;
}

.visually-hidden:not(:focus):not(:active),
.form-allowed-tags:not(:focus):not(:active) {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px 1px 1px 1px);
    clip: rect(1px, 1px, 1px, 1px);
    white-space: nowrap;
}

.pagetop {
    width: 64px;
    height: 64px;
    display: block;
    position: fixed;
    bottom: 0;
    right: 1px;
    z-index: 9999;
    cursor: pointer;
}

.pagetop::before {
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 64px 64px;
    border-color: transparent transparent #00a48d transparent;
    position: absolute;
    bottom: 0;
    right: 0;
}

.pagetop svg {
    width: 13px;
    height: 16px;
    fill: #fff;
    -webkit-transition: 0.2s ease-out;
    -o-transition: 0.2s ease-out;
    transition: 0.2s ease-out;
    position: absolute;
    bottom: 12px;
    right: 11px;
}

/*footer*/
.tel {
    font-family: "Rubik";
    font-size: 2rem;
    color: #796a55;
    text-decoration: underline;
}

.float-btn {
    width: 50px;
    position: fixed;
    bottom: 7vh;
    right: 0;
    z-index: 9990;
    cursor: pointer;
}

.float-btn li {
    display: flex;
    align-items: center;
    width: 100%;
    height: 140px;
    position: relative;
    font-weight: 300;
    color: #fff;
    line-height: 1.4;
    border-radius: 20px 0 0 20px;
    padding-top: 46px;
    box-shadow: 2px 2px 6px 0 rgb(0 0 0 / 35%);
    -webkit-box-shadow: 2px 2px 6px 0 rgb(0 0 0 / 35%);
    -moz-box-shadow: 2px 2px 6px 0 rgba(0, 0, 0, .35);
    writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    -moz-writing-mode: vertical-rl;
    -ms-writing-mode: vertical-rl;
    -o-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
    background-color: var(--color-tertiary);
}

.float-btn li:first-of-type {
    background-image: url(../img/common/mail.svg);
    background-repeat: no-repeat;
    background-size: 28px;
    background-position: top 10px left 12px;
}

.float-btn li:nth-child(2) {
    background-image: url(../img/common/line.svg);
    background-repeat: no-repeat;
    background-size: 28px;
    background-position: top 10px left 12px;
    height: 200px;
}

.float-btn li:last-of-type {
    background-image: url(../img/common/reserve.svg);
    background-repeat: no-repeat;
    background-size: 28px;
    background-position: top 10px left 12px;
    height: 180px;
}

.wrap_link {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
    border-bottom: none;
    text-align: center;
    max-width: 200px;
    font-family: 'ZenKakuGothicAntique-Medium', sans-serif;
    font-weight: 400;
}

.footer-inner {
    margin: 0 2em;
}

.foot-time-inner {
    padding: 0;
    background-color: var(--color-background);
}

table.timetable {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    margin-bottom: 2em;
}

.timetable th {
    width: 9%;
    padding: 4px 2px;
    border: 1px solid var(--color-background);
    background-color: var(--color-secondary);
    color: #fff;
    font-size: 1.4rem;
    font-weight: normal;
    text-align: center;
}

.timetable th:first-child {
    width: 28%;
}

.timetable th:last-child {
    width: 18%;
}

.timetable td {
    padding: 4px 2px;
    border: 1px solid var(--color-secondary);
    vertical-align: middle;
    background-color: #fff;
    color: #000;
    font-size: 1.4rem;
    text-align: center;
}

.is-style-outline {
    background: var(--color-secondary);
    padding: 1em;
    /* color: #fff; */
    display: block;
    width: 200px;
    font-size: 1.4rem;
    margin: 0 auto;
    text-align: center;
}

.is-style-outline a {
    color: #fff;
}

.foot-info-list,
.foot-clinic-list {
    margin: 2.5em 0;
}

.foot-info-list li {
    margin-bottom: 1em;
}

.foot-corp-box {
    padding: 0 0 28%;
    text-align: center;
    position: relative;
}

.foot-corp-inner .logo {
    max-width: 350px;
    margin-right: auto;
    margin-left: auto;
}

.footer-inner .tel {
    font-family: "Rubik";
    font-size: 2rem;
    text-decoration: underline;
}

#footer .fixed-box {
    position: fixed;
    right: 0;
    bottom: 0;
    width: 100%;
    z-index: 999;
    -moz-transition-duration: 0.7s;
    -o-transition-duration: 0.7s;
    -webkit-transition-duration: 0.7s;
    transition-duration: 0.7s;
    font-size: 0;
    letter-spacing: 0;
    line-height: 0;
    background: #fff;
}

.fixed-box ul {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0 2px;
    margin: 0;
    padding: 0;
}

.fixed-box li {
    margin-bottom: 0;
}

.foot-clinic-list ul {
    display: grid;
    gap: 1em;
    padding: 0;
}

.footer-info p {
    display: flex;
    border: 1px solid var(--color-primary);
    background: var(--color-primary);
    /* padding: 0.5em 1em; */
    text-align: center;
    border-radius: 1.5em;
    font-size: 1.2rem;
    max-width: 350px;
}

.footer-info p .footer-info-A {
    background: var(--color-background);
    /* display: block; */
    width: 50%;
    padding: 0.5em;
    border-radius: 1.5em 0 0 1.5em;
    flex-shrink: 0;
}

.footer-info p .footer-info-B {
    color: var(--color-background);
    width: 50%;
    padding: 0.5em;
    flex-shrink: 0;
}

#footer .fixed-box a img {
    width: 100%;
}

footer .s-menu {
    display: flex;
    flex-wrap: wrap;
    /* 折り返し可能にする */
    justify-content: center;
    gap: 0.5em;
    /* アイテム間の間隔を調整 */
}

footer .s-menu li {
    display: inline-block;
    padding: 0 1em;
    position: relative;
}

footer .s-menu li:nth-child(even) {
    border-left: 1px solid var(--color-text);
    /* 「｜」の代わりに境界線 */
    padding-left: 1em;
    /* 境界線とテキストの間隔 */
}


/*　調整　*/
@media (494px <= width) {
footer .s-menu li:not(:first-child) {
    border-left: 1px solid var(--color-text);
    /* 「｜」の代わりに境界線 */
    padding-left: 1em;
    /* 境界線とテキストの間隔 */
}
}

/* スマホサイズ(576px以下)での微調整 */
@media (width <=576px) {

    /* サブメニューの各項目を1列表示に */
    .modal .menu li.sub-menu>ul>li {
        width: 100% !important;
    }

    /* その他のメニュー項目も1列表示に */
    .modal .menu>li:not(.sub-menu) {
        grid-column: 1 / 4;
    }

    section.bgC {
        background: url(../img/top/info-backcolor.svg) no-repeat center / cover, url(../img/top/info-back.jpg) no-repeat center / 140%;
    }
}

/* 577px以上 → 3列 */
@media (width >=577px) {
    .t-menu-area ul.treatment-menu {
        grid-template-columns: repeat(4, 1fr);
    }

    .c-menu-area ul.company-menu {
        width: 70%;
        margin-inline: auto;
    }

    .sp-img {
        width: 350px;
        display: initial;
    }
}

/* タブレットサイズ(577px～1280px)での表示を3列に */
@media (577px <=width <=1280px) {
    .modal .menu li.sub-menu>ul>li {
        width: calc(33.33% - 7px) !important;
        /* 3列表示用 */
    }
}

@media (577px <=width <=768px) {
    .site-branding {
        grid-column: 1 / 2;
    }

    .header-adress {
        grid-column: 2 / 3;
    }

    .tel-link {
        grid-column: 1 / 4;
        justify-self: center;
        width: 300px;
    }

    .header-info {
        grid-column: 1 / 4;
        width: 300px;
        grid-row: 2 / 2;
        margin: 0 auto 0 auto;
    }
}

@media (width >=769px) {
    .sp {
        display: none;
    }

    .pc {
        display: block;
    }

    /* <br class="t-m"> を非表示に */
    br.t-m {
        display: none;
    }

    /*　上に上がる動き　*/
    header.UpMove {
        animation: UpAnime 0.5s forwards;
    }

    @keyframes UpAnime {
        from {
            opacity: 1;
            transform: translateY(0);
        }

        to {
            opacity: 0;
            transform: translateY(-100px);
        }
    }

    /*　下に下がる動き　*/

    header.DownMove {
        animation: DownAnime 0.5s forwards;
    }

    @keyframes DownAnime {
        from {
            opacity: 0;
            transform: translateY(-100px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    /* 769px以上 → 5列（幅100%） */
    .t-menu-area ul.treatment-menu {
        grid-template-columns: repeat(5, 1fr);
    }

    .foot-corp-box {
        padding-bottom: 2em;
    }

    footer .t-menu,
    footer .c-menu {
        display: flex;
        flex-wrap: wrap;
        /* 折り返し可能にする */
        justify-content: center;
        gap: 0.5em;
        /* アイテム間の間隔を調整 */
    }

    footer .t-menu li,
    footer .c-menu li {
        display: inline-block;
        font-size: clamp(1.3rem, 1.4rem + 0.2vw, 1.4rem);
        padding: 0 1em;
        position: relative;
    }

    /* すべてのliに「｜」を左側に追加 */
    footer .t-menu li:not(:first-child),
    footer .c-menu li:not(:first-child) {
        border-left: 1px solid var(--color-text);
        /* 「｜」の代わりに境界線 */
        padding-left: 1em;
        /* 境界線とテキストの間隔 */
    }

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

    .lowTxt {
        right: 3vw;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        /* overflow: auto; */
        /* height: fit-content; */
        /* max-height: 100%; */
        line-height: 1.4;
    }

    .lowTxt .logo {
        width: 250px;
    }

    .lowTxt p.info-btn {
        width: 230px;
        /* margin: 0 auto; */
    }

    .lowTxt a.link-box img {
        display: inline-block;
        vertical-align: middle;
        width: 24px;
        margin-right: 0.5em;
    }

    .lowTxt a.link-box {
        max-width: 230px;
    }

    .lowTxt p.info-btn.btn01 {
        /*background: #ffdd60;*/
        background: #fbfaf9db;
    }

    .lowTxt p.info-btn.btn02 {
        /*background: #00cc66;*/
        background: #fbfaf9db;
    }

    .lowTxt p.info-btn.btn03 {
        /*background: #ed8c96;*/
        background: #fbfaf9db;
    }
}

@media (width <=767px) {
    .header-adress {
        display: none;
    }
}

@media (769px <=width <=960px) {
    #header {
        grid-template-columns: repeat(4, 1fr);
        place-items: center;
    }

    .site-branding {
        grid-column: 1 / 3;
    }

    .header-adress {
        grid-column: 3 / 5;
    }

    .tel-link {
        grid-column: 1 / 3;
        text-align: center;
        justify-self: center;
        width: 300px;
    }

    .header-info {
        grid-column: 3 / 5;
    }
}

/* 961px以上 → 5列（最大幅800px = 62.5vw） */
@media (width >=961px) {
    .t-menu-area ul.treatment-menu {
        max-width: 62.5vw;
        /* 800px ÷ 1280px × 100vw */
        margin: 0 auto;
    }
}

@media (961px <=width <=1280px) {
    #header {
        grid-template-columns: repeat(4, 1fr);
        place-items: center;
    }

    .site-branding {
        grid-column: 1 / 3;
    }

    .header-adress {
        grid-column: 3 / 5;
    }

    .tel-link {
        grid-column: 1 / 3;
    }

    .header-info {
        grid-column: 3 / 5;

    }

    .t-menu-area .treatment-menu li a {
        font-size: 11px;
    }
}

/* モバイル用メニューの修正 */
@media (width <=1280px) {

    /* モーダルの背景色を変更 */
    .modal {
        background: var(--color-background);
        padding: var(--space-md);
        overflow-y: auto;
    }

    /* メニュー全体のレイアウト */
    .modal .menu {
        display: grid;
        width: 100%;
        gap: var(--space-md);
        grid-template-columns: repeat(auto-fill, calc(33.33% - 7px));
        grid-template-rows: 2fr;
    }

    .modal .menu li.sub-menu {
        display: flex;
        flex-direction: column;
        border-bottom: 1px solid var(--color-primary);
        padding-bottom: var(--space-md);
        margin-bottom: var(--space-md);
        /* width: 100%; */
        grid-column: 1 / 4;
    }

    .modal .menu li.sub-menu a {
        padding-left: 3em;
    }

    .modal .menu li.sub-menu::before {
        display: block;
        content: "";
        background: url(../img/common/logo-crane.svg) no-repeat top left;
        position: absolute;
        left: 0;
        width: 50px;
        height: 50px;
        z-index: 999999;
    }

    /* 診療メニューの見出し */
    .modal .menu li.sub-menu>a {
        font-weight: bold;
        font-size: 18px;
        color: var(--color-primary);
        margin-bottom: var(--space-sm);
        text-align: left;
    }

    /* サブメニューのレイアウト - JSでの上書きを防ぐためにimportant使用 */
    .modal .menu li.sub-menu>ul.mobile-visible {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 10px !important;
        padding: 0 !important;
    }

    /* サブメニューの各項目 */
    .modal .menu li.sub-menu>ul>li {
        margin: 0 !important;
        width: calc(50% - 5px) !important;
        /* 2列表示用 */
    }

    /* サブメニューリンクのスタイル */
    .modal .menu li.sub-menu>ul>li>a {
        font-size: 14px;
        padding: 8px 0 8px 15px;
        background: rgba(var(--color-primary-rgb), 0.1);
        border-radius: 4px;
        text-align: left;
        display: block;
        height: 100%;
        position: relative;
    }

    .modal .menu li.sub-menu>ul>li>a::before {
        display: block;
        content: "";
        background: url(../img/common/kazari01.svg) no-repeat top left / 1em;
        position: absolute;
        left: 0;
        /* top: calc((100% - 1em) / 2); */
        width: 1.5em;
        height: 1.5em;
        z-index: 999999;
    }

    /* メインメニュー項目を横並びにするためのコンテナ */
    .modal .menu>li:not(.sub-menu) {
        justify-self: start;
        margin: 0 !important;
    }

    /* その他のメニューリンクのスタイル */
    .modal .menu>li:not(.sub-menu)>a {
        font-size: 14px;
        padding: 8px 10px;
     }

    .modal .menu>li:not(.sub-menu)>a {
        position: relative;
        padding-left: 1.8em;
    }

    .modal .menu>li:not(.sub-menu)>a::before {
        display: block;
        content: "";
        background: url(../img/common/kazari04.svg) no-repeat center left / 1.5em;
        position: absolute;
        left: 0;
        width: 1.5em;
        height: 1.5em;
        z-index: 999999;
    }

    /* メインメニュー項目を横並びにするためのコンテナ設定 */
    .modal .menu::after {
        content: "";
        display: block;
        clear: both;
    }

    /* メインメニュー項目のラッパー */
    .modal nav {
        width: 100%;
    }

    .modal nav::after {
        display: block;
        content: "";
        background: url(../img/common/bgAA.svg) no-repeat top left;
        position: absolute;
        bottom: 100px;
        right: 2em;
        width: 100px;
        height: 100px;
        z-index: 999;
    }
}

/* PCモードでのドロップダウンメニュー表示設定 */
@media (width >=1281px) {
    .modal .menu li.sub-menu ul.pc-hover {
        display: none;
    }

    .modal .menu li.sub-menu:hover ul.pc-hover {
        display: flex;
        justify-content: space-around;
    }

    section.bgG {
        width: 80vw;
        margin: 0 calc(50% - 40vw);
    }

    .modal .menu>li>a::before {
    background: var(--color-primary);
    content: '';
    width: 100%;
    height: 2px;
    position: absolute;
    left: 0;
    bottom: 0;
    transform-origin: right top;
    transform: scale(0, 1);
    transition: transform .3s;
    }

    .modal .menu>li>a:hover::before {
    transform-origin: left top;
    transform: scale(1, 1);
    }
}

/* PC用のナビゲーション (1281px以上) */
@media (width >=1281px) {
    header {
        display: flex;
        justify-content: space-between;
        width: 100vw;
        margin: 0 calc(50% - 50vw);
        margin-left: auto;
        margin-right: auto;
        flex-direction: column;
        position: fixed;
        z-index: 999;
        background: #ffffffe3;
    }

    #header {
        flex-grow: 1;
        /* 利用可能な幅を最大限に使用 */
        margin-right: var(--space-md);
        /* メニューボタンとの間隔 */
        /*grid-template-columns: 400px repeat(5, 1fr) 320px;*/
        /*grid-template-columns: 400px 450px 1fr 1fr 1fr 1fr 320px;*/
    }

    .site-branding {
        grid-column: 1 / 2;
        min-width: 350px;
    }

    .header-adress {
        grid-column: 2 / 3;
        min-width: 250px;
    }

    .tel-link {
        grid-column: 6 / 7;
        min-width: 300px;
        text-align: right;
    }

    .header-info {
        grid-column: 7 / 8;

    }

    /* PC用ナビゲーション */
    .menu-container {
        display: none;
        /* ハンバーガーメニューを非表示 */
    }

    .modal {
        position: static;
        opacity: 1;
        transform: none;
        visibility: visible;
        background: transparent;
        margin-top: 0;
        height: auto;
        width: 100%;
        display: block;
        padding-top: 1em;
    }

    .modal nav {
        width: 100%;
        margin-top: -1em;
    }

    .modal .menu {
        display: flex;
        justify-content: flex-end;
        margin: 0;
        flex-wrap: wrap;
        /* max-width: 1200px; */
        margin-left: auto;
        margin-right: auto;
    }

    .modal .menu>li {
        position: relative;
        margin: 0;
        padding: 0 10px;
    }

    .modal .menu>li>a {
        font-size: 13px;
        padding: 10px 5px;
        position: relative;
    }

    /* PCでのドロップダウンメニュー */
    .modal .menu li.sub-menu ul {
        position: absolute;
        top: 100%;
        left: 0;
        width: 800px;
        background: var(--color-background);
        border: 1px solid var(--color-primary);
        padding: 10px;
        display: none;
        display: none;
        z-index: 100;
    }

    .modal .menu li.sub-menu:hover ul {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .modal .menu li.sub-menu>a::after {
        content: "▼";
        font-size: 10px;
        margin-left: 5px;
    }

    .modal .menu li ul li {
        text-align: left;
        margin: 5px 0;
    }

    .modal .menu li ul li a {
        width: 200px;
        font-size: 14px;
        padding: 5px 0 5px 17px;
        transition: all 0.2s ease;
        position: relative;
    }

    .modal .menu li ul li a:hover {
        background: rgba(var(--color-primary-rgb), 0.1);
        padding-left: 10px;
    }


    .modal .menu li ul li a::before {
        display: block;
        content: "";
        background: url(../img/common/kazari01.svg) no-repeat center left / contain;
        position: absolute;
        left: 0;
        /*top: calc((100% - 1em) / 2);*/
        width: 1em;
        height: 1em;
        z-index: 999999;
    }

    /*ブログ＆ニュース*/
    .sub-b > .submenu-list.pc-hover {
        display: flex;
        justify-content: space-around!important;
        flex-direction: column!important;
        width: 150px!important;
}

    .t-menu-area ul.treatment-menu {
        gap: 2em;
    }

    .t-menu-area .treatment-menu li a {
        padding: 2em 0.5em;
    }

    .t-m {
        display: none;
    }
}

@media print {
  body {
    width: 1400px !important;
    zoom: 0.8;
    margin: 0 auto;
  }

  header, footer, nav, .sp {
    display: none !important;
  }
}

