@charset 'utf-8';
/* ============ STYLE ============ */
.page {
    background-color: #2A4FA3;
}

body.lp-kangeki .pc-layout {
    position: relative;
}

body.lp-kangeki .pc-anchor-nav {
    display: none;
}

/* headding */
.page__title,.section__title {
    font-family: "Zen Maru Gothic", sans-serif;
    color: #fff;
    font-weight: 500;
    line-height: 1em;
    letter-spacing: .2rem;
    text-align: center;
}
.page__title {
    font-size: 2.4rem;
}
.section__title {
    display: inline;
    font-size: 2rem;
}
.section__title--with-icons {
    position: relative;
    display: block;
    width: calc(100% - 2rem);
    margin: 0 auto;
}
.section__title--with-icons::before,
.section__title--with-icons::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 7.4rem;
    height: 7.4rem;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.section__title--with-icons::before {
    left: -2rem;
}
.section__title--with-icons::after {
    right: -2rem;
}
.section__title--ougi::before,
.section__title--ougi::after {
    background-image: url("../img/icon_ougi.png");
}
.section__title--ougi::before {
    transform: translateY(-50%) rotate(-16deg);
}
.section__title--ougi::after {
    transform: translateY(-50%) rotate(16deg);
}
.section__title--momo::before,
.section__title--momo::after {
    width: 4.5rem;
    height: 4.5rem;
    background-image: url("../img/icon_momo.png");
}
.section__title--momo::before {
    left: -1rem;
}
.section__title--momo::after {
    right: -1rem;
}
.section__title--momo::before {
    transform: translateY(-50%) rotate(-12deg);
}
.section__title--momo::after {
    transform: translateY(-50%) rotate(12deg) scaleX(-1);
}

