/* ===== SCROLL ANIMATION ===== */
[data-anim] { will-change: transform, opacity; }
[data-anim="fade-up"] {
    opacity: 0; transform: translateY(28px);
    transition: opacity 1.5s cubic-bezier(0.22,1,0.36,1), transform 1.5s cubic-bezier(0.22,1,0.36,1);
}
[data-anim="fade-up"].is-visible { opacity: 1; transform: translateY(0); }
[data-anim="fade"] {
    opacity: 0;
    transition: opacity 1.8s ease;
}
[data-anim="fade"].is-visible { opacity: 1; }
[data-anim="slide-right"] {
    opacity: 0; transform: translateX(48px);
    transition: opacity 1.6s cubic-bezier(0.22,1,0.36,1), transform 1.6s cubic-bezier(0.22,1,0.36,1);
}
[data-anim="slide-right"].is-visible { opacity: 1; transform: translateX(0); }
[data-anim="scale-in"] {
    opacity: 0; transform: scale(1.04);
    transition: opacity 1.6s cubic-bezier(0.22,1,0.36,1), transform 2.0s cubic-bezier(0.22,1,0.36,1);
}
[data-anim="scale-in"].is-visible { opacity: 1; transform: scale(1); }
[data-delay="100"] { transition-delay: 0.10s !important; }
[data-delay="200"] { transition-delay: 0.20s !important; }
[data-delay="300"] { transition-delay: 0.30s !important; }

