@charset "UTF-8";

/*========================================
Root
========================================*/
:root{
    --color-main:#5f5c57;
    --color-accent:#8b8379;
    --color-dark:#41413f;
    --color-text:#333333;
    --color-subtext:#666562;
    --color-bg:#f2f1ee;
    --color-bg-light:#f8f8f6;
    --color-line:#d6d3ce;
    --color-white:#ffffff;
}

/*========================================
Base
========================================*/
*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    font-family:
        "Noto Sans JP",
        "Yu Gothic",
        "YuGothic",
        sans-serif;
    color:var(--color-text);
    line-height:1.8;
    background:var(--color-white);
    -webkit-font-smoothing:antialiased;
    font-feature-settings:"palt";
}

img{
    max-width:100%;
    display:block;
}

a{
    color:inherit;
    text-decoration:none;
}

.inner{
    width:min(1100px,90%);
    margin:0 auto;
}

/*========================================
Header
========================================*/
.site-header{
    position:fixed;
    top:0;
    left:0;
    z-index:100;
    width:100%;
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(65,65,63,.08);
}

.header-inner{
    width:min(1200px,94%);
    height:74px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.site-logo img{
    height:42px;
    width:auto;
    display:block;
}

.header-nav{
    display:flex;
    align-items:center;
    gap:28px;
    font-size:14px;
    font-weight:700;
}

.header-nav a{
    transition:.25s ease;
}

.header-nav a:hover{
    opacity:.65;
}

.header-nav .nav-reserve{
    padding:10px 22px;
    border-radius:999px;
    background:var(--color-dark);
    color:var(--color-white);
}

/*========================================
Hero
========================================*/
.hero{
    position:relative;
    overflow:hidden;
}

.hero picture,
.hero img{
    display:block;
    width:100%;
}

.hero img{
    height:auto;
}

@media(min-width:769px){
    .hero{
        max-width:1400px;
        margin:75px auto 0;
    }
}

@media(max-width:768px){
    .hero{
        margin-top:75px;
    }
}

/*========================================
Event Intro
========================================*/
.event-intro{
    padding:100px 20px;
    background:var(--color-bg);
}

.event-intro .container{
    max-width:900px;
    margin:0 auto;
}

.event-intro__heading{
    margin-bottom:65px;
    text-align:center;
}

.event-intro__sub{
    display:inline-block;
    margin:0 0 24px;
    padding-bottom:9px;
    border-bottom:1px solid var(--color-accent);
    color:var(--color-accent);
    font-size:14px;
    font-weight:600;
    letter-spacing:.22em;
}

.event-intro__title{
    margin:0;
    color:var(--color-dark);
    font-family:
        "Yu Mincho",
        "Hiragino Mincho ProN",
        "YuMincho",
        "游明朝体",
        serif;
    font-size:46px;
    font-weight:600;
    line-height:1.6;
    letter-spacing:.07em;
}

/*----------------------------------------
Event Information
----------------------------------------*/
.event-intro__info{
    padding:50px 55px;
    background:var(--color-white);
    border-radius:4px;
    box-shadow:0 12px 35px rgba(45,45,43,.07);
}

.event-intro__info-title{
    margin:0 0 35px;
    color:var(--color-dark);
    font-family:
        "Yu Mincho",
        "Hiragino Mincho ProN",
        "YuMincho",
        "游明朝体",
        serif;
    font-size:28px;
    font-weight:600;
    text-align:center;
    letter-spacing:.08em;
}

.event-intro__list{
    margin:0 0 40px;
}

.event-intro__item{
    display:flex;
    padding:22px 0;
    border-bottom:1px solid var(--color-line);
}

.event-intro__item:first-child{
    padding-top:0;
}

.event-intro__item dt{
    width:140px;
    flex-shrink:0;
    color:var(--color-main);
    font-weight:700;
}

.event-intro__item dd{
    flex:1;
    margin:0;
    color:var(--color-text);
    line-height:1.8;
}

.event-intro__cta{
    text-align:center;
}

.event-intro__button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:360px;
    padding:18px 40px;
    border-radius:999px;
    background:var(--color-dark);
    color:var(--color-white);
    font-family:
        "Yu Mincho",
        "Hiragino Mincho ProN",
        "YuMincho",
        "游明朝体",
        serif;
    font-size:19px;
    font-weight:700;
    letter-spacing:.08em;
    transition:.3s ease;
}

