@charset 'utf-8';
/* ============ STYLE ============ */
.page {
    background-color: #DAF4F9;
}

/* headding */
.page__title,.section__title {
    position: relative;
    color: #4F74D0;
    font-weight: 600;
    line-height: 1em;
    text-align: center;
}
.page__title {
    font-size: 2.4rem;
}
.section__title {
    display: inline;
    font-size: 2rem;
}
.section__title::after {
    content: '';
    position: absolute;
    bottom: -.5rem;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 2px;
    background-color: #4F74D0;
}
.page__subtitle {
    padding: 0 2.8rem 1.6rem;
    color: #4F74D0;
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1.4em;
    border-bottom: solid .2rem #4F74D0;
}
.paragraph-title {
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.4em;
}

.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: #4F74D0;
    font-weight: 500;
}
.text--thanks::after {
    content: '';
    position: absolute;
    bottom: -.8rem;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 2px;
    background-color: #4F74D0;
}
.text--postscript {
    margin: .5rem 0 0;
    font-size: 14px;
    text-align: center;
}

.wrap--entry-status {
    width: 48.5%;
    padding: 2rem 0 2.4rem;
    background-color: #DAF4F9;
    border-radius: 1rem;
}
.wrap--entry-status.full {
    width: 100%;
}
.title--entry-status {
    color: #4F74D0;
    font-weight: 500;
    text-align: center;
}
.text--entry-status {
    margin-top: .8rem;
    font-size: 2.4rem;
    line-height: 1em;
    text-align: center;
}
.text--application-note {
    position: relative;
    display: inline;
    color: #4F74D0;
    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('../../202505_kangeki/img/icon_banzai-left.svg');
}
.text--application-note::after {
    right: -1.6em;
    background-image: url('../../202505_kangeki/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: #4F74D0;
    border-radius: .5rem;
}

/* section */
.section--white {
    padding: 3rem 2rem;
    background-color: #fff;
    border-radius: 1.6rem;
}
.section--white--compact {
    padding: 1.8rem 2rem !important;
    background-color: #fff;
    border-radius: 1.6rem;
}

.section--star,
.section--garland {
    position: relative;
    padding: 4rem 2rem 3rem;
    overflow: hidden;
}
.section--star::before,
.section--star::after,
.section--garland::before,
.section--garland::after {
    content: "";
    position: absolute;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: top left;
}
.section--star::before {
    top: 1.6rem;
    width: 53.64px;
    height: 31.14px;
}
.section--star::after {
    top: 1.6rem;
    width: 34px;
    height: 31px;
}
.section--star::before {
    left: 1.6rem;
    background-image: url('../../202505_kangeki/img/icon_star_left.png');
}
.section--star::after {
    right: 1.6rem;
    background-image: url('../../202505_kangeki/img/icon_star_right.png');
}
.section--garland::before,
.section--garland::after {
    top: .3rem;
    width: 66.67px;
    height: 49px;
}
.section--garland::before {
    left: .3rem;
    background-image: url('../../202505_kangeki/img/icon_garland_left.png');
}
.section--garland::after {
    right: .3rem;
    background-image: url('../../202505_kangeki/img/icon_garland_right.png');
}

.wrap-inner--receipt {
    padding: 2rem 2rem 3rem;
    border: solid 2px #4F74D0;
}

/* button */
input[type="submit"].button--submit,
button.button--submit,
a.button--submit {
    color: #fff;
    background-color: #E1502E;
    border: solid 1px #E1502E;
}
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: #4F74D0;
    background-color: #fff;
    border: solid 1px #4F74D0;
}
button.button--back::after,
a.button--back::after {
    border-top: 2px solid #4F74D0;
    border-right: 2px solid #4F74D0;
}
button.button--outer,
a.button--outer {
    color: #fff;
    background-color: #4F74D0;
    border: solid 1px #4F74D0;
}
button.button--outer::after,
a.button--outer::after {
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
}

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: 1em;
}
.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;
    padding-left: 5.6rem;
}

