@charset "UTF-8";
body {
    font-family: "Noto Sans JP", sans-serif;
    color: #222;
    line-height: 1.7;
    font-weight: bold;
}

.l-header {
    

}


.l-header__top{
    padding: 14px 0;
    width: 100%;
}
@media screen and ( max-width:1024px ){
    .l-header__top{
        position: sticky;
        top: 0;
        z-index: 3000;
        background: #fff;
        position: fixed;
    }
}
@media screen and ( max-width:1024px ){
    .p-home-mv{
        margin-top: 58px;
    }
}
@media screen and ( max-width:430px ){
    .p-home-mv{
       
    }
}
.l-header__nav{
    background-color: #014B9F;
    padding: 15px 0 10px 0;
}
@media screen and ( max-width:1024px ){
    .l-header__nav {
        position: fixed;
        left: 0;
        right: 0;
        z-index: 2500;
        background: #0b4ea2;
        top: 58px;
        /* アコーディオン（grid） */
        display: grid;
        grid-template-rows: 0fr;
        transition: grid-template-rows 280ms ease;
        padding: 0;
    }
}

@media screen and ( max-width:1024px ){
    .l-header__navInner{
        overflow: hidden;
        opacity: 0;
        transition: opacity 180ms ease;
    }
}


@media screen and ( max-width:1024px ){
    body.is-nav-open .l-header__nav{
        grid-template-rows: 1fr;
    }
}


@media screen and ( max-width:1024px ){
    body.is-nav-open .l-header__navInner {
        opacity: 1;

    }
}


.c-gnav{
    display: flex;
    justify-content: space-between;
    padding: 0 20px;
}
@media screen and ( max-width:1024px ){
    .c-gnav{
        display: block;     /* PCの display:flex を潰す */
        margin: 0;
        padding: 20px 0;
    }
}


.c-gnav__link{
    color: #fff;
    text-decoration: none;
}
@media screen and ( max-width:1024px ){
    .c-gnav__link{
        color: #000;
    }
}


@media screen and ( max-width:1024px ){
    body.is-nav-open .c-gnav__link {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 14px 18px;
        color: #fff;
        text-decoration: none;
    }
}


main {
    margin: 0 auto;
}

.l-container{
    margin: 0 auto;
    text-align: center;
}
@media screen and ( max-width:768px ){
    .l-header__topInner{
        padding-inline: 16px;

    }
}


