html,
body {
    font-size: 10px;
    text-size-adjust: none;
    -webkit-text-size-adjust: none;
}

body {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    /*font-family: 'Avenir', 'Helvetica Neue', Helvetica, Arial, 'Hiragino Sans',
    'ヒラギノ角ゴシック', 'YuGothic', 'Yu Gothic', 'メイリオ', 'Meiryo',
    'ＭＳ Ｐゴシック', 'MS PGothic';*/
}

.underline {
    background: linear-gradient(transparent 60%, #ff6 60%);
    font-weight: 900;
}

html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    vertical-align: baseline;
    background: transparent;
    box-sizing: border-box;
}

li {
    list-style: none;
}

.yotsuya-global-header-parent,
.globalCommonSource.yotsuya-global-menu {
    min-width: 1280px;
}

.wrapper {
    background: linear-gradient(#f7c2b2, #fef0e1, #efe1e1);
    box-shadow: 0 0 1em 0 rgba(0, 0, 0, .3);
    margin: 0 auto;
    max-width: 1920px;
    min-width: 1280px;
    overflow: hidden;
    padding-top: 40px;
    position: relative;
    width: 100%;
}

/*
.wrapper::before {
    background: url(../img/winter/bg-top_pc.png) no-repeat center top / 1920px auto,
        url(../img/winter/bg-bottom_pc.png) no-repeat center bottom / 1920px auto,
        #bcd1f6;
    content: "";
    display: block;
    height: 100vh;
    left: 0;
    position: fixed;
    top: 0;
    width: 1920px;
    z-index: -1;
}*/

.col-darkblue {
    color: #1848a0;
}

.col-red {
    color: #d90000;
}

.col-yellow {
    color: #ffe50e;
}

.bullet {
    margin: 0 -.25em;
}

.with-brackets {
    margin: 0 -.25em;
}

.apply-btn {
    align-items: center;
    background-color: #f30;
    border-radius: 15px;
    box-shadow: 0 6px 4px 0 rgba(0, 0, 0, .2);
    color: #fff;
    display: flex;
    font-size: 2.8rem;
    font-weight: 700;
    height: 70px;
    justify-content: center;
    margin: 0 auto;
    text-align: center;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, .5);
    transition: box-shadow .2s, transform .2s;
    width: 650px;
}

.apply-btn:hover {
    box-shadow: 0 2px 3px 0 rgba(0, 0, 0, .3);
    color: #fff;
    filter: brightness(1.2);
    transform: translateY(4px);
}


.main-ttl {
    height: 425px;
    margin: 0 auto;
    width: 1200px;
}

.main-img {
    display: block;
    width: 100%;
}

.main-ctr {
    background-color: #fff;
    margin: -35px auto 55px;
    padding: 70px 0 1px;
    width: 1200px;
}

.section-ttl.main {
    align-items: center;
    display: flex;
    font-family: "M PLUS Rounded 1c", serif;
    font-size: 5rem;
    font-weight: 700;
    height: 95px;
    justify-content: center;
    letter-spacing: -.05em;
    margin: 0 auto;
    position: relative;
    text-align: center;
    width: 1000px;
}

/*
.section-ttl.main::before,
.section-ttl.main::after {
    background: no-repeat center / contain;
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.section-ttl.main::before {
    background-image: url(../img/winter/deco-ttl-l_pc.png);
    height: 95px;
    left: 0;
    width: 122px;
}

.section-ttl.main::after {
    background-image: url(../img/winter/deco-ttl-r_pc.png);
    height: 66px;
    right: 0;
    width: 142px;
}
*/
.content-ctr {
    background-color: #f1f5f7;
    border: 2px solid #1848a0;
    border-radius: 10px 10px 0 0;
    margin: 40px auto 0;
    padding-bottom: 62px;
    overflow: hidden;
    width: 1000px;
}

