main{
    counter-reset: h2-counter;
    border: 6px #333 solid;
    border-radius: 1em;
    position: relative;
    overflow: visible;
}


.post-caption{
    display: flex;
    align-items: center;
    gap: 1em;
    background-color: #03592e;
    padding: 1.5em .75em;
    transform: rotate(-2deg);
    box-sizing: content-box;
    border: 3px #fff solid;
    box-shadow:
        0 0 0 .8em #03592e,
        .5em .5em 0 -.5em #03592e;
    position: relative;
}

@media screen and (min-width: 767px){
    .post-caption{
        padding: 2.5em calc(2em + 4px);
        margin-top: -.5em;
    }
}

.post-caption::after{
    content:"";
    position:absolute;
    top:-1em;
    left:50%;
    width:2em;
    height:2em;
    transform:translateX(-50%) rotate(-6deg);
    border-radius:50%;
    box-sizing:border-box;

    background:#f2c22a;
    border:3px #fff solid;
    box-shadow:
        0 .22em 0 rgba(0,0,0,.18),
        0 0 0 .14em rgba(255,80,160,.22);
}

.post-caption figure{
    width: 80px;
    height: 80px;
    flex-shrink: 0;
    transform: rotate(2deg);
    align-items: center;
    display: flex;
    justify-content: center;
    position: relative;
    overflow: hidden;
    padding: 0;
}

.post-caption img{
    padding: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 4px;
    z-index: 10;
    position: relative;
    display:block;
}

.post-caption figure::before{
    content:"";
    position:absolute;
    inset:0;
    background:#fff;
    border-radius:4px; /* 画像に合わせる */
    z-index:-1;
}

.post-caption h1{
    font-weight: 500;
    font-size: 1.2em;
    position: relative;
    display: inline;
    display: flex;
    align-items: center;
    position: relative;
    line-height: 1.5;
    color: #fff;
    transform: rotate(2deg);
}

@media screen and (min-width: 767px){
    .post-caption h1{
        font-size: 1.5em;
    }
}


main h2,
.content h3,
section.product h5{
    margin: 2em 0 1.5em;
}

main h2 + ol.alc-lazy-block h3{
    margin-top: 1em;
}

@media screen and (min-width: 767px){
    main h2,
    .content h3{
        margin: 3em 0;
    }

    section.product h5{
        margin-top: 2em;
    }

    main h2#terms1{
        margin-top: 1em;
    }
}


main h2,
section.product h5{
    display: block;
    position: relative;
    padding: 1em .5em 1em 3em;
    font-size: 1.1em;
    counter-increment: h2-counter;
    backdrop-filter: blur(14px);
}

main h2::before {
    content: counter(h2-counter);
    position: absolute;
    left: 1em;
    top: 50%;
    transform: translateY(-50%);
    width: 2em;
    height: 2em;
    border-radius: 50%;
    display: flex;
    font-size: .8em;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    box-shadow: var(--shadow);
}

.content h3{
    display: block;
    font-size: 1.1em;
    position: relative;
    padding: 1em .5em 1em 1.5em;
    color: var(--white);
    background-color: var(--red);
}




@media screen and (min-width: 767px){
    main h2,
    section.product h5{
        padding: 1.25em .5em 1.25em 3em;
        font-size: 1.2em;
    }

    .content h3{
        font-size: 1.2em;
    }

}

/*
main h4::before{
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: .5em;
    height: 100%;
    background: rgba(0,0,0,.5);
    border-radius: .5em;
}
*/

.content h4{
    margin: 2em 0;
    margin-left: 1em;
    border-left: .5em #333 solid;
    padding: .5em .5em .5em 1em;
}

.post-caption figure img{
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

figure.video{
    max-width: 100%;
    padding: 0 .5em;
}

@media screen and (min-width: 767px){
    figure.video{
        padding: 0 2em;
    }
}

figure.video blockquote{
    text-align: center;
    font-size: .8em;
}

figure.video iframe{
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
}


.reco{
    margin-top: 3em;
    padding: 2.5em 1em 2em;
    border: 3px var(--mid-black) solid;
    box-shadow: var(--shadow);
    background-color: var(--pal-gray);
    border-radius: 4px;
    position: relative;
}

@media screen and (min-width: 767px){
    .reco{
        margin-top: 3.5em;
    }
}


.reco::before{
    font-size: .9em;
    position: absolute;
    top: -1.5em;
    left: 1em;
    display: inline-flex;
    align-items: center;
    gap: .3em;
    background-color: var(--black);
    box-shadow: var(--shadow);
    color: #fff;
    border-radius: 999px;
    padding: .25em 1.5em;
    font-weight: bold;
    content: "\f0eb" " 推しポイント！";
    font-family: var(--fa6), var(--kaise);
    font-weight: normal;
    letter-spacing: .05em;
}