.page__subtitle {
    padding: 0 2.8rem 1.6rem;
    color: #1F4E8C;
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1.4em;
    border-bottom: solid .2rem #1F4E8C;
}
.page__subtitle--with-icons {
    position: relative;
}
.page__subtitle--with-icons::before,
.page__subtitle--with-icons::after {
    content: "";
    position: absolute;
    top: -1.6rem;
    width: 7.4rem;
    height: 7.4rem;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.page__subtitle--with-icons::before {
    left: -1rem;
}
.page__subtitle--with-icons::after {
    right: -1rem;
}
.page__subtitle--ougi::before,
.page__subtitle--ougi::after {
    background-image: url("../img/icon_ougi.png");
}
.page__subtitle--ougi::before {
    transform: rotate(-14deg);
}
.page__subtitle--ougi::after {
    transform: scaleX(-1) rotate(-14deg);
}

.section__title--deadline::before {
    left: 0rem;
    width: 6rem;
    background-image: url("../img/icon_oni.png");
    transform: translateY(-50%);
}
.section__title--deadline::after {
    right: 1rem;
    width: 1.8rem;
    background-image: url("../img/icon_kanabou.png");
    transform: translateY(-50%) rotate(30deg);
}

.paragraph-title {
    font-size: 1.6rem;
    font-weight: 500;
}

.qa-question {
    position: relative;
    padding: 0 0 .6em 1.2em;
    border-bottom: solid 2px #1F4E8C;
}
.qa-question::before {
    content: "Q";
    position: absolute;
    top: 0;
    left: 0;
}

.page__title-wrap {
    padding: 1.6rem;
    background-color: #fff;
    border-radius: 1.6rem;
}

/* text */
.page__thanks-wrap {
    padding: 1.6rem 1.6rem 2.4rem;
    background-color: #fff;
    border-radius: 1.6rem;
}
.text--thanks {
    position: relative;
    display: inline;
    color: #1F4E8C;
    font-weight: 500;
}
.text--thanks::after {
    content: '';
    position: absolute;
    bottom: -.8rem;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 2px;
    background-color: #1F4E8C;
}
.text--postscript {
    margin: .5rem 0 0;
    font-size: 14px;
    text-align: center;
}

.wrap--entry-status {
    position: relative;
    width: 49%;
    padding: 2rem 0 2.4rem;
    color: #2A4FA3;
    background-color: none;
    border: solid 3px #2A4FA3;
    border-radius: 1rem;
}
.wrap--entry-status.full {
    width: 100%;
}
.title--entry-status {
    font-size: 2.0rem;
    font-weight: 500;
    text-align: center;
}
.text--entry-status {
    margin-top: .8rem;
    font-size: 2.4rem;
    line-height: 1em;
    text-align: center;
}
.section--inner--entry-summary {
    overflow: hidden;
}

/* icon */
.text--application-note {
    position: relative;
    display: inline;
    color: #1F4E8C;
    font-weight: 500;
}
.text--application-note::before,
.text--application-note::after {
    content: "";
    position: absolute;
    width: 1.4em;
    height: 1.4em;
    background-repeat: no-repeat;
    background-size: contain;
    top: 50%;
    transform: translateY(-50%);
}
.text--application-note::before {
    left: -1.4em;
    background-image: url('https://www.d-yutaka.co.jp/blog/campaign/spiral/kangeki2026/img/icon_banzai-left.svg');
}
.text--application-note::after {
    right: -1.6em;
    background-image: url('https://www.d-yutaka.co.jp/blog/campaign/spiral/kangeki2026/img/icon_banzai-right.svg');
}

.wrap--button-winners {
    width: 31%;
    padding: 1.1rem 0 !important;
    color: #fff;
    font-size: 1.4rem;
    text-align: center;
    line-height: 1.4em;
    background-color: #1F4E8C;
    border-radius: .5rem;
}
.button--submit.disable,
.wrap--button-winners.disable {
    background-color: #ccc;
    border: solid 1px #ccc;
}

/* section */
.section--outer {
    position: relative;
    padding: 2.5rem 1rem;
    background-color: #F04E30;
}
.section--outer--compact {
    padding: 1.8rem 2rem !important;
    background-color: #fff;
}

.section--inner {
    position: relative;
    padding: 3rem 2rem;
    background-color: #F6F1E9;
    border-radius: 1.5rem;
}

.section--white {
    position: relative;
    padding: 3rem 2rem;
    background-color: #fff;
    border-radius: 1.5rem;
}

.section-link-anchor {
    display: block;
}

.section--link {
    position: relative;
}
.section--link::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 0;
    height: 0;
    right: 1.2em;
    transform: translateY(-50%);
    border-style: solid;
    border-width: .45rem 0 .45rem .7rem;
    border-color: transparent transparent transparent #F04E30;
}
/* gallery */
.gallery {
    text-align: left;
}
.gallery__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.gallery__grid img {
    display: block;
    width: 100%;
    border-radius: 1rem;
    cursor: pointer;
}
.gallery__more {
    max-height: 0;
    overflow: hidden;
    transition: max-height .5s ease;
}
.gallery__grid--more {
    padding-top: 1rem;
}
.toggle-panel {
    height: 0;
    overflow: hidden;
    transition: height .4s ease;
}
.toggle-panel__inner .numbered-list {
    margin: 0;
}
.toggle-panel__inner .numbered-list li {
    margin-bottom: .6em;
}
.toggle-panel__inner .numbered-list li:last-child {
    margin-bottom: 0;
}
.gallery-lightbox {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    background-color: rgba(0, 0, 0, .8);
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease;
    z-index: 2000;
}
.gallery-lightbox.is-open {
    opacity: 1;
    pointer-events: auto;
}
.gallery-lightbox__dialog {
    position: relative;
    width: min(92vw, 52rem);
}
.gallery-lightbox__image {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    max-height: 80vh;
    object-fit: contain;
    border-radius: 1.2rem;
    opacity: 1;
    transform: translateX(0);
    transition: transform .35s ease, opacity .35s ease;
}
.gallery-lightbox__image.is-leaving-next {
    opacity: 0;
    transform: translateX(-10%);
}
.gallery-lightbox__image.is-leaving-prev {
    opacity: 0;
    transform: translateX(10%);
}
.gallery-lightbox__image.is-entering-next {
    opacity: 0;
    transform: translateX(10%);
}
.gallery-lightbox__image.is-entering-prev {
    opacity: 0;
    transform: translateX(-10%);
}
.gallery-lightbox__nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    transform: translateY(-50%);
    width: 4rem;
    height: 4rem;
    padding: 0;
    background-color: #F04E30;
    border: 0;
    border-radius: 999px;
}
.gallery-lightbox__nav::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1rem;
    height: 1rem;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    border-radius: 2px;
}
.gallery-lightbox__nav--prev {
    left: -1.2rem;
}
.gallery-lightbox__nav--prev::before {
    transform: translate(-35%, -50%) rotate(-135deg);
}
.gallery-lightbox__nav--next {
    right: -1.2rem;
}
.gallery-lightbox__nav--next::before {
    transform: translate(-65%, -50%) rotate(45deg);
}

