* {
    scroll-behavior: smooth;
}

body {
    width: 100%;
    margin: 0;
    padding: 0;
}


/*---------------------------
---------Smooth Scroll: Lenis------------
---------------------------*/
html.lenis,
html.lenis body {
    height: auto;
}

.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

.lenis.lenis-smooth iframe {
    pointer-events: none;
}

body::selection {
    background-color: #27A575;
    color: white;
}

/* --------------------------------
   Loading-----------
-------------------------------- */
body.is-loading {
    overflow: hidden;
}

.loading {
    position: fixed;
    inset: 0;
    z-index: 10;
    display: grid;
    place-items: center;
    padding: 24px;
    background: #0C1411;
    backdrop-filter: blur(20px) saturate(135%);
    -webkit-backdrop-filter: blur(20px) saturate(135%);
    transition: opacity 550ms ease, visibility 550ms ease;
}

.loading::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 47% 50%, rgba(16, 185, 129, 0.075), transparent 54%),
        radial-gradient(ellipse at 60% 48%, rgba(111, 111, 111, 0.08), transparent 50%),
        linear-gradient(120deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.012));
    pointer-events: none;
}

.loading__brand {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: calc(20vw/19.2);
    width: min(760px, 88vw);
    justify-content: center;
    opacity: 0;
    filter: blur(12px);
    transform: translate(-18px, 18px) scale(0.98);
    animation: brand-in 500ms cubic-bezier(0.18, 0.86, 0.24, 1) 120ms forwards;
}

.loading__logo {
    display: block;
    width: clamp(100px, calc(300vw/19.2), calc(300vw/19.2));
    height: auto;
}

.loading__divider {
    flex-shrink: 0;
    width: 1px;
    height: calc(46vw/19.2);
    background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.5), transparent);
}

.loading__title {
    position: relative;
    min-width: 10em;
    margin: 0;
    color: #f7f9fc;
    font-size: clamp(13px, calc(28vw/19.2), calc(28vw/19.2));
    font-weight: 600;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.loading__title::after {
    content: "";
    display: inline-block;
    width: 1px;
    height: 1.1em;
    margin-left: 3px;
    background: currentColor;
    vertical-align: -0.16em;
    opacity: 0;
}

.loading__title.is-typing::after {
    animation: caret-blink 720ms steps(1) infinite;
}

.loading__title.is-done::after {
    display: none;
}

.loading.is-fading {
    opacity: 0;
    visibility: hidden;
}

.loading.is-fading .loading__brand {
    animation: brand-out 620ms ease forwards;
}

.page {
    position: relative;
    min-height: 100vh;
    opacity: 0;
    filter: blur(18px);
    transition: opacity 1100ms ease, filter 1100ms ease;
}

.page::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

.page.is-visible {
    opacity: 1;
    filter: none;
}

@keyframes brand-in {
    to {
        opacity: 1;
        filter: blur(0);
        transform: translate(0, 0) scale(1);
    }
}

@keyframes brand-out {
    to {
        opacity: 0;
        filter: blur(12px);
        transform: translateY(-8px);
    }
}

@keyframes caret-blink {
    50% {
        opacity: 1;
    }
}

@media (max-width: 700px) {
    .loading__brand {
        gap: 14px;
        width: min(360px, 92vw);
    }

    .loading__logo {
        width: clamp(150px, 38vw, 168px);
    }

    .loading__divider {
        height: 28px;
    }

    .loading__title {
        min-width: 9.5em;
    }
}

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: 1ms !important;
        scroll-behavior: auto !important;
        transition-duration: 1ms !important;
    }
}

/* --------------------------------
   Header-----------
-------------------------------- */
.header {
    width: fit-content;
    position: fixed;
    left: 0;
    right: 0;
    top: calc(16vw/19.2);
    margin: auto;
    z-index: 999;
    padding: calc(8vw/19.2) calc(40vw/19.2);
    background-color: #f6fffde1;
    backdrop-filter: blur(3px);
    border-radius: calc(100vw/19.2);
    border: 1px solid #becec5;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(73vw/19.2);
    opacity: 0;
    visibility: hidden;
    transition: opacity 350ms ease, visibility 350ms ease, transform 450ms cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform, opacity;
}

.header.is-form-focus {
    transform: translateY(calc(-100% - 40px)) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none;
}

.header.is-visible {
    opacity: 1;
    visibility: visible;
}


.logo-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
}

.logo-wrapper:hover {
    opacity: 0.8;
}

.inv_logo {
    width: calc(120vw/19.2);
    min-width: 48px;
}

.nav_wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(12px, calc(32vw/19.2), 64px);
    list-style: none;
    margin: 0;
}

.nav_text {
    font-family: 'Zen Kaku Gothic New';
    font-size: clamp(13px, calc(18vw/19.2), 44px);
    color: #000;
    letter-spacing: 0.01em;
    font-weight: 700;
    text-decoration: none;
    transition: opacity 0.3s ease, color 0.3s ease, transform 0.3s ease;
}

.nav_text:hover {
    opacity: 0.6;
    color: #27A575;
    transform: translateY(3px);
}

/* --------------------------------
   nav_dropdown-----------
-------------------------------- */
.nav_item {
    position: relative;
}

.nav_item_has_dropdown {
    padding: calc(18vw/19.2) 0;
}

.nav_text_dropdown {
    display: flex;
    align-items: center;
    gap: 0.35em;
}

.nav_text_dropdown::after {
    content: "";
    width: 0.45em;
    height: 0.45em;
    border-right: 2px solid #003028;
    border-bottom: 2px solid #003028;
    transform: translateY(-0.15em) rotate(45deg);
    transition: transform 0.3s ease;
}

.nav_item_has_dropdown:hover .nav_text_dropdown::after,
.nav_item_has_dropdown:focus-within .nav_text_dropdown::after {
    transform: translateY(calc(-0.15em + 3px)) rotate(45deg);
}

