@charset "UTF-8";

:root{
    --font-hiragino-sans:"Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro";
    --font-gothic:var(--font-hiragino-sans), "Meiryo", sans-serif;
    --font-m-plus-rounded-1c:"M PLUS Rounded 1c", sans-serif;
    --font-maru-gothic:"Hiragino Maru Gothic ProN", var(--font-m-plus-rounded-1c);
    --font-en:montserrat, arial, sans-serif;
    --color:#333;
    --noscript:2000;
    --dialog:1001;
    --modalbackdrop:1000;
    --dialog-of-inert:999;
    --z-index-floating-pagetop:900:}

:lang(en){
    font-family:var(--font-en);
}

.is-focus, :focus:not(:focus-visible){
    outline:0;
}

*, ::before, ::after{
    box-sizing:border-box;
}

@keyframes zoom-main-visual{
  0%{
    scale:0;
  }

  70%{
    scale:1.5;
  }

  100%{
    scale:1;
  }
}

@keyframes fly-main-visual-decoration{
  0%{
    translate:-50% 50%;
    opacity:0;
  }

  100%{
    translate:0 0;
    opacity:1;
  }
}

@keyframes zoom-heading{
  0%{
    scale:0;
  }

  70%{
    scale:1.5;
  }

  100%{
    scale:1;
  }
}

@keyframes region-about-turn{
  0%, 100%{ transform:rotate(0deg); }
  25%{ transform:rotate(-2.5deg); }
  75%{ transform:rotate(2.5deg); }
}

@keyframes scroll-effect-fadein{
  from{
    opacity:0;
    transform:translateY(20%);
  }

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

@keyframes twinkle-anim{
  0%, 100%{
    fill:#F39800;
    transform:scale(1);
  }

  50%{
    fill:#fff;
    transform:scale(0.875);
  }
}

html{
    height:100%;
    font-family:var(--font-gothic);
    font-size:0.625em;
    scroll-behavior:smooth;
    scroll-padding-top:72px;
    -webkit-text-size-adjust:100%;
            text-size-adjust:100%;
}

html::after{
        display:block;
        content:"";
        position:fixed;
        z-index:-1;
        inset:0;
        margin:auto;
        background-color:rgb(0, 0, 0, 0.7);
        visibility:hidden;
        opacity:0;
        transition:visibility 0.3s, opacity 0.3s;
    }

html.is-modal{
        overflow:hidden;
        scroll-behavior:auto;
    }

html.is-modal::after{
            z-index:var(--modalbackdrop);
            visibility:visible;
            opacity:1;
        }

body{
    margin:auto;
    min-width:320px;
    font-size:1.4rem;
    line-height:1.5;
    color:var(--color);
    background-color:#FCF9F7;
}

html.is-modal body{
        overflow:hidden;
    }

main{
    display:block;
}

h1, h2, h3, h4, h5, h6{
    font-size:2rem;
    font-weight:400;
    line-height:inherit;
}

figure, p{
    margin:0;
}

ul, ol{
    padding:0;
    list-style:none;
}

dl dt,dl dd{
        padding:0;
        margin:0;
    }

ul ul, ul ol, ol ol, ol dl, dl ol, dl ul, dl dl{
    margin:0;
}

table{
    border-collapse:collapse;
    border-spacing:0;
}

table th,table td{
        word-break:break-all;
    }

em{
    font-style:normal;
    font-weight:700;
}

strong{
    font-style:normal;
    font-weight:700;
}

small, kbd, samp{
    font-family:inherit;
}

code{
    color:var(--color);
    -webkit-user-select:all;
            user-select:all;
}

abbr[title]{
    -webkit-text-decoration:none;
    text-decoration:none;
}

address{
    font-style:normal;
}

img{
    max-width:100%;
    height:auto;
    border-style:none;
}

:link, :visited{
    color:#0042a0;
    -webkit-text-decoration:underline;
    text-decoration:underline;
}

a{
    word-break:break-all;
}

a:not([href],
[role="button"]){
    cursor:default;
    -webkit-text-decoration:none;
    text-decoration:none;
}

[href^="tel:"]{
    -webkit-text-decoration:none;
    text-decoration:none;
    word-break:break-word;
}

button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"]:not([aria-disabled="true"]), [role="tab"]:not([aria-selected="true"]){
    cursor:pointer;
}

button{
    overflow:visible;
    padding:0;
    border:0;
    margin:auto;
    background:transparent;
    color:inherit;
    font-family:inherit;
    font-size:inherit;
    line-height:inherit;
    word-break:break-all;
}