.event-intro__button::after{
    content:"›";
    margin-left:12px;
    font-family:sans-serif;
    font-size:22px;
    line-height:1;
}

.event-intro__button:hover{
    background:var(--color-main);
    transform:translateY(-2px);
}

@media(max-width:768px){
    .event-intro{
        padding:65px 20px 70px;
    }

    .event-intro__heading{
        margin-bottom:42px;
    }

    .event-intro__sub{
        margin-bottom:18px;
        font-size:12px;
    }

    .event-intro__title{
        font-size:28px;
        line-height:1.65;
        letter-spacing:.05em;
    }

    .event-intro__info{
        padding:30px 24px;
    }

    .event-intro__info-title{
        margin-bottom:25px;
        font-size:24px;
    }

    .event-intro__item{
        display:block;
        padding:18px 0;
    }

    .event-intro__item dt{
        width:auto;
        margin-bottom:5px;
        font-size:14px;
    }

    .event-intro__button{
        width:100%;
        min-width:auto;
        padding:16px 20px;
        font-size:17px;
    }
}

/*========================================
Section Heading
========================================*/
.section-heading{
    margin-bottom:60px;
    text-align:center;
}

.section-heading__en{
    margin:0 0 12px;
    color:var(--color-accent);
    font-size:38px;
    font-weight:400;
    line-height:1.3;
    letter-spacing:.22em;
    text-transform:uppercase;
}

.section-heading__jp{
    margin:0;
    color:var(--color-dark);
    font-size:22px;
    font-weight:600;
    line-height:1.5;
    letter-spacing:.08em;
}

@media(max-width:768px){
    .section-heading{
        margin-bottom:40px;
    }

    .section-heading__en{
        margin-bottom:8px;
        font-size:28px;
    }

    .section-heading__jp{
        font-size:14px;
    }
}

/*========================================
Highlight
========================================*/
.highlight{
    padding:110px 20px;
    background:var(--color-white);
}

.highlight .container{
    max-width:1100px;
    margin:0 auto;
}

.highlight__grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:42px;
    max-width:1200px;
    margin:60px auto 0;
}

/*----------------------------------------
Highlight Card
----------------------------------------*/
.highlight__card{
    overflow:hidden;
    background:var(--color-white);
}

.highlight__head{
    min-height:108px;
    padding:20px 25px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--color-dark);
    color:var(--color-white);
}

.highlight__head h3{
    margin:0;
    color:var(--color-white);
    font-family:
        "Yu Mincho",
        "Hiragino Mincho ProN",
        "YuMincho",
        "游明朝体",
        serif;
    font-size:30px;
    font-weight:600;
    line-height:1.6;
    letter-spacing:.07em;
    text-align:center;
}

.highlight__image{
    overflow:hidden;
    background:var(--color-bg);
}

.highlight__image img{
    width:100%;
    height:auto;
    display:block;
    transition:transform .7s ease;
}

.highlight__card:hover .highlight__image img{
    transform:scale(1.02);
}

/*----------------------------------------
Highlight Text
----------------------------------------*/
.highlight__body{
    padding:28px 10px 0;
}

.highlight__body p{
    margin:0;
    color:var(--color-subtext);
    font-size:16px;
    line-height:2;
}

/*----------------------------------------
Highlight Tablet
----------------------------------------*/
@media(max-width:1024px){
    .highlight__grid{
        gap:30px;
    }

    .highlight__head{
        min-height:95px;
    }

    .highlight__head h3{
        font-size:25px;
    }
}

/*----------------------------------------
Highlight SP
----------------------------------------*/
@media(max-width:768px){
    .highlight{
        padding:75px 20px;
    }

    .highlight__grid{
        grid-template-columns:1fr;
        gap:42px;
        margin-top:40px;
    }

    .highlight__head{
        min-height:auto;
        padding:17px 18px;
    }

    .highlight__head h3{
        font-size:21px;
        line-height:1.55;
    }

    .highlight__body{
        padding:20px 5px 0;
    }

    .highlight__body p{
        font-size:15px;
        line-height:1.9;
    }
}
/*========================================
Highlight Scroll Animation
========================================*/
.highlight__card{
    opacity:0;
    transform:translateY(40px);
    transition:
        opacity .8s ease,
        transform .8s ease;
}

.highlight__card.is-show{
    opacity:1;
    transform:translateY(0);
}