/* ===== COMMON ===== */
.tmc_Package {
    font-optical-sizing: auto;
    line-height: 1.5;
    letter-spacing: 0.05em;
    font-family: YakuHanJP, 'Zen Kaku Gothic New', sans-serif;
    font-weight: 400;
    background: #000;
    color: #f2f0ec;
}
.tmc_Package img { width: auto; max-width: 100%; height: auto; max-height: 100%; vertical-align: top; }
.tmc_Package h1, .tmc_Package h2, .tmc_Package h3 { line-height: 1.3; padding: 0; font-weight: revert; }
#tmc_header { display: none; }
#tmc_page-content { position: relative; z-index: 20; background: #000; }
div#Wrap { margin-top: 0 !important; }
@media (max-width: 834px) { div#Wrap { } }

/* 英語見出し共通（セリフ） */
.tmc_en { font-family: 'Cormorant Garamond', 'EB Garamond', serif; }

/* ===== HERO ===== */
#tmc_hero {
    position: relative;
    overflow: hidden;
    background: #000;
    aspect-ratio: 16 / 9;
}
@media (max-width: 834px) { #tmc_hero { aspect-ratio: 750 / 1116; } }

.tmc_hero-bg {
    position: absolute; inset: 0;
    background: url('https://www.tiemco.co.jp/contents/feature/lp/2026/trout_milk/Trout_in_the_milk_KV_PC.jpg') center center / cover no-repeat;
    opacity: 0; transform: scale(1.06);
    transition: opacity 2.5s cubic-bezier(0.4,0,0.2,1), transform 3.5s cubic-bezier(0.25,0.46,0.45,0.94);
}
@media (max-width: 834px) {
    .tmc_hero-bg { background-image: url('https://www.tiemco.co.jp/contents/feature/LP/2026/trout_milk/trout_inmilk_sp.jpg'); }
}
.tmc_hero-bg.kv-show { opacity: 1; transform: scale(1); }

.tmc_hero-fish {
    position: absolute;
    right: -2%;
    top: 50%;
    transform: translateY(-52%) translateX(30px);
    width: 52%;
    z-index: 3;
    opacity: 0;
    transition: opacity 1.8s ease 1.0s, transform 2.0s cubic-bezier(0.25,0.46,0.45,0.94) 1.0s;
    pointer-events: none;
}
.tmc_hero-fish.kv-show { opacity: 1; transform: translateY(-52%) translateX(0); }
.tmc_hero-fish img { width: 100%; height: auto; display: block; object-fit: contain; filter: drop-shadow(0 10px 40px rgba(0,0,0,0.6)); }
@media (max-width: 834px) {
    .tmc_hero-fish { width: 90%; right: -5%; top: 30%; transform: translateY(0) translateX(30px); }
    .tmc_hero-fish.kv-show { transform: translateY(0) translateX(0); }
}

.tmc_hero-body {
    position: absolute;
    top: 50%; left: 7%;
    transform: translateY(-50%);
    z-index: 5;
    max-width: 46%;
}
@media (max-width: 834px) { .tmc_hero-body { top: auto; bottom: 8%; left: 6%; transform: none; max-width: 88%; } }

.tmc_hero-title {
    display: block;
    font-family: 'Cormorant Garamond', serif;
    font-size: min(6.2vw, 84px);
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.05;
    color: #fff;
    text-transform: uppercase;
    opacity: 0; transform: translateY(14px);
    transition: opacity 1.2s ease 0.5s, transform 1.4s cubic-bezier(0.25,0.46,0.45,0.94) 0.5s;
}
.tmc_hero-title.kv-show { opacity: 1; transform: translateY(0); }
@media (max-width: 834px) { .tmc_hero-title { font-size: 13vw; } }

.tmc_hero-sub {
    display: block;
    font-family: 'Shippori Mincho', serif;
    font-size: min(1.6vw, 18px);
    font-weight: 400;
    letter-spacing: 0.3em;
    color: rgba(255,255,255,0.72);
    margin-top: 1.0vw;
    opacity: 0; transform: translateY(10px);
    transition: opacity 1.2s ease 0.9s, transform 1.2s cubic-bezier(0.25,0.46,0.45,0.94) 0.9s;
}
.tmc_hero-sub.kv-show { opacity: 1; transform: translateY(0); }
@media (max-width: 834px) { .tmc_hero-sub { font-size: 4vw; margin-top: 2vw; } }

.tmc_hero-meta {
    display: flex;
    flex-direction: column;
    gap: 0.1em;
    margin-top: 2.0vw;
    opacity: 0; transform: translateY(10px);
    transition: opacity 1.0s ease 1.2s, transform 1.0s cubic-bezier(0.25,0.46,0.45,0.94) 1.2s;
}
.tmc_hero-meta.kv-show { opacity: 1; transform: translateY(0); }
.tmc_hero-meta span {
    display: block;
    font-family: 'EB Garamond', serif;
    font-size: min(1.25vw, 15px);
    font-weight: 500;
    letter-spacing: 0.16em;
    color: rgba(255,255,255,0.78);
}
@media (max-width: 834px) { .tmc_hero-meta { margin-top: 4vw; } .tmc_hero-meta span { font-size: 3.4vw; } }

.tmc_hero-btns {
    position: absolute;
    bottom: 7%;
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    display: flex;
    gap: 1.0vw;
    z-index: 5;
    opacity: 0;
    transition: opacity 1.0s ease 1.6s, transform 1.0s cubic-bezier(0.25,0.46,0.45,0.94) 1.6s;
}
.tmc_hero-btns.kv-show { opacity: 1; transform: translateX(-50%) translateY(0); }
@media (max-width: 834px) { .tmc_hero-btns { gap: 3vw; bottom: 6%; } }

.tmc_hero-btn {
    display: inline-block;
    font-family: 'EB Garamond', serif;
    font-size: min(1.25vw, 15px);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-decoration: none;
    padding: 0.7vw 2.0vw;
    background: #fff;
    color: #111;
    border: 1px solid #fff;
    transition: background 0.25s, color 0.25s;
    white-space: nowrap;
}
.tmc_hero-btn:hover { background: transparent; color: #fff; }
.tmc_hero-btn--outline { background: transparent; color: #fff; border-color: rgba(255,255,255,0.65); }
.tmc_hero-btn--outline:hover { background: rgba(255,255,255,0.12); }
@media (max-width: 834px) { .tmc_hero-btn { font-size: 3.4vw; padding: 3vw 6vw; } }

/* ===== SYNOPSIS ===== */
#tmc_section-synopsis {
    background:
        linear-gradient(to bottom, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.78) 100%),
        url('https://www.tiemco.co.jp/contents/feature/lp/2026/trout_milk/story_background2.jpg') center center / cover no-repeat;
    padding: 8vw 0;
}
@media (max-width: 834px) { #tmc_section-synopsis { padding: 15vw 0; } }

.tmc_synopsis-inner {
    max-width: 780px;
    margin: 0 auto;
    padding: 0 8vw;
}
.tmc_synopsis-label {
    display: block;
    font-family: 'Shippori Mincho', serif;
    font-size: min(1.8vw, 20px);
    font-weight: 600;
    letter-spacing: 0.22em;
    color: rgba(255,255,255,0.95);
    margin-bottom: 1.6vw;
}
@media (max-width: 834px) { .tmc_synopsis-label { font-size: 16px; margin-bottom: 4vw; } }

.tmc_synopsis-heading {
    font-family: 'Shippori Mincho', serif;
    font-size: min(2.4vw, 28px);
    font-weight: 600;
    letter-spacing: 0.14em;
    line-height: 1.6;
    color: #fff;
    margin-bottom: 3vw;
}
@media (max-width: 834px) { .tmc_synopsis-heading { font-size: 5.6vw; margin-bottom: 7vw; } }

.tmc_synopsis-body p {
    font-family: 'Shippori Mincho', serif;
    font-size: min(1.65vw, 17px);
    font-weight: 400;
    line-height: 2.6;
    letter-spacing: 0.09em;
    color: rgba(255,255,255,0.82);
    margin-bottom: 2.0em;
}
.tmc_synopsis-body p:last-child { margin-bottom: 0; }
@media (max-width: 834px) { .tmc_synopsis-body p { font-size: 15px; } }

/* ===== TRAILER ===== */
#tmc_section-trailer {
    background: #000;
    padding: 8vw 0;
}
@media (max-width: 834px) { #tmc_section-trailer { padding: 15vw 0; } }

.tmc_trailer-hd {
    text-align: center;
    margin-bottom: 2.8vw;
}
@media (max-width: 834px) { .tmc_trailer-hd { margin-bottom: 6vw; } }
.tmc_trailer-label {
    font-family: 'Cormorant Garamond', serif;
    font-size: min(2.6vw, 34px);
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: #fff;
    display: block;
}
@media (max-width: 834px) { .tmc_trailer-label { font-size: 6.5vw; } }

.tmc_trailer-video {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #0a0a0a;
    cursor: pointer;
    margin: 0 8vw;
}
@media (max-width: 834px) { .tmc_trailer-video { aspect-ratio: 16 / 9; margin: 0 5vw; } }
.tmc_trailer-video img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    opacity: 0.78;
    transition: opacity 0.4s, transform 0.8s cubic-bezier(0,0,0,1);
}
.tmc_trailer-video:hover img { opacity: 0.58; transform: scale(1.02); }
.tmc_trailer-video.is-playing { cursor: default; }
.tmc_trailer-video iframe { width: 100%; height: 100%; display: block; border: 0; }

.tmc_trailer-play {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    background: none; border: none; cursor: pointer; padding: 0;
    width: min(6vw, 72px); height: min(6vw, 72px);
    transition: transform 0.35s cubic-bezier(0.22,1,0.36,1);
}
.tmc_trailer-play:hover { transform: translate(-50%, -50%) scale(1.14); }
.tmc_trailer-play svg { width: 100%; height: 100%; }
@media (max-width: 834px) { .tmc_trailer-play { width: 15vw; height: 15vw; } }

/* ===== PRODUCTS ===== */
#tmc_section-products {
    padding: 8vw 8vw;
    background: #000;
}
@media (max-width: 834px) { #tmc_section-products { padding: 15vw 5vw; } }

.tmc_products-hd {
    text-align: center;
    margin-bottom: 4.5vw;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5vw;
}
@media (max-width: 834px) { .tmc_products-hd { margin-bottom: 9vw; gap: 4vw; } }
.tmc_products-rule {
    display: block;
    width: 40px; height: 1px;
    background: rgba(255,255,255,0.4);
}
.tmc_products-label {
    font-family: 'Cormorant Garamond', serif;
    font-size: min(2.6vw, 34px);
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #fff;
    display: block;
}
@media (max-width: 834px) { .tmc_products-label { font-size: 6.5vw; } }

.tmc_products-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3vw;
    max-width: 1200px;
    margin: 0 auto;
}
@media (max-width: 834px) { .tmc_products-grid { grid-template-columns: 1fr; gap: 10vw; } }

