/* White light + wine accent enhancement */
.luxe-nav {
    border-color: rgba(255,255,255,0.13) !important;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.025), rgba(158,49,75,0.045), transparent);
}

.luxe-heading {
    position: relative;
    border: 1px solid rgba(255,255,255,0.12);
    border-left: 3px solid rgba(158,49,75,0.78);
    background:
        linear-gradient(90deg, rgba(158,49,75,0.12), rgba(255,255,255,0.035), transparent),
        rgba(255,255,255,0.012);
    box-shadow: 0 14px 48px rgba(0,0,0,0.22), 0 0 34px rgba(255,255,255,0.035) inset;
}

.luxe-heading::before {
    content: "HARMONY";
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    font-family: 'Noto Serif JP', serif;
    font-size: clamp(36px, 10vw, 92px);
    letter-spacing: 0.18em;
    color: rgba(255,255,255,0.025);
    pointer-events: none;
}

.luxe-heading h1 {
    color: #f6f1f2 !important;
    text-shadow: 0 0 22px rgba(255,255,255,0.12);
}

.luxe-heading p {
    position: relative;
}

.luxe-heading::after {
    content: "";
    display: block;
    width: min(220px, 42vw);
    height: 1px;
    margin-top: 18px;
    background: linear-gradient(90deg, rgba(158,49,75,0.86), rgba(255,255,255,0.28), transparent);
}

.campaign-hero,
.contact-hero,
.faq-hero,
.play-hero,
.q-hero,
.ladies-hero,
.gallery-hero,
.page-hero,
.map-hero,
.hotel-hero,
.library-hero,
.simple-hero,
.link-hero,
.credit-hero,
.costume-hero {
    border-color: rgba(255,255,255,0.14) !important;
    box-shadow:
        0 28px 80px rgba(0,0,0,0.45),
        0 0 0 1px rgba(255,255,255,0.03) inset,
        0 0 44px rgba(255,255,255,0.045);
}

.hero-bg-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: -2;
    filter: saturate(0.86) contrast(1.04) brightness(0.92);
    pointer-events: none;
}

.campaign-hero::before,
.contact-hero::before,
.faq-hero::before,
.play-hero::before,
.q-hero::before,
.ladies-hero::before,
.gallery-hero::before,
.page-hero::before,
.map-hero::before,
.hotel-hero::before,
.library-hero::before,
.simple-hero::before,
.link-hero::before,
.credit-hero::before,
.costume-hero::before {
    background:
        radial-gradient(circle at 20% 26%, rgba(255,255,255,0.12), transparent 26%),
        radial-gradient(circle at 70% 12%, rgba(158,49,75,0.12), transparent 34%),
        linear-gradient(90deg, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.58) 34%, rgba(0,0,0,0.14) 68%, rgba(0,0,0,0.48) 100%),
        linear-gradient(0deg, rgba(0,0,0,0.64) 0%, transparent 32%, rgba(0,0,0,0.08) 100%) !important;
    filter: none !important;
}

.campaign-hero::after,
.contact-hero::after,
.faq-hero::after,
.play-hero::after,
.q-hero::after,
.ladies-hero::after,
.gallery-hero::after,
.page-hero::after,
.map-hero::after,
.hotel-hero::after,
.library-hero::after,
.simple-hero::after,
.link-hero::after,
.credit-hero::after,
.costume-hero::after {
    content: "";
    position: absolute;
    inset: 18px;
    border: 1px solid rgba(255,255,255,0.1);
    box-shadow: 0 0 24px rgba(255,255,255,0.06) inset;
    pointer-events: none;
    z-index: -1;
}

.campaign-banner,
.contact-panel,
.info-box,
.q-form,
.faq-item,
.play-card,
.info-card,
.course-tab,
.lady-frame,
.gallery-card,
.map-section,
.map-link,
.hotel-card,
.library-card,
.link-panel,
.credit-box,
.credit-step,
.costume-section,
.costume-card,
.notice {
    border-color: rgba(255,255,255,0.11) !important;
    box-shadow: 0 18px 60px rgba(0,0,0,0.22), 0 0 0 1px rgba(255,255,255,0.025) inset;
}

.campaign-banner::after {
    border-color: rgba(255,255,255,0.12) !important;
    box-shadow: 0 0 22px rgba(255,255,255,0.04) inset;
}

.campaign-banner::before {
    background:
        radial-gradient(circle at 80% 48%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 22%),
        linear-gradient(90deg, rgba(0,0,0,0.16), rgba(0,0,0,0.68)) !important;
}

.banner-copy h2,
.contact-panel-head h2,
.form-head h2,
.play-copy h2 {
    color: #f6f1f2 !important;
    text-shadow: 0 0 18px rgba(255,255,255,0.1);
}

.play-card:hover,
.faq-item[open],
.contact-method:hover,
.campaign-block:hover .campaign-banner,
.course-tab:hover,
.course-tab.active,
.lady-frame:hover,
.gallery-card:hover,
.map-link:hover,
.hotel-card:hover,
.costume-card:hover {
    border-color: rgba(255,255,255,0.2) !important;
}

.course-tab {
    background:
        linear-gradient(135deg, rgba(255,255,255,0.035), transparent 42%),
        linear-gradient(90deg, rgba(158,49,75,0.045), rgba(255,255,255,0.012)) !important;
}

.course-tab.active {
    background:
        linear-gradient(135deg, rgba(255,255,255,0.055), transparent 42%),
        linear-gradient(90deg, rgba(158,49,75,0.12), rgba(255,255,255,0.018)) !important;
}

.course-tab.active .tab-label,
.course-tab:hover .tab-label {
    color: #f6f1f2 !important;
    text-shadow: 0 0 14px rgba(255,255,255,0.12);
}

@media (max-width: 768px) {
    .luxe-heading::before {
        display: none;
    }

    .campaign-hero::after,
    .contact-hero::after,
    .faq-hero::after,
    .play-hero::after,
    .q-hero::after,
    .ladies-hero::after,
    .gallery-hero::after,
    .page-hero::after,
    .map-hero::after,
    .hotel-hero::after,
    .library-hero::after,
    .simple-hero::after,
    .link-hero::after,
    .credit-hero::after,
    .costume-hero::after {
        inset: 12px;
    }
}