.content-ttl {
    background-color: #1848a0;
    color: #fff;
    font-family: "M PLUS Rounded 1c", serif;
    font-size: 4.6rem;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
}

.event-period {
    align-items: start;
    display: flex;
    gap: 15px;
    margin: 43px auto 0;
    width: 900px;
}

.event-period-hdr {
    align-items: center;
    background-color: #1848a0;
    border-radius: 1em;
    color: #fff;
    display: flex;
    font-family: "M PLUS Rounded 1c", serif;
    font-size: 2.8rem;
    font-weight: 700;
    justify-content: center;
    line-height: 50px;
    width: 200px;
}

.event-period-dtl .period {
    font-family: "M PLUS Rounded 1c", serif;
    font-size: 3rem;
    font-weight: 700;
    line-height: 50px;
}

.event-period-dtl .txt,
.event-period-dtl .annotation {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.375;
}

.shingaku {
    --article-col-1: #2d3a99;
    --article-col-2: #d5e7fb;
    --article-col-3: #ebf5ff;
}

.little {
    --article-col-1: #ee7d23;
    --article-col-2: #ffe869;
    --article-col-3: #f9f4da;
}

.article-ctr {
    border: 4px solid var(--article-col-1);
    border-top-width: 1px;
    margin: 0 auto;
    width: 900px;
}

.article-ctr.shingaku {
    margin-top: 43px;
}

.article-ctr.little {
    margin-top: 78px;
}

.article-ttl {
    background-color: var(--article-col-1);
    color: #fff;
    font-family: "M PLUS Rounded 1c", serif;
    font-size: 3.5rem;
    font-weight: 700;
    line-height: 1.8;
    text-align: center;
}

.article-content {
    background-color: #fff;
    border: 1px solid var(--article-col-1);
    display: grid;
    grid-template-columns: 1fr;
    margin: 2px;
    padding-bottom: 72px;
}

.article-hdr {
    background-color: var(--article-col-3);
    display: grid;
    grid-template-columns: 280px 486px;
    justify-content: center;
    margin: 0 auto;
    padding: 20px 0;
    width: 100%;
}

.article-hdr-content {
    align-content: center;
    display: flex;
    flex-wrap: wrap;
    gap: 40px 15px;
    justify-content: center;
}

.article-hdr-content .target {
    background: linear-gradient(transparent 55%, var(--article-col-2) 55%);
    font-size: 3rem;
    font-weight: 500;
    line-height: 54px;
    text-align: center;
    width: 100%;
}

.article-hdr-content .target .grade {
    font-size: 4rem;
    font-weight: 700;
    margin-right: .25em;
}

.article-hdr-content .target .grade .shin {
    font-size: 3.5rem;
    vertical-align: top;
}

.course-btn {
    display: block;
    overflow: hidden;
    position: relative;
    width: fit-content;
}

.course-btn:hover {
    filter: brightness(1.1);
}

.course-btn::before {
    animation: btn-flash 3s ease-in-out infinite;
    background-color: #fff;
    content: '';
    display: inline-block;
    height: 100%;
    left: 0;
    position: absolute;
    top: -180px;
    width: 30px;
}

.shingaku .course:nth-of-type(2) .course-btn::before {
    animation-delay: .3s;
}

.little .btn-crs::before {
    animation-delay: .6s;
}

@keyframes btn-flash {
    0% {
        opacity: 0;
        transform: scale(0);
    }

    80% {
        opacity: 0.5;
        transform: scale(0) rotate(45deg);
    }

    81% {
        opacity: 1;
        transform: scale(4) rotate(45deg);
    }

    100% {
        opacity: 0;
        transform: scale(50) rotate(45deg);
    }
}

.course-btn img {
    width: auto;
}

.article-item {
    align-items: start;
    display: grid;
    gap: 20px 50px;
    grid-template-columns: auto 350px;
    grid-template-rows: 35px auto;
    margin: 3em auto 0;
    width: 844px;
}

