@charset "utf-8";

/* ==========================================================================
   UMEDA MEETS HEART 2026 - Teaser Top Styles (2026)
   ========================================================================== */

:root {
    --bg-cream: #f9f5eb;
    --theme-red: #cf2b37;
    --deep-navy: #1c2e64;
    --text-dark: #333333;
}

body {
    background-color: var(--bg-cream);
    color: var(--text-dark);
    font-family: "Noto Sans JP", "M PLUS 1p", "游ゴシック体", YuGothic, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    margin: 0;
    padding: 0;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

* {
    box-sizing: border-box;
}

a {
    text-decoration: none;
    color: inherit;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* --------------------------------------------------
   2026 Common Header
   -------------------------------------------------- */
.sp_header {
    display: block;
    width: 100%;
    max-width: 750px;
    margin: 0 auto;
    padding: clamp(10px, 2.666vw, 10px) clamp(26px, 6.933vw, 26px) clamp(9px, 2.521vw, 9px) clamp(12px, 3.2vw, 12px);
    background-color: #ffffff;
    position: relative;
    z-index: 1000;
}

.sp_header_inner {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    position: relative;
}

.sp_logo {
    width: 72.2vw;
    max-width: 500px;
    margin: 0;
    line-height: 1;
}

.sp_logo img {
    width: 100%;
}

.sp_logo a,
.sp_logo picture {
    display: block;
    width: 100%;
}

.header_sns {
    position: fixed;
    top: clamp(103px, 27.4vw, 206px);
    left: 3.2vw;
    width: min(9.3vw, 39px);
    margin: 0;
    padding: 0;
    list-style: none;
    z-index: 1001;
}

.header_sns li {
    width: 100%;
    margin-bottom: clamp(12px, 2.667vw, 20px);
}

.header_sns a,
.header_sns img {
    display: block;
    width: 100%;
}

.header_sns a {
    transition: opacity 0.2s ease;
}

.header_sns a:hover {
    opacity: 0.75;
}

@media screen and (min-width: 1024px) {
    .sp_header {
        padding: 0;
    }

    .sp_logo {
        width: 100%;
        max-width: none;
    }

    .header_sns {
        left: calc(50% - 351px);
    }
}

/* --------------------------------------------------
   Page Layout Container
   -------------------------------------------------- */
.tz_page_wrapper {
    width: 100%;
    min-height: 100vh;
    background-color: var(--bg-cream);
    overflow-x: hidden;
}

.tz_main_container {
    width: 100%;
    margin: 0 auto;
    position: relative;
}

/* --------------------------------------------------
   Center Content (Mobile & PC Base)
   -------------------------------------------------- */
.tz_center_col {
    width: 100%;
    max-width: 100%;
    background-color: #ffffff;
    position: relative;
    z-index: 10;
    margin: 0 auto;
}

/* 1. Main Visual */
.sec_mv {
    width: 100%;
    background-color: #ffffff;
}

.mv_poster {
    width: 100%;
}

.mv_poster img {
    width: 100%;
}

/* 2. Concept & Archive Button */
.sec_concept {
    width: 100%;
    aspect-ratio: 750 / 302;
    padding: 0;
    background: url("/asset/images/top/tz2026/bg_scroll.png") center top / 100% 100% no-repeat;
    text-align: center;
    position: relative;
}

.btn_archive_wrap {
    position: absolute;
    top: 22.85%;
    right: 5.6%;
    width: 19.2%;
    margin: 0;
    padding: 0;
}

.btn_archive_2025 {
    display: block;
    width: 100%;
    transition: transform 0.25s ease, filter 0.25s ease;
}

.btn_archive_2025:hover {
    transform: scale(1.06);
}

.concept_lead {
    position: absolute;
    top: 51%;
    left: 0;
    width: 100%;
    font-size: 2.9vw;
    line-height: 1.7;
    color: var(--deep-navy);
    margin: 0;
    font-weight: 700;
    letter-spacing: 0.03em;
}

/* 3. Theme Section */
.sec_theme {
    padding: 0;
}

.theme_box_img {
    width: 100%;
    margin: 0 auto;
}

.theme_box2 {
    width: 100%;
    aspect-ratio: 750 / 714;
    display: flex;
    align-items: center;
    justify-content: center;
    background: url("/asset/images/top/tz2026/theme_box2_bg.png") center / 100% 100% no-repeat;
}

.theme_box2_text {
    margin: 0;
    color: var(--theme-red);
    font-size: 3vw;
    font-weight: 700;
    line-height: 2.2;
    letter-spacing: 0;
    text-align: center;
    transform: translateY(-7.5%);
    white-space: nowrap;
}

/* 4. Main Contents */
.sec_main_contents {
    padding: 0;
    background-color: #ffffff;
    position: relative;
}

.main_contents_tit {
    margin: 0 auto;
    width: 100%;
    text-align: center;
}

.main_contents_tit img {
    width: 100%;
    max-width: 750px;
    margin: 0 auto;
}

.contents_banners {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.banner_item {
    width: 100%;
    max-width: 750px;
    margin: 0 auto;
    text-align: center;
    position: relative;
}

.banner_item + .banner_item {
    margin-top: 0;
}

.banner_message {
    max-width: 750px;
}

.banner_event {
    width: 100%;
    max-width: 750px;
}

.banner_item img {
    width: 100%;
    margin: 0 auto;
}

.banner_item a {
    display: block;
    width: 100%;
    cursor: pointer;
    transition: none;
}

.banner_item a:hover {
    transform: none;
    filter: none;
    transition: none;
}

.banner_item a img,
.banner_item a:hover img {
    opacity: 1;
    filter: none;
    transition: none;
}

/* 5. Sponsors Section */
.contents_line_bottom {
    width: 100%;
}

.sec_companies {
    padding: 70px 34px 100px;
    background: url("/asset/images/top/tz2026/bg_company_list.png") center top / 100% 100% no-repeat;
}

.companies_box {
    padding: 0;
}

.company_block + .company_block {
    margin-top: 40px;
}

.company_bar {
    background-color: var(--deep-navy);
    color: #ffffff;
    font-size: 2.666667vw;
    font-weight: 700;
    letter-spacing: 0.3em;
    text-align: center;
    width: 84.3%;
    max-width: 553px;
    height: 29.33px;
    line-height: 29.33px;
    border-radius: 6px;
    margin: 0 auto 11px;
    padding-left: 0.3em;
}

.organizer_name {
    text-align: center;
    color: var(--deep-navy);
    font-size: 2.4vw;
    line-height: 1.5;
    font-weight: 700;
    margin: 0 0 24px;
}

.organizer_name strong {
    font-size: 3.2vw;
    font-weight: 700;
}

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

.organizer_logo_row {
    width: 100%;
    display: flex;
    align-items: stretch;
}

.organizer_logo_row a,
.organizer_logo_row img {
    display: block;
    height: auto;
}

.organizer_logo_row a img {
    width: 100%;
}

.organizer_logo_row_01 > :nth-child(1) { width: 38.5671%; }
.organizer_logo_row_01 > :nth-child(2) { width: 31.5549%; }
.organizer_logo_row_01 > :nth-child(3) { width: 29.8780%; }

.organizer_logo_row_02 > :nth-child(1) { width: 53.3537%; }
.organizer_logo_row_02 > :nth-child(2) { width: 46.6463%; }

.organizer_logo_divider {
    width: 100%;
}

.organizer_logo_row_03 > :nth-child(1) { width: 47.8659%; }
.organizer_logo_row_03 > :nth-child(2) { width: 5.4878%; }
.organizer_logo_row_03 > :nth-child(3) { width: 46.6463%; }

.hikari_logo_wrap {
    text-align: center;
    max-width: 656px;
    margin: 0 auto;
}

.hikari_logo_wrap img {
    width: 100%;
    margin: 0 auto;
    transition: opacity 0.2s ease;
}

.hikari_logo_wrap a:hover img {
    opacity: 0.8;
}

.featured_company_name {
    text-align: center;
    font-size: 2.666667vw;
    font-weight: 700;
    color: var(--deep-navy);
    margin: 0 0 16px;
}

.company_divider {
    width: 84.3%;
    max-width: 546px;
    height: 2px;
    background-color: var(--deep-navy);
    margin: 16px auto;
}

.supporting_companies {
    font-size: 2.4vw;
    line-height: 1.9;
    color: var(--deep-navy);
    text-align: center;
    margin: 0;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.supporting_companies.sub_list {
    font-size: 2.4vw;
    line-height: 1.9;
    color: var(--deep-navy);
}

/* 6. Footer */
.tz_footer {
    width: 100%;
    background-color: var(--theme-red);
}

.tz_footer_inner img {
    width: 100%;
}

/* --------------------------------------------------
   PC Fixed Background Layout (min-width: 1024px)
   -------------------------------------------------- */
@media screen and (min-width: 1024px) {
    .tz_page_wrapper::before {
        content: "";
        position: fixed;
        top: 0;
        left: 50%;
        width: 1920px;
        height: 1140px;
        background: url("/asset/images/top/tz2026/back_pc.png") center top / 1920px 1140px no-repeat;
        transform: translateX(-50%);
        pointer-events: none;
        z-index: 0;
    }

    .tz_main_container {
        max-width: 750px;
        margin: 0 auto;
        z-index: 1;
    }

    .tz_center_col {
        width: 750px;
        max-width: 750px;
        box-shadow: 0 0 30px rgba(0, 0, 0, 0.05);
    }

    /*
     * The supplied artwork uses a 500px canvas, while the site's established
     * desktop content width is 750px. Scale the non-image content by the same
     * 1.5 ratio as the full-width artwork. Mobile sizing remains unchanged.
     */
    .sec_theme {
        padding: 0;
    }

    .concept_lead {
        font-size: clamp(14.5px, 1.1328125vw, 21.75px);
    }

    .theme_box2_text {
        font-size: clamp(15px, 1.171875vw, 22.5px);
    }

    .sec_main_contents {
        padding: 0;
    }

    .main_contents_tit {
        margin-bottom: 0;
    }

    .banner_item + .banner_item {
        margin-top: 0;
    }

    .sec_companies {
        padding: clamp(70px, 5.46875vw, 105px)
                 clamp(29.333px, 2.291667vw, 44px)
                 clamp(100px, 7.8125vw, 150px);
    }

    .companies_box {
        padding: 0;
    }

    .company_block + .company_block {
        margin-top: clamp(40px, 3.125vw, 60px);
    }

    .company_bar {
        width: 84.3%;
        max-width: 553px;
        height: clamp(29.333px, 2.291667vw, 44px);
        line-height: clamp(29.333px, 2.291667vw, 44px);
        border-radius: clamp(6px, 0.46875vw, 9px);
        margin-bottom: clamp(11px, 0.833333vw, 16px);
        font-size: clamp(13.333px, 1.041667vw, 20px);
    }

    .organizer_name {
        margin-bottom: clamp(24px, 1.875vw, 36px);
        font-size: clamp(12px, 0.9375vw, 18px);
        line-height: 1.5;
    }

    .organizer_name strong {
        font-size: clamp(16px, 1.25vw, 24px);
    }

    .hikari_logo_wrap {
        max-width: 656px;
    }

    .featured_company_name {
        margin-bottom: clamp(16px, 1.25vw, 24px);
        font-size: clamp(13.333px, 1.041667vw, 20px);
    }

    .company_divider {
        margin: clamp(16px, 1.25vw, 24px) auto;
    }

    .supporting_companies {
        font-size: clamp(12px, 0.9375vw, 18px);
    }

    .supporting_companies.sub_list {
        font-size: clamp(12px, 0.9375vw, 18px);
    }
}

@media screen and (min-width: 751px) and (max-width: 1023px) {
    .concept_lead {
        font-size: 14.5px;
    }

    .theme_box2_text {
        font-size: 15px;
    }

    .sec_companies {
        padding: 70px 29.333px 100px;
    }

    .company_bar,
    .featured_company_name {
        font-size: 13.333px;
    }

    .organizer_name {
        font-size: 12px;
    }

    .organizer_name strong {
        font-size: 16px;
    }

    .supporting_companies,
    .supporting_companies.sub_list {
        font-size: 12px;
    }
}
