@charset "UTF-8";
@media screen and (max-width: 767px) {

.pc{ display: none !important; }
.sp{ display: block !important; }

/* -------------------------
    共通見出し（丸見出し3：オレンジの罫線＋テキスト）
    複数ページで共通使用
------------------------- */

.c-heading {
    gap: 0.3911vw;
    min-width: 0;
    margin: 0 auto 10vw;
}

.c-heading::before,
.c-heading::after {
    min-width: 50vw;
    height: 0.5vw;
}

.c-heading__text {
    font-size: 5.3vw;
    line-height: 2;
}

/* -------------------------
    共通絞り込みパネル（05_施設を探すのデザイン）
    facilities / services / news / location-blog で共通使用
------------------------- */

.c-search-panel {
    flex-direction: column;
    gap: 5vw;
    max-width: none;
    padding: 7vw 5vw;
    border-radius: 2.6076vw;
}

.c-search-panel__label-col {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 2.086vw;
    padding-top: 0;
}

.c-search-panel__label {
    font-size: 3.8vw;
}

.c-search-panel__clear {
    gap: 0.5215vw;
    padding: 1.0431vw 3.1291vw;
    font-size: 3.2vw;
}

.c-search-panel__clear-icon {
    max-width: none;
    width: 4vw;
    height: 4vw;
}

.c-search-panel__rows {
    gap: 3.9113vw;
}

.c-search-panel__row {
    flex-direction: column;
    align-items: flex-start;
    gap: 3vw;
}

.c-search-panel__row + .c-search-panel__row {
    padding-top: 3.9113vw;
}

.c-search-panel__row-label {
    width: auto;
    font-size: 3.5vw;
}

.c-search-panel__tags {
    gap: 2.5vw;
}

.c-search-panel__tags + .c-search-panel__tags {
    padding-top: 3.9113vw;
}

.c-search-panel__tag {
    padding: 1.5vw 3vw;
    font-size: 3.2vw;
}

.c-search-panel__tags--radio {
    gap: 1.3038vw 3.1291vw;
}

.c-search-panel__tag--radio {
    gap: 1.3038vw;
}

.c-search-panel__tag-input {
    width: 2.6076vw;
    height: 2.6076vw;
}

.header__nav {
    display: flex;
    position: fixed;
    z-index: 60;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0;
    padding: 30.1173vw 0 14.3416vw;
    background: #fff;
    border-radius: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    transform: translateX(100%);
    transition: transform 0.4s ease;
}

.header__nav.open {
    transform: translateX(0);
}

.header__nav-logo {
    position: absolute;
    top: 1.8253vw;
    left: 6vw;
    width: 24vw;
    height: 24vw;
    border-radius: 50%;
    overflow: hidden;
}

.header__nav-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.header:has(.header__nav.open) .header__logo {
    visibility: hidden;
}

.header__menu {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 73.1421vw;
}

.header__menu-item {
    display: block;
    border-bottom: 1px solid #D9D9D9;
    text-align: left;
}

.header__menu-item:not(:last-child)::after {
    display: none;
}

.header__menu-link {
    display: flex;
    align-items: center;
    gap: 2.2164vw;
    padding: 4.9544vw 0;
    color: #333;
    font-size: 4.9544vw;
    font-weight: 500;
    line-height: 3.9113vw;
    letter-spacing: 0;
}

.header__menu-link::before {
    content: "";
    flex-shrink: 0;
    width: 2.6076vw;
    height: 2.6076vw;
    background: var(--color-orange);
    border-radius: 50%;
}

.header__menu-link::after {
    display: none;
}

.header__contact {
    display: none;
}

.header__nav-tel {
    width: 84.6154vw;
    margin-top: 11.7340vw;
    padding: 7.0404vw 7.6271vw 7.3012vw;
    background: #FFF8AA;
    border-radius: 5.2151vw;
    color: #000;
}

.header__nav-tel-label {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 4.1721vw;
    font-weight: 500;
    line-height: 5.3455vw;
}

.header__nav-tel-note {
    margin-top: 2.6076vw;
    font-size: 2.8683vw;
    line-height: 3.9113vw;
    letter-spacing: -1.1px;
}

.header__nav-tel-note a {
    color: #E5771E;
    font-weight: 500;
    text-decoration: underline;
}

.header__nav-tel-number {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.9557vw;
    margin-top: 6.5189vw;
    color: #000;
    font-size: 8.4746vw;
    font-weight: 700;
    line-height: 5.3455vw;
    letter-spacing: 3.25px;
    text-decoration: none;
}

.header__nav-tel-icon {
    flex-shrink: 0;
    width: 6.6493vw;
    height: auto;
}

.header__nav-tel-hours {
    margin-top: 3.6506vw;
    font-size: 3.6506vw;
    font-weight: 500;
    line-height: 3.9113vw;
    text-align: center;
}

.header__nav-tel-hours span {
    font-size: 3.9113vw;
}

.header__nav-buttons {
    margin-top: 11.7340vw;
}

.header__nav-buttons .c-btn-more {
    display: flex;
    min-width: 52.1512vw;
    min-height: 11.7340vw;
    margin: 0 auto;
    border-width: 0.5215vw;
    font-size: 2.9987vw;
}

.header__nav-buttons .c-btn-more + .c-btn-more {
    margin-top: 6.5189vw;
}

.header__sp-actions {
    position: absolute;
    z-index: 61;
    top: 3.6506vw;
    left: 84vw;
    display: flex;
    flex-direction: column-reverse;
    gap: 0;
    width: 13vw;
}

.header__sp-contact {
    display: block;
    width: 13vw;
}

.header__sp-menu-btn {
    width: 13vw;
    height: 13vw;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: none;
    background: #fff;
    border-radius: 50%;
    cursor: pointer;
}

.header__sp-menu-btn img {
    display: block;
    width: 100%;
    height: auto;
}

.header__sp-menu-btn .header__sp-menu-icon--close,
.header__sp-menu-btn[aria-expanded="true"] .header__sp-menu-icon--open {
    display: none;
}

.header__sp-menu-btn[aria-expanded="true"] .header__sp-menu-icon--close {
    display: block;
}

.header__sp-contact img {
    display: block;
    width: 100%;
    height: auto;
}

.header__logo {
    position: absolute;
    z-index: 61;
    top: 1.8253vw;
    left: 6vw;
    width: 24vw;
    height: 24vw;
    border-radius: 50%;
    overflow: hidden;
    transition: width 0.3s, height 0.3s;
}

.header.is-scrolled .header__logo {
    top: 1.8253vw;
    width: 20vw;
    height: 20vw;
}

.c-btn-more {
    width: fit-content;
    min-width: 60vw;
    height: auto;
    min-height: 13vw;
    padding: 2vw 9vw 2vw 4vw;
    border: 0.6vw solid #fff;
    border-radius: 130vw;
    font-size: 3.2vw;
    white-space: normal;
    text-align: center;
    line-height: 1.3;
}

.c-btn-more::after {
    right: 4.4329vw;
    width: 4.4329vw;
    height: 4.4329vw;
}

.c-btn-more--sm {
    width: fit-content;
    min-width: 50vw;
    height: auto;
    min-height: 10vw;
    padding: 0 10vw 0 5vw;
    font-size: 2.8vw;
}

.c-btn-more--sm::after {
    right: 2.086vw;
    width: 3.3898vw;
    height: 3.3898vw;
}


/* -------------------------
    フッター（全ページ共通）
------------------------- */

.footer {
    min-width: 100vw;
}

.footer__bg-top {
    top: -20vw;
    left: 0;
    width: 100vw;
    height: 26.6667vw;
    background-image: url(../images/common/footer/bg_top_sp.webp);
}

.footer__bg-bottom {
    bottom: -8vw;
    left: -10vw;
    width: 150vw;
    aspect-ratio: 1500 / 300;
    background-image: url(../images/common/footer/bg_bottom_sp.webp);
}

.footer__inner {
    max-width: none;
    padding: 0 10vw 20vw;
}

.footer__logo {
    margin-bottom: 8.4746vw;
}

.footer__logo img {
    width: 25vw;
    margin: 5vw auto;
}

.footer__contents {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 4vw;
    row-gap: 7.8227vw;
}

.footer__left,
.footer__menus {
    display: contents;
}

.footer__menu-title {
    margin: 0 0 1.9557vw;
    font-size: 3.5vw;
    line-height: 1.6;
}

.footer__menu li {
    margin-bottom: 1.1734vw;
}

.footer__menu li a {
    padding-left: 1.3038vw;
    font-size: 2.8vw;
    line-height: 1.6;
}

.footer__menu--single {
    gap: 3.3898vw;
}

.footer__menu-sub {
    margin-top: 4.4329vw !important;
}

.footer__company {
    order: 3;
    grid-column: 1 / -1;
    margin-top: 8.4746vw;
}

.footer__company-name {
    margin: 0 0 1.043vw;
    font-size: 2.8vw;
    line-height: 1.6;
}

.footer__address {
    font-size: 2.8vw;
    line-height: 1.6;
}

.footer__sns {
    gap: 1.9557vw;
    margin-top: 3.1291vw;
}

.footer__sns-link {
    width: 4.0417vw;
    height: 4.0417vw;
}

.footer__right {
    order: 2;
    width: 100%;
}

.footer__visit {
    height: 23.2073vw;
    padding: 2.6076vw;
    border-radius: 1.3038vw;
}

.footer__visit-title {
    margin-bottom: 1.3038vw;
    font-size: 3.5vw;
}

.footer__visit-time {
    margin-bottom: 1.8253vw;
    font-size: 2.8vw;
}

.footer__visit-tel {
    font-size: 4.0417vw;
    line-height: 1.3;
}

.footer__visit-tel small {
    margin-right: 0.5215vw;
    font-size: 2.8vw;
}

.footer__button {
    height: 10.4302vw;
    margin-top: 4.1721vw;
    padding: 0 2.086vw 0 3.2595vw;
    border-radius: 1.3038vw;
    font-size: 2.8vw;
}

.footer__button::after {
    right: 4.4329vw;
    width: 4.4329vw;
    height: 4.4329vw;
}

.footer__button + .footer__button {
    margin-top: 2.8683vw;
}

.footer__copyright {
    position: static;
    margin-top: 10.4302vw;
    text-align: center;
    font-size: 2.2vw;
    letter-spacing: 1px;
}


/* -------------------------
    共通モーダル
------------------------- */

.c-modal {
    padding: 5vw;
}

.c-modal__panel {
    max-width: none;
    width: 100%;
    max-height: 85vh;
    border-radius: 5vw;
    padding: 10vw 6vw;
}

.c-modal__close {
    top: 3vw;
    right: 3vw;
    width: 8vw;
    height: 8vw;
}

.c-modal__title {
    margin: 0 0 6vw;
    font-size: 4.8vw;
}


/* -------------------------
    下層ページ見出し部の波形背景（黄）
    複数の下層ページ（施設を探す 等）のヒーローで共通使用。
    ページ側は幅・高さ(Figma実測)のみ指定し、このクラスを併用する。
    （SP用のbackground-size指定が抜けており、PC版の473px固定値のまま
    横幅だけ100%に縮小されて波の形が崩れて見えていたのを修正）
------------------------- */

.c-wave-hero--yellow {
    background-image: url("../images/common/deco_hero_wave.svg");
    background-repeat: no-repeat;
    background-position: bottom center;
    background-size: 100% 61.6688vw;
    background-color: var(--color-cream);
}


.has-hidamari-focus {
    object-position: var(--hf-pos-sp, var(--hf-pos, 50% 50%));
}

}