.tmc_product-card {
    display: flex;
    flex-direction: row;
    gap: 0;
    background: #0e0e0e;
    border: 1px solid rgba(255,255,255,0.12);
}
.tmc_product-card__pkg {
    flex: 0 0 38%;
    background: #161616;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3%;
}
.tmc_product-card__pkg img {
    width: 100%; height: auto;
    display: block;
    max-height: 100%;
    object-fit: contain;
    transition: transform 0.8s cubic-bezier(0,0,0,1);
}
.tmc_product-card:hover .tmc_product-card__pkg img { transform: scale(1.04); }

.tmc_product-card__body {
    flex: 1;
    padding: 2.2vw 3vw 2.2vw 2.2vw;
    display: flex;
    flex-direction: column;
    gap: 1.0vw;
}
@media (max-width: 834px) { .tmc_product-card__body { padding: 5vw 5vw; gap: 3vw; } }

.tmc_product-card__format {
    font-family: 'Cormorant Garamond', serif;
    font-size: min(2.6vw, 30px);
    font-weight: 600;
    letter-spacing: 0.06em;
    color: #fff;
    display: block;
}
@media (max-width: 834px) { .tmc_product-card__format { font-size: 8vw; } }

.tmc_product-card__lead {
    font-family: 'Shippori Mincho', serif;
    font-size: min(1.2vw, 13px);
    font-weight: 400;
    line-height: 1.9;
    letter-spacing: 0.06em;
    color: rgba(255,255,255,0.7);
    margin: 0;
}
@media (max-width: 834px) { .tmc_product-card__lead { font-size: 12.5px; } }

