/* =========================================================================
   Нуар — кинозал: густая темнота, золотой свет, виньетка, кадры-«сцены»
   с раскадровкой из чёрно-белого в цвет.
   ========================================================================= */

[data-theme='noir'] {
    --bg: #08080a;
    --bg-2: #0f0f12;
    --surface: #111114;
    --surface-2: #17171b;
    --ink: #ede6d8;
    --muted: #928a7c;
    --line: #26252a;
    --accent: #c9a227;
    --accent-ink: #08080a;
    --accent-2: #ede6d8;

    --font-display: 'Playfair Display', 'Times New Roman', serif;
    --display-weight: 500;
    --display-tracking: -0.02em;
    --display-lh: 1;

    --img-radius: 0;
    --img-filter: grayscale(1) contrast(1.08) brightness(0.95);
    --img-filter-hover: grayscale(0) contrast(1.05);

    --shadow: 0 30px 70px -40px rgba(0, 0, 0, 0.9);
    --shadow-lg: 0 60px 120px -50px rgba(0, 0, 0, 1);
}

/* Виньетка и лёгкое зерно поверх всей сцены. */
[data-theme='noir'] body::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 90;
    pointer-events: none;
    background:
        radial-gradient(120% 90% at 50% 45%, transparent 40%, rgba(0, 0, 0, 0.55) 100%),
        repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.016) 0 1px, transparent 1px 3px);
}

[data-theme='noir'] .site-header {
    background: color-mix(in srgb, #08080a 78%, transparent);
    border-bottom-color: var(--line);
}

[data-theme='noir'] .brand-text strong { letter-spacing: 0.02em; }

[data-theme='noir'] .hero { padding-top: clamp(30px, 6vw, 80px); }

[data-theme='noir'] .hero-title {
    font-size: clamp(2.3rem, 6.2vw, 5.2rem);
}

[data-theme='noir'] .hero-title .word:first-child .word-in {
    font-style: italic;
    color: var(--accent);
}

/* Портрет уходит в свет: тёплая подсветка за кадром. */
[data-theme='noir'] .hero-portrait::before {
    content: '';
    position: absolute;
    inset: -14% -10% -6%;
    background: radial-gradient(60% 55% at 50% 40%, rgba(201, 162, 39, 0.28), transparent 70%);
    filter: blur(40px);
    z-index: -1;
}

[data-theme='noir'] .hero-portrait img {
    aspect-ratio: 3 / 4;
    filter: grayscale(0.65) contrast(1.12) brightness(0.92);
}

[data-theme='noir'] .hero-portrait figcaption {
    background: var(--accent);
    color: var(--accent-ink);
    font-weight: 500;
}

[data-theme='noir'] .hero-strip img { opacity: 0.55; }
[data-theme='noir'] .hero-strip img:hover { opacity: 1; filter: grayscale(0); }

[data-theme='noir'] .marquee {
    background: linear-gradient(90deg, transparent, var(--bg-2) 12%, var(--bg-2) 88%, transparent);
    border-color: var(--line);
}

[data-theme='noir'] .marquee-track span {
    font-style: italic;
    color: color-mix(in srgb, var(--ink) 70%, transparent);
}

/* Кадры идут «сценами»: широкий план, затем два средних. */
[data-theme='noir'] .gallery {
    columns: auto;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: clamp(10px, 1.4vw, 20px);
    align-items: stretch;
}

[data-theme='noir'] .shot {
    grid-column: span 2;
    margin: 0;
}

[data-theme='noir'] .shot:nth-child(8n + 1) { grid-column: span 4; }
[data-theme='noir'] .shot:nth-child(8n + 6) { grid-column: span 3; }
[data-theme='noir'] .shot:nth-child(8n + 7) { grid-column: span 3; }

[data-theme='noir'] .shot-open {
    outline: 1px solid transparent;
    outline-offset: -1px;
    transition: outline-color 0.5s var(--ease);
}

[data-theme='noir'] .shot-open::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 45%, rgba(0, 0, 0, 0.75));
    opacity: 0;
    transition: opacity 0.5s var(--ease);
    pointer-events: none;
}

[data-theme='noir'] .shot-open:hover { outline-color: var(--accent); }
[data-theme='noir'] .shot-open:hover::after { opacity: 1; }

[data-theme='noir'] .shot-plaque {
    background: none;
    backdrop-filter: none;
    color: var(--ink);
    left: 16px;
    right: 16px;
    bottom: 14px;
}

[data-theme='noir'] .shot-plaque i:first-child { color: var(--accent); }

[data-theme='noir'] .section-index { color: var(--accent); }

[data-theme='noir'] .price-card {
    background: linear-gradient(180deg, var(--surface), var(--bg));
    border-color: var(--line);
    border-radius: 2px;
}

[data-theme='noir'] .price-card::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--accent), transparent);
    opacity: 0;
    transition: opacity 0.5s var(--ease);
}

[data-theme='noir'] .price-card:hover::before { opacity: 1; }
[data-theme='noir'] .price-amount { color: var(--accent); }

[data-theme='noir'] .review,
[data-theme='noir'] .contact-card {
    background: var(--surface);
    border-radius: 2px;
}

[data-theme='noir'] .review-photo { filter: grayscale(1); }
[data-theme='noir'] .review:hover .review-photo { filter: grayscale(0); }

[data-theme='noir'] .btn-primary {
    background: var(--accent);
    color: var(--accent-ink);
}

[data-theme='noir'] .btn-primary:hover {
    background: var(--ink);
    color: var(--bg);
}
[data-theme='noir'] .footer-wordmark {
    font-style: italic;
    color: var(--accent);
    opacity: 0.14;
}

[data-theme='noir'] .lightbox {
    background: #000;
}

[data-theme='noir'] .lightbox-figure img { filter: none; }

@media (max-width: 860px) {
    [data-theme='noir'] .shot,
    [data-theme='noir'] .shot:nth-child(8n + 1),
    [data-theme='noir'] .shot:nth-child(8n + 6),
    [data-theme='noir'] .shot:nth-child(8n + 7) {
        grid-column: span 3;
    }
}

@media (max-width: 520px) {
    [data-theme='noir'] .shot,
    [data-theme='noir'] .shot:nth-child(8n + 1),
    [data-theme='noir'] .shot:nth-child(8n + 6),
    [data-theme='noir'] .shot:nth-child(8n + 7) {
        grid-column: span 6;
    }
}
