/* Base styles */
:root {
    scroll-behavior: smooth;
    scroll-padding-block-start: .32rem;
}

.is-mobile-tablet body {
    background-color: #4b1e78;
    padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}

.is-mobile-tablet .container {
    background-color: #fff;
}

.section-topics-detail.section-scene-post {
    color: #333;
}

.is-mobile-tablet .section-topics-detail.section-scene-post {
    font-family: "Hiragino Kaku Gothic Pro", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, メイリオ, "Droid Sans", sans-serif;
}

.is-desktop .section-topics-detail div.wrapper {
    padding-inline: 0;
}

.is-desktop .section-topics-detail div.box-common {
    padding: 0;
}

.is-desktop .section-topics-detail h1.common-title {
    font-size: .24rem;
    margin-block: 1.5em 1em;
    color: #222;
}

.is-mobile-tablet .section-topics-detail div.topics-content {
    box-shadow: none;
    margin: 0;
    padding: 0 .24rem;
    border-radius: 0;
}

.is-desktop .section-topics-detail div.topics-photo img {
    width: 100%;
}

.is-mobile-tablet .section-scene-post div.topics-text {
    margin-block: .32rem;
}

.is-mobile-tablet .section-topics-detail div.topics-text>div:first-of-type {
    border: unset !important;
    margin: unset !important;
    padding: unset !important;
}

.is-mobile-tablet .section-topics-detail div.topics-text table tr {
    display: table-row;
    flex-wrap: unset;
    justify-content: unset;
}

.is-mobile-tablet .section-topics-detail div.topics-text table td {
    width: auto;
}

/* Unique styles */

.topics-text>section {
    -webkit-margin-before: .32rem;
    margin-block-start: .32rem;
}

.topics-text>section>h2 {
    -webkit-border-start: .05rem solid #6633cc;
    border-inline-start: .05rem solid #6633cc;
    padding: .75em 1em;
    background-color: #eee;
    font-weight: bold;
    text-box-trim: trim-both;
    border-radius: 0 .05rem .05rem 0;
    -webkit-margin-after: 1em;
    margin-block-end: 1em;
}

.overview dd+dt {
    -webkit-margin-before: .5em;
    margin-block-start: .5em;
}

.overview dt {
    font-weight: bold;
}

.notes>ul {
    list-style: disc;
    -webkit-margin-start: 1.5em;
    margin-inline-start: 1.5em;
}

