@charset "UTF-8";

.kv {
    background: #fff;
}

.kv__inner {
    position: relative;
    width: 100%;
    margin: 0 auto;
    overflow: hidden;
}

.kv__visual {
    display: block;
    width: 100%;
    height: auto;
}

.kv__application,
.kv__about {
    position: absolute;
    z-index: 1;
    left: 50%;
    display: block;
    transform: translateX(-50%);
}

.kv__application {
    top: 75.7%;
    width: 38.3%;
}

.kv__about {
    top: 89.8%;
    width: 20.5%;
}

.kv__application img,
.kv__about img {
    display: block;
    width: 100%;
    height: auto;
}

.news {
    padding: 70px 0;
}

.news__inner {
    width: calc(100% - 40px);
    max-width: 656px;
    margin: 0 auto;
    padding: 44px 40px 40px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 16px 36px rgba(42, 55, 75, 0.12);
}

.news__heading {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 18px;
    color: #333;
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1.4;
}

.news__heading img {
    width: 60px;
    height: auto;
}

.news__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.news__list li {
    border-bottom: 1px solid #e3e3e3;
}

.news__list a {
    display: grid;
    grid-template-columns: 106px 1fr;
    gap: 16px;
    align-items: start;
    min-height: 74px;
    padding: 21px 16px;
    color: #333;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.7;
    text-decoration: none;
}

.news__list time {
    color: #999;
    font-weight: 400;
    white-space: nowrap;
}

.news__more {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 280px;
    height: 50px;
    margin: 24px auto 0;
    padding: 2px;
    border-radius: 999px;
    background: linear-gradient(
        90deg,
        #2876DD 0%,
        #9B94C7 37%,
        #EFAD93 71%,
        #F66F95 100%
    );
    color: #333;
    font-size: 1.6rem;
    font-weight: 700;
    text-decoration: none;
}

.news__more::before {
    position: absolute;
    inset: 2px;
    border-radius: inherit;
    background: #fff;
    content: "";
}

.news__more > span {
    position: relative;
    z-index: 1;
}

.news__more-arrow {
    position: absolute !important;
    right: 24px;
    width: 9px;
    height: 9px;
    border-top: 3px solid #333;
    border-right: 3px solid #333;
    transform: rotate(45deg);
}

.purpose {
    width: 100%;
    min-height: min(48.44vw, 662px);
    margin: 0 auto;
    padding: clamp(24px, 2.64vw, 36px) 20px 50px;
    background-image:
        url("/img/bg_purpose.png"),
        radial-gradient(circle at 4% 76%, rgba(246, 111, 149, 0.09) 0%, rgba(246, 111, 149, 0.035) 18%, transparent 36%),
        radial-gradient(circle at 96% 24%, rgba(40, 118, 221, 0.085) 0%, rgba(40, 118, 221, 0.03) 20%, transparent 38%);
    background-position: center top, center, center;
    background-size: 100% auto, 100% 100%, 100% 100%;
    background-repeat: no-repeat;
}

.purpose__inner {
    width: 100%;
    max-width: 642px;
    margin: 0 auto;
}

.purpose__label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: #5888bd;
    font-family: "Madimi One", sans-serif;
    font-size: clamp(1.8rem, 1.4vw, 2.0rem);
    letter-spacing: 0.08em;
    line-height: 1;
}

.purpose__label img {
    width: clamp(25px, 2.2vw, 33px);
    height: auto;
}

.purpose__heading {
    margin: 12px 0 0;
    color: #4b321c;
    font-size: clamp(2.8rem, 3.08vw, 4.2rem);
    line-height: 1.25;
    text-align: center;
    letter-spacing: 0.4rem;
}