.highlight__card:nth-child(2){
    transition-delay:.18s;
}
/*========================================
Recommend
========================================*/
.recommend{
    padding:80px 20px 85px;
    background:#fff;
}

.recommend .container{
    max-width:820px;
    margin:0 auto;
}

.recommend__title{
    position:relative;
    margin:0 0 38px;
    padding:0 0 20px;
    color:var(--color-dark);
    font-family:
        "Yu Mincho",
        "Hiragino Mincho ProN",
        "YuMincho",
        "游明朝体",
        serif;
    font-size:28px;
    font-weight:600;
    line-height:1.6;
    letter-spacing:.06em;
    text-align:center;
}

.recommend__title::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:0;
    width:44px;
    height:1px;
    background:var(--color-accent);
    transform:translateX(-50%);
}

.recommend__list{
    margin:0;
    padding:0;
    list-style:none;
    border-top:1px solid #d8d2c9;
}

.recommend__list li{
    position:relative;
    margin:0;
    padding:22px 20px 22px 54px;
    border-bottom:1px solid #d8d2c9;
    color:#333;
    font-size:17px;
    line-height:1.7;
}

.recommend__list li::before{
    content:"✓";
    position:absolute;
    top:50%;
    left:10px;
    display:flex;
    align-items:center;
    justify-content:center;
    width:26px;
    height:26px;
    border-radius:50%;
    background:#526fa7;
    color:#fff;
    font-size:16px;
    font-weight:700;
    line-height:1;
    transform:translateY(-50%);
}



.recommend__cta{
    margin-top:38px;
    text-align:center;
}

.recommend__button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:300px;
    padding:16px 36px;
    border-radius:999px;
    background:var(--color-dark);
    color:var(--color-white);
    font-family:
        "Yu Mincho",
        "Hiragino Mincho ProN",
        "YuMincho",
        "游明朝体",
        serif;
    font-size:17px;
    font-weight:700;
    letter-spacing:.06em;
    transition:.3s ease;
}

.recommend__button::after{
    content:"›";
    margin-left:12px;
    font-family:sans-serif;
    font-size:21px;
    line-height:1;
}

.recommend__button:hover{
    background:var(--color-main);
    transform:translateY(-2px);
}

@media(max-width:768px){
    .recommend{
        padding:60px 20px 65px;
    }

    .recommend__title{
        margin-bottom:30px;
        padding-bottom:17px;
        font-size:22px;
        line-height:1.6;
    }

    .recommend__list li{
        padding:18px 10px 18px 46px;
        font-size:15px;
    }

    .recommend__list li::before{
        left:6px;
        width:24px;
        height:24px;
        font-size:15px;
    }


    .recommend__cta{
        margin-top:32px;
    }

    .recommend__button{
        width:100%;
        min-width:0;
        padding:15px 20px;
        font-size:16px;
    }
}
/*========================================
Point
========================================*/
.point{
    padding:110px 20px;
    background:var(--color-bg);
}

.point .container{
    max-width:960px;
    margin:0 auto;
}

.point__item{
    margin-top:100px;
}

.point__item:first-of-type{
    margin-top:70px;
}

.point__number{
    display:flex;
    align-items:center;
    gap:18px;
    margin-bottom:24px;
    padding:0;
    border:0;
    color:var(--color-accent);
    font-size:14px;
    font-weight:700;
    line-height:1;
    letter-spacing:.18em;
}

.point__number::after{
    content:"";
    width:70px;
    height:1px;
    background:var(--color-accent);
}

.point__title{
    margin:0 0 22px;
    color:var(--color-dark);
    font-family:
        "Yu Mincho",
        "Hiragino Mincho ProN",
        "YuMincho",
        "游明朝体",
        serif;
    font-size:40px;
    font-weight:600;
    line-height:1.5;
    letter-spacing:.07em;
}

.point__text{
    max-width:850px;
    margin:0 0 38px;
    color:var(--color-subtext);
    font-size:16px;
    line-height:2.1;
}

.point__image{
    position:relative;
    overflow:hidden;
    background:var(--color-white);
}

.point__image img{
    width:100%;
    height:auto;
    display:block;
    transition:transform .8s ease;
}

.point__item:hover .point__image img{
    transform:scale(1.015);
}

.point__cta{
    margin-top:80px;
    text-align:center;
}