button:disabled,button[aria-disabled="true"]{
        cursor:default;
    }

::placeholder{
    opacity:1;
}

iframe{
    border:0;
}

p:has(> small){
    font-size:1.2rem;
}

p:has( > small) small{
        font-size:inherit;
    }

:is(.p-regionIntro__inner,.p-intro-box__areaTitle,.p-intro-box__areaText,.p-intro-box__areaImage) > :first-child{
        margin-top:0 !important;
    }

:is(.p-regionIntro__inner,.p-intro-box__areaTitle,.p-intro-box__areaText,.p-intro-box__areaImage) > :last-child{
        margin-bottom:0 !important;
    }

.l-header{
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:1001;
    margin:0 auto;
    background-color:#FCF9F7;
    container:header / inline-size;
}

.l-header__inner{
    display:grid;
    align-items:center;
}

.l-header__areaLogo{
    display:flex;
    align-items:end;
}

.l-headerLogo, .l-headerLogo-choHappyTurn{
    display:inline-block;
    line-height:1;
    vertical-align:middle;
}

.l-headerLogo__image, .l-headerLogo-choHappyTurn__image{
    vertical-align:bottom;
}

.l-headerToc__list{
    margin:0;
}

.l-headerToc__link{
    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;
    border-radius:9em;
    border:2px solid #FCC800;
    padding:5px;
    font-weight:700;
    text-align:center;
    background-color:#FEDD6B;
}

.l-headerToc__link:any-link{
        -webkit-text-decoration:none;
        text-decoration:none;
    }

.l-headerToc__label{
    display:flex;
    flex-direction:column;
    gap:5px;
    align-items:center;
    justify-content:center;
}

:is(.l-headerToc__link,.l-headerToc__label)::before,:is(.l-headerToc__link,.l-headerToc__label)::after{
        display:block;
        content:"";
        position:absolute;
        border-radius:9em;
        margin:auto;
        background-color:#FCC800;
    }

.l-headerToc__labelSub, .l-headerToc__labelMain{
    position:relative;
    z-index:1;
    line-height:1;
    letter-spacing:0.05em;
    word-break:keep-all;
    color:#E60012;
}

.l-headerToc__labelSub{
    font-family:var(--font-m-plus-rounded-1c);
    font-weight:700;
}

.l-headerToc__labelSub [data-stroke-text]{
        --stroke-width:0.6px;
        --stroke-color:currentcolor;
        --bg-stroke-width:3.4px;
        --bg-stroke-color:#fff;
    }

.l-headerToc__labelMain{
    font-family:var(--font-maru-gothic);
}

.l-headerToc__labelMain [data-stroke-text]{
        --stroke-width:0.3px;
        --stroke-color:currentcolor;
        --bg-stroke-width:3.4px;
        --bg-stroke-color:#fff;
    }

.p-main-visual{
    position:relative;
    margin-top:72px;
}

.p-main-visual__inner{
    position:relative;
    overflow:hidden;
}

.p-main-visual__main{
    position:absolute;
    margin:0;
}

.p-main-visual__sub{
    margin:0;
}

.p-main-visual__decoration{
    position:absolute;
    z-index:1;
    left:2.13333vw;
    bottom:-3.2vw;
    max-width:41.86667vw;
    pointer-events:none;
}

.p-main-visual__image{
    width:100%;
    vertical-align:bottom;
}

.l-main-content{
    position:relative;
}

.l-main-content__inner{
    position:relative;
    z-index:1;
}

@media (hover: hover){
        :is(:link,:visited):hover{
            -webkit-text-decoration:none;
            text-decoration:none;
        }
    :is(:link, :visited):hover{
        -webkit-text-decoration:none;
        text-decoration:none;
    }

    .l-headerHamburgerButton:not(:disabled), :is(.l-headerLogo, .l-headerLogo-choHappyTurn, .l-headerToc__link):any-link{
        color:currentcolor;
        -webkit-text-decoration:none;
        text-decoration:none;
        transition:opacity 0.5s;
    }

        :is(.l-headerHamburgerButton:not(:disabled),:is(.l-headerLogo,.l-headerLogo-choHappyTurn,.l-headerToc__link):any-link):hover{
            opacity:0.7;
        }}