.purpose__lead {
    margin: clamp(30px, 3.66vw, 50px) 0 0;
    background: linear-gradient(90deg, #2876DD 0%, #9B94C7 37%, #EFAD93 71%, #F66F95 100%);
    background-clip: text;
    color: transparent;
    font-size: clamp(2rem, 2.35vw, 3.2rem);
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    -webkit-background-clip: text;
}

.purpose__text {
    margin-top: clamp(28px, 3.22vw, 44px);
}

.purpose__text p {
    margin: 0;
    color: #333;
    font-size: clamp(1.2rem, 1.17vw, 1.6rem);
    line-height: 1.8;
}

.purpose__text p + p {
    margin-top: 22px;
}

.overview {
    width: 100%;
    margin: 0 auto;
    padding: clamp(52px, 5.12vw, 70px) 20px clamp(64px, 6.59vw, 90px);
    border-radius: clamp(70px, 10.98vw, 150px) clamp(70px, 10.98vw, 150px) 0 0;
    background: var(--bg);
}

.overview__inner {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
}

.overview__label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: #5888bd;
    font-family: "Madimi One", sans-serif;
    font-size: clamp(1.8rem, 1.4vw, 2rem);
    letter-spacing: 0.08em;
    line-height: 1;
}

.overview__label img {
    width: clamp(25px, 2.2vw, 33px);
    height: auto;
}

.overview__heading {
    margin: 12px 0 clamp(40px, 4.39vw, 60px);
    color: #4b321c;
    font-size: clamp(2.8rem, 3.08vw, 4.2rem);
    letter-spacing: 0.4rem;
    line-height: 1.25;
    text-align: center;
}

.overview__table-wrap {
    overflow: hidden;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 12px 25px rgba(42, 55, 75, 0.12);
}

.overview__table {
    width: 100%;
    border-collapse: collapse;
    color: #333;
    font-size: 1.5rem;
    line-height: 1.7;
}

.overview__table tr:not(:last-child) {
    border-bottom: 1px solid #d8d8d8;
}

.overview__table th {
    width: 130px;
    padding: 14px 20px;
    background: var(--main);
    color: #fff;
    font-weight: 700;
    text-align: left;
    vertical-align: middle;
}

.overview__table td {
    padding: 14px 20px;
    background: #fff;
    vertical-align: middle;
}

.overview-application {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 315px;
    margin-top: clamp(50px, 5.12vw, 70px);
    overflow: hidden;
    border-radius: 18px;
    background:
        radial-gradient(circle at 20% 0%, rgba(251, 208, 228, 0.7), transparent 47%),
        radial-gradient(circle at 80% 100%, rgba(188, 244, 242, 0.8), transparent 50%),
        #e9f5ff;
}

.overview-application__content {
    position: relative;
    z-index: 1;
    width: 52%;
    padding: 44px 0 44px 66px;
}

.overview-application__content h3 {
    margin: 0;
    color: #333;
    font-size: 2.2rem;
    line-height: 1.5;
}

.overview-application__content p {
    margin: 14px 0 0;
    font-size: 1.5rem;
    line-height: 1.8;
}

.overview-application__button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 280px;
    height: 50px;
    margin-top: 28px;
    padding: 2px;
    border-radius: 999px;
    background: linear-gradient(
        90deg,
        #2876DD 0%,
        #9B94C7 37%,
        #EFAD93 71%,
        #F66F95 100%
    );
    color: #333;
    font-size: 1.6rem;
    font-weight: 700;
    text-decoration: none;
}

.overview-application__button::before {
    position: absolute;
    inset: 2px;
    border-radius: inherit;
    background: #fff;
    content: "";
}

.overview-application__button > span {
    position: relative;
    z-index: 1;
}

.overview-application__arrow {
    position: absolute !important;
    right: 24px;
    width: 9px;
    height: 9px;
    border-top: 3px solid #333;
    border-right: 3px solid #333;
    transform: rotate(45deg);
}

.overview-application__family {
    position: absolute;
    right: 5%;
    bottom: 0;
    width: 42%;
    height: auto;
}

.about-summit {
    width: 100%;
    margin: 0 auto;
    padding: 28px 20px 80px;
    background: var(--bg);
}

.about-summit__inner {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
}