@media(max-width:768px){
    .point{
        padding:75px 20px;
    }

    .point__item{
        margin-top:70px;
    }

    .point__item:first-of-type{
        margin-top:50px;
    }

    .point__number{
        gap:12px;
        margin-bottom:18px;
        font-size:12px;
    }

    .point__number::after{
        width:45px;
    }

    .point__title{
        margin-bottom:18px;
        font-size:25px;
        line-height:1.55;
        letter-spacing:.05em;
    }

    .point__text{
        margin-bottom:28px;
        font-size:15px;
        line-height:1.95;
    }

    .point__cta{
        margin-top:60px;
    }
}
/*========================================
Point Image Scroll Animation
========================================*/
.point__image{
    opacity:0;
    transform:translateY(40px);
    transition:
        opacity .8s ease,
        transform .8s ease;
}

.point__image.is-show{
    opacity:1;
    transform:translateY(0);
}


/*========================================
Gallery
========================================*/
.gallery{
    padding:110px 20px 120px;
    background:var(--color-white);
}

.gallery .container{
    max-width:1100px;
    margin:0 auto;
}

.gallery__wrapper{
    position:relative;
    max-width:1000px;
    margin:0 auto;
}

.gallery__viewport{
    overflow:hidden;
    width:100%;
    background:var(--color-bg);
}

.gallery__track{
    display:flex;
    transition:transform .45s ease;
    will-change:transform;
}

.gallery__slide{
    flex:0 0 100%;
    user-select:none;
}

.gallery__slide img{
    display:block;
    width:100%;
    height:auto;
}

/*----------------------------------------
Gallery Dots
----------------------------------------*/
.gallery__dots{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:12px;
    margin-top:30px;
}

.gallery__dot{
    width:10px;
    height:10px;
    flex:0 0 10px;
    margin:0;
    padding:0;
    border:1px solid var(--color-main);
    border-radius:50%;
    background:transparent;
    appearance:none;
    -webkit-appearance:none;
    cursor:pointer;
    transition:.3s ease;
}

.gallery__dot.active{
    background:var(--color-dark);
    border-color:var(--color-dark);
}

.gallery__dot:hover{
    background:var(--color-accent);
    border-color:var(--color-accent);
}

/*----------------------------------------
Gallery Buttons
----------------------------------------*/
.gallery__prev,
.gallery__next{
    position:absolute;
    top:50%;
    z-index:20;
    width:52px;
    height:52px;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.9);
    box-shadow:0 6px 20px rgba(0,0,0,.12);
    color:var(--color-dark);
    font-size:22px;
    cursor:pointer;
    transform:translateY(-50%);
    transition:.25s ease;
}

.gallery__prev{
    left:18px;
}

.gallery__next{
    right:18px;
}

.gallery__prev:hover,
.gallery__next:hover{
    background:var(--color-white);
    transform:translateY(-50%) scale(1.06);
}

/*----------------------------------------
Gallery Tablet
----------------------------------------*/
@media(max-width:1024px){
    .gallery{
        padding:90px 20px 100px;
    }

    .gallery__prev,
    .gallery__next{
        width:48px;
        height:48px;
    }
}

/*----------------------------------------
Gallery SP
----------------------------------------*/
@media(max-width:768px){
    .gallery{
        padding:75px 20px 80px;
    }

    .gallery__dots{
        gap:10px;
        margin-top:22px;
    }

    .gallery__dot{
        width:9px;
        height:9px;
        flex-basis:9px;
    }

    .gallery__prev,
    .gallery__next{
        width:40px;
        height:40px;
        font-size:17px;
    }

    .gallery__prev{
        left:8px;
    }

    .gallery__next{
        right:8px;
    }
}
/*========================================
Reserve Form
========================================*/
.reserve-form-section{
    padding:110px 20px 120px;
    background:var(--color-dark);
    color:var(--color-white);
}

.reserve-form-section .section-en,
.reserve-form-section h2,
.reserve-form-section .reserve-lead{
    color:var(--color-white);
}

.reserve-form-section .section-en{
    margin:0 0 12px;
    font-size:38px;
    font-weight:400;
    line-height:1.3;
    letter-spacing:.22em;
    text-align:center;
}

.reserve-form-section h2{
    margin:0 0 20px;
    font-family:
        "Yu Mincho",
        "Hiragino Mincho ProN",
        "YuMincho",
        "游明朝体",
        serif;
    font-size:34px;
    font-weight:600;
    line-height:1.5;
    letter-spacing:.07em;
    text-align:center;
}