.tmc_product-card__specs {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 0.3vw;
}
.tmc_product-card__specs li {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: min(1.1vw, 12.5px);
    font-weight: 400;
    letter-spacing: 0.06em;
    color: rgba(255,255,255,0.6);
    padding-left: 1em;
    position: relative;
    line-height: 1.8;
}
.tmc_product-card__specs li::before { content: '・'; position: absolute; left: 0; color: rgba(255,255,255,0.4); }
@media (max-width: 834px) { .tmc_product-card__specs li { font-size: 12.5px; } }

.tmc_product-card__footer {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    gap: 0.8vw;
}
@media (max-width: 834px) { .tmc_product-card__footer { gap: 3vw; } }

.tmc_product-card__price {
    font-family: 'EB Garamond', serif;
    font-size: min(2.1vw, 24px);
    font-weight: 600;
    letter-spacing: 0.04em;
    color: #fff;
    display: block;
}
.tmc_product-card__tax { font-size: 0.6em; font-weight: 400; color: rgba(255,255,255,0.5); letter-spacing: 0.04em; }
@media (max-width: 834px) { .tmc_product-card__price { font-size: 5.5vw; } }

.tmc_product-card__btn {
    display: inline-block;
    font-family: 'EB Garamond', serif;
    font-size: min(1.15vw, 14px);
    font-weight: 600;
    letter-spacing: 0.16em;
    text-decoration: none;
    color: #111;
    background: #fff;
    padding: 0.7vw 2.0vw;
    transition: opacity 0.25s;
    align-self: flex-start;
    white-space: nowrap;
}
.tmc_product-card__btn:hover { opacity: 0.78; }
.tmc_product-card__btn--soon {
    background: transparent;
    color: rgba(255,255,255,0.6);
    border: 1px solid rgba(255,255,255,0.3);
    cursor: default;
}
.tmc_product-card__btn--soon:hover { opacity: 1; }
@media (max-width: 834px) {
    .tmc_product-card__btn {
        display: block;
        align-self: stretch;
        text-align: center;
        box-sizing: border-box;
        font-size: 3.6vw;
        padding: 3vw 4vw;
    }
}

/* ===== GALLERY ===== */
#tmc_section-gallery {
    background: #000;
    padding: 8vw 0;
    overflow: hidden;
}
@media (max-width: 834px) { #tmc_section-gallery { padding: 15vw 0; } }
.tmc_gallery-hd { text-align: center; margin-bottom: 2.8vw; }
@media (max-width: 834px) { .tmc_gallery-hd { margin-bottom: 6vw; } }
.tmc_gallery-label {
    font-family: 'Cormorant Garamond', serif;
    font-size: min(2.6vw, 34px);
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: #fff;
    display: block;
}
@media (max-width: 834px) { .tmc_gallery-label { font-size: 6.5vw; } }

.tmc_gallery-slick {
    margin: 0;
    width:100vw;
}

.tmc_gallery-slide {
    height: min(32vw, 420px);
    margin: 0 5px;
    overflow: hidden;
    background: #141414;
}
@media (max-width: 834px) { .tmc_gallery-slide { height: 62vw; margin: 0 1.5vw; } }
.tmc_gallery-slide img {
    width: auto; height: 100%; display: block;
    transition: transform 0.6s cubic-bezier(0,0,0,1);
}
.tmc_gallery-slide:hover img { transform: scale(1.06); }

/* slick overrides */
#tmc_gallery-slick .slick-prev,
#tmc_gallery-slick .slick-next {
    width: min(3.5vw, 44px); height: min(3.5vw, 44px);
    background: rgba(255,255,255,0.10);
    border: 1px solid rgba(255,255,255,0.25);
    z-index: 2;
    transition: background 0.25s;
}
#tmc_gallery-slick .slick-prev:hover,
#tmc_gallery-slick .slick-next:hover { background: rgba(255,255,255,0.22); }
#tmc_gallery-slick .slick-prev { left: min(1.5vw, 20px); }
#tmc_gallery-slick .slick-next { right: min(1.5vw, 20px); }
#tmc_gallery-slick .slick-prev::before,
#tmc_gallery-slick .slick-next::before {
    font-family: serif;
    font-size: min(2.2vw, 26px);
    color: #fff;
    opacity: 1;
}
#tmc_gallery-slick .slick-prev::before { content: '\2039'; }
#tmc_gallery-slick .slick-next::before { content: '\203A'; }