.about-summit__label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: #5888bd;
    font-family: "Madimi One", sans-serif;
    font-size: clamp(1.8rem, 1.4vw, 2rem);
    letter-spacing: 0.08em;
    line-height: 1;
}

.about-summit__label img {
    width: clamp(25px, 2.2vw, 33px);
    height: auto;
}

.about-summit__heading {
    margin: 12px 0 0;
    color: #4b321c;
    font-size: clamp(2.8rem, 3.08vw, 4.2rem);
    letter-spacing: 0.4rem;
    line-height: 1.25;
    text-align: center;
}

.about-summit__intro {
    margin: 30px 0 0;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.8;
    text-align: center;
}

.about-card {
    padding: 34px 30px;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(42, 55, 75, 0.12);
}

.about-card--greeting {
    margin-top: 48px;
}

.about-card__heading {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 24px;
    color: #333;
    font-size: 2.4rem;
    line-height: 1.4;
}

.about-card__heading img {
    width: 48px;
    height: auto;
}

.about-card__greeting-body {
    display: grid;
    grid-template-columns: 242px 1fr;
    gap: 24px;
    align-items: start;
}

.about-card__chairman {
    display: block;
    width: 100%;
    height: auto;
}

.about-card__message p,
.about-card--community > p {
    margin: 0;
    font-size: 1.5rem;
    line-height: 1.8;
}

.about-card__message p + p {
    margin-top: 24px;
}

.about-card__message .about-card__signature {
    margin-top: 28px;
    text-align: right;
}

.about-card--community {
    margin-top: 24px;
}

.about-card--community .about-card__heading {
    margin-bottom: 14px;
}

.about-card--history {
    margin-top: 24px;
}

.about-card--history .about-card__heading {
    margin-bottom: 24px;
}

.summit-history {
    position: relative;
    margin: 0;
    padding: 0 0 0 29px;
    list-style: none;
}

.summit-history::before {
    position: absolute;
    top: 10px;
    bottom: 40px;
    left: 8px;
    width: 2px;
    background: #e9c923;
    content: "";
}

.summit-history li {
    position: relative;
}

.summit-history li + li {
    margin-top: 20px;
}

.summit-history li::before {
    position: absolute;
    top: 4px;
    left: -29px;
    width: 17px;
    height: 17px;
    border: 3px solid #e9c923;
    border-radius: 50%;
    background: #fff;
    content: "";
}

.summit-history p {
    margin: 0;
    font-size: 1.5rem;
    line-height: 1.7;
}

.summit-history__year {
    font-size: 1.7rem !important;
    font-weight: 700;
}

.program {
    width: 100%;
    margin: 0 auto;
    padding: 56px 20px 80px;
    background: var(--bg);
}

.program__inner {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
}

.program__label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: #5888bd;
    font-family: "Madimi One", sans-serif;
    font-size: clamp(1.8rem, 1.4vw, 2rem);
    letter-spacing: 0.08em;
    line-height: 1;
}

.program__label img {
    width: clamp(25px, 2.2vw, 33px);
    height: auto;
}

.program__heading {
    margin: 12px 0 0;
    color: #4b321c;
    font-size: clamp(2.8rem, 3.08vw, 4.2rem);
    letter-spacing: 0.4rem;
    line-height: 1.25;
    text-align: center;
}

.program__intro {
    margin: 28px 0 0;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.7;
    text-align: center;
}

.program__tabs {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 48px;
}

.program__tab {
    min-width: 208px;
    padding: 13px 22px;
    border: 0;
    border-radius: 999px;
    background: #e6e6e6;
    color: #999;
    font-family: inherit;
    font-size: 1.5rem;
    font-weight: 700;
    cursor: pointer;
    transition: background-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}

.program__tab.is-active {
    background: var(--main);
    box-shadow: 0 7px 14px rgba(69, 134, 220, 0.25);
    color: #fff;
}

.program__panel {
    margin-top: 24px;
}

.program__panel[hidden] {
    display: none;
}