@media (max-width: 768.98px){
    .l-header__areaLogo{
        gap:16px;
        padding:5px 0 12px 20px;
    }

    .l-headerLogo{
        max-width:55px;
    }

    .l-headerLogo-choHappyTurn{
        max-width:116px;
    }

    .l-headerToc__logo{
        margin-inline:auto;
        max-width:224px;
    }

    .l-headerToc__list{
        display:grid;
        grid-template-columns:repeat(2, 137px);
        gap:21px;
        justify-content:center;
        margin-block:40px;
    }

    .l-headerToc__link{
        min-height:60px;
    }

        .l-headerToc__item:nth-child(4n-2) .l-headerToc__link,.l-headerToc__item:nth-child(4n-1) .l-headerToc__link{
            border-color:#FCC800;
            background-color:#FCC800;
        }
        :is(.l-headerToc__link,.l-headerToc__label)::before,:is(.l-headerToc__link,.l-headerToc__label)::after{
            inset:0 28px;
            height:2px;
        }
            :is(.l-headerToc__item:nth-child(4n-2) :is(.l-headerToc__link,.l-headerToc__label),.l-headerToc__item:nth-child(4n-1) :is(.l-headerToc__link,.l-headerToc__label))::before,:is(.l-headerToc__item:nth-child(4n-2) :is(.l-headerToc__link,.l-headerToc__label),.l-headerToc__item:nth-child(4n-1) :is(.l-headerToc__link,.l-headerToc__label))::after{
                background-color:#F8B500;
            }
        .l-headerToc__link::before{
            transform:translateY(-14px);
        }

        .l-headerToc__link::after{
            transform:translateY(-5px);
        }
        .l-headerToc__label::before{
            transform:translateY(5px);
        }

        .l-headerToc__label::after{
            transform:translateY(14px);
        }

    .l-headerToc__labelSub{
        font-size:1.4rem;
    }

    .l-headerToc__labelMain{
        font-size:1rem;
    }}

@media (max-width: 768.98px) and (scripting: enabled){
    .l-header__inner{
        grid-template-columns:1fr max-content;
    }

    .l-header__areaLogo{
        grid-column:1 / 2;
        grid-row:1 / 2;
        transition:opacity 0.5s, visibility 0.5s;
    }

        .is-modal .l-header__areaLogo{
            opacity:0;
            visibility:hidden;
        }

    .l-header__areaHamburgerButton{
        grid-column:2 / 3;
        grid-row:1 / 2;
        align-self:center;
        padding:0 20px;
    }

    .l-header__areaToc{
        grid-column:1 / 3;
        grid-row:2 / 3;
    }

    .l-headerToc__inner{
        border-bottom:4px solid #E60012;
        padding:0 20px 80px;
        background-image:url(../images/index_bg_l-headerToc__inner_top.svg), url(../images/index_bg_l-headerToc__inner_bottom.svg);
        background-repeat:no-repeat, no-repeat;
        background-position:16px 98px, calc(100% - 13px) calc(100% - 28px);
    }

    .l-headerHamburgerButton{
        display:flex;
        align-items:center;
        justify-content:center;
        position:relative;
        border-radius:50%;
        border:2px solid #FCC800;
        min-width:46px;
        min-height:46px;
        text-align:center;
        vertical-align:bottom;
        background-color:#FEDD6B;
        overflow:hidden;
        transition:all 0.5s;
    }

        .l-headerHamburgerButton::before,.l-headerHamburgerButton::after{
            display:block;
            content:"";
            position:absolute;
            inset:0;
            border-radius:9em;
            margin:auto;
            width:30px;
            height:2px;
            background-color:#FCC800;
            transition:all 0.5s;
        }

        .l-headerHamburgerButton::before{
            transform:translateY(-10px);
        }

        .l-headerHamburgerButton::after{
            transform:translateY(10px);
        }
            .l-headerHamburgerButton[aria-expanded="true"]::before{
                transform:rotate(-45deg);
            }

            .l-headerHamburgerButton[aria-expanded="true"]::after{
                transform:rotate(45deg);
            }

    .l-headerHamburgerButton__inner::after{
        display:block;
        content:"";
        position:absolute;
        inset:0;
        border-radius:9em;
        margin:auto;
        width:36px;
        height:2px;
        background-color:#FCC800;
        transition:all 0.5s;
    }

    :is(.l-headerHamburgerButton[aria-expanded="true"] .l-headerHamburgerButton__inner)::after{
        opacity:0;
    }

    .l-headerHamburgerButton__label{
        position:relative;
        z-index:1;
        font-family:var(--font-m-plus-rounded-1c);
        font-weight:700;
        font-size:1rem;
        line-height:1;
        letter-spacing:0.05em;
        vertical-align:middle;
        color:#E60012;
    }

        .l-headerHamburgerButton__label [data-stroke-text]{
            --stroke-width:0.6px;
            --stroke-color:currentcolor;
            --bg-stroke-width:3.4px;
            --bg-stroke-color:#fff;
        }

    :is(.l-headerHamburgerButton[aria-expanded="true"] .l-headerHamburgerButton__label){
        opacity:0;
    }

    .js-hamburgerMenu__state{
        position:absolute;
        z-index:-1;
        top:100%;
    }

    .js-hamburgerMenu{
        overflow:hidden;
        height:0;
        opacity:0;
        visibility:hidden;
        transition:height 0.5s, opacity 0.5s, visibility 0.5s;
    }

        .js-hamburgerMenu.is-open{
            overflow:auto;
            height:auto;
            opacity:1;
            visibility:visible;
        }}