.wrap-inner--receipt {
    padding: 2rem 2rem 3rem;
    border: solid 2px #1F4E8C;
}
.form__receipt {
    padding: 2rem 1.5rem 3rem;
    background-color: #fff;
    border: solid 1px #1F4E8C;
    border-radius: 1.2rem;
}
.form__receipt-lead {
    color: #1F4E8C;
    font-weight: 500;
    text-align: center;
}
.form__receipt-options {
    display: grid;
    gap: 1rem;
}
.receipt-file-input {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    opacity: 0;
}
.receipt-file-name {
    word-break: break-all;
}
.receipt-submit-button {
    display: none;
    width: 100%;
}
.receipt-preview {
    display: none;
    width: 100%;
    height: auto;
    border: 1px solid #ccc;
    border-radius: 0.8rem;
}

/* button */
input[type="submit"].button--submit,
button.button--submit,
a.button--submit {
    color: #fff;
    background-color: #F04E30;
    border: solid 1px #F04E30;
}
input[type="submit"].button--submit::after,
button.button--submit::after,
a.button--submit::after {
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
}
button.button--back,
a.button--back {
    color: #1F4E8C;
    background-color: #fff;
    border: solid 1px #1F4E8C;
}
button.button--back::after,
a.button--back::after {
    border-top: 2px solid #1F4E8C;
    border-right: 2px solid #1F4E8C;
}
button.button--link,
a.button--link,
label.button--link {
    color: #2A4FA3;
    background-color: #CBE2E0;
    border: solid 1px #CBE2E0;
    cursor: pointer;
}
button.button--link::after,
a.button--link::after,
label.button--link::after {
    border-top: 2px solid #2A4FA3;
    border-right: 2px solid #2A4FA3;
}

button.button--submit:disabled {
    background-color: #ccc;
    border: 2px solid #ccc;
    cursor: default;
    opacity: 0.6;
}

/* floating */
.floating-btn {
    position: fixed;
    right: -120px; /* 初期位置は画面外 */
    top: 2rem;
    width: 100px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.2rem;
    line-height: 1.2;
    opacity: 0;
    pointer-events: none;
    transition: none;
    z-index: 1000;
}  
.floating-btn.is-visible {
    pointer-events: auto;
    animation: slideIn 0.6s ease-out forwards;
}

.floating-btn.is-hidden {
    pointer-events: none;
    animation: slideOut 0.6s ease-in forwards;
}
@keyframes slideIn {
    0% {
        right: -120px;
        opacity: 0;
    }
    100% {
        right: .5rem;
        opacity: 1;
    }
}
@keyframes slideOut {
    0% {
        right: .5rem;
        opacity: 1;
    }
    100% {
        right: -120px;
        opacity: 0;
    }
}

/* li */
.event-schedule {
    padding: 3rem 1.5rem;
}
.event-schedule__list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.event-schedule__list li {
    margin-bottom: 1.5rem;
}
.event-schedule__list .section--inner {
    padding: 1.5rem 2rem;
}
.event-schedule__list li:last-child {
    margin-bottom: 0;
}
.event-schedule__date-place {
    display: flex;
    gap: .6em;
}
.event-schedule__date {
    flex: 0 0 5em;
    font-weight: 600;
}
.event-schedule__place {
    flex: 1;
    font-weight: 600;
    letter-spacing: 0;
}
.event-schedule__capacity {
    display: inline-block;
}

.application-steps {
    list-style: none;
    padding-left: 0;
    margin: 0;
}
.application-steps li {
    display: flex;
    align-items: flex-start;
    gap: .2em;
    margin-bottom: 0.6em;
}
.application-steps li:last-child {
    margin-bottom: 0;
}
.application-steps__number {
    flex: 0 0 auto;
    text-align: left;
    font-weight: bold;
}
.application-steps__text {
    flex: 1;
}
  

/* dl */
.notice-list dt,
.notice-list dd,
.apply-list dt,
.apply-list dd {
    margin: 0;
    padding: 0;
}
.notice-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-top: 1.3rem;
    font-size: 1.2rem;
}
.notice-list dt {
    width: 16%;
}
.notice-list dd {
    width: 84%;
}
.apply-list {
    display: grid;
    grid-template-columns: 23% 1fr;
    row-gap: 0.7rem;
    margin-top: 1rem;
    font-size: 1.4rem;
    line-height: 1em;
}

/* -----------------------
  form
-------------------------- */
.form__label {
    font-weight: 500;
}
.form__label span {
    color: #F04E30;
}