.program__schedule {
    margin: 0;
    padding: 0;
    list-style: none;
}

.program__schedule li {
    display: grid;
    grid-template-columns: 120px 1fr;
    min-height: 112px;
    overflow: hidden;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 20px rgba(42, 55, 75, 0.1);
}

.program__schedule li + li {
    margin-top: 16px;
}

.program__schedule time {
    display: flex;
    align-items: center;
    padding: 18px;
    background: var(--main);
    color: #fff;
    font-size: 1.7rem;
    font-weight: 700;
    line-height: 1.6;
}

.program__schedule li > div {
    align-self: center;
    padding: 18px 24px;
}

.program__category {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--bg-2);
    color: var(--main);
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1.4;
}

.program__schedule p {
    margin: 8px 0 0;
    font-size: 1.5rem;
    line-height: 1.65;
}

.program__schedule small {
    display: block;
    margin-top: 4px;
    color: #999;
    font-size: 1.3rem;
    line-height: 1.6;
}

.program__note {
    margin: 24px 0 0;
    color: #999;
    font-size: 1.3rem;
    line-height: 1.7;
    text-align: center;
}

.access {
    width: 100%;
    margin: 0 auto;
    padding: 70px 20px 90px;
    background: var(--bg);
}

.access__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 40px;
    align-items: center;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
}

.access__map {
    overflow: hidden;
    border-radius: 16px;
    box-shadow: 0 10px 24px rgba(42, 55, 75, 0.12);
}

.access__map iframe {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    border: 0;
}

.access__label {
    display: flex;
    align-items: center;
    gap: 7px;
    color: #5888bd;
    font-family: "Madimi One", sans-serif;
    font-size: clamp(1.8rem, 1.4vw, 2rem);
    letter-spacing: 0.08em;
    line-height: 1;
}

.access__label img {
    width: clamp(25px, 2.2vw, 33px);
    height: auto;
}

.access__heading {
    margin: 12px 0 24px;
    color: #4b321c;
    font-size: clamp(2.8rem, 3.08vw, 4.2rem);
    letter-spacing: 0.4rem;
    line-height: 1.25;
}

.access__list {
    margin: 0;
}

.access__list > div {
    display: grid;
    grid-template-columns: 112px 1fr;
    gap: 16px;
    padding: 18px 0;
    border-bottom: 1px solid #dccd67;
}

.access__list dt,
.access__list dd {
    margin: 0;
    font-size: 1.4rem;
    line-height: 1.7;
}

.access__list dt {
    font-weight: 700;
}

.movie {
    width: 100%;
    margin: 0 auto;
    padding: 56px 20px 80px;
    background: var(--bg);
}

.movie__inner {
    width: 100%;
    max-width: 890px;
    margin: 0 auto;
}

.movie__label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: #5888bd;
    font-family: "Madimi One", sans-serif;
    font-size: clamp(1.8rem, 1.4vw, 2rem);
    letter-spacing: 0.08em;
    line-height: 1;
}

.movie__label img {
    width: clamp(25px, 2.2vw, 33px);
    height: auto;
}

.movie__heading {
    margin: 12px 0 0;
    color: #4b321c;
    font-size: clamp(2.8rem, 3.08vw, 4.2rem);
    letter-spacing: 0.4rem;
    line-height: 1.25;
    text-align: center;
}

.movie__intro {
    margin: 28px 0 0;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.7;
    text-align: center;
}

.movie__tabs {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 48px;
}

.movie__tab {
    min-width: 166px;
    padding: 13px 22px;
    border: 0;
    border-radius: 999px;
    background: #e6e6e6;
    color: #999;
    font-family: inherit;
    font-size: 1.5rem;
    font-weight: 700;
    cursor: pointer;
    transition: background-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}

.movie__tab.is-active {
    background: var(--main);
    box-shadow: 0 7px 14px rgba(69, 134, 220, 0.25);
    color: #fff;
}