.nav_dropdown {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(8px);
    z-index: 1000;
    min-width: 128px;
    margin: 0;
    padding: calc(10vw/19.2) 0;
    list-style: none;
    background-color: #f8fffed3;
    backdrop-filter: blur(3px);
    border-radius: calc(2vw/19.2);
    box-shadow: 0px 3px 10px rgba(96, 114, 108, 0.123);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.nav_item_has_dropdown:hover .nav_dropdown,
.nav_item_has_dropdown:focus-within .nav_dropdown {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

.nav_dropdown_link {
    display: block;
    padding: calc(10vw/19.2) calc(24vw/19.2);
    font-family: 'Zen Kaku Gothic New';
    font-size: clamp(13px, calc(16vw/19.2), 36px);
    color: #000000;
    letter-spacing: 0.1em;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.2s ease, background 0.2s ease;
}

.nav_dropdown_link:hover,
.nav_dropdown_link:focus {
    color: #01806A;
    background: #E6F5F0;
}

.cta {
    position: relative;
    padding: calc(3vw/19.2) calc(5vw/19.2);
    z-index: 0;
    font-family: 'Zen Kaku Gothic New';
    font-size: clamp(13px, calc(20vw/19.2), 60px);
    text-decoration: none;
    color: #ffffff;
    letter-spacing: 0.1em;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(1vw/19.2);
    width: calc(250vw/19.2);
    min-width: 160px;
    aspect-ratio: 250 / 49;
    border-radius: 57px;
    cursor: pointer;
    overflow: hidden;
    background: linear-gradient(to right, #01806A 20%, #66E385);
    box-shadow: 0px 3px 10px rgba(96, 114, 108, 0.5);
    transition: box-shadow 0.3s ease;
}

.cta::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 57px;
    background: linear-gradient(to right, #27A575, #66E385);
    opacity: 0;
    transition: opacity 0.2s ease;
    z-index: -1;
}

.cta:hover::before {
    opacity: 1;
}

.cta:hover {
    box-shadow: 0px 6px 20px rgba(121, 253, 208, 0.6);
}

.cta img {
    z-index: 1;
    width: calc(32vw/19.2);
    min-width: 20px;
    margin-bottom: calc(6vw/19.2);
}

@media screen and (max-width:700px) {

    .header {
        width: 90%;
        min-width: 300px;
        border-radius: calc(100vw/7);
    }

    .nav_wrapper {
        padding: 0;
    }

    .nav_text {
        display: none;
    }

    .nav_dropdown_link {
        padding: calc(16vw/7) calc(24vw/7);
    }
}

/* --------------------------------
   KV------------
-------------------------------- */
.kv {
    width: 100%;
    height: 100vh;
    min-height: fit-content;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(24vw/19.2);
    overflow: hidden;
}

.kv_text_wrapper {
    margin-top: 4vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0;
    gap: calc(40vw/19.2);
}

.catchcopy {
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(16vw/19.2);
    color: #fff;
}

.catchcopy_title {
    margin: 0;
    font-family: "Noto Sans JP";
    font-size: clamp(30px, calc(65vw/19.2), calc(65vw/19.2));
    font-weight: 700;
    line-height: 127%;
    letter-spacing: 0.02em;
    text-align: center;
}

.catchcopy_title span {
    font-family: "Tapestry";
    font-size: clamp(40px, calc(100vw/19.2), calc(100vw/19.2));
    color: #46C47D;
    font-weight: 500;
}

.catchcopy_subtitle {
    margin: 0;
    font-family: "Zen Kaku Gothic New";
    font-size: clamp(11.5px, calc(24vw/19.2), calc(24vw/19.2));
    font-weight: 300;
    letter-spacing: 0.15em;
    text-align: center;
}

.catchcopy_subtitle span {
    font-size: clamp(13px, calc(32vw/19.2), calc(32vw/19.2));
    font-weight: 700;
    color: #46C47D;
}

.kv_date {
    width: calc(500vw/19.2);
    min-width: 300px;
}

#cta_big {
    scale: 1.2;
}

.kv_slide_wrapper {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(968.72vw/19.2);
    height: fit-content;
    flex-shrink: 0;
    margin-right: calc(-150vw/19.2);
    overflow: visible;
}

.kv_slide {
    width: calc(310vw/19.2);
    text-decoration: none;
    aspect-ratio: 35 / 55;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    flex-shrink: 0;
    filter: drop-shadow(0 0 4px rgba(195, 255, 210, 0.7)) drop-shadow(0 0 20px rgba(195, 255, 210, 0.55));
    overflow: hidden;
    transition: filter 0.3s ease;
    will-change: transform, opacity;
}

.kv_slide:hover {
    filter:
        drop-shadow(0 0 12px rgba(195, 255, 210, 0.7)) drop-shadow(0 0 30px rgba(195, 255, 210, 0.55));

}

.kv_slide:hover .kv_slide_img {
    opacity: 0.6;
}

.kv_slide:hover .kv_slide_scroll_tag {
    opacity: 1;
    clip-path: inset(0 0 0 0);
}

.kv_slide p {
    z-index: 2;
    font-family: 'BIZ UDPMincho';
    font-weight: 300;
    color: #e3ffee;
    font-size: calc(80vw/19.2);
    margin-bottom: calc(320vw/19.2);
    margin-left: calc(64vw/19.2);
    transform: skewX(-12deg);
    transform-origin: center;
}

.kv_slide p span {
    margin-left: 1em;
}

.kv_slide_scroll_tag {
    position: absolute;
    z-index: 4;
    /* Local slide layer only. Modal overlay is z-index: 10000. */
    font-size: calc(16vw/19.2);
    color: #fff;
    background: #000;
    transform: skewX(-12deg);
    padding: calc(16vw/19.2) calc(24vw/19.2);
    opacity: 0;
    clip-path: inset(100% 0 0 0);
    transition:
        opacity 0.3s ease,
        clip-path 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.kv_slide::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: var(--kv-slide-background);
    clip-path: polygon(29% 0,
            100% 0,
            71% 100%,
            0 100%);
}

.kv_slide_img {
    display: block;
    width: 100%;
    height: auto;
    position: absolute;
    z-index: 3;
    bottom: 0;
    clip-path: polygon(29% 0,
            100% 0,
            71% 100%,
            0 100%);
    transition: opacity 0.3s ease;
}

#kv_slide_1 {
    --kv-slide-background: linear-gradient(to bottom,
            #000000 0%,
            #0b3826 25%,
            #2d8059 60%,
            #6aca95 100%);
    margin-bottom: calc(260vw/19.2);
    z-index: 1;
}

#kv_slide_2 {
    --kv-slide-background: linear-gradient(to bottom,
            #51b980 0%,
            #2d8059 18%,
            #0b3826 50%,
            #000000 100%);
    margin-top: calc(340vw/19.2);
    margin-left: calc(-110vw/19.2);
    z-index: 3;
}

#kv_slide_3 {
    --kv-slide-background: linear-gradient(to bottom,
            #000000 0%,
            #0b3826 25%,
            #2d8059 60%,
            #6aca95 100%);
    margin-bottom: calc(260vw/19.2);
    z-index: 2;
}

@media screen and (max-width:900px) {
    .kv {
        flex-direction: column;
        gap: calc(48vw/9);
    }

    .kv_text_wrapper {
        gap: calc(32vw/9);
    }

    .kv_slide {
        width: calc(200vw/9);
        min-width: 100px;
    }

    .kv_slide_wrapper {
        margin-right: calc(32vw/19.2);
    }

    #kv_slide_1,
    #kv_slide_3 {
        margin-bottom: calc(72vw/9);
    }

    #kv_slide_2 {
        margin-top: calc(96vw/9);
        margin-left: calc(-24vw/9);
    }

    .kv_slide p {
        font-size: calc(48vw/9);
        margin-bottom: calc(180vw/9);
        margin-left: calc(48vw/9);
    }
}

@media screen and (max-width:600px) {
    .kv {
        gap: calc(64vw/6);
    }

    .kv_text_wrapper {
        gap: calc(48vw/6);
        margin-top: 0;
    }

    .kv_slide {
        width: calc(200vw/6);
        filter: drop-shadow(0 0 2px rgba(195, 255, 210, 0.7)) drop-shadow(0 0 5px rgba(195, 255, 210, 0.55));
    }

    .kv_slide p {
        font-size: calc(48vw/6);
        margin-bottom: calc(180vw/6);
        margin-left: calc(48vw/6);
    }

    .kv_slide:hover {
        filter: none;
    }

}

/*---------------------------
------ReactBits FloatingLines------
---------------------------*/
.kv {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background-color: #1f1f1f;
}

.floating-lines-root {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 1;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    pointer-events: none;
}

.floating-lines-container {
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
    mix-blend-mode: screen;
}

.floating-lines-container canvas {
    display: block;
    width: 100% !important;
    height: 100% !important;
}

.kv_text_wrapper {
    position: relative;
    z-index: 2;
}