input[type="text"],
input[type="name"],
input[type="number"],
input[type="email"],
input[type="tel"],
input[type="postal-code"],
input[type="password"] {
    padding: 1rem;
    font-size: 1.6rem;
    line-height: 1em;
	background: #fff;
	border: solid 1px #d9d1ce;
    border-radius: 6px;
	z-index: 0 !important;
}
input[type="text"]:focus,
input[type="name"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="postal-code"]:focus,
input[type="password"]:focus {
	background: #fff;
	border: solid 1px #d9d1ce;
	z-index: 0 !important;
	outline: 0;
}
::placeholder {
	color: #B0B0B0;
	font-size: 1.6rem;
}
/* radio */
.form__group {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin: 0 auto;
}  
.form__radio {
    display: flex;
    align-items: center;
    position: relative;
    padding: 1.6rem;
    /*background-color: #f5f2f2;*/
    background-color: #fff;
    border: solid 1px #1F4E8C;
    border-radius: 6px;
    transition: background-color 0.3s;
    cursor: pointer;
}  
.form__radio input[type="radio"] {
    display: none;
} 
.form__radio:has(input[type="radio"]:checked) {
    background-color: #CBE2E0;
}
.form__radio:has(input[type="radio"]:checked) .form__radio-label {
    color: #1F4E8C;
}
.form__radio:has(input[type="radio"]:checked)::after {
    content: '\25c9';
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.4rem;
    color: #1F4E8C;
}
.form__radio-label {
    display: block;
    width: 100%;
    text-align: left;
    font-size: 1.6rem;
    border-radius: 6px;
}

/* select */
.form__select-wrapper {
    position: relative;
}  
.form__select--count {
    width: 100%;
    padding: 1.6rem;
    font-size: 1.6rem;
    line-height: 1em;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    border: solid 1px #d9d1ce;
    border-radius: 6px;
    background-color: #fff;
    cursor: pointer;
}
.form__select-wrapper::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 1.6rem;
    transform: translateY(-50%) rotate(45deg);
    width: 0.7em;
    height: 0.7em;
    border-right: 2px solid #000;
    border-bottom: 2px solid #000;
    pointer-events: none;
}

/* -----------------------
  tousen
-------------------------- */
.tokuten__title {
    position: relative;
}
.tokuten__title img {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 14.86rem;
}