.movie__panel {
    margin-top: 46px;
    overflow: hidden;
    border-radius: 14px;
    background: #ddd;
    box-shadow: 0 12px 26px rgba(42, 55, 75, 0.14);
}

.movie__panel[hidden] {
    display: none;
}

.movie__panel iframe {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    border: 0;
}

.movie__download {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 280px;
    height: 50px;
    margin: 46px auto 0;
    padding: 2px;
    border-radius: 999px;
    background: linear-gradient(
        90deg,
        #2876DD 0%,
        #9B94C7 37%,
        #EFAD93 71%,
        #F66F95 100%
    );
    color: #333;
    font-size: 1.5rem;
    font-weight: 700;
    text-decoration: none;
}

.movie__download::before {
    position: absolute;
    inset: 2px;
    border-radius: inherit;
    background: #fff;
    content: "";
}

.movie__download > * {
    position: relative;
    z-index: 1;
}

.movie__download img {
    width: 18px;
    height: auto;
}

.movie__download-arrow {
    position: absolute !important;
    right: 18px;
    width: 8px;
    height: 8px;
    border-top: 2px solid #333;
    border-right: 2px solid #333;
    transform: rotate(45deg);
}

.faq {
    position: relative;
    width: 100%;
    margin: 0 auto;
    padding: min(28vw, 310px) 20px 80px;
    overflow: hidden;
    background: var(--bg);
}

.faq::before {
    position: absolute;
    z-index: 3;
    top: min(17.2vw, 213px);
    right: 0;
    bottom: 0;
    left: 0;
    border-radius: clamp(70px, 10vw, 136px) clamp(70px, 10vw, 136px) 0 0;
    background:
        radial-gradient(circle at 16% 82%, rgba(220, 236, 255, 0.65), transparent 22%),
        #fff;
    content: "";
}

.faq::after {
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;
    width: 100%;
    aspect-ratio: 1024 / 277;
    background-image: url("/img/bg_faq.png");
    background-position: center top;
    background-size: 100% auto;
    background-repeat: no-repeat;
    content: "";
    pointer-events: none;
}

.faq__inner {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
    gap: 44px;
    align-items: start;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
}

.faq__title {
    padding-top: 14px;
}

.faq__label {
    display: flex;
    align-items: center;
    gap: 7px;
    color: #5888bd;
    font-family: "Madimi One", sans-serif;
    font-size: clamp(1.8rem, 1.4vw, 2rem);
    letter-spacing: 0.08em;
    line-height: 1;
}

.faq__label img {
    width: clamp(25px, 2.2vw, 33px);
    height: auto;
}

.faq__heading {
    margin: 12px 0 0;
    color: #4b321c;
    font-size: clamp(2.8rem, 3.08vw, 4.2rem);
    letter-spacing: 0.4rem;
    line-height: 1.25;
}

.faq__item {
    border-radius: 14px;
    background: var(--bg-2);
}

.faq__item + .faq__item {
    margin-top: 14px;
}

.faq__item summary {
    display: grid;
    grid-template-columns: 26px 1fr 18px;
    gap: 12px;
    align-items: center;
    min-height: 64px;
    padding: 18px 22px;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.6;
    cursor: pointer;
    list-style: none;
}

.faq__item summary::-webkit-details-marker {
    display: none;
}

.faq__question-mark {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--main);
    color: #fff;
    font-size: 1.3rem;
    line-height: 1;
}

.faq__toggle {
    position: relative;
    display: block;
    width: 16px;
    height: 16px;
}

.faq__toggle::before,
.faq__toggle::after {
    position: absolute;
    top: 7px;
    left: 2px;
    width: 12px;
    height: 2px;
    background: var(--main);
    content: "";
    transition: transform 0.2s ease;
}

.faq__toggle::after {
    transform: rotate(90deg);
}

.faq__item[open] .faq__toggle::after {
    transform: rotate(0);
}

.faq__answer {
    padding: 0 58px 22px 60px;
}