/* --------------------------------
   Subtitle-----------
-------------------------------- */
.subtitle {
    width: 100%;
    background: #0C1411;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(19vw/19.2);
    padding: calc(28vw/19.2) 0;
}

.subtitle_green_box {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(10vw/19.2) calc(45vw/19.2);
    background: #46C47D;
    font-family: 'Zen Kaku Gothic New';
    font-size: clamp(18px, calc(32vw/19.2), calc(32vw/19.2));
    color: #212121;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin: 0;
}

.subtitle_right_text {
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Zen Kaku Gothic New';
    color: #fff;
    letter-spacing: 0.2em;
    font-size: clamp(18px, calc(32vw/19.2), calc(32vw/19.2));
    text-align: center;
    margin: 0;
}


.subtitle_right_11 {
    font-family: 'BIZ UDPMincho';
    color: #46C47D;
    letter-spacing: 0;
    font-size: clamp(58px, calc(82vw/19.2), calc(82vw/19.2));
    font-weight: bolder;
}

.subtitle_right_green_text {
    color: #46C47D;
}

/* .subtitle_right_tips {
    font-family: 'BIZ UDPMincho';
    color: #46C47D;
    letter-spacing: 0.2em;
    font-size: clamp(30px, calc(48vw/19.2), 144px);
    font-weight: bolder;
} */

@media screen and (max-width:800px) {
    .subtitle {
        flex-direction: column;
        padding: calc(28vw/8) 0;
    }
}

@media screen and (max-width:500px) {
    .subtitle_green_box {
        font-size: clamp(16px, calc(32vw/19.2), calc(32vw/19.2));
    }

    .subtitle_right_text {
        letter-spacing: 0.1em;
        font-size: clamp(13px, calc(32vw/19.2), calc(32vw/19.2));
    }

    .subtitle_right_11 {
        font-size: clamp(42px, calc(82vw/19.2), calc(82vw/19.2));
    }

    .subtitle_right_tips {
        font-size: clamp(20px, calc(48vw/19.2), 144px);
    }
}

/* --------------------------------
   corporation_logo----
-------------------------------- */
.corporation_logo {
    width: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(46vw/19.2);
    margin: 0;
    padding: calc(140vw/19.2) 0;
    overflow: hidden;
    background-color: #fff;
}

.spotlight {
    position: absolute;
    z-index: 1;
    width: calc(978vw/19.2);
    top: 0;
}

.corporation_logo_text {
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: calc(27vw/19.2);
}

.corporation_logo_text h2 {
    margin: 0;
    font-family: 'Zen Kaku Gothic New';
    font-size: clamp(20px, calc(48vw/19.2), calc(48vw/19.2));
    font-weight: 500;
    letter-spacing: 0.08em;
    color: #292929;
    text-align: center;
}

.corporation_logo_text p {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    font-family: 'Zen Kaku Gothic New';
    font-size: clamp(12px, calc(16vw/19.2), calc(16vw/19.2));
    letter-spacing: 0.1em;
    font-weight: 300;
    color: #292929;
    text-align: center;
    line-height: 150%;
}

/* .corporation_logo_pic {
    z-index: 2;
    width: calc(840vw / 19.2);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    column-gap: calc(32vw / 19.2);
    row-gap: calc(48vw / 19.2);
} */

.corporation_logo_pic img {
    display: block;
    object-fit: contain;
    width: calc(180vw/19.2);
    height: calc(42vw/19.2);
    flex-shrink: 0;

}

/* 登壇者ロゴを3.4.4.3の並びに変更（中世古追記） */
.corporation_logo_pic {
    z-index: 2;
    width: calc(840vw / 19.2);
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    column-gap: calc(32vw / 19.2);
    row-gap: calc(48vw / 19.2);
    align-items: center;
}

.co_logo {
    grid-column: span 2;
    justify-self: center;
}

/* 1行目を中央に */
.co_logo:nth-child(1) {
    grid-column: 2 / span 2;
}

/* 最後の2社を中央に */
.co_logo:nth-child(12) {
    grid-column: 2 / span 2;
}
/* ---中世古追記ここまで */


@media screen and (max-width:700px) {
    .corporation_logo {
        gap: calc(46vw/7);
    }

    .corporation_logo_text {
        gap: calc(27vw/7);
    }

    .corporation_logo_text p {
        width: calc(500vw/7);
    }

    .corporation_logo_pic {
        width: calc(500vw / 7);
        column-gap: calc(24vw / 7);
        row-gap: calc(40vw / 7);

        z-index: 2;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
    }

    .corporation_logo_pic img {
        width: calc(110vw/7);
        height: calc(30vw/7);
    }
}

@media screen and (max-width:500px) {
    .corporation_logo {
        padding: calc(140vw/7) 0;
    }
    .corporation_logo_pic {
        width: calc(400vw / 5);
    }
    .corporation_logo_pic img {
        width: calc(120vw/5);
        height: calc(30vw/5);    
    }
    .spotlight {
        width: calc(400vw/5);
    }
}

/* --------------------------------
   event_infomation----
-------------------------------- */
.event_infomation {
    z-index: 1;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(100vw/19.2) 0;
    backdrop-filter: blur(16px);
    overflow: hidden;
    background-image: url('https://media.invoice.ne.jp/lp/conference2026/autumn/img/timetable_bg.svg');
}

.event_infomation_wrapper {
    position: relative;
    height: fit-content;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: calc(64vw/19.2);
}

.event_info_left {
    display: flex;
    height: 100%;
    flex-direction: column;
    justify-content: space-between;
}

.event_info_title {
    position: absolute;
    top: 0;
    left: 0;
    width: calc(148.38vw/19.2);
    min-width: 100px;
}

.event_info_title img {
    width: 100%;
}

.event_info_left {
    background-color: #fff;
    padding: calc(37vw/19.2) calc(20vw/19.2);
    display: flex;
    align-items: center;
    justify-content: center;
}

.event_info_left ul {
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: calc(33vw/19.2);
}

.event_info_left ul li {
    display: flex;
    list-style: none;
    text-decoration: none;
    font-family: 'Zen Kaku Gothic New';
    font-size: clamp(12px, calc(16vw/19.2), calc(16vw/19.2));
    font-weight: 500;
    color: #292929;
}

.event_info_left ul li span {
    display: block;
    width: 6em;
    font-weight: 700;
    color: #979797;
}

.event_info_right {
    width: fit-content;
    padding: calc(64vw/19.2);
    background-color: #fff;
}

.event_info_right h2,
.event_info_right p {
    display: block;
    width: calc(670vw/19.2);
    font-family: 'Noto Sans JP';
    margin: 0;
}

.event_info_right h2 {
    font-size: clamp(18px, calc(46vw/19.2), calc(46vw/19.2));
    margin-bottom: calc(46vw/19.2);
}

/* .event_info_right h2 span {
    font-size: clamp(12px, calc(24vw/19.2), calc(24vw/19.2));
} */

.event_info_right p {
    font-size: clamp(10px, calc(14vw/19.2), calc(14vw/19.2));
    line-height: 2.2em;
}

@media screen and (max-width:900px) {
    .event_infomation {
        padding: calc(100vw/9) 0;
    }

    .event_info_left ul li span {
        display: block;
        width: calc(80vw/9);
    }
}