.application-steps {
    list-style: none;
    padding-left: 0;
    margin: 0;
}
.application-steps li {
    display: flex;
    align-items: flex-start;
    margin-bottom: 0.6em;
}
.application-steps li:last-child {
    margin-bottom: 0;
}
.application-steps__number {
    flex: 0 0 2em;
    text-align: center;
    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__section {
    padding: .2rem 1.4rem;
    color: #4F74D0;
    background-color: #DAF4F9;
}

.form__label {
    font-weight: 500;
}
.form__label span {
    color: #E1502E;
}

input[type="text"],
input[type="name"],
input[type="number"],
input[type="email"],
input[type="tel"],
input[type="date"],
input[type="postal-code"],
input[type="password"],
textarea {
    padding: 1rem;
    font-size: 1.6rem;
    line-height: 1em;
	background: #f5f2f2;
	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="date"]:focus,
input[type="postal-code"]:focus,
input[type="password"]:focus,
textarea:focus {
	background: #f5f2f2;
	border: solid 1px #d9d1ce;
	z-index: 0 !important;
	outline: 0;
}
textarea {
    line-height: 1.4em;
}
::placeholder {
	color: #B0B0B0;
	font-size: 1.6rem;
}

/* file */
input[type="file"] { font-size: 16px; }

input[type="file"]::file-selector-button {
    -webkit-appearance: none;
    appearance: none;
    padding: .6rem 1.2rem;
    border: 1px solid #ccc;
    background: #fff;
    border-radius: .6rem;
    cursor: pointer;
}
input[type="file"]::-webkit-file-upload-button {
    -webkit-appearance: none;
    appearance: none;
    padding: .6rem 1.2rem;
    border: 1px solid #ccc;
    background: #fff;
    border-radius: .6rem;
    cursor: pointer;
}

input[type="file"]::file-selector-button:hover,
input[type="file"]::-webkit-file-upload-button:hover {
    opacity: .9;
}

input[type="file"]::file-selector-button:focus-visible,
input[type="file"]::-webkit-file-upload-button:focus-visible {
    outline: 2px solid #ccc;
    outline-offset: 2px;
}

/* 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: #f5f2f2;
    border: solid 1px #4F74D0;
    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: #4F74D0;
}
.form__radio:has(input[type="radio"]:checked) .form__radio-label {
    color: #fff;
}
.form__radio:has(input[type="radio"]:checked)::after {
    content: '\25c9';
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.4rem;
    color: #fff; /* or お好みの色 */
}
.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: #f5f2f2; /* ← 背景色グレー */
    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;
}

/* questionnaire */
.form__quest-title-block {
    display: flex;
    align-items: flex-start; /* 番号とテキストの上下位置を上揃えに */
    gap: .5rem !important;
}
.form__quest-title-number {
    font-size: 1.6rem;
    line-height: 1.5em;
    text-align: justify;
    font-weight: 500;
    min-width: 1.2em;
    flex-shrink: 0;
}
.form__quest-title {
    margin: 0;
}

/* radio */
.quest__wrap--radio {
    padding-left: 1.6rem;
}  
.quest__wrap--radio li {
    display: flex;
    align-items: center;
    position: relative;
    padding: 0.4rem 0 0.4rem 1.9rem;
    cursor: pointer;
}
.quest__wrap--radio li label {
    width: 100%;
}
.quest__wrap--radio li input[type="radio"] {
    display: none;
}
.quest__wrap--radio li::after {
    content: '\25CB';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.4rem;
} 
.quest__wrap--radio li:has(input[type="radio"]:checked)::after {
    content: '\25CF';
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.4rem;
}

/* checkbox */
.quest__wrap--list li {
    margin: 0.8rem 0 0.8rem 1.6rem; /* 上下に0.8remの余白 */
}
.quest__wrap--list label {
    display: flex;
    align-items: center;
    gap: 0;
    flex-wrap: nowrap;
    position: relative;
}

.quest__wrap--list input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
    vertical-align: middle;
}

.quest__wrap--list input[type="checkbox"]::before,
.quest__wrap--list input[type="checkbox"]::after {
    content: "";
    width: 20px;
    height: 20px;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-40%);
    background-size: 100%;
    background-repeat: no-repeat;
    z-index: 1;
}

.quest__wrap--list input[type="checkbox"]::before {
    background-image: url(../../_public/img/check-before.png);
}

.quest__wrap--list input[type="checkbox"]:checked::after {
    background-image: url(../../_public/img/check-after.png);
}


/* -----------------------
  ticket
-------------------------- */
.subtitle--ticket {
    margin: 3rem 0 1.5rem;
    color: #4F74D0;
    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: #4F74D0;
    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('../../202505_kangeki/img/icon_star_right.png');
}
.text__ticket-number::after {
    top: -.5rem;
    right: -2.6rem;
    width: 53px;
    height: 30px;
    background-image: url('../../202505_kangeki/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;
}


/* -----------------------
  kiyaku
-------------------------- */
.toggle_contents {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
}
.toggle_title {
  height: 50px;
  position: relative;
  font-size: 1.4rem;
  text-align: center;
  cursor: pointer;
  line-height: 50px;
  border: solid 1px #000;
  border-radius: 7px;
}
.toggle_btn {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  height: 50px;
  display: block;
  width: 28px;
  height: 28px;
  transition: all .3s ease;
}
.toggle_btn:before, .toggle_btn:after {
  display: block;
  content: '';
  background-color: #000;
  position: absolute;
  width: 16px;
  height: 2px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: .3s;
}
.toggle_btn:before {
  width: 2px;
  height: 16px;
}
.toggle_title.selected .toggle_btn {
  position: absolute;
  top: 10px;
  right: 10px;
  transform: rotate(90deg);
}

.toggle_title.selected .toggle_btn:after {
  content: normal;
}
.toggle_contents dd {
  display: none;
}
.toggle_contents_bk {
  padding: 10px;
  font-size: 13px;
  line-height: 1.5em;
  color: #000;
  text-align: justify;
  word-wrap: break-word;
  overflow-wrap: break-word;
}