.faq__answer p {
    margin: 0;
    font-size: 1.4rem;
    line-height: 1.75;
}

.faq__answer a {
    font-weight: 700;
}

.registration {
    width: 100%;
    padding: 70px 20px;
    background: #fff;
}

.registration__inner {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    padding: 68px 20px 76px;
    border-radius: 20px;
    background: var(--bg-3);
}

.registration__content {
    width: 100%;
    max-width: 656px;
    margin: 0 auto;
}

.registration__label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: #5888bd;
    font-family: "Madimi One", sans-serif;
    font-size: clamp(1.8rem, 1.4vw, 2rem);
    letter-spacing: 0.08em;
    line-height: 1;
}

.registration__label img {
    width: clamp(25px, 2.2vw, 33px);
    height: auto;
}

.registration__heading {
    margin: 12px 0 0;
    color: #4b321c;
    font-size: clamp(2.8rem, 3.08vw, 4.2rem);
    letter-spacing: 0.4rem;
    line-height: 1.25;
    text-align: center;
}

.registration__block {
    margin-top: 58px;
}

.registration__block-heading {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding-bottom: 12px;
    border-bottom: 2px solid #d8d8d8;
    color: #333;
    font-size: 2.2rem;
    line-height: 1.4;
}

.registration__block-heading img {
    width: 48px;
    height: auto;
}

.registration-flow {
    position: relative;
    margin: 26px 0 0;
    padding: 0;
    list-style: none;
}

.registration-flow::before {
    position: absolute;
    top: 18px;
    bottom: 18px;
    left: 17px;
    width: 2px;
    background: #dfc125;
    content: "";
}

.registration-flow li {
    position: relative;
    display: grid;
    grid-template-columns: 36px 1fr;
    gap: 16px;
    align-items: start;
}

.registration-flow li + li {
    margin-top: 20px;
}

.registration-flow__number {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 2px solid #dfc125;
    border-radius: 50%;
    background: #fff;
    font-size: 1.7rem;
    font-weight: 700;
}

.registration-flow h4 {
    margin: 0;
    font-size: 1.7rem;
    line-height: 1.5;
}

.registration-flow p {
    margin: 4px 0 0;
    font-size: 1.4rem;
    line-height: 1.7;
}

.registration__block--fee {
    margin-top: 62px;
}

.registration-fee {
    margin-top: 24px;
    overflow: hidden;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 22px rgba(42, 55, 75, 0.12);
}

.registration-fee table {
    width: 100%;
    border-collapse: collapse;
    font-size: 1.5rem;
    text-align: center;
}

.registration-fee th,
.registration-fee td {
    padding: 16px 18px;
}

.registration-fee thead th {
    background: var(--main);
    color: #fff;
    font-weight: 700;
}

.registration-fee tbody tr + tr {
    border-top: 1px solid #d8d8d8;
}

.registration-fee tbody th {
    width: 33.333%;
    background: #eee;
    font-weight: 400;
    text-align: left;
}

.registration-fee tbody td {
    background: #fff;
}

.registration__note {
    margin: 40px 0 0;
    color: #999;
    font-size: 1.2rem;
    line-height: 1.7;
}

.registration-application {
    width: 100%;
    padding: 40px 20px 80px;
    background: #fff;
}

.registration-application .overview-application {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
}