.reserve-lead{
    margin:0 0 40px;
    text-align:center;
    line-height:1.9;
}

/*----------------------------------------
Form Wrapper
----------------------------------------*/
.reserve-form-wrap{
    max-width:980px;
    margin:0 auto;
    padding:46px 48px;
    background:var(--color-white);
    color:var(--color-text);
    text-align:left;
    border-radius:4px;
    box-shadow:0 18px 45px rgba(0,0,0,.16);
}

.reserve-form-note{
    margin:0 0 30px;
    color:var(--color-subtext);
    text-align:center;
    font-size:14px;
    font-weight:600;
}

.reserve-form-note a{
    color:var(--color-main);
    text-decoration:underline;
    text-underline-offset:3px;
}

/*----------------------------------------
Honeypot
----------------------------------------*/
.hp-wrap{
    position:absolute;
    left:-9999px;
    top:auto;
    width:1px;
    height:1px;
    overflow:hidden;
}

.hp-wrap input{
    pointer-events:none;
}

/*----------------------------------------
Required Badge
----------------------------------------*/
.cf-badge{
    display:inline-block;
    margin-left:8px;
    padding:2px 8px;
    border-radius:999px;
    font-size:11px;
    line-height:1.5;
    vertical-align:middle;
}

.cf-badge.req{
    background:var(--color-dark);
    color:var(--color-white);
}

/*========================================
Reservation Calendar
========================================*/
.reservation-weekly{
    margin:0 0 38px;
    padding:0;
    border:0;
}

.reservation-weekly legend{
    margin-bottom:14px;
    color:var(--color-dark);
    font-family:
        "Yu Mincho",
        "Hiragino Mincho ProN",
        "YuMincho",
        "游明朝体",
        serif;
    font-size:22px;
    font-weight:600;
    letter-spacing:.04em;
}

.week-scroll-note{
    margin:0 0 14px;
    color:var(--color-subtext);
    font-size:13px;
}

.week-table-block{
    margin-bottom:28px;
}

.week-month-label{
    margin:0 0 10px;
    color:var(--color-main);
    font-size:15px;
    font-weight:700;
    letter-spacing:.05em;
}

.week-table-scroll{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}

.week-table{
    min-width:760px;
    width:100%;
    border-collapse:separate;
    border-spacing:6px;
}

.week-date{
    padding:10px 8px;
    border-radius:3px;
    background:var(--color-bg);
    color:var(--color-dark);
    text-align:center;
    white-space:nowrap;
    font-size:14px;
}

.month-mini{
    display:block;
    color:var(--color-accent);
    font-size:11px;
}

.week-cell{
    height:56px;
    text-align:center;
    vertical-align:middle;
}

.week-cell.is-holiday,
.week-cell.is-disabled{
    border-radius:3px;
    background:#ececea;
    color:#aaa9a6;
    font-weight:700;
}