/* -----------------------
  ticket
-------------------------- */
.subtitle--ticket {
    margin: 3rem 0 1.5rem;
    color: #1F4E8C;
    font-weight: 600;
    text-align: center;
}
.section--ticket-upper {
    padding: 2rem 1.6rem;
    background-image: url(../img/ticket_bg-upper.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
}
.section--ticket-bottom {
    padding: 3rem 1.6rem;
    background-image: url(../img/ticket_bg-bottom.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
}

.text__ticket-number {
    position: relative;
    width: 90%;
    margin: 0 auto 1rem;
    padding: 1rem 0;
    color: #1F4E8C;
    font-size: 2rem;
    font-weight: 600;
    text-align: center;
    background-color: #fff;
    border-radius: 1rem;
}
.text__ticket-number span {
    font-size: 1.8rem;
}
.text__ticket-number::before,
.text__ticket-number::after {
    content: "";
    position: absolute;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: top left;
}
.text__ticket-number::before {
    top: -.5rem;
    left: -1.2rem;
    width: 53.64px;
    height: 31.14px;
    background-image: url('https://www.d-yutaka.co.jp/blog/campaign/spiral/kangeki2026/img/icon_star_right.png');
}
.text__ticket-number::after {
    top: -.5rem;
    right: -2.6rem;
    width: 53px;
    height: 30px;
    background-image: url('https://www.d-yutaka.co.jp/blog/campaign/spiral/kangeki2026/img/icon_star_left.png');
}

.text__attention--ticket {
    color: #FF552D;
    font-weight: 600;
}
.text__attention--ticket span {
    padding: 0 10px;
    background-color: #F8FF96;
}
.link--ticket {
    margin: 1.5rem 0 .5rem;
    text-decoration: underline;
}

.list__item-duidelines {
    position: relative;
    padding-left: 1.8rem;
    font-size: 1.4rem;
}
.list__item-duidelines::before {
	content: '\25cf';
    position: absolute;
	top: 0;
	left: 0;
}
.list__item-duidelines a {
    text-decoration: underline;
}

/* -----------------------
  chusenkai
-------------------------- */
.form__label--lottery {
    padding: 1rem 1.5rem;
    color: #1F4E8C;
    font-weight: 500;
    background-color: #DAF4F9;
}
.form__label--lottery span {
    color: #F04E30;
}
/* -----------------------
  questionnaire
-------------------------- */
.form__group--quest {
    display: flex;
    flex-direction: column;
    gap: 1.8rem;
    margin: 0 auto;
}  
.form__radio--quest {
    display: flex;
    align-items: center;
    position: relative;
    padding: 0 0 0 3rem;
    cursor: pointer;
}  
.form__radio--quest input[type="radio"] {
    display: none;
} 
.form__radio--quest::before {
    content: '\25ef';
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.6rem;
}
.form__radio--quest:has(input[type="radio"]:checked) .form__radio-label--quest {
    color: #1F4E8C;
    font-weight: 600;
}
.form__radio--quest:has(input[type="radio"]:checked)::before {
    content: '\25c9';
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: #1F4E8C;
    font-size: 1.6rem;
}
.form__radio-label--quest {
    display: block;
    width: 100%;
    text-align: left;
    font-size: 1.6rem;
    border-radius: 6px;
}

textarea {
    padding: 1rem;
    font-size: 1.6rem;
    line-height: 1em;
	background: #f5f2f2;
	border: solid 1px #d9d1ce;
    border-radius: 6px;
	z-index: 0 !important;
}
textarea:focus {
	background: #f5f2f2;
	border: solid 1px #d9d1ce;
	z-index: 0 !important;
	outline: 0;
}

.form__other--wrap {
    display: none;
}

@media only screen and (min-width: 641px) {
    body.lp-kangeki {
        position: relative;
        min-height: 100vh;
        padding: 0;
        overflow-x: hidden;
        background-color: #cde8fb;
    }

    body.lp-kangeki::before {
        content: "";
        position: fixed;
        inset: -3rem;
        background: url("../img/bg-pc.png") center center / cover no-repeat;
        filter: blur(12px);
        transform: scale(1.06);
        opacity: .95;
        z-index: 0;
        pointer-events: none;
    }

    body.lp-kangeki::after {
        content: "";
        position: fixed;
        inset: 0;
        background: transparent;
        z-index: 0;
        pointer-events: none;
    }

    body.lp-kangeki .page {
        position: relative;
        z-index: 1;
        box-shadow: 0 2.4rem 6rem rgba(20, 62, 117, .18);
    }

}

@media only screen and (min-width: 1025px) {
    body.lp-kangeki .pc-layout {
        position: relative;
        z-index: 1;
        display: flex;
        align-items: flex-start;
        justify-content: center;
        gap: .2rem;
        width: min(118rem, calc(100vw - 4rem));
        margin: 0 auto;
    }

    body.lp-kangeki .pc-anchor-nav {
        display: block;
        position: sticky;
        top: 50vh;
        flex: 0 0 22rem;
        margin-left: auto;
        padding: 2.8rem 2.4rem;
        background: rgba(26, 74, 125, .52);
        border: 1px solid rgba(255, 255, 255, .38);
        border-radius: 2.4rem;
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        box-shadow: 0 1.8rem 4rem rgba(25, 67, 110, .28);
        transform: translateY(-50%);
    }

    body.lp-kangeki .pc-anchor-nav__list {
        display: grid;
        gap: 2rem;
        justify-items: end;
    }

    body.lp-kangeki .pc-anchor-nav__list li {
        width: 100%;
        text-align: left;
    }

    body.lp-kangeki .pc-anchor-nav__list a {
        position: relative;
        display: inline-flex;
        align-items: center;
        padding-left: 3rem !important;
        color: #fff;
        font-family: "Zen Maru Gothic", sans-serif;
        font-size: 2rem;
        font-weight: 500;
        line-height: 1.4;
        white-space: nowrap;
        text-shadow: 0 .2rem .8rem rgba(0, 0, 0, .28);
    }

    body.lp-kangeki .pc-anchor-nav__list a::before {
        content: "";
        position: absolute;
        left: 0;
        top: 50%;
        width: 1.4rem;
        height: 1.4rem;
        border-radius: 50%;
        background-color: #fff;
        transform: translateY(-50%);
    }

    body.lp-kangeki .pc-anchor-nav__cta {
        margin-top: 2.4rem;
    }

    body.lp-kangeki .page {
        position: relative;
        z-index: 1;
        box-shadow: 0 2.4rem 6rem rgba(20, 62, 117, .18);
    }

    .section[id] {
        scroll-margin-top: 3rem;
    }
}