@media screen and (max-width: 790px) {
    .kv__application,
    .kv__about {
        top: 80%;
        width: 42%;
    }

    .kv__application {
        left: 27%;
    }

    .kv__about {
        left: 73%;
    }

    .news {
        padding: 48px 0;
    }

    .news__inner {
        width: 90%;
        padding: 30px 20px;
        border-radius: 16px;
    }

    .news__heading {
        gap: 10px;
        margin-bottom: 12px;
        font-size: 2.2rem;
    }

    .news__heading img {
        width: 42px;
    }

    .news__list a {
        display: block;
        min-height: 0;
        padding: 18px 8px;
        font-size: 1.4rem;
    }

    .news__list time {
        display: block;
        margin-bottom: 6px;
    }

    .news__more {
        width: min(100%, 280px);
        margin-top: 24px;
    }

    .purpose {
        min-height: 0;
        padding: 48px 0;
        background-image:
            radial-gradient(circle at 0% 80%, rgba(246, 111, 149, 0.08) 0%, transparent 36%),
            radial-gradient(circle at 100% 20%, rgba(40, 118, 221, 0.075) 0%, transparent 38%);
        background-position: center, center;
        background-size: 100% 100%, 100% 100%;
    }

    .purpose__inner {
        width: 95%;
    }

    .purpose__heading {
        margin-top: 10px;
    }

    .purpose__lead {
        margin-top: 28px;
        font-size: clamp(1.8rem, 5.2vw, 2.4rem);
    }

    .purpose__text {
        margin-top: 28px;
    }

    .purpose__text p {
        font-size: 1.4rem;
    }

    .overview {
        padding: 48px 0 56px;
        border-radius: 48px 48px 0 0;
    }

    .overview__inner {
        width: 90%;
    }

    .overview__heading {
        margin: 10px 0 32px;
    }

    .overview__table-wrap {
        border-radius: 12px;
    }

    .overview__table {
        font-size: 1.3rem;
        line-height: 1.6;
    }

    .overview__table th {
        width: 76px;
        padding: 12px 10px;
        text-align: center;
    }

    .overview__table td {
        padding: 12px;
    }

    .overview-application {
        display: block;
        min-height: 0;
        margin-top: 40px;
        border-radius: 14px;
    }

    .overview-application__content {
        width: 100%;
        padding: 28px 20px 0;
    }

    .overview-application__content h3 {
        font-size: 2rem;
        text-align: center;
    }

    .overview-application__content p {
        font-size: 1.4rem;
    }

    .overview-application__button {
        width: min(100%, 280px);
        margin: 24px auto 0;
    }

    .overview-application__family {
        position: relative;
        right: auto;
        bottom: auto;
        display: block;
        width: 88%;
        margin: 26px auto 0;
    }

    .about-summit {
        padding: 48px 0 56px;
    }

    .about-summit__inner {
        width: 90%;
    }

    .about-summit__heading {
        margin-top: 10px;
    }

    .about-summit__intro {
        margin-top: 24px;
        font-size: 1.4rem;
        text-align: left;
    }

    .about-summit__intro br {
        display: none;
    }

    .about-card {
        padding: 26px 20px;
        border-radius: 14px;
    }

    .about-card--greeting {
        margin-top: 32px;
    }

    .about-card__heading {
        gap: 10px;
        margin-bottom: 20px;
        font-size: 2rem;
    }

    .about-card__heading img {
        width: 40px;
    }

    .about-card__greeting-body {
        display: block;
    }

    .about-card__chairman {
        width: min(100%, 260px);
        margin: 0 auto 24px;
    }

    .about-card__message p,
    .about-card--community > p {
        font-size: 1.4rem;
    }

    .about-card__message p + p {
        margin-top: 20px;
    }

    .about-card__message .about-card__signature {
        text-align: left;
    }

    .about-card--history {
        margin-top: 20px;
    }

    .summit-history::before {
        bottom: 55px;
    }

    .summit-history p {
        font-size: 1.4rem;
    }

    .summit-history__year {
        font-size: 1.5rem !important;
    }

    .program {
        padding: 48px 0 56px;
    }

    .program__inner {
        width: 90%;
    }

    .program__heading {
        margin-top: 10px;
    }

    .program__intro {
        margin-top: 24px;
        font-size: 1.4rem;
        text-align: left;
    }

    .program__intro br {
        display: none;
    }

    .program__tabs {
        gap: 8px;
        margin-top: 32px;
    }

    .program__tab {
        flex: 1;
        min-width: 0;
        padding: 11px 8px;
        font-size: 1.2rem;
    }

    .program__schedule li {
        grid-template-columns: 82px 1fr;
        min-height: 100px;
        border-radius: 12px;
    }

    .program__schedule time {
        padding: 12px;
        font-size: 1.4rem;
    }

    .program__schedule li > div {
        padding: 15px 14px;
    }

    .program__category {
        font-size: 1.2rem;
    }

    .program__schedule p {
        font-size: 1.3rem;
    }

    .program__schedule small {
        font-size: 1.1rem;
    }

    .program__note {
        font-size: 1.2rem;
        text-align: left;
    }

    .access {
        padding: 48px 0 56px;
    }

    .access__inner {
        display: flex;
        flex-direction: column-reverse;
        gap: 32px;
        width: 90%;
    }

    .access__map,
    .access__content {
        width: 100%;
    }

    .access__label {
        justify-content: center;
    }

    .access__heading {
        margin: 10px 0 24px;
        text-align: center;
    }

    .access__list > div {
        grid-template-columns: 86px 1fr;
        gap: 12px;
        padding: 15px 0;
    }

    .access__list dt,
    .access__list dd {
        font-size: 1.3rem;
    }

    .movie {
        padding: 48px 0 56px;
    }

    .movie__inner {
        width: 90%;
    }

    .movie__heading {
        margin-top: 10px;
    }

    .movie__intro {
        margin-top: 24px;
        font-size: 1.4rem;
        text-align: left;
    }

    .movie__intro br {
        display: none;
    }

    .movie__tabs {
        gap: 8px;
        margin-top: 32px;
    }

    .movie__tab {
        flex: 1;
        min-width: 0;
        padding: 11px 8px;
        font-size: 1.3rem;
    }

    .movie__panel {
        margin-top: 28px;
        border-radius: 12px;
    }

    .movie__download {
        width: min(100%, 280px);
        margin-top: 32px;
    }

    .faq {
        padding: 140px 0 56px;
    }

    .faq::before {
        top: 93px;
        border-radius: 48px 48px 0 0;
    }

    .faq::after {
        left: 50%;
        width: auto;
        height: 160px;
        aspect-ratio: 1024 / 277;
        background-size: auto 160px;
        transform: translateX(-50%);
    }

    .faq__inner {
        display: block;
        width: 90%;
    }

    .faq__title {
        padding-top: 0;
        text-align: center;
    }

    .faq__label {
        justify-content: center;
    }

    .faq__heading {
        margin-top: 10px;
    }

    .faq__list {
        margin-top: 32px;
    }

    .faq__item summary {
        grid-template-columns: 24px 1fr 16px;
        gap: 9px;
        padding: 16px 14px;
        font-size: 1.4rem;
    }

    .faq__question-mark {
        width: 22px;
        height: 22px;
        font-size: 1.2rem;
    }

    .faq__answer {
        padding: 0 16px 18px 47px;
    }

    .faq__answer p {
        font-size: 1.3rem;
    }

    .registration {
        padding: 48px 0;
    }

    .registration__inner {
        width: 90%;
        padding: 44px 20px 48px;
        border-radius: 16px;
    }

    .registration__heading {
        margin-top: 10px;
    }

    .registration__block {
        margin-top: 44px;
    }

    .registration__block-heading {
        gap: 10px;
        font-size: 1.9rem;
    }

    .registration__block-heading img {
        width: 40px;
    }

    .registration-flow {
        margin-top: 22px;
    }

    .registration-flow li {
        gap: 12px;
    }

    .registration-flow h4 {
        font-size: 1.5rem;
    }

    .registration-flow p {
        font-size: 1.3rem;
    }

    .registration__block--fee {
        margin-top: 48px;
    }

    .registration-fee table {
        font-size: 1.3rem;
    }

    .registration-fee th,
    .registration-fee td {
        padding: 13px 8px;
    }

    .registration__note {
        margin-top: 28px;
        font-size: 1.1rem;
    }

    .registration-application {
        padding: 32px 0 56px;
    }

    .registration-application .overview-application {
        width: 90%;
    }
}