.week-slot-radio{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.week-slot-label{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:8px 10px;
    border:1px solid var(--color-line);
    border-radius:3px;
    background:var(--color-white);
    color:var(--color-dark);
    font-weight:700;
    cursor:pointer;
    transition:.2s ease;
}

.week-slot-label:hover{
    border-color:var(--color-accent);
    background:var(--color-bg-light);
}

.week-slot-radio:checked + .week-slot-label{
    border-color:var(--color-dark);
    background:var(--color-dark);
    color:var(--color-white);
}

.week-slot-label.is-disabled{
    cursor:default;
    border-color:#e4e4e2;
    background:#ececea;
    color:#aaa9a6;
}

.week-selected-text{
    margin:16px 0 0;
    padding:14px 18px;
    border-left:3px solid var(--color-accent);
    background:var(--color-bg);
    color:var(--color-dark);
    font-weight:700;
}

.datetime-error{
    margin:0 0 12px;
    color:#a94442;
    font-weight:700;
}

/*========================================
Reserve Fields
========================================*/
.reserve-form-fields{
    display:grid;
    gap:22px;
}

.reserve-form-fields label{
    display:block;
    color:var(--color-dark);
    font-weight:700;
}

.reserve-form-fields input,
.reserve-form-fields textarea{
    width:100%;
    margin-top:8px;
    padding:14px 16px;
    border:1px solid var(--color-line);
    border-radius:3px;
    outline:none;
    background:var(--color-white);
    color:var(--color-text);
    font:inherit;
    transition:border-color .2s ease,box-shadow .2s ease;
}

.reserve-form-fields input:focus,
.reserve-form-fields textarea:focus{
    border-color:var(--color-accent);
    box-shadow:0 0 0 3px rgba(139,131,121,.10);
}

.reserve-form-fields textarea{
    resize:vertical;
}

/*----------------------------------------
Reserve Submit
----------------------------------------*/
.reserve-submit{
    display:flex;
    align-items:center;
    justify-content:center;
    width:min(340px,100%);
    margin:38px auto 0;
    padding:17px 28px;
    border:0;
    border-radius:999px;
    background:var(--color-dark);
    color:var(--color-white);
    font:inherit;
    font-weight:700;
    letter-spacing:.05em;
    cursor:pointer;
    transition:.3s ease;
    box-shadow:0 8px 22px rgba(0,0,0,.12);
}

.reserve-submit:hover{
    background:var(--color-main);
    transform:translateY(-2px);
}

/*----------------------------------------
Contact Slot
----------------------------------------*/
.reserve-table{
    table-layout:fixed;
    width:100%;
}

.reserve-table th,
.reserve-table td{
    width:calc(100% / 7);
}

.reserve-table .is-empty{
    visibility:hidden;
    pointer-events:none;
}

.reserve-table td.is-contact{
    border-radius:3px;
    background:var(--color-bg-light);
    color:var(--color-main);
    font-size:12px;
    font-weight:700;
    line-height:1.4;
}

.week-cell.is-contact{
    background:var(--color-bg-light);
}

.week-slot-label.is-contact{
    display:block;
    color:var(--color-main);
    font-size:12px;
    font-weight:700;
    line-height:1.3;
}

/*========================================
Reserve Form SP
========================================*/
@media(max-width:768px){
    .reserve-form-section{
        padding:75px 20px 90px;
    }

    .reserve-form-section .section-en{
        font-size:28px;
    }

    .reserve-form-section h2{
        font-size:26px;
    }

    .reserve-lead{
        margin-bottom:32px;
        font-size:15px;
        text-align:left;
    }

    .reserve-form-wrap{
        padding:28px 18px;
        border-radius:3px;
    }

    .reserve-form-note{
        text-align:left;
    }

    .reservation-weekly legend{
        font-size:20px;
    }

    .week-table{
        min-width:680px;
        border-spacing:5px;
    }

    .week-date{
        font-size:13px;
    }

    .week-slot-label{
        min-height:46px;
        font-size:13px;
    }

    .reserve-form-fields{
        gap:18px;
    }

    .reserve-submit{
        width:100%;
    }
}

/*========================================
Concept Plan
========================================*/
.concept-plan{
    margin:2.5em auto 3em;
}

.concept-plan picture{
    display:block;
}

.concept-plan img{
    display:block;
    width:100%;
    max-width:1000px;
    height:auto;
    margin:0 auto;
    border-radius:3px;
    box-shadow:0 10px 30px rgba(0,0,0,.07);
}

/*========================================
Footer
========================================*/
.site-footer{
    padding:55px 0 80px;
    background:#343532;
    color:var(--color-white);
}

.footer-inner{
    width:min(1100px,90%);
    margin:0 auto;
}

.footer-company{
    margin-bottom:26px;
}

.footer-logo{
    margin:0 0 12px;
    font-size:22px;
    font-weight:700;
    letter-spacing:.08em;
}

.footer-address{
    margin:0;
    line-height:1.9;
    opacity:.78;
}

.footer-site-link{
    margin-top:20px;
}

.footer-site-link a{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--color-white);
    font-weight:700;
    opacity:.82;
    transition:.3s ease;
}

.footer-site-link a::after{
    content:"→";
}

.footer-site-link a:hover{
    opacity:1;
}

.footer-copy{
    margin-top:26px;
    padding-top:24px;
    border-top:1px solid rgba(255,255,255,.14);
    font-size:13px;
    opacity:.58;
}

/*========================================
Fixed CTA
========================================*/
.fixed-cta{
    display:none;
}

/*========================================
Common Button
========================================*/
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:210px;
    padding:15px 30px;
    border-radius:999px;
    font-weight:700;
    line-height:1.4;
    transition:.25s ease;
}

.btn:hover{
    opacity:.88;
    transform:translateY(-2px);
}

.btn-main{
    background:var(--color-dark);
    color:var(--color-white);
}

.btn-sub{
    background:var(--color-white);
    color:var(--color-dark);
}