.l-header__topInner{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
@media screen and ( max-width:1024px ){
    .l-header__topInner{
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
}


  /* 幅バリエーション */
  .l-container--1100 {
    max-width: 1100px;
}
.p-contact .l-container--1100 {
    max-width: 1100px;
}
@media screen and ( max-width:1140px ){
    .p-contact .l-container--1100 {
       padding-inline: 16px;
       padding-bottom: 40px;
    }
}
.l-container--1280 {
    max-width: 1280px;
    width: 100%;
}
.l-container--1400 {
    max-width: 1400px;
    /* padding-inline: 16px; */
}

.l-container--full {
    max-width: none;
    padding: 0;
}


.l-header__actions{
    
}
@media screen and ( max-width:1024px ){
    .l-header__actions{
        /* display: none; */
    }
}


.forminator-ui#forminator-module-18.forminator-design--default .forminator-label .forminator-required{
    font-size: 0;
}
.forminator-required::after{
content: "必須";
display: inline-block;
font-size: 14px;
background-color: #014B9F;
color: #fff;
border-radius: 3px;
font-weight: bold;
}



.hidden-sp{

}
@media screen and ( max-width:768px ){
    .hidden-sp{
        display: none;
    }
}


.hidden-pc{

}
@media screen and ( min-width:769px ){
    .hidden-pc{
        display: none;
    }
}


.p-top-hero{
    position: relative;
}


.p-top-hero__copy{
position: absolute;
top: 43%;
left: 4%;
transform: translateY(-50%);
color: #000;
font-weight: bold;
font-size: 50px;
}
@media screen and ( max-width:768px ){
    .p-top-hero__copy{
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translateY(-50%);
        color: #000;
        font-weight: bold;
        font-size: clamp(18px,4vw,30px);
        transform: translate(-50%, -50%);
        width: 100%;

        }
}
@media screen and ( max-width:430px ){
    .p-top-hero__copy{
        font-size: 22px;

        }
}
@media screen and ( max-width:320px ){
    .p-top-hero__copy{
        font-size: 19px;

        }
}

.p-top-hero__media{
    position: relative;
}


.p-top-hero__lead{
    text-align: left;
    color: #000;
    -webkit-text-stroke: 6px #fff;
    paint-order: stroke fill;
    text-shadow: none;
    -webkit-font-smoothing: antialiased;
    text-rendering: geometricPrecision;
}
@media screen and ( max-width:768px ){
    .p-top-hero__lead{
        display: inline-block;
        background-color: #fff;
        border-radius: 20px;
        padding: 0 12px;
    }
}


@media screen and ( max-width:768px ){
    .p-top-hero__lead:first-child{
        margin-bottom: 12px;
    }
}



.c-facility-search{
    position: absolute;
    top: 7%;
    right: 8%;
    background-color: #fff;
    padding: 20px;
    border: solid 4px #014B9F;
    border-radius: 20px;
    z-index: 9999;
}
@media screen and ( max-width:1420px ){
    .c-facility-search{
        right: 2%;
        
    }
}
@media screen and ( max-width:1124px ){
    .c-facility-search{
        position: static;
        width: 100%;
        max-width: 354px;
        margin: 0 auto;
        
    }
}
@media screen and ( max-width:430px ){
    .c-facility-search{
        max-width: 304px;
        padding: 20px 10px 20px 10px;
    }
}

.searchandfilter ul{
    display: flex;
    flex-direction: column;
}
.searchandfilter h4{
    margin: 15px 0 0 0;
}





.searchandfilter li:first-child{
    
}
.searchandfilter li:first-child h4{
    position: relative;
    font-size: 18px;
}
@media screen and ( max-width:430px ){
    .searchandfilter li:first-child h4{

        font-size: 14px;
    }
}


.searchandfilter li:first-child h4::before{
    position: absolute;
    content: "";
    top: calc(100% + 4px); /* h4下 + selectの中央へ寄せる意図 */
    transform: translateY(-50%);
    left: 0;
    background-image: url(/wp-content/themes/parasports/assets/images/search-region.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
    width: 48px;
    height: 48px;
}
@media screen and ( max-width:1024px ){
    .searchandfilter li:first-child h4::before{
        left: 20px;
    }
}
@media screen and ( max-width:430px ){
    .searchandfilter li:first-child h4::before{
        left: 2px;
    }
}
@media screen and ( max-width:320px ){
    .searchandfilter li:first-child h4::before{
        width: 36px;
        height: 36px;
    }
}

.searchandfilter li:nth-child(2){

}
.searchandfilter li:nth-child(2) h4{
    position: relative;
    font-size: 18px;
}
@media screen and ( max-width:430px ){
    .searchandfilter li:nth-child(2) h4{
        font-size: 14px;
    }
}

.searchandfilter li:nth-child(2) h4::before{
    position: absolute;
    content: "";
    top: calc(100% + 4px); /* h4下 + selectの中央へ寄せる意図 */
    transform: translateY(-50%);
    left: 0;
    background-image: url(/wp-content/themes/parasports/assets/images/search-competition.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
    width: 48px;
    height: 48px;
}
@media screen and ( max-width:1024px ){
    .searchandfilter li:nth-child(2) h4::before{
        left: 20px;
    }
}
@media screen and ( max-width:430px ){
    .searchandfilter li:nth-child(2) h4::before{
        left: 2px;
    }
}
@media screen and ( max-width:320px ){
    .searchandfilter li:nth-child(2) h4::before{
        width: 36px;
        height: 36px;
    }
}

.searchandfilter li:nth-child(2) select{

}


.searchandfilter li:nth-child(3){
    
}
.searchandfilter li:nth-child(3) h4{
    position: relative;
    font-size: 18px;
}
@media screen and ( max-width:430px ){
    .searchandfilter li:nth-child(3) h4{
        font-size: 14px;
    }
}
.searchandfilter li:nth-child(3) h4::before{
    position: absolute;
    content: "";
    top: calc(100% + 4px); /* h4下 + selectの中央へ寄せる意図 */
    transform: translateY(-50%);
    left: 0;
    background-image: url(/wp-content/themes/parasports/assets/images/search-facility.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
    width: 48px;
    height: 48px;
}
@media screen and ( max-width:1024px ){
    .searchandfilter li:nth-child(3) h4::before{
        left: 20px;
    }
}
@media screen and ( max-width:430px ){
    .searchandfilter li:nth-child(3) h4::before{
        left: 2px;
    }
}
@media screen and ( max-width:320px ){
    .searchandfilter li:nth-child(3) h4::before{
        width: 36px;
        height: 36px;
    }
}

.searchandfilter li:nth-child(3) select{
    
}

.searchandfilter li{
    padding-right: 0px;
}

.searchandfilter li:nth-child(4){
    
}
.searchandfilter li:nth-child(4) h4{
    position: relative;
    font-size: 15px;
    width: 14em;
    text-align: center;
    line-height: 1.3;
    margin: 0 auto;
    margin-top: 0px;
}

.searchandfilter li:nth-child(4) h4::before{
    position: absolute;
    content: "";
    transform: translateX(-58px);
    top: 19px;
    background-image: url(/wp-content/themes/parasports/assets/images/search-priority.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    left: 18px;
}
@media screen and ( max-width:768px ){
    .searchandfilter li:nth-child(4) h4::before{
        left: 34px;
    }
}
@media screen and ( max-width:430px ){
    .searchandfilter li:nth-child(4) h4::before{
        left: 26px;
    }
}
@media screen and ( max-width:320px ){
    .searchandfilter li:nth-child(4) h4::before{
        width: 36px;
        height: 36px;
    }
}


.searchandfilter li:nth-child(4) select{

}


.searchandfilter select.postform{
    width: 296px;
    height: 40px;
    text-align: center;
    border: 2px solid #000;
    border-radius: 20px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    cursor: pointer;
    font-weight: bold;
    font-size: 16px;
    background-color: #fff;
    color: #000;
    text-align-last: center;
}
@media screen and ( max-width:1024px ){
    .searchandfilter select.postform{
        max-width: 536px;
        width: 100%;
    }
}
@media screen and ( max-width:430px ){
    .searchandfilter select.postform{
    font-size: 12px;
    }
}



.searchandfilter li:has(select.postform){
    position: relative;
}
.searchandfilter li:has(select.postform)::after{
    content: "";
    position: absolute;
    right: 31px;
    top: 80%;
    transform: translateY(-50%) rotate(45deg);
    width: 10px;
    height: 10px;
    border-right: 3px solid #184B9F;
    border-bottom: 3px solid #184B9F;
    pointer-events: none;
}
@media screen and ( max-width:1024px ){
    .searchandfilter li:has(select.postform)::after{
        top:75%;
        right: 51px;
    }
}
@media screen and ( max-width:430px ){
    .searchandfilter li:has(select.postform)::after{
        right: 31px;
    }
}
@media screen and ( max-width:320px ){
    .searchandfilter li:has(select.postform)::after{
        right: 16px;
    }
}


.searchandfilter input[type="submit"]{
    width: 237px;
    height: 40px;
    text-align: center;
    border: unset;
    border-radius: 20px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    cursor: pointer;
    font-weight: bold;
    font-size: 16px;
    background-color: #184B9F;
    color: #fff;
    /* margin-top: 20px; */
}


.c-header-sns{
    display: flex;
    gap: 8px;
}


.c-header-sns img{
    width: 32px;
    height: auto;

}
@media screen and ( max-width:430px ){
    .c-header-sns img{
        width: 20px;
    
    }
}

.c-section-title{
    font-size: clamp(20px,4vw,40px);
    text-align: center;
    position: relative;
    display: inline-block;
    line-height: 1.2;
    margin: 0 auto;
    text-align: center;
    margin-bottom: 40px;
}
@media screen and ( max-width:1100px ){
    .c-section-title{
        max-width: 14em;
    }
}
@media screen and ( max-width:768px ){
    .c-section-title{
        font-size: 24px;
        margin-bottom: 20px;
        margin-top: 40px;
    }
}
@media screen and ( max-width:430px ){
    .c-section-title{
        font-size: 18px;
        margin-top: 0;
        margin-bottom:24px;
    }
}
@media screen and ( max-width:320px ){
    .c-section-title{


    }
}
@media screen and ( max-width:1100px ){
    .c-section-title__about{
        max-width: 15em;
    }
}


.c-section-title::before,.c-section-title::after{
    position: absolute;
    content: "";
    background-color: #014B9F;
    top: 29%;
    width: 74px;
    height: 10px;

}
@media screen and ( max-width:765px ){
    .c-section-title::before,.c-section-title::after{
        width: 39px;
        height: 5px;
    
    }
}
@media screen and ( max-width:320px ){
    .c-section-title::before,.c-section-title::after{
        width: 19px;
        height: 3px;
    
    }
}



.c-section-title::before{
    left: -90px;
}
@media screen and ( max-width:430px ){
    .c-section-title::before{
        left: -50px;
    
    }
}
@media screen and ( max-width:320px ){
    .c-section-title::before{
        left: -30px;
    
    }
}


.c-section-title::after{
    right: -90px;
}
@media screen and ( max-width:430px ){
    .c-section-title::after{
        right: -50px;
    
    }
}
@media screen and ( max-width:320px ){
    .c-section-title::after{
        right: -30px;
    
    }
}


.c-section-title__sub{
    font-size: 18px;
    display: block;
    color: #014B9F;
}


.c-gnav__icon{

}

.c-gnav__icon img{
    width: 65px;
    height: auto;
    margin: 0 auto;
    margin-bottom: 4px;

}


.c-hamburger{
    display: none;
    border: 0;
    padding: 8px;
    cursor: pointer;
    background: transparent;
}
@media screen and ( max-width:1024px ){
    .c-hamburger{
        display: inline-flex;
        align-items: center;
        justify-content: center;
        position: fixed;
        right: 16px;
        z-index: 2001;
    }
}
@media screen and ( max-width:430px ){
    .c-hamburger{
        right: 2px;
    }
}

.js-term-link {
    cursor: pointer;
}

.c-hamburger__bars{
    display: block;
    width: 24px;
    height: 2px;
    background: #000;
    position: relative;

}
.organizations-link{
    text-align: center;
    margin-top: 40px;
}
.organizations-link a{
    color: #000;
    font-size: 20px;
    border: 2px solid #014B9F;
    padding: 14px 70px 14px 50px;
    border-radius: 40px;
    text-decoration: none;
    position: relative;
}
@media screen and ( max-width:520px ){
    .organizations-link a{
        font-size: 16px;
    }
}
@media screen and ( max-width:430px ){
    .organizations-link a{
        padding: 14px 40px 14px 20px;
    }
}
.organizations-link a::after{
    position: absolute;
    content: "";
    top: 18px;
    right: 36px;
    background-image: url(/wp-content/themes/parasports/assets/images/external.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
    width: 23px;
    height: 23px;
}
@media screen and ( max-width:520px ){
    .organizations-link a::after{
        
        top: 19px;
        right: 44px;
        
        width: 14px;
        height: 14px;
    }
}
@media screen and ( max-width:430px ){
    .organizations-link a::after{

        right: 21px;

    }
}
.c-hamburger__bars::before,.c-hamburger__bars::after{
    content: "";
    position: absolute;
    left: 0;
    width: 24px;
    height: 2px;
    background: #000;
}


.c-hamburger__bars::before{
    top: -7px;
}


.c-hamburger__bars::after{
    top: 7px;
}


.c-hamburger__bars,
.c-hamburger__bars::before,
.c-hamburger__bars::after {
  transition: transform 200ms ease, top 200ms ease, opacity 200ms ease;
}


body.is-nav-open .c-hamburger__bars {
    transform: rotate(45deg);
}

body.is-nav-open .c-hamburger__bars::before {
    top: 0;
    transform: rotate(90deg);
}

body.is-nav-open .c-hamburger__bars::after {
    top: 0;
    opacity: 0; /* 3本目は消す */
}




@media screen and ( max-width:1024px ){
    body.is-nav-open .c-gnav {
        display: block;
    }
}


@media screen and ( max-width:1024px ){
    body.is-nav-open .c-gnav__item{
        border-top: 1px solid rgba(0,0,0,.1);
    }
}


@media screen and ( max-width:1024px ){
    .c-gnav__item:first-child {
        border-top: 0;
      }
}



.l-header__brand{
    display: flex;
    width: 100%;
    justify-content: space-between;
    padding: 0 60px 0 20px;
    align-items: center;
    gap: 18px;
}
@media screen and ( max-width:430px ){
    .l-header__brand{
        padding-left: 0;
        padding-right: 26px;
        gap: 10px;
    }
}
@media screen and ( max-width:430px ){
    .l-header__brand{
        padding: 0 48px 0 10px;
        padding-left: 0;
        padding-right: 36px;

    }
}
@media screen and ( max-width:375px ){
    .l-header__brand{

        padding-right: 26px;

    }
}
.l-header__brand h1{
    display: flex;
    align-items: center;
}
.l-header__brand h1 img{
    /* width: 370px;
    height: auto; */
}
@media screen and ( max-width:768px ){
    .l-header__brand h1 img{
        width:238px;

    }
}

@media screen and ( max-width:1024px ){
    .l-header__nav .c-gnav__link {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        gap: 12px;
        padding: 14px 18px;
        text-align: left;
        /* color: #fff;
        text-decoration: none;
        text-align: left; */
      }
}


.c-facility-search__title{
    position: relative;
    font-size: 18px;
    border-bottom: 6px solid #014B9F;
    padding-bottom: 8px;
}
@media screen and ( max-width:430px ){
    .c-facility-search__title{
        font-size: 16px;

    }
}

.c-facility-search__title::before{
    position: absolute;
    content: "";
    top: -3px;
    left: 48px;
    background-image: url(/wp-content/themes/parasports/assets/images/search-glass.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
    width: 37px;
    height: 37px;
}


.l-page-content{
    padding-block: 80px;
}
@media screen and ( max-width:768px ){
    .l-page-content{
        padding-top: 40px;
        padding-inline: 16px;
    }
}
@media screen and ( max-width:430px ){
    @media screen and ( max-width:768px ){
        .l-page-content{
            padding-bottom: 0;
        }
    }
}

.c-breadcrumb{
    max-width: 1100px;
    width: 100%;
    margin: 0 auto;
    padding-top: 40px;

}
@media screen and ( max-width:1130px ){
    .c-breadcrumb{
        padding-right: 15px;
        padding-left: 15px;
        padding-top: 50px;
    }
}
@media screen and ( max-width:1024px ){
    .c-breadcrumb{
        padding-top: 110px;
    }
}

@media screen and ( max-width:430px ){
    .c-breadcrumb{
        padding-top: 90px;
    }
}



.c-facility-search__lower{
    background-color: #fff;
    padding-block: 20px;
    border: solid 4px #014B9F;
    border-radius: 20px;
}
@media screen and ( max-width:1280px ){
    .c-facility-search__lower{

        width: 100%;
        max-width: 765px;
        margin: 0 auto;
    }
}
@media screen and ( max-width:1024px ){
    .c-facility-search__lower{
        max-width: 605px
    }
}
@media screen and ( max-width:430px ){
    .c-facility-search__lower{
        padding-inline: 10px;
    }
    }

    .paragraph p{
        margin-top: 1.625em;
        text-align: left;
    }
    @media screen and ( max-width:430px ){
        .paragraph p{
font-size: 14px;
        }
    }
.c-facility-search__lower .searchandfilter ul{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    align-items: end;
    align-items: anchor-center;
}
@media screen and ( max-width:1024px ){
    .c-facility-search__lower .searchandfilter ul{
        flex-direction: column;
        flex-wrap: unset;
        justify-content: center;
        align-items: unset;
    }
}



.c-facility-search__lower .searchandfilter ul li{
padding: 0;
}

.c-facility-search__lower .searchandfilter li:has(select.postform)::after{
    top: 75%;
}
.c-facility-search__lower .searchandfilter select.postform{
font-size: 14px;
}
.c-facility-search__lower .searchandfilter ul li h4{
    font-size: 16px;
}


@media screen and ( max-width:1024px ){
    .c-facility-search__lower .searchandfilter li:nth-child(4) h4{
        position: relative;
        font-size: 16px;
        text-align: center;
        line-height: 1.3;
        margin-top: 16px;
        width: auto;
        margin: 0;
        margin-top: 20px;
    }
}
@media screen and ( max-width:425px ){
    .c-facility-search__lower .searchandfilter li:nth-child(4) h4{
        padding-left: 0px;
        font-size: 16px;
        letter-spacing: -0.8px;
    
    }
}
@media screen and ( max-width:375px ){
    .c-facility-search__lower .searchandfilter li:nth-child(4) h4{
        padding-left: 8px;
        font-size: 15px;
    
    }
}
@media screen and ( max-width:320px ){
    .c-facility-search__lower .searchandfilter li:nth-child(4) h4{
        padding-left: 14px;
    
    }
}


.c-facility-search__lower .searchandfilter li:nth-child(4) h4::before{
    top: 22px;
    left: 19px;
}
@media screen and ( max-width:1024px ){
    .c-facility-search__lower .searchandfilter li:nth-child(4) h4::before{
        left: 79px;
        transform: translateX(-58px);
        top: 21px;
    }
}
@media screen and ( max-width:430px ){
    .c-facility-search__lower .searchandfilter li:nth-child(4) h4::before{
        left: 59px;
        top: 20px;
    }
}



.c-breadcrumb__list{
    display: flex;
    flex-wrap: wrap;
    gap: 8px; 
    margin: 0;
    padding: 0;
    list-style: none;
    
}
@media screen and ( max-width:430px ){
    .c-breadcrumb__list{
        font-size: 14px;
        
    }
}

.c-breadcrumb__link{
color: #222;
}


.c-breadcrumb__item{
    display: inline-flex;
    align-items: center;
}


.c-breadcrumb__item:not(:last-child)::after{
    content: "";
    width: 12px;
    height: 12px;
    margin-left: 8px;
    background-image: url(/wp-content/themes/parasports/assets/images/breadcrumb.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
    opacity: .7; /* 任意 */
}


@media screen and ( max-width:768px ){
.c-related-links-section{
    /* padding: 0 16px; */
}
}



.c-related-links-section:not(:last-child){
    margin-bottom: 80px;
}


.c-section-subtitle{
    border-bottom: solid 5px #014B9F;
    text-align: left;
    margin-bottom: 40px;
    font-size: 24px;
}
@media screen and ( max-width:430px ){
    .c-section-subtitle{
        font-size: 18px;
    }
}

.c-related-links li{
    text-align: left;
    position: relative;
    padding-left: 29px;
    margin-bottom: 8px;
}
@media screen and ( max-width:768px ){
    .c-related-links li{
        margin-bottom: 8px;

    }
}
@media screen and ( max-width:430px ){
    .c-related-links li{
        font-size: 14px;
        padding-left: 19px;

    }
}

.page-numbers{
    color: #222;
    text-decoration: none;
}
.c-related-links li::before{
    content: "";
    position: absolute;
    width: 6px;
    height: 6px;
    background-color: #014B9F;
    border-radius: 50%;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}

.c-related-links li a{
    color: #222;
    text-decoration: none;
}


.c-footer{
    border-top: 1px solid #cfcfcf;
    background-color: #fff;
}


.c-footer__top{
    padding: 50px 16px;

}
@media screen and ( max-width:768px ){
    .c-footer__top{
       padding-bottom: 24px;
    
    }
}

.c-footer__inner{
    max-width: 1280px;
    margin: 0 auto;

}


.c-footer__inner--top{
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 80px;
}
@media screen and ( max-width:768px ){
    .c-footer__inner--top{
        grid-template-columns: 1fr;
        gap: 19px;
        font-size: 14px;
        gap: 0;
    }
}


@media screen and ( max-width:768px ){
.c-footer__inner--top > :nth-child(3){
    margin-top: 21px;
}
}


.c-footer__inner--top a{
    color: inherit;
    text-decoration: none;
}

.c-footer__nav{

}


.c-footer__menu{
    text-align: left;
    display: grid;
    gap: 17px;
}
@media screen and ( max-width:768px ){
    .c-footer__menu{
        gap: 0;
    }
}


@media screen and ( max-width:768px ){
.c-footer__org{
    font-size: 12px;
}
}
.c-footer__tel{
    display: flex;
    align-items: center;
}

@media screen and ( max-width:768px ){
    .c-footer__tel{
        margin-bottom: 8px;
    
    }
    
}
@media screen and ( max-width:430px ){
    .c-footer__tel{
        margin-bottom: 0;
    
    }
    
}

.c-footer__bottom{
    background-color: #014B9F;
    color: #fff;
    font-size: 12px;
    padding: 10px 16px;
}


.c-footer__legal{
    display: flex;
    gap: 64px;

}
@media screen and ( max-width:768px ){
    .c-footer__legal{
        flex-direction: column;
    gap: 10px;
    }
}


.c-footer__inner--bottom{
    display: flex;
    justify-content: center;
    align-items: center;

}
@media screen and ( max-width:768px ){
    .c-footer__inner--bottom{
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
}


.c-footer__org img {
    max-width: 326px;
    width: 100%;
    height: auto;
    }


.c-footer__logo{
    margin-bottom: 20px;
}


.c-news-list{
    text-align: left;
    font-size: 16px;
}
@media screen and ( max-width:430px ){
    .c-news-list{
        font-size: 14px;
    }
}

.c-news-list__cat{
    background-color: #A2A2A2;
    border-radius: 20px;
    color: #fff;
    font-weight: normal;
    width: 94px;
    height: 28px;
    display: inline-block;
    text-align: center;
}
@media screen and ( max-width:430px ){
    .c-news-list__cat{


        width: 85px;
        height: 21px;

        font-size: 14px;
    }
}





.bg-blue{
    background-color: #DCE9F7;
}


.c-competition__grid{
    max-width: 1400px;
    display: grid;
    grid-template-columns: repeat(4,1fr);
    justify-content: center;
    width: 100%;
    margin: 0 auto;
    gap: 16px;
    
}
@media screen and ( max-width:1024px ){
    .c-competition__grid{
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }
}
@media screen and ( max-width:600px ){
    .c-competition__grid{
        grid-template-columns: repeat(2, 1fr);
    }
}
@media screen and ( max-width:320px ){
    .c-competition__grid{
        gap: 4px;
    }
}
.c-competitionCard{
    background-color: #fff;
    border-radius: 20px;
    border: 3px solid #014B9F;
}
@media screen and ( max-width:430px ){
    .c-competitionCard{
        border-radius: 10px;

    }
}


.c-btn{
    cursor: pointer;
    font-weight: bold;
    font-size: 18px;
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    width: 248px;
    padding: 20px 0;
    border-radius: 40px;
    position: relative;
    letter-spacing: 0px;
    justify-content: center;
}
@media screen and ( max-width:1124px ){
    .c-btn{
        width: 325px;
        padding: 10px 0;
    }
}
@media screen and ( max-width:768px ){
    .c-btn{

        font-size: 14px;
    }
}
@media screen and ( max-width:600px ){
    .c-btn{

        padding: 10px 0;
    }
}
@media screen and ( max-width:430px ){
    .c-btn{

        width: 285px;
    }
}
.c-btn::after{
    content:"";
    position:absolute;
    top:50%;
    right:18px;
    width:10px;
    height:10px;
    border-top:2px solid currentColor;
    border-right:2px solid currentColor;
    transform: translateY(-50%) rotate(45deg);
}


.c-btn--primary{
    background-color: #184B9F;
    color: #fff;
}
@media screen and ( max-width:600px ){
    .c-btn--primary{
font-size: 14px;
    }
}

.c-competition__index{
    text-align: right;
    margin-top: 10px;
}
@media screen and ( max-width:768px ){
    .c-competition__index{
        font-size: 10px;
    }
}
@media screen and ( max-width:430px ){
    .c-competition__index{
        margin-top: 0px;
        margin-bottom: 10px;
    }
}


.facility-card{
    display: flex;
    gap: 24px;
}


.facility-card__title{
    text-align: left;
    border-bottom: solid 2px #014B9F;
}
@media screen and ( max-width:430px ){
    .facility-card__title{
        font-size: 18px;
    }
}


.facility-card__text{
    text-align: left;
}


.c-area-map-wrap svg{
    width: 100%;
    max-width: 1100px;
    height: auto;
}
@media screen and ( max-width:1024px ){
    .c-area-map-wrap svg{
padding-inline: 16px;
    }
}

.p-top-sections{
    /* padding-inline: 16px; */
}
@media screen and ( max-width:768px ){
    .p-top-sections{
        /* padding-inline: 16px; */
    }
}

.c-news-list__item{
    border-bottom: solid 1px #C4C4C4;
    padding-bottom: 22px;
    margin-bottom: 40px;
    padding-inline: 16px;
}
@media screen and ( max-width:768px ){
    .c-news-list__item{
        margin-bottom: 16px;
    }
}


.c-news-list__title{
    /* font-size: 16px; */
}

.c-news-list__item:last-child {
    border-bottom: none;
    }


.c-news-detail__title{
    text-align: left;
    border-bottom: solid 1px #014B9F;
    margin-bottom: 44px;
}
@media screen and ( max-width:430px ){
    .c-news-detail__title{
font-size: 22px;
    }
}

.c-news-detail__content{
    text-align: left;

    padding-bottom: 80px;
}
@media screen and ( max-width:430px ){
    .c-news-detail__content{
        font-size: 14px;
        padding-bottom: 20px;
    }
}

.c-news-list__link-inner{
    text-align: left;
    margin-bottom: 16px;
}

.c-news-list__link-inner__bottomOn{
    text-align: left;
}

.facility-card__link{
    display: flex;
    gap: 24px;
    padding: 22px 0;
    text-decoration: none;
    color: inherit;
    justify-content: space-between;
    width: 100%;
    max-width: 1100px;
    
}
@media screen and ( max-width:768px ){
    .facility-card__link{
flex-direction: column;
gap: 4px;
    }
}

.facility-card__tag{
    display: inline-block;
    width: fit-content;
    margin-top: 16px;
    padding: 4px 10px;
    border-radius: 999px;
    background: #eef1f4;
    font-size: 12px;
}
@media screen and ( max-width:768px ){
    .facility-card__tag{
    margin-top: 8px ;
    }
}

.facility-card__thumb{
    flex: 0 0 382px;       /* 左画像幅：必要に応じて調整 */
    aspect-ratio: 16 / 9;
    overflow: auto;
  }
  @media screen and ( max-width:768px ){
    .facility-card__thumb{
        
      }
  }
  @media screen and ( max-width:430px ){
    .facility-card__thumb{
        flex: unset;

      }
  }
  .facility-card__thumb img{
    width: 100%;

    display: block;
    border-radius: 16px;
    object-fit: cover;
    display: block;

    height: 100%;

    object-position: center;
    }
    @media screen and ( max-width:768px ){
        .facility-card__thumb img{

          }
      }

  /* 右側 */
.facility-card__body{
    flex: 1;
    display: flex;
    flex-direction: column;
    gap:30px;
    justify-content: space-between;
}
@media screen and ( max-width:768px ){
    .facility-card__body{

        gap:10px;
    }
}

.facility-card__btn{
    width: 208px;
    background-color: #fff;
    color: #184B9F;
    border: 1px solid #184B9F;   /* ← これにする */
    padding: 10px 0;
}


.facility-card__lower{
    display: flex;
    align-items: center;
    justify-content: flex-end;
}


.facility-card__upper{
    text-align: left;
}


  .slider{
    position: relative;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 40px; /* ← 矢印分の余白 */
}

.slider__viewport{
  overflow: hidden;
  border-radius: 12px;
}

.slider__track{
  display: flex;
  gap: 12px;               /* カード間の余白 */
  margin: 0;
  padding: 0;
  list-style: none;
  transition: transform 300ms ease;
  will-change: transform;
}

.slider__item{
  flex: 0 0 calc((100% - 24px) / 3); /* 3枚表示（gap 12px×2=24px を引く） */
  border-radius: 12px;
  overflow: hidden;
  user-select: none;
  background: #f3f4f6;
}

@media (max-width: 768px){
  .slider__track{ gap: 10px; }
  .slider__item{
    flex: 0 0 100%;         /* SPは1枚表示 */
  }
}

.slider__img{
  display: block;
  width: 100%;
  object-fit: cover;
}

@media (max-width: 768px){
  .slider__img{
    /* height: 220px; */
}
}

/* buttons */
.slider__btn{
    position: absolute;
    top: 43%;
    transform: translateY(-50%);
    z-index: 2;
  
    width: 28px;
    height: 28px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
  }
  .slider__btn--prev{ left: 6px; }
  .slider__btn--next{ right: 6px; }
  
  .slider__btn::before{
    content: "";
    display: block;
    width: 12px;
    height: 12px;
    margin: auto;
  
    border-right: 3px solid #0b4ea2;
    border-bottom: 3px solid #0b4ea2;
    transform: rotate(135deg); /* ←左矢印が基本 */
  }
  
  .slider__btn--next::before{
    transform: rotate(-45deg); /* →右矢印 */
  }
  
  .slider__btn:hover{ opacity: .7; }
  .slider__btn:active{ opacity: .5; }


.slider__btn:disabled{
  opacity: .35;
  cursor: not-allowed;
}

/* dots */
.slider__dots{
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-top: 12px;
}
.slider__dot{
    width: 10px;
    height: 12px;
  border-radius: 999px;
  border: 0;
  background: #d1d5db;
  cursor: pointer;
}
.slider__dot.is-active{
  background: #111827;
}



.p-top-sections{
    /* border-top: 1px solid #cfcfcf;
    border-bottom: 1px solid #cfcfcf; */
  }
  
  .p-top-sections__grid{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  }
  
  .p-top-sections__item{
    display: grid;
    justify-items: center;
    align-content: center;
    gap: 24px;
  
    padding: 56px 16px;
    text-decoration: none;
    color: inherit;
    border-top: 1px solid #cfcfcf;
    border-right: 1px solid #cfcfcf;
  }
  
  /* 左端にも線を出したい場合はON */
  .p-top-sections__item:first-child{
    border-left: 1px solid #cfcfcf;
  }
  @media screen and ( max-width:640px ){
    .p-top-sections__item:first-child{
        border-left:none;
      }
  }

  @media screen and ( max-width:1400px ){
    .p-top-sections__item .c-btn--primary{
        width: 228px;
          }
  }

  .p-top-sections__title{
    margin: 0;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
  }
  @media screen and ( max-width:1420px ){
    .p-top-sections__title{

        font-size: 18px;

      }
  }
  @media screen and ( max-width:1024px ){
    .p-top-sections__title{

        font-size: 20px;

      }
  }
  @media screen and ( max-width:600px ){
    .p-top-sections__title{

        /* font-size: 20px; */

      }
  }
  .p-top-sections__footer{
    padding: 28px 16px 40px;
    display: flex;
    justify-content: center;
  }
  
  /* hover（任意） */
  .p-top-sections__item:hover{
    background: rgba(0,0,0,0.02);
  }
  
  /* --- SP/タブレット --- */
  @media (max-width: 1024px){
    .p-top-sections__grid{
      grid-template-columns: repeat(2, 1fr);
    }
    .p-top-sections__item:nth-child(2n){
      border-right: 0;
    }
  }
  
  @media (max-width: 640px){
    .p-top-sections__grid{
      grid-template-columns: 1fr;
    }
    .p-top-sections__item{
      border-left: 0;
      border-right: 0;
      border-top: 1px solid #cfcfcf;
      padding: 36px 16px;
    }
    .p-top-sections__item:first-child{
      border-top: 0;
    }

  }
  

  .margin40{
    margin-bottom: 40px;
  }


  .margin80{
    margin-bottom: 80px;
  }
  @media screen and ( max-width:768px ){
    .margin80{
        margin-bottom: 40px;
      }
  }

  .margin120{
    margin-bottom: 120px;
  }
  @media screen and ( max-width:768px ){
    .margin120{
        margin-bottom: 40px;
      }
  }

 .padding40{
    padding-block: 40px;
 }


 .padding-none{
    padding-inline: 0;
 }

 @media screen and ( max-width:768px ){
.c-competitionCard__label{
    font-size: 12px;
}
 }

 @media screen and ( max-width:430px ){
    .c-competitionCard__label{
        font-size: 12px;
    }
     }



/* リンクになってるエリア全部に適用 */
.c-area-map__area {
    cursor: pointer;
    outline: none; /* ブラウザ標準の青枠が邪魔なら */
  }
  
  /* hover/focus のアニメ元 */
  .c-area-map__area path {
    transition: filter 180ms ease, opacity 180ms ease;
    will-change: filter;
  }
  
  /* マウスホバー & キーボードフォーカス */
  .c-area-map__area:hover path,
  .c-area-map__area:focus-visible path {
    filter: brightness(1.08) contrast(1.02)
            drop-shadow(0 10px 16px rgba(0,0,0,.18));
    opacity: 0.98;
  }
  
  /* クリック時（任意） */
  .c-area-map__area:active path {
    filter: brightness(1.03) contrast(1.01)
            drop-shadow(0 6px 10px rgba(0,0,0,.16));
  }
  
  /* 動きが苦手な人向け */
  @media (prefers-reduced-motion: reduce) {
    .c-area-map__area path {
      transition: none;
    }
  }
  

  /* ============ hover animation (link only) ============ */
/* 競技カードのリンク + 下のボタンに同じホバーを適用 */
.c-competitionCard a,
.c-btn {
  position: relative;
  display: inline-block; /* ボタン用 */
  overflow: hidden;
  transform: translateZ(0); /* ちらつき防止 */
  transition: transform .22s ease, filter .22s ease, opacity .22s ease;
}

/* 競技カード内の a は画像サイズに合わせてブロック化 */
.c-competitionCard a{
  display: block;
  border-radius: 14px; /* 好みで */
  padding: 0 0 20px 0;
}
@media screen and ( max-width:768px ){
    .c-competitionCard a{
        padding: 0 0 10px 0;
      }
}
/* 画像も一緒に少しだけスケール */
.c-competitionCard a img{
  display: block;
  width: 100%;
  height: auto;
  transition: transform .22s ease;
}

/* 光のスイープ（shine） */
.c-competitionCard a::after,
.c-btn::after{
  /* content: "";
  position: absolute;
  inset: -30%;
  background: linear-gradient(
    120deg,
    transparent 0%,
    rgba(255,255,255,.35) 35%,
    rgba(255,255,255,.0) 70%,
    transparent 100%
  );
  transform: translateX(-120%);
  transition: transform .45s ease;
  pointer-events: none; */
}

/* hover / focus で浮かせる + 光を走らせる */
.c-competitionCard a:hover,
.c-competitionCard a:focus-visible,
.c-btn:hover,
.c-btn:focus-visible{
  transform: translateY(-3px);
  filter: drop-shadow(0 10px 18px rgba(0,0,0,.18));
}

.c-competitionCard a:hover img,
.c-competitionCard a:focus-visible img{
  transform: scale(1.03);
}

.c-competitionCard a:hover::after,
.c-competitionCard a:focus-visible::after,

.c-btn:focus-visible::after{
  transform: translateX(120%);
}

/* アクセシビリティ：フォーカス見える化（必要なら） */
.c-competitionCard a:focus-visible,
.c-btn:focus-visible{
  outline: 2px solid rgba(255,255,255,.8);
  outline-offset: 3px;
}

/* 動きを減らしたい設定の人には止める */
@media (prefers-reduced-motion: reduce){
  .c-competitionCard a,
  .c-btn,
  .c-competitionCard a img,
  .c-competitionCard a::after,
  .c-btn::after{
    transition: none !important;
  }
}


/* ============ footer link hover animation ============ */
.c-footer a{
    position: relative;
    display: inline-block; /* テキストリンクのため */
    overflow: hidden;
    transform: translateZ(0);
    transition: transform .22s ease, filter .22s ease, opacity .22s ease;
  }
  
  /* 光のスイープ（shine） */
  .c-footer a::after{
    /* content: "";
    position: absolute;
    inset: -40% -60%;
    background: linear-gradient(
      120deg,
      transparent 0%,
      rgba(255,255,255,.28) 35%,
      rgba(255,255,255,0) 70%,
      transparent 100%
    );
    transform: translateX(-120%);
    transition: transform .45s ease;
    pointer-events: none; */
  }
  
  /* hover / focus */
  .c-footer .c-footer__menu a:hover,
  .c-footer .c-footer__menu a:focus-visible{
    transform: translateY(-2px);
    filter: drop-shadow(0 8px 14px rgba(0,0,0,.22));
  }
  
  /* 光を走らせる */
  .c-footer a:hover::after,
  .c-footer a:focus-visible::after{
    transform: translateX(120%);
  }
  
  /* ロゴ画像リンクは “浮くだけ” にして、光は出さない（好みで） */
  .c-footer__logo a::after{
    content: none;
  }
  .c-footer__logo a:hover,
  .c-footer__logo a:focus-visible{
    /* transform: translateY(-2px);
    filter: drop-shadow(0 10px 18px rgba(0,0,0,.25)); */
  }
  
  /* 電話リンクも同じでOKだけど、光が邪魔なら止められる */
  .c-footer__tel a::after{
    /* content: none; */ /* ←光いらないならコメント外す */
  }
  
  /* 動きを減らしたい設定の人には止める */
  @media (prefers-reduced-motion: reduce){
    .c-footer a,
    .c-footer a::after{
      transition: none !important;
    }
  }

  
  /* ============ header hover animation (footerと同系) ============ */

/* 1) ロゴリンク：浮くだけ（光なし） */
.l-header__brand h1 a{
    display: inline-block;
    transition: transform .22s ease, filter .22s ease;
    transform: translateZ(0);
  }
  .l-header__brand h1 a:hover,
  .l-header__brand h1 a:focus-visible{
    transform: translateY(-2px);
    filter: drop-shadow(0 10px 18px rgba(0,0,0,.25));
  }
  
  /* 2) SNSリンク：浮くだけ（光なし） */
  .c-header-sns a{
    display: inline-block;
    transition: transform .22s ease, filter .22s ease, opacity .22s ease;
    transform: translateZ(0);
  }
  .c-header-sns a:hover,
  .c-header-sns a:focus-visible{
    transform: translateY(-2px);
    filter: drop-shadow(0 10px 18px rgba(0,0,0,.22));
  }
  
  /* 3) グロナビ：浮く＋光（shine） */
  .c-gnav__link{
    position: relative;
    overflow: hidden;
    display: block;              /* クリック領域を確保 */
    transform: translateZ(0);
    transition: transform .22s ease, filter .22s ease;
  }
  
  /* 光のスイープ */
  /* .c-gnav__link::after{
    content: "";
    position: absolute;
    inset: -40% -60%;
    background: linear-gradient(
      120deg,
      transparent 0%,
      rgba(255,255,255,.28) 35%,
      rgba(255,255,255,0) 70%,
      transparent 100%
    );
    transform: translateX(-120%);
    transition: transform .45s ease;
    pointer-events: none;
  } */
  
  /* hover / focus */
  .c-gnav__link:hover,
  .c-gnav__link:focus-visible{
    transform: translateY(-2px);
    filter: drop-shadow(0 8px 14px rgba(0,0,0,.18));
  }

  
  /* ハンバーガーも同じ“浮き”だけ（必要なら） */
  .c-hamburger{
    transition: transform .22s ease, filter .22s ease;
    transform: translateZ(0);
  }
  .c-hamburger:hover,
  .c-hamburger:focus-visible{
    transform: translateY(-2px);
    filter: drop-shadow(0 10px 18px rgba(0,0,0,.18));
  }
  
  /* 動きを減らす設定の人向け */
  @media (prefers-reduced-motion: reduce){
    .l-header__brand h1 a,
    .c-header-sns a,
    .c-gnav__link,
    .c-gnav__link::after,
    .c-hamburger{
      transition: none !important;
    }
  }
  /* 検索ボタン（input submit） */
.c-facility-search input[type="submit"]{

  }
  
  /* hover / キーボード操作でも同じ */
  .c-facility-search input[type="submit"]:hover,
  .c-facility-search input[type="submit"]:focus-visible{
    /* transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(0,0,0,.18);
    filter: brightness(1.02); */
  }
  
  /* 押した瞬間 */
  .c-facility-search input[type="submit"]:active{
    transform: translateY(0);
    box-shadow: 0 8px 18px rgba(0,0,0,.12);
  }
  
  /* 動きを減らす設定の人には配慮 */
  @media (prefers-reduced-motion: reduce){
    .c-facility-search input[type="submit"]{
      transition: none;
    }
  }
  /* 検索ボタンのli（いちばん下）を基準にする */
.c-facility-search ul > li:last-child{
    position: relative;
    display: inline-block;
  }
  
  /* ボタン文字と矢印が被らないように余白を追加 */
  .c-facility-search ul > li:last-child input[type="submit"]{
   
  }
  
  /* CSSだけで作る「>」矢印（白） */
  .c-facility-search ul > li:last-child::after{
    content: "";
    position: absolute;
    top: 53%;
    right: 58px;
    width: 10px;
    height: 10px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translateY(-50%) rotate(45deg);
    pointer-events: none;
  
    transform: translateY(-50%) rotate(45deg);
    pointer-events: none; /* クリックの邪魔をしない */
  }
  
  .c-facility-search .searchandfilter li:nth-child(4) h4{
    margin-top: 17px;

  }
  @media screen and ( max-width:430px ){
    .c-facility-search .searchandfilter li:nth-child(4) h4{
        font-size: 14px;
    
      }
  }
  /* お知らせ：リンク全体を“ふわっ” */

  .c-news-list__link{
    text-decoration: none;
    color: #222;
    display: flex;
    gap: 18px;
    
    transition: transform .18s ease, box-shadow .18s ease;
    will-change: transform;
}
@media screen and ( max-width:768px ){
    .c-news-list__link{
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
}
  /* hover / keyboard focus でも同じ挙動 */
  .c-news-list__link:hover,
  .c-news-list__link:focus-visible{
    transform: translateY(-4px);
    /* box-shadow: 0 10px 24px rgba(0,0,0,.12); */
  }
  
  /* ちょい上品に：ホバー中は少しだけ明るく（不要なら消してOK） */
  .c-news-list__link:hover{
    filter: brightness(1.02);
  }
  
  /* クリック時に少し沈む（不要なら消してOK） */
  .c-news-list__link:active{
    transform: translateY(-1px);
    /* box-shadow: 0 6px 14px rgba(0,0,0,.10); */
  }
  

  /* 施設一覧の検索フォーム：検索するボタンを“ふわっと浮く”ホバーに */
.c-facility-search__lower .searchandfilter input[type="submit"]{
    display: inline-flex;          /* inputでもOK */
    align-items: center;
    justify-content: center;
  
    appearance: none;
    -webkit-appearance: none;
  
    border: 0;
    border-radius: 999px;          /* ボタンっぽく。不要なら消してOK */
    /* padding: 14px 28px; */
    font-weight: 700;
    cursor: pointer;
  
    /* ここは既存ボタンの色に合わせて調整してOK */
    background: #014B9F;           /* 例：サイトの青 */
    color: #fff;
  
    transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
    will-change: transform;
  }
  
  /* hover / focus */
  .c-facility-search__lower .searchandfilter input[type="submit"]:hover,
  .c-facility-search__lower .searchandfilter input[type="submit"]:focus-visible{
    transform: translateY(-4px);
    box-shadow: 0 10px 24px rgba(0,0,0,.12);
  }
  
  /* 押した瞬間 */
  .c-facility-search__lower .searchandfilter input[type="submit"]:active{
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(0,0,0,.10);
  }
  
  /* キーボード操作でも分かるように */
  .c-facility-search__lower .searchandfilter input[type="submit"]:focus-visible{
    outline: 2px solid rgba(255,255,255,.9);
    outline-offset: 3px;
  }
  
  /* もし影が四角く切れるなら（親のoverflow対策） */
  .c-facility-search__lower,
  .c-facility-search__lower .searchandfilter,
  .c-facility-search__lower .searchandfilter > div,
  .c-facility-search__lower .searchandfilter ul,
  .c-facility-search__lower .searchandfilter li{
    overflow: visible;
  }
  

  /* ❶ submit が入ってる li を「ボタンの箱」にする（矢印もここに置く） */
.c-facility-search .searchandfilter li:has(> input[type="submit"]) {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  
    padding: 0px 24px 0px 18px;
    border-radius: 999px;
    cursor: pointer;
  
    transition: transform .18s ease, box-shadow .18s ease;
    will-change: transform;
    margin-top: 20px;
  }
  
  /* ❷ input自体は“透明な文字だけ”にして、クリックはliで受ける */
  .c-facility-search .searchandfilter li:has(> input[type="submit"]) > input[type="submit"]{

  }
  

  
  /* ❹ hover時：liを浮かせる → 矢印も一緒に浮く */
  .c-facility-search .searchandfilter li:has(> input[type="submit"]):hover,
  .c-facility-search .searchandfilter li:has(> input[type="submit"]):focus-within{
    transform: translateY(-4px);
    
  }
  
  /* ❺ 押したとき */
  .c-facility-search .searchandfilter li:has(> input[type="submit"]):active{
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(0,0,0,.10);
  }
  
  .c-news-list__linkInner{

  }

  @media screen and ( min-width:768px ){
.p-home-mv{
width: 100%;
  aspect-ratio: 1920 / 589; /* 元のMV比率 */
  min-height: 589px;
  max-height: 100vh;  
}
}

  @media screen and ( min-width:768px ){
  .p-home-imgPC{
  width: 100%;
  height: 100%;
  object-fit: cover;
  }
}

.paragraph .c-txt-center{
    text-align: center;
    margin-top: 0;
}

.c-section-title__lower{
    margin-bottom: 20px;
}





/* 施設情報ページ */
/* =========================
  single facility (PDF寄せ)
========================= */

.p-contact {
    padding: 32px 0 0;
  }
  @media screen and ( max-width:768px ){
    .p-contact {
        padding: 0;
      }
  }
  /* 画像（メイン + サムネ3枚） */
  .p-facility-hero {
    margin-bottom: 28px;
  }
  
  .p-facility-hero__main {
    height: 734px;
    overflow: hidden;
    margin: 0 0 14px;
  }
  @media screen and ( max-width:768px ){
    .p-facility-hero__main {
        aspect-ratio: 16 / 9;
        height: auto;
      }
  }
  .p-facility-hero__main img {
    width: 100%;
    height: 100%;
    object-fit: cover;      /* 比率維持しつつ枠にフィット（はみ出しはトリミング） */
    object-position: center;/* 中央を基準にトリミング */
    display: block;
  }
  
  .p-facility-hero__thumbs {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    align-items: stretch;
    max-width: 1100px;
    margin: 0 auto;
    padding-inline: 16px;
  }
  .p-facility-hero__thumbs:has(> .p-facility-hero__thumb:only-child){
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
  }
  .p-facility-hero__thumbs:has(> .p-facility-hero__thumb:only-child) > .p-facility-hero__thumb{
    width: min(520px, 100%);
  }
  
  .p-facility-hero__thumb {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;  /* ←必要なら 4/3 などに変更 */
    border-radius: 8px;
    overflow: hidden;
    background: #f2f2f2;
  }
  
  .p-facility-hero__thumb img {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center;
    display: block;
  }
  
  /* テーブル */
  .c-table--facility {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
  }
  
  .c-table--facility th,
  .c-table--facility td {
    border-bottom: 1px solid #e6e6e6;
    padding: 14px 16px;
    vertical-align: top;
    font-size: 15px;
    line-height: 1.7;
    text-align: left;
  }
  @media screen and ( max-width:430px ){
    .c-table--facility th,
    .c-table--facility td {

      font-size: 14px;

    }
  }
  .c-table--facility th {
    width: 32%;
    color: #333;
    font-weight: 700;
  }
  
  .c-table--facility td a {
    text-decoration: underline;
    word-break: break-all;
    color: currentColor;
  }
  
  .p-facility-detail__maplink {
    margin-left: 6px;
    white-space: nowrap;
  }
  
  /* アクセス */
  .p-facility-access {
    margin-top: 86px;
  }
  
  .p-facility-access__title {
    font-size: 20px;
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e6e6e6;
  }
  
  .p-facility-access__map {
    /* border-radius: 10px; */
    overflow: hidden;
    border: 1px solid #e6e6e6;
  }
  
  .p-facility-access__map iframe {
    display: block;
    width: 100%;
    height: 538px;
    border: 0;
  }
  
  .p-facility-access__link {
    margin-top: 10px;
  }
  
  /* レスポンシブ */
  @media (max-width: 768px) {
    .p-facility-hero__thumbs {
      grid-template-columns: 1fr;
      padding-inline: 0;
    }
  
    .c-table--facility th {
      width: 38%;
    }
  
    .p-facility-access__map iframe {
      height: 320px;
    }
  }
  
  @media (max-width: 520px) {
    .c-table--facility,
    .c-table--facility tbody,
    .c-table--facility tr,
    .c-table--facility th,
    .c-table--facility td {
      display: block;
      width: 100%;
    }
  
    .c-table--facility tr {
      border-bottom: 1px solid #e6e6e6;
    }
  
    .c-table--facility th {
      border-bottom: 0;
      background: transparent;
      padding: 14px 0 6px;
    }
  
    .c-table--facility td {
      padding: 0 0 14px;
      border-bottom: 0;
      
    }
  }
  

  /* アクセス見出し：添付のように「短い青ライン」 */
.p-facility-access__title{
    position: relative;
    margin: 0 0 18px;
    padding: 0 0 14px;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    border-bottom: none; /* 以前の下線がある場合は消す */
  }
  
  .p-facility-access__title::after{
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 64px;        /* 線の長さ：好みで調整 */
    height: 4px;        /* 線の太さ */
    background: #1f5fbf;/* 青：好みで調整 */
    border-radius: 999px;
  }
  

  .p-contact__facility{
    padding-bottom: 100px;
  }
  @media screen and ( max-width:768px ){
    .p-contact__facility{
        padding-bottom: 0;
      }
  }


  @media screen and ( max-width:768px ){
    .p-contact__facility .l-page-content{
        padding-bottom: 0;
      }
  }


  .paragraph__lower{
    margin-bottom: 24px;
  }

  #sb_instagram{
    padding-bottom: 40px!important;
  }
  #sb_instagram.sbi_mob_col_2 #sbi_images{
    padding-inline: 16px;
    padding-block: 0;
  }


  .sf-area-two-step{
    width: 100%;
  }
  @media screen and ( max-width:1024px ){
    .sf-area-two-step{
        display: ruby;
      }
  }
  .sf-area-two-step select{
    display: block;
    width: 100%;
  }
  
  .sf-area-two-step__child{
    margin-top: 8px; /* 好みで */
  }
  
  .is-area-child-visible::after{
    top: 84% !important;
  }

  .p-contact__archive-facility .l-page-content{
padding-top: 0;
padding-bottom: 40px;
  }

  .p-contact__taxonomy .l-page-content{
    padding-top: 0;
    padding-bottom: 40px;
  }
  @media screen and ( max-width:1420px ){
    .padding__inline{
        padding-inline: 16px;
      }
  }


  /* ---- Image Modal (fade in/out) ---- */
.c-imgmodal {
    position: fixed;
    inset: 0;
  
    /* displayは固定（noneにしない） */
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
  
    background: rgba(0,0,0,.75);
    z-index: 9999;
  
    /* 初期状態（閉じてる） */
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  
    transition: opacity .25s ease, visibility .25s ease;
  }
  
  .c-imgmodal.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  
  .c-imgmodal__inner {
    position: relative;
    width: min(828px, 96vw);
    height: auto;
  
    /* 中身もふわっと */
    transform: translateY(8px) scale(.98);
    opacity: 0;
    transition: transform .25s ease, opacity .25s ease;
  }
  
  .c-imgmodal.is-open .c-imgmodal__inner {
    transform: translateY(0) scale(1);
    opacity: 1;
  }
  
  .c-imgmodal__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  
  /* ボタン（前のCSSから継続） */
  .c-imgmodal__close,
  .c-imgmodal__prev,
  .c-imgmodal__next {
    position: absolute;
    top: 12px;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    background: rgba(255,255,255,.9);
  }
  
  .c-imgmodal__close { right: 12px; }
  .c-imgmodal__prev  { left: 12px; top: 50%; transform: translateY(-50%); }
  .c-imgmodal__next  { right: 12px; top: 50%; transform: translateY(-50%); }
  
  .c-imgmodal__close:focus,
  .c-imgmodal__prev:focus,
  .c-imgmodal__next:focus {
    outline: 2px solid rgba(255,255,255,.9);
    outline-offset: 2px;
  }
  
  /* サムネ側：クリックできる感 */
  .p-facility-hero__thumbs img {
    cursor: zoom-in;
  }


  /* 動き専用（見た目は変えない） */
.js-btn-motion{
    /* aタグは inline だと transform が効きにくいので最低限これだけ */
    display: inline-flex;
    align-items: center;
  
    transition: transform .2s ease, opacity .2s ease, box-shadow .2s ease;
    will-change: transform;
  }
  
  .js-btn-motion:hover{
    transform: translateY(-2px);
  }
  
  .js-btn-motion:active{
    transform: translateY(0);
    opacity: .92;
  }
  
  /* キーボード操作でも分かるように（任意だけど推奨） */
  .js-btn-motion:focus-visible{
    outline: 2px solid currentColor;
    outline-offset: 3px;
  }

  .nav-links .page-numbers.current{
    color: #014B9F;
  }

  .nav-links{
    letter-spacing: 3px;
  }

  /* 「次へ」を矢印にする */
.nav-links a.next.page-numbers{
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  
    /* クリック領域（好みで調整） */
    width: 2em;
    height: 2em;
  
    /* テキストは見えないように（スクリーンリーダーには読ませる） */
    text-indent: -9999px;
    overflow: hidden;
    white-space: nowrap;
  }
  
  /* 矢印（>）をCSSで描画 */
  .nav-links a.next.page-numbers::after{
    content: "";
    width: 0.55em;
    height: 0.55em;
  
    /* 右上に向くL字を回転して「>」にする */
    border-top: 3px solid #014B9F;
    border-right: 3px solid #014B9F;
    transform: rotate(45deg);
  
    /* 微調整（不要なら消してOK） */
    margin-left: 0.1em;
  }
  
  /* ホバー時にちょい反応（任意） */
  .nav-links a.next.page-numbers:hover{
    opacity: .75;
  }

  .nav-links a.prev.page-numbers{
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2em;
    height: 2em;
    text-indent: -9999px;
    overflow: hidden;
    white-space: nowrap;
  }
  
  .nav-links a.prev.page-numbers::after{
    content: "";
    width: 0.55em;
    height: 0.55em;
    border-top: 3px solid #014B9F;
    border-left: 3px solid #014B9F;
    transform: rotate(-45deg);
  }


  .p-privacy-section p{
    margin-top: 6px;
    font-weight: normal;
  }


.p-privacy-section{
    text-align: left;
}


.c-privacy-title{
    margin-top: 24px;
    font-size: 20px;
}
@media screen and ( max-width:430px ){
    .c-privacy-title{

        font-size: 18px;
    }
}


.p-privacy-section a{
    color: #222;
}
.p-facility-hero__thumb {
    position: relative;
    overflow: visible;
    line-height: 0;
  }
  
  .p-facility-hero__thumbButton {
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
  }
  
  .p-facility-hero__thumbButton img {
    display: block;
    width: 100%;
    height: auto;
  }
  
  .p-facility-hero__thumb:focus-within {
    outline: 4px solid #005fcc;
    outline-offset: 4px;
  }

.p-news-detail__back{

}


.p-news-back-btn{
    
}
@media screen and ( max-width:430px ){
    .c-search-content{
        margin-top: 40px;
    }
}


.l-header__logo{
    max-width: 300px;
}