/* ボタン */
.button{
    width:fit-content;
    background: linear-gradient(115deg, rgb(255, 122, 14) 30%, rgb(255, 213, 0) 35%, rgb(255, 122, 13) 40%, var(--red) 45%, rgb(255, 122, 14) 80%);
    background-size: 2000% 100%;
    display:flex;
    justify-content: space-around;
    align-items: center;
    gap:1em;
    padding:0.5em 1em 0.5em 0.5em;
    font-weight: 700;
    color:var(--white);
    border-radius: 20px 100px 100px 20px;
    box-shadow: 0px 0px 20px var(--box__shadow);
    transition:all 1s;
    animation: button__animation 2.5s ease-in-out infinite;
}
@keyframes button__animation {
    0%{
        background-position:0% 50%;
        transform:scale(1);
    }
    30%{
        transform: scale(1);
    }
    45%{
        transform: scale(1.03);
    }
    60%{
        transform: scale(1);
    }
    100%{
        background-position:100% 50%;
        transform: scale(1);
    }
}
.button__free{
    color:var(--heavy__orange);
    background:var(--white);
    padding:0.2em 0.2em 0.25em 0.25em;
    border-radius: 0.5em;
    font-size: 1.7em;
    line-height: 1.1em;
}
.button__text{
    font-size:1.5rem;
    line-height: 1.2em;
}
.button i{
    font-size: 2rem;
    transition:all 0.3s;
}
.button:hover{
    transform: translateY(3px);
    box-shadow:none;
    animation-play-state: paused;
}
.button:hover i{
    animation:button__arrow 1s infinite;
}
@keyframes button__arrow {
    0%{
        transform:translateX(0px);
    }
    25%{
        transform:translateX(5px);
    }
    100%{
        transform:translateX(0px);
    }
}
.button__center{
    margin:2em auto;
}
/* ヘッダー ＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊*/
.c-txt {
    cursor: pointer;
    transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
    transform: translateY(3px);
}
.c-txt.line {
    position: relative;
}
.c-txt.line::before {
    background: var(--deep__red);
    content: '';
    width: 100%;
    height: 2px;
    position: absolute;
    left: 0;
    bottom: 0;
    margin: auto;
    transform-origin: center top;
    transform: scale(0, 1);
    transition: transform .3s;
}
.c-txt.line:hover::before {
    transform-origin: center top;
    transform: scale(1, 1);
}

.c-txt.line2 {
    position: relative;
}
.c-txt.line2::before {
    background: var(--red);
    content: '';
    width: 100%;
    height: 2px;
    position: absolute;
    left: 0;
    bottom: 0;
    margin: auto;
    transform-origin: left top;
    transform: scale(0, 1);
    transition: transform .3s;
}
.c-txt.line2:hover::before {
    transform-origin: left top;
    transform: scale(1, 1);
}

header{
    width:100%;
    height:50px;
    background:var(--white);
    position:fixed;
    z-index: 5;
    transition:all 0.3s;
}
.header__inner{
    height:50px;
    margin:0 auto;
    padding:0 2em;
    max-width: 1500px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items:center;
}
header img{
    height: 30px;
}
.gnav__pc ul{
    display:flex;
    gap:1em;
}
.ganv__button__pc{
    width:fit-content;
    background: linear-gradient(115deg, rgb(255, 122, 14) 30%, rgb(255, 213, 0) 35%, rgb(255, 122, 13) 40%, var(--red) 45%, rgb(255, 122, 14) 80%);
    background-size: 2000% 100%;
    display:flex;
    justify-content: space-around;
    align-items: center;
    gap:0.5em;
    padding:0.2em 1em;
    font-weight: 700;
    color:#fff;
    border-radius: 20px 100px 100px 20px;
    box-shadow: 0px 0px 20px var(--box__shadow);
    transition:all 1s;
    animation: button__animation 2.5s ease-in-out infinite;
}
.gnav__sp{
    width:100vw;
    position:fixed;
    top:-250px; left:1em;
    background:var(--light__base);
    border-left:5px solid var(--deep__red);
    border-bottom:5px solid var(--deep__red);
    display:flex ;
    flex-direction: column;
    gap:1em;
    padding:1em;
    transition: all 0.3s;
    border-radius: 0 0 0 2em;
}
.gnav__sp__inner{
    display:flex;
    justify-content: space-around;
    gap:1em;
}
.gnav__indent{
    text-indent: 1em;
}
.ganv__button__sp{
    width:fit-content;
    background: linear-gradient(115deg, rgb(255, 122, 14) 30%, rgb(255, 213, 0) 35%, rgb(255, 122, 13) 40%, var(--red) 45%, rgb(255, 122, 14) 80%);
    background-size: 2000% 100%;
    display:flex;
    justify-content: space-around;
    align-items: center;
    gap:0.5em;
    padding:0.2em 1em;
    margin:1em 0;
    font-weight: 700;
    color:#fff;
    border-radius: 20px 100px 100px 20px;
    box-shadow: 5px 5px 5px rgba(69, 69, 69, 0.8);
    transition:all 1s;
    animation: button__animation 2.5s ease-in-out infinite;
}
.ganv__button__sp p{
    line-height: 1rem;
}
/*＊＊＊＊＊＊＊＊＊ハンバーガーメニュー＊＊＊＊＊＊＊＊*/