.btn-tel{
    background:#343532;
    color:var(--color-white);
}

/*========================================
Common Section
========================================*/
.section{
    padding:100px 0;
}

.section-en{
    margin:0 0 8px;
    color:var(--color-accent);
    font-size:13px;
    font-weight:700;
    letter-spacing:.18em;
    text-align:center;
}

.section h2{
    margin:0 0 34px;
    color:var(--color-dark);
    font-size:clamp(28px,4vw,42px);
    line-height:1.45;
    text-align:center;
}

.lead{
    max-width:820px;
    margin:0 auto 56px;
    font-size:17px;
    text-align:center;
}

/*========================================
SP Common
========================================*/
@media(max-width:768px){
    body{
        padding-bottom:58px;
    }

    .header-inner{
        height:62px;
    }

    .site-logo img{
        height:34px;
    }

    .header-nav{
        gap:0;
    }

    .header-nav a:not(.nav-reserve){
        display:none;
    }

    .header-nav .nav-reserve{
        padding:8px 16px;
        font-size:13px;
    }

    .section{
        padding:72px 0;
    }

    .section h2,
    .section-en{
        text-align:left;
    }

    .lead{
        margin-bottom:36px;
        font-size:15px;
        text-align:left;
    }

    .fixed-cta{
        position:fixed;
        left:0;
        bottom:0;
        z-index:200;
        display:grid;
        grid-template-columns:1fr 1fr;
        width:100%;
        box-shadow:0 -4px 18px rgba(0,0,0,.10);
    }

    .fixed-cta a{
        display:flex;
        align-items:center;
        justify-content:center;
        height:58px;
        color:var(--color-white);
        font-size:14px;
        font-weight:700;
    }

    .fixed-cta a:first-child{
        background:#343532;
    }

    .fixed-cta a:last-child{
        background:var(--color-main);
    }
}
/*========================================
Reservation - form-reserve.css color adjust
========================================*/
.reserve-form-section{
    background:var(--color-dark);
}

.reserve-form-section .section-en,
.reserve-form-section h2,
.reserve-form-section .reserve-lead{
    color:var(--color-white);
}

.reserve-form-section .reserve-lead a{
    color:var(--color-white);
    text-decoration:underline;
    text-underline-offset:3px;
}

/*----------------------------------------
Reservation Calendar
Actual classes used in index.php
----------------------------------------*/
.reserve-calendar{
    border:0;
    margin:0 0 36px;
    padding:0;
}

.reserve-calendar legend{
    color:var(--color-dark);
}

.form-badge.req{
    background:var(--color-dark);
    color:var(--color-white);
}

.reserve-month-label{
    color:var(--color-main);
}

.reserve-table th{
    color:var(--color-dark);
}

.reserve-table th.is-holiday{
    color:#aaa9a6;
}

.reserve-radio:checked + .reserve-slot{
    background:var(--color-dark);
    border-color:var(--color-dark);
    color:var(--color-white);
}

.reserve-slot:hover{
    border-color:var(--color-accent);
    background:var(--color-bg-light);
}

.reserve-selected-text{
    border-left:3px solid var(--color-accent);
    background:var(--color-bg);
    color:var(--color-dark);
}

.reserve-table td.is-contact{
    background:var(--color-bg-light);
    color:var(--color-main);
}

.datetime-error{
    color:#a94442;
}

/*========================================
Anchor Position
========================================*/
#highlight,
#recommend,
#point,
#gallery,
#reserve{
    scroll-margin-top:74px;
}

/*========================================
Selection
========================================*/
::selection{
    background:var(--color-accent);
    color:var(--color-white);
}

/*========================================
Focus
========================================*/
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible{
    outline:2px solid var(--color-accent);
    outline-offset:3px;
}

/*========================================
SP Final Adjustment
========================================*/
@media(max-width:768px){
    #highlight,
    #recommend,
    #point,
    #gallery,
    #reserve{
        scroll-margin-top:62px;
    }

    .reserve-form-section .reserve-lead br{
        display:none;
    }
}

/*========================================
Reduced Motion
========================================*/
@media(prefers-reduced-motion:reduce){
    html{
        scroll-behavior:auto;
    }

    *,
    *::before,
    *::after{
        transition-duration:.01ms !important;
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
    }
}

/*========================================
PC無改行、SP改行
========================================*/

.sp-br{
    display:none;
}
@media(max-width:768px){
    .sp-br{
        display:block;
    }
}