.article-item-ttl {
    background-color: var(--article-col-1);
    border-radius: 1em;
    color: #fff;
    font-size: 2rem;
    line-height: 1.75;
    text-align: center;
    width: 200px;
}

.article-item-dtl {
    grid-column: 1 / 2;
    grid-row: 2 / 3;
    margin-left: 1em;
}

.article-item-dtl-txt {
    font-size: 2rem;
    line-height: 1.2;
}

.article-item-dtl-annotation {
    font-size: 1.5rem;
    line-height: 1.2;
    margin-top: 1em;
    padding-left: 1em;
    text-indent: -1em;
}

.article-item-images {
    align-items: center;
    display: flex;
    grid-column: 2 / 3;
    grid-row: 1 / 3;
    height: 100%;
    justify-content: center;
}

.join-bonus {
    background-color: #fff7de;
    border: 3px dotted #d90000;
    border-radius: 20px;
    margin: 0 auto;
    position: relative;
}

.shingaku .join-bonus {
    margin-top: 70px;
    padding: 60px 60px 10px;
    width: 684px;
}

/*
.shingaku .join-bonus::after {
    background: url(../img/winter/deco-shingaku-join-bonus_pc.png) no-repeat center / contain;
    content: "";
    display: block;
    height: 202px;
    position: absolute;
    right: -65px;
    top: -25px;
    width: 143px;
}*/

.join-bonus-ttl {
    position: absolute;
}

.shingaku .join-bonus-ttl {
    left: -62px;
    top: -32px;
    width: 384px;
}

.join-bonus-txt {
    letter-spacing: -.06em;
    line-height: 1.2;
    text-align: center;
}

.shingaku .join-bonus-txt {
    font-family: "M PLUS Rounded 1c", serif;
    font-size: 2.8rem;
    font-weight: 700;
}

.join-bonus-txt strong {
    color: #d90000;
    font-size: 1.1em;
}

.join-bonus-annotation {
    font-size: 1.5rem;
    line-height: 1.2;
    margin-top: 1em;
}

.shingaku .join-bonus-annotation {
    text-align: center;
}

.shingaku .apply-ctr {
    margin-top: 60px;
}

/* リトルくらぶ PCサイトの変則レイアウト対応 ここから */
.little .article-content {
    gap: 20px 0;
    grid-template-columns: 21px auto 350px 21px;
    grid-template-rows: auto 35px auto auto auto;
    padding-bottom: 50px;
}

.little .article-hdr {
    grid-column: 1 / 5;
    grid-row: 1 / 2;
    margin-bottom: 10px;
    width: 100%;
}

.little .article-item {
    display: contents;
}

.little .article-item-ttl {
    grid-column: 2 / 3;
    grid-row: 2 / 3;
}

.little .article-item-dtl {
    grid-column: 2 / 3;
    grid-row: 3 / 4;
}

.little .article-item-images {
    align-content: space-between;
    display: flex;
    flex-wrap: wrap;
    grid-column: 3 / 4;
    grid-row: 2 / 5;
}

.little .join-bonus {
    border-radius: 50px 20px 20px 20px;
    grid-column: 2 / 3;
    grid-row: 4 / 5;
    margin-right: 50px;
    margin-top: 25px;
    padding: 60px 10px 25px;
    width: 424px;
}

.little .join-bonus::before {
    background: url(../img/winter/deco-little-join-bonus-ttl_pc.png) no-repeat center / contain;
    content: "";
    display: block;
    height: 143px;
    left: -27px;
    position: absolute;
    top: -26px;
    width: 79px;
}

.little .join-bonus::after {
    background: url(../img/winter/deco-little-join-bonus_pc.png) no-repeat center / contain;
    bottom: -36px;
    content: "";
    display: block;
    height: 208px;
    position: absolute;
    right: -37px;
    width: 256px;
}

