/* common */
:root {
    --blue-bg025: rgba(207, 221, 238, 0.25);
    --blue-bg050: rgba(207, 221, 238, 0.5);
    --blue-bg025-a: #F3F6FB;
    --blue-bg050-a: #E7EEF6;
    --blue: #376aa7;
    --blue2: #86aedd;
    --gray-bg:#F5F6F8;
    --gray-line:#E6E9EE;
    --gray-line-out:#C6C9D3;
    --link-bg:#f76280;
    --link-text:#3f81cc;
}
:where(a) {
    text-decoration: none;
}
:where(table) {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}

html {
    scroll-behavior: smooth;
}
body {
    background-color: #fff;
    font-family: "Noto Sans JP", Hiragino Sans, "ヒラギノ角ゴシック", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "メイリオ", Meiryo, "游ゴシック", YuGothic, "ＭＳ Ｐゴシック", sans-serif;
    text-align: left;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #333333;
    /* font-feature-settings: "palt"; */
    position: relative;
    overflow-x: hidden;
}
i {
    margin: 0 0.35em;
}
#wrapper {
    width: 100%;
}

/* for PC */
@media screen and (min-width: 768px) {
    :where(a:hover) {
        opacity: 0.75;
    }
    :where(a[href*="tel:"]) {
        pointer-events: none;
        cursor: default;
        text-decoration: none;
    }
    .pc-none {
        display: none;
    }
}

/* for SP */
@media screen and (max-width: 767px) {
    body {
        font-size: 14px;
    }
    a:hover:after, a:active:after, a:focus:after {
        width: 100%;
    }
    a:hover:after, a:active:after, a:focus:after {
        display: none;
    }
    .sp-none {
        display: none;
    }
}

/* page_top */
#page_top{
    position: fixed;
    z-index: 5;
    bottom: 1.5rem;
    right: 1.5rem;
    width: 3.5rem;
    height: 3.5rem;
    background: rgba(55, 106, 167, 0.6);
    border-radius: 100vh;
}
#page_top a{
    position: relative;
    width: 3.5rem;
    height: 3.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
#page_top a::before{
    content: '\f062';
    font-family: FontAwesome;
    font-weight: 900;
    font-size: 1.25rem;
    line-height: 1;
    color: #fff;
}
@media screen and (max-width: 767px){
    #page_top{
        bottom: 0.35rem;
        right: 0.35rem;
    }
}

/* footer */
#footer{
    background: #fff;
    padding: 2rem;
    text-align: center;
    font-size: 0.85rem;
}
#footer strong{
    margin-right: 0.15em;
    font-weight: 400;
}
#footer i{
    font-size: 0.85em;
}
#footer a{
    font-weight: 500;
    color: var(--blue);
}
@media screen and (max-width: 1024px){
    #footer{
        padding: 1rem;
    }
}
@media screen and (max-width: 767px){
    #footer{
        padding: 20px;
        text-align: left;
        font-size: 0.75rem;
    }
}


/* header */
#header{
    min-height: 66px;
    position: sticky;
    top: 0;
    z-index: 11;
    width: 100%;
    background-color: #376aa7;
}
#header .container{
    margin: 0 auto;
    max-width: 1160px;
    padding: 0 2rem 1rem;
}
#header .container .title1{
    padding: 20px 0;
    text-align: center;
    font-size: 2.25rem;
    line-height: 1.1;
    font-weight: 700;
    color: #fff;
}
#header .container .title1 span{
    display: inline-block;
    margin-right: 0.15em;
}

#header .container .title1 small{
    display: inline-block;
    margin: 0.15rem;
    font-size: 0.65em;
    font-weight: 500;
}
#header .container .header-copy{
    margin: 0 auto;
    padding: 14px 2.5rem;
    border-radius: 100vh;
    background-color: var(--blue-bg050-a);
    color: var(--blue);
    font-size: 0.85rem;
    line-height: 1.4;
    font-weight: 500;
    width: fit-content;
}
@media screen and (max-width: 1024px){
    #header .container .header-copy p{
        display: inline;
    }
}
@media screen and (max-width: 767px){
    #header .container{
        padding: 0 14px 14px;
    }
    #header .container .title1{
        padding: 14px 0;
        font-size: 1.75rem;
    }
    #header .container .header-copy{
        padding: 10px 30px;
        font-size: 0.75rem;
    }
    #header .container .header-copy p{
        display: inline;
    }
}



/* main */
.main{
    margin: 1rem auto;
    max-width: 1160px;
    padding: 0 2rem;
    background: #fff;
}
.title2{
    margin: 8rem auto 4rem;
    text-align: center;
    position: relative;
}
.main>.title2:first-child{
    margin-top: 6rem;
}

.title2 h2{
    margin-right: 0.5em;
    padding: 0 0 2rem;
    font-size: 1.75rem;
    font-weight: 700;
}
.title2 h2::after{
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    display: block;
    width: 12rem;
    border-bottom: 6px solid #f1f1f1;
}
.title3{
    margin: 2.5rem 0 0.75rem;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--blue);
}
.inner .title3:first-child{
    margin-top: 0;
}
.inner .contents-flex:has(.contents-text .title3:first-child){
    margin-top: 2.5rem;
}
:where(.inner a) {
    color: var(--link-text);
}
.inner p{
    line-height: 1.75;
}
.inner p+p{
    margin-top: 2em;
}
.inner .note-right{
    text-align: right;
}
.inner .notes{
    font-size: 87.5%;
}
.inner p.notes, .inner li.notes{
    line-height: 1.35;
}
.inner p.notes+p.notes{
    margin-top: 0.5em;
}