#burger-icon{
    display:none;
    height: 50px;
    width:50px;
    background:var(--heavy__base);
    border-radius: 0 0 0 1em;
    top:1em; right:1em;
    z-index:5;
    position: fixed;
    top:0; right:0;
}
#burger-icon span{
    width:30px;
    height:4px;
    border-radius:2px;
    background:#fff;
    position:absolute;
}
#burger-icon span:nth-child(1) {
    left:10px; top:12.5px;
}
#burger-icon span:nth-child(2) {
    left:10px; top:23px;
}
#burger-icon span:nth-child(3) {
    left:10px; top:33.5px;
}
.burger-line1{
    transform: translateY(10.5px) rotate(45deg);
    opacity:0;
    animation:open-burger-line 0.5s linear;
    animation-fill-mode: forwards;
}
.burger-line2{
    opacity:0;
}
.burger-line3{
    transform:translateY(-10.5px) rotate(-45deg);
    opacity:0;
    animation:open-burger-line 0.5s linear;
    animation-fill-mode: forwards;
}
@keyframes burger-line{
    to{
        opacity:1;
    }
}
@keyframes open-burger-line{
    to{
        opacity:1;
    }
}
.open-nav{
    top:0;
}

/* フッター＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊ */
footer{
    background:var(--logo__font);
    padding:2em;
    color:#fff;
}
.footer__inner{
    width:100%;
    max-width: 1500px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap:1em;
}
footer img{
    width:300px;
}
footer nav{
    display: flex;
    justify-content: end;
    gap:3em;
}
.links__heading{
    font-size:1.2rem;
    color:var(--orange);
    font-weight: 500;
    width:fit-content;
    letter-spacing: 0.1em;
}
.footer__link{
    font-size: 1rem;
    width:fit-content;
}
.links ul{
    padding-left:1em;
}
/* スクロールアップボタン ＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊*/
.sp__scroll__top__wrap{
    opacity: 0;
    visibility: hidden;
    position:fixed;
    bottom:2em; right:2em;
    z-index: 10;
    transition: all 0.3s;
}
.sp__scroll__top{
    color:var(--white);
    background:rgba(155, 155, 155, 0.8);
    width:1.5em;
    height:1.5em;
    border-radius: 1.5em;
    display: grid;
    place-items: center;
    font-size: 2rem;
}
.sp__scroll__top i{
    transform:translateY(2px);
    animation:sp__scroll__top 4s linear infinite;
}
@keyframes sp__scroll__top {
    0%{
        transform:translateY(2px);
    }
    85%{
        transform: translateY(2px);
    }
    90%{
        transform: translateY(-1px);
    }
    100%{
        transform: translateY(2px);
    }
}
/* レスポンシブ＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊ */
@media screen and (max-width:800px){
    .button__free{
        font-size: 1.2em;
    }
    .button__text{
        font-size:1.3rem;
    }
    .button i{
        font-size: 1.5rem;
    }
    #burger-icon{
        display:block;
    }
    .gnav__pc{
        display: none;
    }
    footer nav{
        flex-direction: column;
    }
    .footer__inner img{
        width:50%;
        min-width: 200px;
    }
}
@media screen and (max-width:550px){
    h1{
        font-size: 1.802rem;
    }
    h2{
        font-size: 1.602rem;
    }
    h3{
        font-size: 1.424rem;
    }
    h4{
        font-size: 1.266rem;
    }
    h5{
        font-size: 1.125rem;
    }
    p{
        font-size: 0.85rem;
        letter-spacing: 0.04em;
    }
    small{
        font-size: 0.8rem;
    }
    footer{
        background:var(--logo__font);
        padding:1em;
        color:#fff;
    }
    .sp__scroll__top__wrap__display{
        opacity:1;
        visibility: visible;
    }
}