.little .join-bonus-ttl {
    left: 50%;
    top: -35px;
    transform: translateX(-50%);
    width: 307px;
}

.little .join-bonus-txt {
    /*font-family: "M PLUS Rounded 1c", serif;*/
    font-size: 1.9rem;
    font-weight: 700;
    line-height: 1.4;
    margin-left: 25px;
}

.little .join-bonus-txt:not(:first-of-type) {
    margin-left: 5px;
    margin-top: .5em;
    padding-left: 1em;
    text-align: left;
    text-indent: -1em;
}

.little .join-bonus-txt strong {
    font-size: 2.2rem;
}

.little .apply-ctr {
    grid-column: 1 / 5;
    grid-row: 5 / 6;
    margin-top: 2em;
}

/* リトルくらぶ PCサイトの変則レイアウト対応 ここまで */

.section-ctr.flow,
.section-ctr.qanda {
    margin: 80px auto 0;
    width: 1000px;
}

.flow .section-ttl,
.qanda .section-ttl {
    background-color: #1848a0;
    color: #fff;
    font-family: "M PLUS Rounded 1c", serif;
    font-size: 3.5em;
    font-weight: 700;
    letter-spacing: .01em;
    padding: .3em 0;
    text-align: center;
}

.stepflow {
    background: url(../img/start-pic.jpg) no-repeat bottom 5% right / 70%;
    font-size: 1.8rem;
    margin: 3em auto;
    text-align: left;
    width: 85%;
}

.stepflow-item {
    align-items: center;
    color: #999;
    display: flex;
    flex-wrap: wrap;
    font-weight: 700;
    padding: .3em 0;
}

.stepflow-item::before {
    border: 3px solid #232f3e;
    border-radius: 50%;
    content: "";
    display: inline-block;
    height: 1.5em;
    transform: translateX(calc(-50% + 3px));
    width: 1.5em;
}

.stepflow-item-wrapper {
    border-left: 5px solid #ccc;
    color: #000;
    font-weight: 500;
    margin: 1em auto;
    min-height: 8em;
    padding-left: 1.6em;
    position: relative;
    width: 100%;
}

.stepflow-content {
    border-bottom: dashed 1px #ccc;
    font-size: 1em;
    font-weight: 400;
    margin-bottom: -1em;
    margin-top: 1em;
    padding-bottom: 2em;
    padding-left: 1em;
}

.stepflow-item:nth-of-type(n + 3) .stepflow-content {
    border: none;
}

.qanda-list {
    counter-reset: qanda-counter;
    display: grid;
    gap: 2em;
    grid-template-columns: auto;
    font-size: 1.8rem;
    margin: 3em auto 0;
    text-align: left;
    width: 85%;
}

.qanda-list-ctr {
    counter-increment: qanda-counter;
}

.qanda-list-Q,
.qanda-list-A {
    display: flex;
    overflow: hidden;
    padding: .8em .5em;
}

.qanda-list-Q {
    border: 2px solid #ff5252;
    border-radius: .5em;
    cursor: pointer;
}

.qanda-list-Q::after {
    align-self: center;
    color: #ff5252;
    content: "▶";
    margin: 0 .5em 0 auto;
    transition: transform .5s;
}

.qanda-list-Q.opened::after {
    transform: rotate(-90deg);
}

.qanda-list-A {
    border: 2px solid transparent;
}

.qanda-list-Q::before,
.qanda-list-A::before {
    flex-shrink: 0;
    font-weight: 700;
    margin-right: .2em;
    text-align: center;
    width: 2em;
}

.qanda-list-Q::before {
    color: #ff5252;
    content: "Q" counter(qanda-counter);
}

.qanda-list-A::before {
    color: #4766c6;
    content: "A" counter(qanda-counter);
}

.section-ctr.jisseki {
    margin: 45px auto 0;
    width: 900px;
}

.jisseki .apply-ctr {
    margin: 60px auto 70px;
}