.contents-flex{
    width: 100%;
    display: flex;
}
.contents-flex:has(.contents-image img) .contents-text{
    width: 60%;
}
.contents-flex .contents-image{
    width: 40%;
}
.contents-flex .contents-image>div{
    margin-left: auto;
    width: 90%;
}
.contents-flex .contents-image div img{
    object-fit: cover;
    margin-bottom: 1rem;
    vertical-align: top;
}
.contents-flex .contents-image div img:has(+.notes){
    margin-bottom: 0.5rem;
}

.entry{
    margin: 6rem 0;
    padding: 3rem 0;
    text-align: center;
    background: #fff2f4;
    margin-left: calc(50% - 50vw) !important;
	padding-left: calc(50vw - 50%) !important;
    margin-right: calc(50% - 50vw) !important;
	padding-right: calc(50vw - 50%) !important;
}
.entry .title2{
    margin: 3.5rem auto;
}
.entry .title2 h2::after{
    border-bottom-color: rgba(247, 98, 128, 0.125);
}
.entry-res{
    font-size: 1.1rem;
    font-weight: 500;
}
.entry-btn{
    margin: 1rem auto 0;
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    width: fit-content;
}
.entry-btn>li{
    flex: 1;
}
.entry-btn a{
    display: block;
    width: 16em;
    max-width: 45vw;
    margin: 0.5rem 0;
    padding: 0.5em 1em;
    border: #fff 0.25rem solid;
    border-radius: 100vh;
    background: var(--link-bg);
    color: #fff;
    font-size: 1.5rem;
    line-height: 1.25;
    font-weight: 700;
    letter-spacing: 0.075em;
}
@media screen and (max-width: 1024px){
    .main{
        margin-top: 0;
        margin-bottom: 0;
    }
    .title2{
        margin-top: 3rem;
        margin-bottom: 3rem;
    }
    .main>.title2:first-child{
        margin-top: 3rem;
    }
    .title2 h2{
        padding-bottom: 1.5rem;
    }
    .title3{
        margin-top: 1.75rem;
        margin-bottom: 0.5rem;
    }
    .entry{
        margin: 3.5rem 0;
        padding: 1.75rem 0;
    }
    .entry .title2{
        margin: 1.75rem auto;
    }
}
@media screen and (max-width: 767px){
    .main{
        margin: 0;
        padding: 0 20px;
    }
    .title2{
        margin: 4rem auto 3rem;
    }
    .title2 h2{
        padding: 0 0 1.25rem;
        font-size: 1.35rem;
    }
    .main>.title2:first-child{
        margin-top: 3rem;
    }
    .title3{
        margin: 1.5rem 0 0.5rem;
        font-size: 1.125rem;
    }
    .contents-flex{
        flex-direction: column;
    }
    .contents-flex:has(.contents-image img) .contents-text{
        width: 100%;
    }
    .contents-flex .contents-image{
        margin-top: 1.5rem;
        width: 100%;
    }
    .contents-flex .contents-image div{
        margin-left: 0;
        width: 100%;
    }
    .contents-flex .contents-image div img{
        width: 100%;
    }
    .entry{
        margin: 1rem 0;
        padding: 1rem;
    }
    .entry .title2{
        margin: 1.25rem auto;
    }
    .entry-btn{
        margin: 0.5rem auto 0;
        display: block;
        width: 100%;
    }
    .entry-btn a{
        display: block;
        width: 90%;
        max-width: 90%;
        margin: 0.35rem auto;
        padding: 0.5em 1em;
        font-size: 1.25rem;
        line-height: 1.5;
    }
}

/* data-tbl */
.data-tbl {
    margin: 2rem auto;
}
.contents-text .data-tbl{
    margin-bottom: 0.5rem;
}
.data-tbl:has(+.notes) {
    margin-bottom: 0.75rem;;
}
.title3 + .data-tbl {
    margin-top: 0;
}
.data-tbl tr:nth-child(odd) {
    background-color: var(--gray-bg);
}

.data-tbl :is(th, td) {
    padding: 0.75rem 1.25rem;
    font-weight: 500;
    font-size: 1rem;
    line-height: 1.35;
    vertical-align: top;
}
.data-tbl th {
    font-size: 0.9rem;
    text-align: right;
    width: 14em;
    color: #666;
    border-right: 2px solid var(--gray-line);
}
@media screen and (max-width: 1024px){
    .data-tbl {
        margin-top: 1.75rem;
        margin-bottom: 1.75rem;
    }    
}
@media screen and (max-width: 767px){
    .data-tbl {
        display: block;
        width: 100%;
        margin: 2rem 0;
    }
    .data-tbl :is(th, td, tbody, tr) {
        display: block;
        width: 100%;
    }
    .data-tbl tr:nth-child(odd) {
        background: none;
    }
    .data-tbl :is(th, td) {
        padding: 0.75em 0.5rem;
        text-align: left;
        font-size: 0.95rem;
    }
    .data-tbl th {
        font-size: 0.8rem;
        border: none;
        background-color: var(--gray-bg);
    }
    /* .data-tbl th::before {
        content: "\f08d";
        font-family: FontAwesome;
        font-weight: 400;
        margin: 0 0.4em 0;
    } */

}

/* google-map */
.google-map {
    margin: 3.5rem auto;
    width: 100%;
    position: relative;
    height: 0;
    padding-top: calc((100% / 973) * 363);
}
.google-map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}
@media screen and (max-width: 1024px){
    .google-map {
        margin-top: 1.5rem;
        margin-bottom: 1.5rem;
    }
}
@media screen and (max-width: 767px){
    .google-map {
        margin: 1.5rem 0;
        width: auto;
        padding-top: 70%;
    }
    .data-tbl + .google-map {
        margin-top:0;
    }

}