#tmc_gallery-slick .slick-dots { position: static; margin-top: 2.2vw; }
@media (max-width: 834px) { #tmc_gallery-slick .slick-dots { margin-top: 5vw; } }
#tmc_gallery-slick .slick-dots li button::before {
    font-size: 8px;
    color: #fff;
    opacity: 0.28;
}
#tmc_gallery-slick .slick-dots li.slick-active button::before { opacity: 1; }

/* ===== AWARDS + COMMENT ===== */
#tmc_section-ac {
    background: #000;
    padding: 8vw 0;
}
@media (max-width: 834px) { #tmc_section-ac { padding: 15vw 0; } }

.tmc_ac-inner {
    display: flex;
    flex-direction: column;
    max-width: none;
}

.tmc_ac-label {
    font-family: 'Cormorant Garamond', serif;
    font-size: min(1.6vw, 20px);
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.65);
    display: block;
    margin-bottom: 3vw;
    text-align: center;
}
@media (max-width: 834px) { .tmc_ac-label { font-size: 16px; margin-bottom: 6vw; } }

.tmc_awards-col {
    padding: 0 6vw 6vw;
    margin-bottom: 6vw;
    border-bottom: 1px solid rgba(255,255,255,0.12);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
@media (max-width: 834px) { .tmc_awards-col { padding: 0 0 12vw; margin-bottom: 12vw; } }

.tmc_awards-img {
    width: 100%;
    display: flex;
    justify-content: center;
}
.tmc_awards-img img {
    width: 100%;
    max-width: 1000px;
    height: auto;
    display: block;
}
@media (max-width: 834px) { .tmc_awards-img img { max-width: 80%; } }

.tmc_comment-col {
    padding: 0 4vw 0 5vw;
    display: flex;
    flex-direction: column;
}
@media (max-width: 834px) { .tmc_comment-col { padding: 12vw 6vw 0; } }

.tmc_comment-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5vw;
}
@media (max-width: 1024px) { .tmc_comment-list { grid-template-columns: 1fr; gap: 2vw; } }
@media (max-width: 834px) { .tmc_comment-list { grid-template-columns: 1fr; gap: 4vw; } }

.tmc_comment-card {
    background: #0e0e0e;
    padding: 2.0vw 2.0vw 1.8vw;
    display: flex;
    flex-direction: column;
    gap: 0.8vw;
    border: 1px solid rgba(255,255,255,0.12);
}
@media (max-width: 834px) { .tmc_comment-card { padding: 6vw 5vw 5vw; gap: 3vw; } }

.tmc_comment-card__name {
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: min(1.5vw, 18px);
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #fff;
    text-align: center;
}
@media (max-width: 834px) { .tmc_comment-card__name { font-size: 17px; } }

.tmc_comment-card__text {
    font-family: 'Shippori Mincho', serif;
    font-size: min(1.35vw, 16px);
    font-weight: 400;
    line-height: 2.0;
    letter-spacing: 0.07em;
    color: rgba(255,255,255,0.8);
    margin: 0;
    flex: 1;
}
@media (max-width: 834px) { .tmc_comment-card__text { font-size: 15px; } }

.tmc_comment-card__role {
    display: block;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: min(1.1vw, 13px);
    font-weight: 400;
    letter-spacing: 0.06em;
    color: rgba(255,255,255,0.45);
    text-align: right;
}
@media (max-width: 834px) { .tmc_comment-card__role { font-size: 13px; } }