@media screen and (max-width:700px) {
    .event_infomation {
        padding: calc(100vw/7) 0;
    }

    .event_infomation_wrapper {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: calc(48vw/7);

    }

    .event_info_title {
        position: relative;
    }

    .event_info_left {
        padding: calc(20vw/7) calc(37vw/7);
    }

    .event_info_left ul li {
        font-size: clamp(11px, calc(16vw/19.2), calc(16vw/19.2));

    }

    .event_info_left ul li span {
        width: 8em;
    }

    .event_info_title {
        min-width: 72px;
    }

    .event_info_right {
        padding: calc(48vw/7) calc(32vw/7);
    }

    .event_info_right h2,
    .event_info_right p {
        width: calc(480vw/7);
    }
}

/* --------------------------------
   Timetable---------
-------------------------------- */
.timetable {
    width: 100%;
    position: relative;
    overflow: hidden;
    padding: calc(100vw/19.2) 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(64vw/19.2);
    background-color: #ffffff;
    background-image: url('https://media.invoice.ne.jp/lp/conference2026/autumn/img/timetable_bg.svg');
}

.timetable_title {
    width: calc(418.19vw/19.2);
    min-width: 250.79px;
}

.timetable_catchcopy {
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #292929;
    font-weight: 600;
    font-family: 'Zen Kaku Gothic New';
    letter-spacing: 0.2em;
}

.timetable_catchcopy_main {
    margin: 0;
    font-weight: 500;
    font-size: clamp(20px, calc(48vw/19.2), calc(48vw/19.2));
}

.timetable_catchcopy_sub {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    font-size: clamp(12px, calc(16vw/19.2), calc(16vw/19.2));
    font-weight: 300;
    text-align: center;
    margin-top: 2em;
    line-height: 1.5em;
    letter-spacing: 0.1em;
}

.timetable_contents {
    display: flex;
    flex-direction: column;
    gap: calc(48vw/19.2);
}

.timetable_category {
    width: 100%;
    display: flex;
    gap: calc(16vw/19.2);
    align-items: center;
    justify-content: flex-start;

}

.category_name {
    font-family: 'Zen Kaku Gothic New';
    font-size: clamp(24px, calc(48vw/19.2), calc(48vw/19.2));
    color: #292929;
    letter-spacing: 0.2em;
    font-weight: 300;
}

.category_time {
    font-family: 'Zen Kaku Gothic New';
    font-size: clamp(16px, calc(32vw/19.2), calc(32vw/19.2));
    color: #292929;
    font-weight: 300;
}

.category_line {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    margin: 0;
    border: 0;
    border-top: 1px solid #CFCFCF;
}

@media screen and (max-width:700px) {
    .timetable_category {
        gap: calc(24vw/7);
    }
}



/* --------------------------------
   Timetable Detail---------
-------------------------------- */
.timetable_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: calc(36vw/19.2);
    row-gap: calc(72vw/19.2);
    justify-content: center;
}

.timetable_items {
    display: inline-block;
    padding: calc(21vw/19.2) calc(27vw/19.2);
    overflow: hidden;
    width: calc(310vw/19.2);
    aspect-ratio: 332 / 597;
    min-width: 120px;
    text-decoration: none;
    position: relative;
    color: #292929;
    transition: opacity 0.3s ease;
    backdrop-filter: blur(3px);
    box-shadow: 3px 3px 13px rgba(93, 112, 99, 0.116);
    border-radius: 6px;
}

.speaker_img_wrapper {
    width: 100%;
    aspect-ratio: 332 / 251;
    background: #fafafa;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: calc(3vw/19.2);
    overflow: hidden;
}

.speaker_img {
    height: 100%;
    transition: scale 0.3s ease;
}

.speaker_info_text {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: calc(12vw/19.2);
}

.keynote_tag {
    position: absolute;
    top: calc(10vw/19.2);
    right: 0;
    width: 4em;
    padding: 0.2em 1em;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #66E385;
    color: #66E385;
    font-size: clamp(10px, calc(14vw/19.2), calc(14vw/19.2));
    font-weight: 500;
}

.speak_time {
    font-family: 'Zen Kaku Gothic New';
    font-size: clamp(13px, calc(16vw/19.2), calc(16vw/19.2));
    font-weight: 700;
    margin: calc(10vw/19.2) 0 0 0;
}

.speaker_corp {
    font-family: 'Zen Kaku Gothic New';
    font-weight: 500;
    color: #27A575;
    font-size: clamp(12px, calc(16vw/19.2), calc(16vw/19.2));
    margin: 0;

}

.keynote_corp {
    color: #66E385;
}

.speaker_name {
    font-family: 'Zen Kaku Gothic New';
    font-weight: 500;
    font-size: clamp(14px, calc(20vw/19.2), calc(20vw/19.2));
    margin: 0;

}

.speak_theme {
    font-family: 'Zen Kaku Gothic New';
    font-size: clamp(14px, calc(18vw/19.2), calc(18vw/19.2));
    font-weight: 500;
    line-height: 180%;
    margin: 0;

}

.circle_btn {
    width: calc(29vw/19.2);
    height: calc(29vw/19.2);
    position: absolute;
    background: #757575;
    color: #fff;
    right: calc(29vw/19.2);
    bottom: calc(21vw/19.2);
    border-radius: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(12px, calc(24vw/19.2), 72px);
    font-weight: 700;
    padding: 0;
    transition: background 0.3s ease;
}

.timetable_items:hover {
    opacity: 0.8;
    background: #f0f0f08c;
}