@media (min-width: 768.02px){
    html{
        height:100%;
        scroll-padding-top:120px;
    }

    body{
        font-size:1.6rem;
    }
    p:has(> small){
        font-size:1.4rem;
    }
    .l-header{
        padding:0 min(40px, 2.77778vw);
    }

    .l-header__inner{
        grid-template-columns:max-content 1fr;
        gap:30px;
        margin-inline:auto;
        max-width:1360px;
    }

    @container header (max-width: 920px){
        .l-header__inner{
            grid-template-columns:240px 1fr;
            gap:20px;
        }
    }

    .l-header__areaLogo{
        grid-column:1 / 2;
        grid-row:1 / 2;
        display:flex;
        justify-content:space-between;
        gap:20px;
        padding-block:8px 18px;
        min-width:328px;
        max-width:328px;
    }

    @container header (max-width: 920px){
        .l-header__areaLogo{
            gap:10px;
            min-width:auto;
        }
    }

    .l-header__areaToc{
        grid-column:2 / 3;
        grid-row:1 / 2;
        justify-self:end;
        padding-block:20px;
        width:100%;
        min-width:450px;
        max-width:852px;
    }

    .l-headerLogo{
        width:100%;
        max-width:92px;
    }

    .l-headerLogo-choHappyTurn{
        width:100%;
        max-width:194px;
    }

    .l-headerLogo__image, .l-headerLogo-choHappyTurn__image{
        width:100%;
    }

    .l-headerToc__logo{
        display:none;
    }

    .l-headerToc__list{
        display:flex;
        justify-content:space-between;
        gap:20px;
    }

    .l-headerToc__item{
        flex:1;
        max-width:183px;
    }

    .l-headerToc__link{
        min-height:80px;
    }

        .l-headerToc__item:nth-child(even) .l-headerToc__link{
            border-color:#FCC800;
            background-color:#FCC800;
        }
        :is(.l-headerToc__link,.l-headerToc__label)::before,:is(.l-headerToc__link,.l-headerToc__label)::after{
            inset:0 min(37px, 2.56944vw);
            height:3px;
        }
            :is(.l-headerToc__item:nth-child(even) :is(.l-headerToc__link,.l-headerToc__label))::before,:is(.l-headerToc__item:nth-child(even) :is(.l-headerToc__link,.l-headerToc__label))::after{
                background-color:#F8B500;
            }
        .l-headerToc__link::before{
            transform:translateY(-18px);
        }

        .l-headerToc__link::after{
            transform:translateY(-6px);
        }
        .l-headerToc__label::before{
            transform:translateY(6px);
        }

        .l-headerToc__label::after{
            transform:translateY(18px);
        }

    .l-headerToc__labelSub{
        font-size:2.4rem;
    }

    @container header (max-width: 920px){
        .l-headerToc__labelSub{
            font-size:1.4rem;
        }
    }

    .l-headerToc__labelMain{
        font-size:1.3rem;
    }

    @container header (max-width: 920px){
        .l-headerToc__labelMain{
            font-size:1rem;
        }
    }
    .p-main-visual{
        margin-top:120px;
    }

    .p-main-visual__decoration{
        left:3.54167vw;
        bottom:-1.73611vw;
        max-width:21.66667vw;
    }}

@media (min-width: 768.02px) and (scripting: enabled){
    .l-header__areaHamburgerButton{
        display:none;
    }}

@media (scripting: enabled){
    [href^="#dialog-"]{
        pointer-events:none;
    }
    .js-scrollEffects-zoomMainVisual{
        scale:0;
        transition:scale 0.5s;
    }

        .js-scrollEffects-zoomMainVisual.is-show{
            animation:zoom-main-visual 0.7s 0.5s ease-out forwards;
        }

    .js-scrollEffects-flyMainVisualDecoration{
        opacity:0;
    }

        .js-scrollEffects-flyMainVisualDecoration.is-show{
            animation:fly-main-visual-decoration 0.7s 1.4s linear forwards;
        }}