/* ===== DIRECTOR ===== */
#tmc_section-director {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background:
        url('../images/director_bg.jpg') center 30% / cover no-repeat;
    background-color: #000;
    position: relative;
}
#tmc_section-director::before {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(to right, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.7) 45%, rgba(0,0,0,0.92) 100%);
    pointer-events: none; z-index: 1;
}
@media (max-width: 834px) {
    #tmc_section-director { grid-template-columns: 1fr; }
    #tmc_section-director::before { background: linear-gradient(to bottom, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.9) 60%); }
}

.tmc_director-img {
    position: relative; z-index: 2;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}
.tmc_director-img img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    filter: brightness(0.82) saturate(0.9);
}
@media (max-width: 834px) { .tmc_director-img { } }

.tmc_director-body {
    position: relative; z-index: 2;
    padding: 5vw 8vw 5vw 5vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2.0vw;
}
@media (max-width: 834px) { .tmc_director-body { padding: 10vw 7vw 12vw; gap: 5vw; } }

.tmc_director-label {
    font-family: 'Cormorant Garamond', serif;
    font-size: min(1.6vw, 20px);
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
    display: block;
}
@media (max-width: 834px) { .tmc_director-label { font-size: 16px; } }

.tmc_director-name {
    font-family: 'Shippori Mincho', serif;
    font-size: min(2.2vw, 26px);
    font-weight: 600;
    letter-spacing: 0.12em;
    color: #fff;
    margin: 0.4em 0 0.8em;
}
@media (max-width: 834px) { .tmc_director-name { font-size: 22px; } }

.tmc_director-text {
    font-family: 'Shippori Mincho', serif;
    font-size: min(1.45vw, 16px);
    font-weight: 400;
    line-height: 2.4;
    letter-spacing: 0.1em;
    color: rgba(255,255,255,0.85);
    margin: 0;
}
@media (max-width: 834px) { .tmc_director-text { font-size: 14px; } }

.tmc_director-btn {
    display: inline-block;
    font-family: 'EB Garamond', serif;
    font-size: min(1.15vw, 14px);
    font-weight: 600;
    letter-spacing: 0.16em;
    text-decoration: none;
    color: #fff;
    border: 1px solid rgba(255,255,255,0.55);
    padding: 0.7vw 2.2vw;
    transition: background 0.25s;
    align-self: flex-start;
    white-space: nowrap;
}
.tmc_director-btn:hover { background: rgba(255,255,255,0.12); }
@media (max-width: 834px) { .tmc_director-btn { font-size: 3.6vw; padding: 3vw 7vw; } }

/* ===== CAST ===== */
#tmc_section-cast {
    background: #000;
    padding: 8vw 0;
}
@media (max-width: 834px) { #tmc_section-cast { padding: 15vw 0; } }

.tmc_cast-hd { text-align: center; margin-bottom: 2.8vw; }
@media (max-width: 834px) { .tmc_cast-hd { margin-bottom: 6vw; } }
.tmc_cast-label {
    font-family: 'Cormorant Garamond', serif;
    font-size: min(2.6vw, 34px);
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: #fff;
    display: block;
}
@media (max-width: 834px) { .tmc_cast-label { font-size: 6.5vw; } }

.tmc_cast-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.6vw;
    padding: 0 8vw;
}
@media (max-width: 834px) { .tmc_cast-grid { grid-template-columns: repeat(2, 1fr); gap: 5vw 4vw; padding: 0 6vw; } }

.tmc_cast-slide {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6vw;
}
@media (max-width: 834px) { .tmc_cast-slide { gap: 2vw; } }

.tmc_cast-slide__img {
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: #141414;
}
.tmc_cast-slide__img img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform 0.6s cubic-bezier(0,0,0,1);
    filter: brightness(0.92) saturate(0.95);
}
.tmc_cast-slide:hover .tmc_cast-slide__img img { transform: scale(1.06); }

.tmc_cast-slide__name {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: min(1.15vw, 14px);
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #fff;
    margin-top: 0.4vw;
    text-align: center;
}
@media (max-width: 834px) { .tmc_cast-slide__name { font-size: 12px; } }