.timetable_items:hover .circle_btn {
    background: linear-gradient(to top, #01806A 20%, #66E385);
}

.timetable_items:hover .speaker_img {
    scale: 1.05;
}

.keynote {
    background: #131313de;
    color: #fff;
    transition: opacity 0.3s ease, background 0.3s ease;
}

.keynote:hover {
    opacity: 0.8;
    background: #1313139a;
}

@media screen and (max-width:1240px) {
    .timetable_items {
        width: calc(260vw/12.4);
    }
}

@media screen and (max-width:1000px) {
    .timetable {
        padding: calc(100vw/10) 0;
    }

    .timetable_catchcopy_sub {
        width: calc(500vw /7);
    }

    .timetable_grid {
        grid-template-columns: repeat(2, 1fr);
        column-gap: calc(36vw/10);
        row-gap: calc(72vw/10);
    }

    .timetable_items {
        padding: calc(10vw/10) calc(12vw/10);
        width: calc(260vw/10);
    }

    .circle_btn {
        width: calc(20vw/10);
        height: calc(20vw/10);
        right: calc(20vw/10);
        bottom: calc(10vw/10);
    }
}

@media screen and (max-width:900px) {
    .timetable_items {
        width: calc(280vw/9);
    }
}

@media screen and (max-width:700px) {
    .timetable {
        gap: calc(48vw/7);
    }

    .timetable_items {
        width: calc(260vw/7);
    }

    .circle_btn {
        width: calc(20vw/7);
        height: calc(20vw/7);
        right: calc(20vw/7);
        bottom: calc(10vw/7);
    }

    .speaker_img_wrapper {
        width: 100%;
        aspect-ratio: 332 / 200;
    }

}

@media screen and (max-width:500px) {
    .timetable_grid {
        display: flex;
        flex-direction: column;
        width: 100%;
        justify-content: center;
        align-items: center;
        gap: 16px;
    }

    .category_line {
        width: calc(200vw/5);
    }

    .timetable_items {
        display: flex;
        align-items: center;
        width: calc(440vw/5);
        aspect-ratio: 2.5/1;
        padding: 10px 13px;
        gap: calc(16vw/5);
    }

    .speaker_img_wrapper {
        width: fit-content;
        height: calc(180vw/6);
        overflow: hidden;
        border-radius: 3px;
    }

    .speaker_info_text {
        gap: 6px;
        ;
        justify-content: space-around;
    }

    .speak_theme {
        font-size: clamp(11px, calc(16vw/19.2), calc(16vw/19.2));
    }
}

@media screen and (max-width:400px) {
    .timetable_items {
        width: calc(440vw/5);
        aspect-ratio: 2/1;
        padding: 10px 13px;
        gap: calc(16vw/5);
        border-radius: 4px;
    }
}

/* --------------------------------
   Outline---------
-------------------------------- */
.outline {
    width: 100%;
    display: flex;
    position: relative;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(64vw/19.2);
    padding: calc(100vw/19.2) 0;
    overflow: hidden;
    background: #fff;
}

.outline_title {
    z-index: 2;
    width: calc(570.84vw/19.2);
    min-width: 320px;
}

.outline_sheet {
    z-index: 2;
    width: min(980px, 90%);
    position: relative;
}

.outline_table {
    width: 100%;
    border-collapse: collapse;
}

.share_btn {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    padding: 0;
    background: transparent;
    font-family: inherit;
    cursor: pointer;
    position: absolute;
    top: -2.2em;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(16vw/19.2);
    text-decoration: none;
    font-size: clamp(13px, calc(16vw/19.2), calc(16vw/19.2));
    font-weight: 500;
    color: #27A575;
    transition: opacity 0.3s ease;
}

.share_btn img {
    width: calc(28vw/19.2);
    min-width: 16px;
}

.share_btn:hover {
    opacity: 0.6;
}

.outline_table th,
.outline_table td {
    border: 1px solid #bfc8c3;
    padding: 24px 32px;
    font-size: clamp(12px, calc(16vw/19.2), calc(16vw/19.2));
    line-height: 1.8;
    text-align: left;
    vertical-align: middle;
}

.outline_table th {
    width: 20%;
    min-width: 5em;
    background: #F0FBF8;
    font-weight: 500;
    color: #222;
}

.outline_table td {
    width: 80%;
    background: #ffffffad;
}

.outline_table ul {
    margin: 0 0 10px;
    padding-left: 1.2em;
}

.outline_table a {
    color: #4fa7a1;
    text-decoration: none;
    cursor: pointer;
}

.outline_table a:hover {
    text-decoration: underline;
}

@media screen and (max-width:1440px) {

    .outline_table th,
    .outline_table td {
        font-size: clamp(12px, calc(16vw/14.4), calc(16vw/14.4));
    }
}

@media screen and (max-width:900px) {
    .outline {
        gap: calc(64vw/9);
        padding: calc(100vw/9) 0;
    }
}

@media screen and (max-width:500px) {

    .outline_table th,
    .outline_table td {
        padding: 16px 13px;
    }

    .share_btn {
        display: none;
    }
}


/* --------------------------------
   Prize---------
-------------------------------- */
.prize {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: calc(100vw/19.2) 0;
    gap: calc(32vw/19.2);
    background: #121312d0;
}

.prize_title {
    z-index: 1;
    width: calc(444vw/19.2);
    min-width: 217.27px;
    margin-bottom: calc(32vw/19.2);
}

.prize_wrapper {
    padding: calc(16vw/19.2) calc(144vw/19.2);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(39vw/19.2);
    background: #fff;
    border-radius: 6px;
}

.prize_text {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(17vw/19.2);
}

.prize_text_tag {
    margin: 0;
    display: inline-block;
    background: linear-gradient(to right, #01806A 20%, #66E385);
    color: #fff;
    font-family: 'Zen Kaku Gothic New';
    font-size: clamp(14px, calc(13vw/19.2), calc(13vw/19.2));
    font-weight: 700;
    padding: calc(8vw/19.2) calc(16vw/19.2);
    text-align: center;
    letter-spacing: 0.1em;
}

.prize_text_main {
    margin: 0;
    text-align: center;
    font-family: 'Zen Kaku Gothic New';
    font-size: clamp(24px, calc(32vw/19.2), calc(32vw/19.2));
    font-weight: 600;
    line-height: 1.2em;
    color: #292929;
}

.prize_text_main span {
    font-size: clamp(18px, calc(19vw/19.2), calc(19vw/19.2));
}

#prize_text_main_small {
    font-size: clamp(18px, calc(28vw/19.2), calc(28vw/19.2));

}

.prize_text_discription {
    margin: 0;
    display: inline-block;
    width: calc(282vw/19.2);
    font-size: clamp(12px, calc(14vw/19.2), calc(14vw/19.2));
    line-height: 1.8em;
    text-align: center;
}

.prize_img {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-top: calc(12vw/19.2);
}

.prize_img img {
    width: calc(268.88vw/19.2);
    min-width: 200px;
}

.prize_img p {
    font-size: clamp(12px, calc(12vw/19.2), calc(12vw/19.2));
    font-weight: 300;
}

.prize_notice {
    display: block;
    width: fit-content;
    color: #fff;
    line-height: 2em;
    font-size: clamp(10px, calc(11vw/19.2), calc(11vw/19.2));
}

.prize_notice span {
    font-size: clamp(12px, calc(16vw/19.2), calc(16vw/19.2));
}

@media screen and (max-width:1200px) {
    .prize_text_discription {
        width: calc(260vw/12);
    }
}

@media screen and (max-width:900px) {
    .prize {
        padding: calc(100vw/9) 0;
        gap: calc(32vw/9);
    }

    .prize_text {
        gap: calc(17vw/9);
    }

    .prize_text_discription {
        width: calc(260vw/9);
    }

    .prize_wrapper {
        gap: calc(39vw/9);
    }

    .prize_text_tag {
        padding: calc(8vw/9) calc(16vw/9);
    }

    .prize_notice {
        width: 80%;
    }
}

@media screen and (max-width:700px) {
    .prize_wrapper {
        padding: calc(64vw/7) calc(64vw/7);
    }

    .prize_wrapper {
        flex-direction: column;
    }

    .prize_text_discription {
        width: calc(400vw/7);
    }

    .prize_notice {
        width: 50%;
        min-width: 300px;
    }

}

/* --------------------------------
   Entry-----------
-------------------------------- */
.entry {
    width: 100%;
    padding: calc(64vw/19.2) 0;
    display: flex;
    position: relative;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(16vw/19.2) 0;
    background-image: url('https://media.invoice.ne.jp/lp/conference2026/autumn/img/entry_bg.svg');
    background-repeat: no-repeat;
    background-size: contain;
}

.entry_title {
    width: calc(396.28vw/19.2);
    min-width: 228.36px;
}

.entry_lead_text {
    width: calc(500vw / 7);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-family: 'Zen Kaku Gothic New';
    font-size: clamp(12px, calc(16vw/19.2), 48px);
    color: #fff;
    letter-spacing: 0.1em;
    line-height: 1.8em;
}

.form {
    width: calc(800vw/19.2);
}

@media screen and (max-width:1440px) {
    .form {
        width: calc(900vw/14.4);
    }
}

@media screen and (max-width:900px) {
    .entry {
        padding: calc(100vw/9) 0;
    }

    .form {
        width: calc(700vw/9);
    }
}

@media screen and (max-width:600px) {
    .form {
        width: calc(550vw/6);
    }
}

/* --------------------------------
   policy---------
-------------------------------- */
.policy {
    width: 100%;
    padding: calc(100vw/19.2) 0;
    position: relative;
    background: #fff;
    border-radius: calc(60vw/19.2) calc(60vw/19.2) 0 0;
}

.information {
    width: calc(1000vw/19.2);
    margin: 0 auto;
}

.invoice-policy-sp {
    display: none;
}

.inquiry {
    margin-top: calc(72vw/19.2);
}

.information h3 {
    font-size: clamp(13px, calc(20vw/19.2), 60px);
    font-weight: 500;
    line-height: 1;
    padding-bottom: 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid #cccccc;
}

.information p {
    font-size: clamp(12px, calc(14vw/19.2), 42px);
    font-weight: 300;
    line-height: 1.8;
    margin-bottom: 1.8em;
}

.policy ul {
    list-style: none;
    padding: 0;

}

.policy ul li {
    display: flex;
    font-size: clamp(10px, calc(14vw/19.2), 42px);
    font-weight: 400;
    line-height: 2em;
    word-break: break-all;
}

.policy ul a {
    text-decoration: none;
    color: #51b980;
    margin-left: 3px;
}

.policy ul li div {
    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: start;
}

.inquiry a {
    color: #51b980;

}

@media screen and (max-width:1000px) {
    .information {
        width: calc(600vw/10);
    }
}

@media screen and (max-width:500px) {
    .policy {
        padding: calc(50vw/5) 0;
    }

    .information {
        width: calc(400vw/5);
    }
}

/* --------------------------------
   modaal(link_copy)---------
-------------------------------- */
.link_copy_overlay {
    position: fixed;
    inset: 0;
    z-index: 11000;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 24px;
    background-color: rgba(0, 0, 0, 0.62);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 180ms ease, visibility 180ms ease;
}

.link_copy_overlay.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.link_copy_modaal {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.65em;
    width: min(520px, calc(100vw - 48px));
    box-sizing: border-box;
    padding: 1.5em clamp(3em, 8vw, 10em);
    background-color: #fff;
    border-radius: 6px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.28);
    opacity: 0;
    transform: translateY(10px) scale(0.96);
    transition: opacity 180ms ease, transform 180ms ease;
}

