/* Main page visual system — CREON blue, signal yellow and deep navy */
body.home-page {
    --home-blue: #1166da;
    --home-blue-deep: #0d55bc;
    --home-yellow: #ffde01;
    --home-navy: #071a38;
    --home-navy-deep: #040e1f;
    --home-ink: #111827;
    --home-copy: #4d5d73;
    --home-surface: #ffffff;
    --home-surface-soft: #f5f8fc;
    --home-line: rgba(17, 102, 218, .14);
    --home-shadow: 0 12px 34px rgba(7, 26, 56, .075);
    --home-shadow-hover: 0 20px 44px rgba(7, 26, 56, .14);
    color: var(--home-ink);
    background: var(--home-surface-soft);
}

/* Header */
.home-page .header_t {
    height: 96px;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    background: linear-gradient(180deg, rgba(4, 14, 31, .9), rgba(7, 26, 56, .7));
    box-shadow: 0 8px 30px rgba(4, 14, 31, .12);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.home-page .header_t.f-nav {
    height: 76px;
    border-bottom-color: rgba(255, 255, 255, .08);
    background: rgba(7, 26, 56, .94);
    box-shadow: 0 10px 34px rgba(4, 14, 31, .2);
}
.home-page .header_t a,
.home-page .menu .major li:hover > a,
.home-page .menu .major li:active > a,
.home-page .menu .major li:focus > a { color: #fff; }
.home-page .menu .major ul li .ko_nav,
.home-page .menu .major li.active > a,
.home-page .menu .major li.pactive > a,
.home-page .header_t a:hover { color: var(--home-yellow); }
.home-page .menu .major ul li > a::after {
    content: '';
    position: absolute;
    right: 0;
    bottom: -10px;
    width: 0;
    height: 2px;
    border-radius: 2px;
    background: var(--home-yellow);
    transition: width .25s ease;
}
.home-page .menu .major ul li:hover > a::after,
.home-page .menu .major ul li:focus-within > a::after { width: 22px; }

/* Hero */
.home-page .main_visual {
    min-height: 620px;
    background: var(--home-navy-deep);
}
.home-page .main_visual::after {
    background: rgba(4, 14, 31, .16);
}
.home-page .video_wrap {
    overflow: hidden;
    background: #040e1f;
}
.home-page .video_wrap iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100vw;
    height: 56.25vw;
    min-width: 177.78vh;
    min-height: 100vh;
    transform: translate(-50%, -50%);
    filter: none;
}
.home-page .main_visual .txt .inner,
.home-page .swiper-slide {
    color: #fff;
    text-shadow: 0 4px 24px rgba(4, 14, 31, .55);
}
.home-page .swiper-slide {
    font-size: clamp(30px, 3.5vw, 56px);
    font-weight: 800;
    line-height: 1.32;
    letter-spacing: -.045em;
    word-break: keep-all;
}
.home-page .scroll-text {
    color: rgba(255, 255, 255, .78);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .22em;
}
.home-page .chevron { border-color: var(--home-yellow); }

/* Consistent light/dark section rhythm */
.home-page .creon_books,
.home-page #mb_services { background: var(--home-surface-soft); }
.home-page .main_visual_bottom,
.home-page #mb_press { background: var(--home-surface); }
.home-page .iso_story,
.home-page #mb_trust {
    background:
        radial-gradient(circle at 88% 14%, rgba(17, 102, 218, .25), transparent 34%),
        linear-gradient(145deg, var(--home-navy) 0%, var(--home-navy-deep) 100%);
}

/* Shared typography and accents */
.home-page :is(.pub_eyebrow, .cap_eyebrow, .mb_kicker) { color: var(--home-blue); }
.home-page :is(.pub_eyebrow, .cap_eyebrow, .mb_kicker)::before {
    background: linear-gradient(90deg, var(--home-blue) 0 70%, var(--home-yellow) 70%);
}
.home-page :is(.pub_title, .cap_title, .mb_heading) {
    color: var(--home-ink);
    font-size: clamp(30px, 3.4vw, 44px);
    line-height: 1.16;
    letter-spacing: -.05em;
}
.home-page :is(.pub_title, .cap_title) em { color: var(--home-blue); }
.home-page :is(.pub_intro, .cap_intro) { color: var(--home-copy); }

/* One card language across the main page */
.home-page :is(.pub_card, .cap_card, .mb_service, .mb_press_card) {
    border-color: var(--home-line);
    border-radius: 20px;
    background: var(--home-surface);
    box-shadow: var(--home-shadow);
}
.home-page :is(.pub_card, .cap_card, .mb_service, .mb_press_card):hover {
    border-color: rgba(17, 102, 218, .34);
    box-shadow: var(--home-shadow-hover);
}
.home-page :is(.pub_card, .cap_card, .mb_service)::before {
    background: linear-gradient(90deg, var(--home-blue) 0 82%, var(--home-yellow) 82% 100%);
}
.home-page :is(.pub_book_title, .cap_caption, .mb_service_tit, .mb_press_tit) { color: var(--home-ink); }
.home-page :is(.pub_desc, .mb_service_desc) { color: var(--home-copy); }
.home-page :is(.pub_author, .cap_caption span, .mb_service_no, .mb_service_more, .mb_press_meta strong) {
    color: var(--home-blue);
}
.home-page :is(.cap_frame, .mb_press_thumb) { background: #eaf0f8; }

/* Buttons and keyboard focus */
.home-page :is(.pub_link, .mb_cta, .footer_wrap #btn_submit) {
    background: var(--home-blue) !important;
    box-shadow: 0 14px 30px rgba(17, 102, 218, .28);
}
.home-page :is(.pub_link, .mb_cta, .footer_wrap #btn_submit):hover {
    color: #fff !important;
    background: var(--home-blue-deep) !important;
}
.home-page :is(a, button, input, textarea):focus-visible {
    outline: 3px solid rgba(255, 222, 1, .95);
    outline-offset: 3px;
}

/* Footer joins the dark trust section */
.home-page #wrap_footer,
.home-page .footer_wrap { background: var(--home-navy-deep) !important; }
.home-page .footer_wrap .system {
    background:
        radial-gradient(circle at 88% 14%, rgba(17, 102, 218, .25), transparent 34%),
        linear-gradient(180deg, var(--home-navy) 0%, #06152e 100%);
}
.home-page .footer_t { background: var(--home-navy-deep); }

@media (max-width: 1024px) {
    .home-page .header_t,
    .home-page .header_t.f-nav { height: 64px; }
    .home-page .main_visual { min-height: 480px; }
}

@media (max-width: 600px) {
    .home-page .main_visual { min-height: 420px; }
    .home-page .video_wrap iframe {
        width: auto;
        height: max(56.25vw, 420px);
        min-width: 100%;
        min-height: 0;
        aspect-ratio: 16 / 9;
    }
    .home-page .swiper-slide {
        padding-right: 18px;
        padding-left: 18px;
        font-size: clamp(24px, 7vw, 32px);
    }
    .home-page :is(.pub_title, .cap_title, .mb_heading) { font-size: 32px; }
}

@media (prefers-reduced-motion: reduce) {
    .home-page *,
    .home-page *::before,
    .home-page *::after { scroll-behavior: auto !important; }
}