.notes__for-subscribers {
    -webkit-margin-before: 2em;
    margin-block-start: 2em;
    border: .03rem solid transparent;
    border-radius: 0.09rem;
    background: linear-gradient(#fff, #fff) padding-box, #33cca2 border-box;
    padding: 2em;
    position: relative;
}

.notes__for-subscribers h3 {
    color: #33CCA2;
    font-weight: bold;
    position: absolute;
    top: -1em;
    background: #fff;
    padding-inline: 1em;
}

.notes__for-subscribers__condition {
    font-weight: bold;
    -webkit-border-after: 1px dashed #33CCA2;
    border-block-end: 1px dashed #33CCA2;
}

.notes__for-subscribers__condition small {
    font-weight: normal;
    font-size: small;
    color: #5f5f5f;
}

.notes__for-subscribers__availability {
    -webkit-margin-before: .5em;
    margin-block-start: .5em;
}

.notes__for-subscribers ul li+li {
    -webkit-margin-before: 2em;
    margin-block-start: 2em;
}

.notes__for-subscribers__availability>dl {
    margin-block: 2em;
}

.notes__for-subscribers__availability>dl dt {
    margin-block: 2em 1em;
    background: #33CCA2;
    color: #fff;
    line-height: 1.5;
    padding: .5em .75em;
    border-radius: .05rem;
}

.has-asterisk {
    text-indent: -1em;
    -webkit-padding-start: 1em;
    padding-inline-start: 1em;
}

.notes__for-subscribers__availability~* {
    -webkit-margin-before: 1em;
    margin-block-start: 1em;
}

.notes__for-subscribers__availability dl b {
    font-weight: bold;
}

.notes__for-subscribers__guide::before {
    content: "\2605";
    color: #33CCA2;
}

.notes__for-subscribers__guide {
    text-indent: -1em;
    -webkit-padding-start: 1em;
    padding-inline-start: 1em;
}

.notes__for-subscribers__guide a {
    color: #33CCA2;
    -webkit-text-decoration-line: underline;
    text-decoration-line: underline;
    -webkit-text-decoration-style: dashed;
    text-decoration-style: dashed;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.get-coupon__number {
    font-size: .32rem;
    color: #6633cc;
    font-weight: bold;
    font-family: "Helvetica Neue", Helvetica, Arial, Roboto, sans-serif;
    line-height: 1;
    background-color: #fff;
    position: relative;
    text-align: center;
}


.get-coupon>ol li {
    -webkit-margin-before: .32rem;
    margin-block-start: .32rem;
}

.get-coupon__number::before,
.get-coupon__number::after {
    content: "";
    display: block;
    width: calc(50% - 1em);
    height: 1px;
    background-color: #6633cc;
    position: absolute;
    inset-block-start: calc(50% - 1px)
}

.get-coupon__number::before {
    inset-inline-start: 0;
}

.get-coupon__number::after {
    inset-inline-end: 0;
}

.get-coupon>ol li>*+* {
    -webkit-margin-before: .16rem;
    margin-block-start: .16rem;
}

.get-coupon figure img {
    border-radius: .05rem;
    border: .02rem solid #6633cc;
}

.get-coupon figure img+img.sm {
    -webkit-margin-before: .16rem;
    margin-block-start: .16rem;
}

.get-coupon figcaption {
    text-align: center;
}

.get-coupon figcaption::before {
    content: "\03010";
    -webkit-margin-end: .25em;
    margin-inline-end: .25em;
}

.get-coupon figcaption::after {
    content: "\03011";
    -webkit-margin-start: .25em;
    margin-inline-start: .25em;
}

.get-coupon figcaption::before,
.get-coupon figcaption::after {
    display: inline-block;
    color: #555;
}

.get-coupon__image figure+figure {
    -webkit-margin-before: 2em;
    margin-block-start: 2em;
}

.get-coupon__button {
    margin-block: .48rem .64rem;
    background-image: linear-gradient(150deg, #fed, #fff6dc);
    padding: 3em .24rem;
    width: calc(100% + .48rem);
    position: relative;
    inset-inline-start: -.24rem;
}

.get-coupon__button a {
    display: block;
    font-size: .16rem;
    background-color: #ffa32d;
    color: #fff;
    font-weight: bold;
    text-align: center;
    text-box-trim: trim-both;
    padding: 1em;
    border-radius: .05rem;
    box-shadow: 0 5px #e77c09;
}

/* PC */

.is-desktop .overview dl {
    display: grid;
    grid-template-columns: 5em 1fr;
    align-items: center;
    padding-inline: 1em;
}

.is-desktop .overview dt {
    -webkit-margin-before: 0;
    margin-block-start: 0;
}

.is-desktop .notes__for-subscribers__availability>dl {
    margin-block: 1em;
}

.is-desktop .notes__for-subscribers__availability>dl dt {
    margin-block: 1em;
    padding-inline: 1em;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
}

.is-desktop .notes__for-subscribers {
    -webkit-margin-before: 3em;
    margin-block-start: 3em;
    padding: 3em;
}

.is-desktop .topics-text>section {
    -webkit-margin-before: .64rem;
    margin-block-start: .64rem;
}

.is-desktop .topics-text>section>h2 {
    -webkit-margin-after: .32rem;
    margin-block-end: .32rem;
    font-size: .18rem;
}

.is-desktop .get-coupon figure img {
    height: auto;
}

.is-desktop .notes__for-subscribers h3 {
    font-size: .16rem;
}

.is-desktop .get-coupon__button a {
    max-width: 4.8rem;
    margin-inline: auto;
    transition: .2s;
}

.is-desktop .topics-text>section {
    margin-inline: auto;
}


.is-desktop .get-coupon>ol li {
    display: grid;
    grid-template:
        "header header" auto
        "text image" auto / 1fr 4.8rem;
    -moz-column-gap: 1em;
    column-gap: 1em;
    align-items: center;
}

.is-desktop .get-coupon__number {
    grid-area: header;
}

.is-desktop .get-coupon__text {
    grid-area: text;
}

.is-desktop .get-coupon__image {
    grid-area: image;
}

.is-desktop .get-coupon__button {
    width: 100%;
    inset: 0;
    margin-block: .8rem;
    border-radius: .05rem;
}

@media(any-hover: hover) {
    .is-desktop .get-coupon__button a:hover {
        transform: translateY(5px);
        box-shadow: none;
        opacity: 1;
    }
}