.tmc_cast-slide__role {
    font-family: 'Shippori Mincho', serif;
    font-size: min(0.95vw, 12px);
    font-weight: 400;
    letter-spacing: 0.08em;
    color: rgba(255,255,255,0.5);
    text-align: center;
}
@media (max-width: 834px) { .tmc_cast-slide__role { font-size: 10.5px; } }

/* ===== DISC SPEC ===== */
#tmc_section-spec {
    background: #000;
    padding: 8vw 8vw;
}
@media (max-width: 834px) { #tmc_section-spec { padding: 15vw 0; } }

.tmc_spec-hd { text-align: center; margin-bottom: 3.5vw; }
@media (max-width: 834px) { .tmc_spec-hd { margin-bottom: 8vw; } }

.tmc_spec-label {
    font-family: 'Cormorant Garamond', serif;
    font-size: min(2.6vw, 34px);
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: #fff;
    display: block;
}
@media (max-width: 834px) { .tmc_spec-label { font-size: 6.5vw; } }

.tmc_spec-table-wrap {
    max-width: 900px;
    margin: 0 auto;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.tmc_spec-table {
    width: 100%;
    border-collapse: collapse;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: min(1.25vw, 14px);
    letter-spacing: 0.04em;
}
@media (max-width: 834px) { .tmc_spec-table { font-size: 11px; min-width: 0; table-layout: fixed; } }

.tmc_spec-table th,
.tmc_spec-table td {
    padding: 1.4vw 2.2vw;
    border-bottom: 1px solid rgba(255,255,255,0.12);
    vertical-align: middle;
    text-align: center;
    line-height: 1.7;
    color: rgba(255,255,255,0.85);
}
@media (max-width: 834px) { .tmc_spec-table th, .tmc_spec-table td { padding: 2.5vw 1.5vw; word-break: break-word; } }

.tmc_spec-table__th--blank { background: #000; border-bottom-color: rgba(255,255,255,0.5); }

.tmc_spec-table thead th {
    font-family: 'EB Garamond', serif;
    font-size: min(1.5vw, 17px);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #000;
    background: #fff;
    border: none;
}
@media (max-width: 834px) { .tmc_spec-table thead th { font-size: 14px; } }

.tmc_spec-table tbody tr:nth-child(even) td { background: #0c0c0c; }
.tmc_spec-table__th {
    font-weight: 500;
    color: rgba(255,255,255,0.6);
    background: #0c0c0c !important;
    white-space: nowrap;
    font-size: min(1.15vw, 13px);
}
@media (max-width: 834px) { .tmc_spec-table__th { font-size: 10.5px; white-space: normal; } }

/* ===== FOOTER CTA ===== */
#tmc_section-cta {
    background:
        linear-gradient(to bottom, rgba(0,0,0,0.78) 0%, rgba(0,0,0,0.88) 100%),
        url('../images/cta_bg.jpg') center center / cover no-repeat;
    background-color: #000;
    padding: 8vw 6vw;
    text-align: center;
}
@media (max-width: 834px) { #tmc_section-cta { padding: 15vw 6vw; } }

.tmc_cta-catch {
    font-family: 'Shippori Mincho', serif;
    font-size: min(2.4vw, 28px);
    font-weight: 600;
    letter-spacing: 0.22em;
    color: #fff;
    margin: 0 0 3.5vw;
}
@media (max-width: 834px) { .tmc_cta-catch { font-size: 5.5vw; margin-bottom: 8vw; } }

.tmc_cta-btns {
    display: flex;
    justify-content: center;
    max-width: 700px;
    margin: 0 auto;
}
@media (max-width: 834px) { .tmc_cta-btns { flex-direction: column; } }

.tmc_cta-btn {
    flex: 1;
    display: block;
    font-family: 'EB Garamond', serif;
    font-size: min(1.5vw, 18px);
    font-weight: 600;
    letter-spacing: 0.16em;
    text-decoration: none;
    text-align: center;
    padding: 1.6vw 3vw;
    transition: opacity 0.25s;
}
.tmc_cta-btn:hover { opacity: 0.82; }
.tmc_cta-btn--blue  { background: #2b5296; color: #fff; }
.tmc_cta-btn--green { background: #2e6e3e; color: #fff; }
.tmc_cta-btn--soon { cursor: default; opacity: 0.78; }
.tmc_cta-btn--soon:hover { opacity: 0.78; }
@media (max-width: 834px) { .tmc_cta-btn { font-size: 4.2vw; padding: 5.5vw 6vw; } }