.link_copy_overlay.is-active .link_copy_modaal {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.link_copy_modaal img {
    width: calc(32vw/19.2);
    min-width: 24px;
}

.link_copy_modaal p {
    margin: 0;
    font-size: clamp(13px, calc(16vw/19.2), calc(16vw/19.2));
    text-align: center;
    white-space: nowrap;
}

@media screen and (max-width:700px) {
    .link_copy_overlay {
        padding: 16px;
    }

    .link_copy_modaal {
        width: min(360px, calc(100vw - 32px));
        padding: 1.5em 2em;
    }
}

@media (prefers-reduced-motion: reduce) {

    .link_copy_overlay,
    .link_copy_modaal {
        transition: none;
    }
}

/* --------------------------------
   modaal(speak)---------
-------------------------------- */
.modaal_wrapper {
    position: fixed;
    inset: 0;
    z-index: 10000;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    background-color: #00000081;
    display: flex;
    align-items: safe center;
    justify-content: safe center;
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: clamp(20px, 6vh, 64px) clamp(16px, 4vw, 64px);
    box-sizing: border-box;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.modaal {
    width: calc(1100vw/19.2);
    padding: calc(101vw/19.2) calc(64vw/19.2);
    position: relative;
    flex: 0 0 auto;
    margin: 0;
    box-sizing: border-box;
    background: #FAFAFA;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(64vw/19.2);
    background-image: url('https://media.invoice.ne.jp/lp/conference2026/autumn/img/modaal_deco_triangle.svg');
    background-repeat: no-repeat;
    border-radius: 3px;
    box-shadow: 0 0 16px rgba(45, 65, 48, 0.61);
}

.modaal_time {
    position: absolute;
    top: calc(-60vw/19.2);
    left: 0;
    font-size: clamp(13px, calc(20vw/19.2), calc(20vw/19.2));
    text-align: center;
    font-weight: 500;
}

.modaal_time_order {
    aspect-ratio: 132 / 31;
    background: linear-gradient(to right, #01806A 20%, #66E385);
    padding: calc(6vw/19.2) calc(12vw/19.2);
    color: #fff;
    margin-right: clamp(13px, calc(24vw/19.2), calc(24vw/19.2));
}

.modaal_time_keynote {
    background-color: #fff;
    color: #01806A;
    border: 1.5px solid #01806A;
    padding: calc(6vw/19.2) calc(12vw/19.2);
    letter-spacing: 0.2em;
    margin-right: clamp(13px, calc(24vw / 19.2), calc(24vw / 19.2));
}

.modaal_deco_clip {
    position: absolute;
    width: calc(127.56vw/19.2);
    min-width: 68px;
    top: calc(-30vw/19.2);
}

.modaal_close {
    position: absolute;
    z-index: 998;
    top: calc(20vw/19.2);
    right: calc(20vw/19.2);
    width: calc(52vw/19.2);
    min-width: 30px;
    aspect-ratio: 1 / 1;
    text-decoration: none;
    background: #E6F5F0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease, border-radius 0.3s ease, background 0.3s ease;
}

.modaal_close:hover {
    opacity: 0.8;
    border-radius: 50%;
    background: #c4f3e3;
}

.modaal_close::before,
.modaal_close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: calc(30vw/19.2);
    min-width: 12px;
    height: calc(4vw/19.2);
    background-color: #01806A;
    transform-origin: center;
}

.modaal_close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}

.modaal_close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.modaal_profile {
    width: 100%;
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: calc(24vw/19.2);
}

.modaal_profile_top {
    width: fit-content;
    display: flex;
    flex-direction: column;
    gap: calc(9vw/19.2);
}

.modaal_profile_img_wrapper {
    width: calc(271vw / 19.2);
    aspect-ratio: 271 / 177;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
}

.modaal_profile_img_wrapper img {
    height: calc(177vw/19.2);
}

.modaal_co_name {
    display: inline-block;
    margin: 0;
    font-family: 'Noto Sans JP';
    font-size: clamp(13px, calc(16vw/19.2), calc(16vw/19.2));
    color: #292929;
    font-weight: 500;
}

.modaal_speaker_name {
    display: inline-block;
    margin: 0;
    font-family: 'Noto Sans JP';
    font-size: clamp(18px, calc(28vw/19.2), calc(28vw/19.2));
    color: #292929;
    font-weight: 500;
    line-height: 1em;
}

.modaal_profile_bottom {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: calc(6vw/19.2);
}

.modaal_profile_bottom img {
    width: calc(145.29vw/19.2);
    min-width: 100px;
    margin: 0;
}

.modaal_profile_text {
    margin: 0;
    font-family: 'Noto Sans JP';
    font-size: clamp(13px, calc(15vw/19.2), calc(15vw/19.2));
    line-height: 1.6em;
    letter-spacing: 0.1em;
}

.modaal_speach {
    width: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(36vw/19.2);
    padding: calc(48vw/19.2) 0;
    background: #fff;
}

.modaal_speach_title {
    margin: 0;
    width: calc(795vw/19.2);
    font-family: 'Noto Sans JP';
    font-size: clamp(16px, calc(24vw/19.2), calc(24vw/19.2));
    line-height: 2em;
    text-align: center;
}

.modaal_speach_text {
    display: flex;
    margin: 0;
    width: calc(795vw/19.2);
    font-family: 'Noto Sans JP';
    font-size: clamp(13px, calc(16vw/19.2), calc(16vw/19.2));
    font-weight: 400;
    line-height: 2.2em;
}

.modaal_speach_deco {
    position: absolute;
    top: 0;
    right: 0;
}

.modaal_speach_deco_reverse {
    transform: rotate(180deg);
    position: absolute;
    bottom: 0;
    left: 0;
}

@media screen and (max-width:1200px) {
    .modaal {
        width: calc(900vw/12);
    }

    .modaal_speach_title {
        width: calc(700vw/12);
    }

    .modaal_speach_text {
        width: calc(700vw/12);
    }

    .modaal_profile_img_wrapper {
        width: calc(260vw/12);
    }

    .modaal_profile_img_wrapper img {
        height: calc(177vw / 12);
    }
}

@media screen and (max-width:900px) {
    .modaal {
        padding: calc(72vw/9) calc(32vw/9);
    }

    .modaal_time {
        top: calc(-36vw/9);
    }

    .modaal_deco_clip {
        top: calc(-20vw/9);
    }
}

@media screen and (max-width:600px) {
    .modaal {
        width: calc(540vw/6);
        padding: calc(72vw/6) calc(32vw/6);
    }

    .modaal_time {
        top: calc(-42vw/6);
    }

    .modaal_deco_clip {
        top: calc(-20vw/6);
    }

    .modaal_profile {
        flex-direction: column;
        gap: calc(16vw/6);
    }

    .modaal_profile_img_wrapper {
        width: calc(475vw/6);
        aspect-ratio: 475 / 180;
    }

    .modaal_profile_img_wrapper img {
        height: calc(180vw / 6);
    }

    .modaal_speach_title {
        width: calc(400vw/6);
    }

    .modaal_speach_text {
        width: calc(400vw/6);
    }
}

@media screen and (max-width:455px) {
    .modaal_speach_title {
        font-size: 13px;
    }

    .modaal_speach_text {
        font-size: 12px;
    }

    .modaal_profile_text {
        font-size: 12px;
    }

    .modaal_deco_clip {
        top: calc(-20vw/4.55);
    }
}

/* --------------------------------
   footer---------
-------------------------------- */
footer {
    position: relative;
    background-color: #fff;
    color: #000;
    display: flex;
    justify-content: center;
    font-size: clamp(10px, calc(12vw/19.2), 30px);
    padding: 16px 0;
}

.footer_logo {
    position: relative;
    background-color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(48vw/19.2) 0;
}

.footer_logo a {
    scale: 1.5;
}



/* --------------------------------
   Top Btn-----------
-------------------------------- */
.top_btn {
    position: fixed;
    z-index: 999;
    bottom: 0;
    right: calc(160vw/19.2);
    width: calc(80vw/19.2);
    min-width: 60px;
    aspect-ratio: 1 / 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #000;
    color: #fff;
    text-decoration: none;
    cursor: pointer;
    font-size: clamp(12px, calc(16vw/19.2), calc(16vw/19.2));
    font-weight: 700;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.top_btn::before {
    content: "";
    width: calc(8vw/19.2);
    min-width: 4px;
    aspect-ratio: 1 / 1;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: rotate(-45deg);
    margin-bottom: 0.3em;
}

.top_btn:hover {
    opacity: 0.8;
    transform: translateY(-13px);
}

/* --------------------------------
   Modaal-----------
-------------------------------- */
.modaal_wrapper.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

body.is-modaal-open {
    overflow: hidden;
}

/*---------------------------
---------Sticky Timetable Scroll------------
---------------------------*/
.timetable {
    position: relative;
    display: block;
    width: 100%;
    min-height: 100vh;
    padding: 0 !important;
    overflow: visible;
    background: none;
}

.timetable_sticky {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    background-color: #ffffff;
    background-image: url('https://media.invoice.ne.jp/lp/conference2026/autumn/img/timetable_bg.svg');
    background-position: center top;
}

.timetable_inner {
    width: 100%;
    box-sizing: border-box;
    padding: calc(100vw/19.2) 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: calc(64vw/19.2);
    will-change: transform;
}

@media screen and (max-width:1000px) {
    .timetable {
        padding: 0 !important;
    }

    .timetable_inner {
        padding: calc(100vw/10) 0;
    }
}

@media screen and (max-width:700px) {
    .timetable {
        gap: 0;
    }

    .timetable_inner {
        gap: calc(48vw/7);
    }
}

/* --------------------------------
   Timetable Scroll Guide
-------------------------------- */
.scroll_guide {
    position: fixed;
    left: 50%;
    bottom: calc(24vw / 19.2);
    z-index: 1200;
    width: calc(100vw / 19.2);
    aspect-ratio: 1 / 1;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    will-change: transform, opacity;
}

.scroll_circle {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    animation: scroll-circle-rotate 14s linear infinite;
    will-change: transform;
}

.scroll_arrow {
    position: absolute;
    top: 50%;
    left: 53%;
    height: 48%;
    transform: translate(-50%, -50%);
    animation: scroll-arrow-float 1.15s ease-in-out infinite alternate;
    will-change: transform;
}

@keyframes scroll-circle-rotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes scroll-arrow-float {
    from {
        transform: translate(-50%, calc(-50% - 3px));
    }

    to {
        transform: translate(-50%, calc(-50% + 3px));
    }
}

@media screen and (max-width:700px) {
    .scroll_guide {
        width: max(calc(120vw / 19.2), 64px);
        bottom: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {

    .scroll_circle,
    .scroll_arrow {
        animation: none;
    }
}


/* --------------------------------
   Custom neon cursor
-------------------------------- */
@media (hover: hover) and (pointer: fine) {

    /* Keep the browser's native cursor visible. The neon marker below is
       layered at the cursor hotspot (the arrow tip) without intercepting input. */

    .custom-cursor {
        --cursor-scale: 1;
        position: fixed;
        left: 0;
        top: 0;
        z-index: 2147483647;
        width: 10px;
        height: 10px;
        border: 1px solid transparent;
        border-radius: 50%;
        background: rgba(70, 196, 125, 0.96);
        box-shadow:
            0 0 7px rgba(70, 196, 125, 0.9),
            0 0 16px rgba(39, 165, 117, 0.55);
        pointer-events: none;
        opacity: 0;
        transform: translate3d(-50%, -50%, 0) scale(var(--cursor-scale));
        transition:
            width 180ms cubic-bezier(0.22, 1, 0.36, 1),
            height 180ms cubic-bezier(0.22, 1, 0.36, 1),
            background-color 180ms ease,
            border-color 180ms ease,
            box-shadow 180ms ease,
            opacity 160ms ease;
        will-change: left, top, width, height, transform;
    }

    .custom-cursor::after {
        content: "";
        position: absolute;
        inset: 2px;
        border-radius: inherit;
        background: #d7ffe8;
        opacity: 0.88;
        filter: blur(0.4px);
        transition: inset 180ms ease, opacity 180ms ease;
    }

    .custom-cursor.is-visible {
        opacity: 1;
    }

    .custom-cursor.is-interactive {
        width: 38px;
        height: 38px;
        border-color: rgba(215, 255, 232, 0.9);
        background: rgba(70, 196, 125, 0.14);
        box-shadow:
            0 0 10px rgba(102, 227, 133, 0.9),
            0 0 26px rgba(39, 165, 117, 0.7),
            inset 0 0 12px rgba(168, 255, 214, 0.2);
    }

    .custom-cursor.is-interactive::after {
        inset: 14px;
        opacity: 1;
    }

    .custom-cursor.is-pressed {
        --cursor-scale: 0.78;
    }
}

@media (prefers-reduced-motion: reduce) {

    .custom-cursor {
        display: none !important;
    }
}

.hs-form-frame,
.hs-form-frame iframe {
    cursor: auto !important;
    min-height: calc(900vw/19.2);
}

.lenis.lenis-smooth .hs-form-frame iframe {
    pointer-events: auto !important;
}

/* =========================================================
   2026-07 responsive and stability fixes
   ========================================================= */
.timetable_contents {
    width: fit-content;
    max-width: calc(100vw - 32px);
    box-sizing: border-box;
}

.timetable_grid,
.timetable_category {
    width: 100%;
    box-sizing: border-box;
}

.timetable_category {
    min-width: 0;
}

.category_name,
.category_time {
    flex: 0 0 auto;
    white-space: nowrap;
}

.category_line {
    flex: 1 1 0;
    width: auto;
    min-width: 12px;
}

@media screen and (max-width: 700px) {
    .loading {
        padding: 24px 16px;
    }

    .loading__brand {
        flex-direction: column;
        width: min(420px, 92vw);
        gap: 18px;
        text-align: center;
    }

    .loading__logo {
        width: clamp(120px, 38vw, 200px);
    }

    .loading__divider {
        width: min(260px, 68vw);
        height: 1px;
        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .5), transparent);
    }

    .loading__title {
        min-width: 0;
        max-width: 100%;
        font-size: clamp(14px, 4vw, 21px);
        line-height: 1.55;
        text-align: center;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .header {
        width: calc(100% - 16px);
        min-width: 0;
        padding: 7px 12px;
        gap: 16px;
        box-sizing: border-box;
    }

    .header .nav_desktop_only {
        display: none;
    }

    .header .nav {
        min-width: 0;
    }

    .header .nav_wrapper {
        gap: clamp(8px, 2.5vw, 16px);
        padding: 0;
    }

    .header .nav_item_has_dropdown {
        padding: 12px 0;
    }

    .header .nav_text_dropdown {
        display: flex;
        align-items: center;
        font-size: clamp(11px, 3.15vw, 14px);
        white-space: nowrap;
    }

    .header .cta {
        width: auto;
        min-width: 0;
        aspect-ratio: auto;
        padding: 9px clamp(10px, 3vw, 18px);
        font-size: clamp(11px, 3vw, 14px);
        white-space: nowrap;
    }

    .header .cta img {
        display: none;
    }

    /* Touch devices open this explicitly with .is-open, not :hover. */
    .nav_item_has_dropdown:not(.is-open) .nav_dropdown {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateX(-50%) translateY(8px);
    }

    .nav_item_has_dropdown.is-open .nav_dropdown {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateX(-50%) translateY(0);
    }

    .nav_item_has_dropdown.is-open .nav_text_dropdown::after {
        transform: translateY(0.12em) rotate(225deg);
    }
}

/* =========================================================
   KV height follows content + fixed-header spacing
   ========================================================= */
:root {
    --header-height: 72px;
    --kv-mobile-extra-top: 24px;
}

.kv {
    height: fit-content;
    min-height: 0;
    box-sizing: border-box;
    padding-top: var(--header-height);
    padding-bottom: var(--header-height);
}

@media screen and (max-width: 600px) {
    .kv {
        padding-top: calc(var(--header-height) + var(--kv-mobile-extra-top));
        padding-bottom: var(--header-height);
    }
}

/* =========================================================
   Modaal previous / next navigation
========================================================= */
.modaal_nav {
    position: fixed;
    top: 50%;
    z-index: 10020;
    width: 54px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transform: translateY(-50%);
}

.modaal_nav--prev {
    left: auto;
    right: calc(50% + 28.65vw + 32px);
}

.modaal_nav--next {
    right: auto;
    left: calc(50% + 28.65vw + 22px);
}

.modaal_nav[hidden] {
    display: none;
}

.modaal_nav_label {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.1em;
    white-space: nowrap;
    text-shadow: 0 1px 4px rgba(0, 0, 0, .5);
}

.modaal_nav_circle {
    width: 50px;
    aspect-ratio: 1;
    border-radius: 50%;
    background: #ffffffd2;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .24);
    display: grid;
    place-items: center;
    transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.modaal_nav_arrow {
    width: 0;
    height: 0;
    border-top: 9px solid transparent;
    border-bottom: 9px solid transparent;
}

.modaal_nav--prev .modaal_nav_arrow {
    border-right: 14px solid #46C47D;
    transform: translateX(-1px);
}

.modaal_nav--next .modaal_nav_arrow {
    border-left: 14px solid #46C47D;
    transform: translateX(1px);
}

.modaal_nav:hover .modaal_nav_circle {
    background: #f4fff9;
    box-shadow: 0 9px 24px rgba(0, 0, 0, .3);
    transform: scale(1.08);
}

.modaal_nav:active .modaal_nav_circle {
    transform: scale(.96);
}

.modaal_nav:focus-visible {
    outline: none;
}

.modaal_nav:focus-visible .modaal_nav_circle {
    outline: 3px solid #46C47D;
    outline-offset: 4px;
}

.modaal {
    transition: opacity 320ms ease, transform 320ms cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, transform;
}

.modaal.is-switching-out-left,
.modaal.is-switching-in-left {
    opacity: 0;
    transform: translateX(-54px);
}

.modaal.is-switching-out-right,
.modaal.is-switching-in-right {
    opacity: 0;
    transform: translateX(54px);
}

@media screen and (max-width:1200px) and (min-width:801px) {
    .modaal_nav--prev {
        right: calc(50% + 37.5vw + 15px);
    }

    .modaal_nav--next {
        left: calc(50% + 37.5vw + 10px);
    }
}

@media screen and (max-width:800px) and (min-width:701px) {
    .modaal_nav {
        width: 46px;
        gap: 6px;
    }

    .modaal_nav_circle {
        width: 42px;
    }

    .modaal_nav_label {
        font-size: 11px;
    }

    .modaal_nav_arrow {
        border-top-width: 7px;
        border-bottom-width: 7px;
    }

    .modaal_nav--prev {
        right: calc(50% + 37.5vw + 16px);
    }

    .modaal_nav--next {
        left: calc(50% + 37.5vw + 6px);
    }

    .modaal_nav--prev .modaal_nav_arrow {
        border-right-width: 11px;
    }

    .modaal_nav--next .modaal_nav_arrow {
        border-left-width: 11px;
    }
}

@media screen and (max-width:700px) {
    .modaal_nav {
        display: none !important;
    }
}

@media (prefers-reduced-motion:reduce) {

    .modaal,
    .modaal_nav_circle {
        transition: none !important;
    }
}


/* =========================================================
   2026-09 mobile timetable final-card visibility fix
   ========================================================= */
@media screen and (max-width: 700px) {
    .timetable_sticky {
        height: 100dvh;
        min-height: 100svh;
    }

    .timetable_inner {
        padding-bottom: max(calc(100vw / 10), calc(24px + env(safe-area-inset-bottom)));
    }

    .timetable {
        opacity: 1 !important;
    }
}