/* ============================================================
   INTERNAL DARK PAGES
   Shared dark editorial language for Sobre, Fine Art, Educação
   and Contato.
   ============================================================ */

.page-inner-dark {
    --h-bg: #000;
    --h-tone-1: #101116;
    --h-tone-2: #191a1f;
    --h-tone-3: #0c0d10;
    --h-panel: #1b1d22;
    --h-text: #f3f0ea;
    --h-muted: #a49e95;
    --h-faint: #706b63;
    --h-line: rgba(255, 255, 255, 0.13);
    --h-line-soft: rgba(255, 255, 255, 0.075);
    --h-accent: #c2a87a;
    --h-wrap: 1240px;

    background: var(--h-bg);
    color: var(--h-text);
}

.page-inner-dark ::selection {
    background: var(--h-accent);
    color: #000;
}

.page-inner-dark .navbar-home-dark.scrolled {
    background: rgba(8, 8, 9, 0.88);
}

.page-inner-dark .navbar-home-dark .nav-menu a:hover,
.page-inner-dark .navbar-home-dark .nav-menu a.active {
    color: var(--h-accent);
}

@media (max-width: 768px) {
    .page-inner-dark .nav-menu {
        background: #0a0a0b;
        border-left: 1px solid var(--h-line);
    }
    .page-inner-dark .nav-menu a {
        color: var(--h-text);
    }
}

/* Shared intro / sections ----------------------------------- */
.page-inner-dark .collection-intro {
    padding: 150px 0 58px;
    background:
        radial-gradient(circle at 78% 20%, rgba(194, 168, 122, 0.12), transparent 28%),
        linear-gradient(180deg, #050505 0%, var(--h-tone-1) 100%);
    border-bottom: 1px solid var(--h-line-soft);
}

.page-inner-dark .collection-eyebrow {
    color: var(--h-accent);
}

.page-inner-dark .collection-intro h1,
.page-inner-dark .section-title,
.page-inner-dark .contact-form-wrap h2,
.page-inner-dark .bio-text h2 {
    color: var(--h-text);
}

.page-inner-dark .collection-lead,
.page-inner-dark .section-subtitle,
.page-inner-dark .bio-body p,
.page-inner-dark .credential-item p,
.page-inner-dark .award-item p,
.page-inner-dark .contact-card p,
.page-inner-dark .contact-form-wrap > p,
.page-inner-dark .exp-text,
.page-inner-dark .exp-detail,
.page-inner-dark .collection-count {
    color: var(--h-muted);
}

.page-inner-dark .bio-body strong {
    color: var(--h-text);
    font-weight: 600;
}

.page-inner-dark .collection-section,
.page-inner-dark .section-white,
.page-inner-dark .sobre-bio,
.page-inner-dark .sobre-exhibitions,
.page-inner-dark .sobre-awards {
    background: var(--h-tone-2);
    border-top: 1px solid var(--h-line-soft);
}

.page-inner-dark .sobre-credentials {
    background: var(--h-tone-3);
    border-top: 1px solid var(--h-line-soft);
    border-bottom: 1px solid var(--h-line-soft);
}

.page-inner-dark .credential-item,
.page-inner-dark .award-item,
.page-inner-dark .contact-card,
.page-inner-dark .contact-form-wrap,
.page-inner-dark .collection-empty {
    background: rgba(255, 255, 255, 0.045);
    border-color: var(--h-line);
    color: var(--h-text);
}

.page-inner-dark .credential-icon,
.page-inner-dark .award-logo,
.page-inner-dark .timeline-year {
    color: var(--h-accent);
}

.page-inner-dark .timeline::before,
.page-inner-dark .timeline-content {
    border-color: var(--h-line);
}

.page-inner-dark .timeline-content h4,
.page-inner-dark .award-item h4,
.page-inner-dark .credential-item h3,
.page-inner-dark .contact-card h3 {
    color: var(--h-text);
}

.page-inner-dark .timeline-content p,
.page-inner-dark .bio-tagline {
    color: var(--h-muted);
}

.page-inner-dark .bio-portrait img {
    filter: grayscale(18%) brightness(0.92);
}

/* Artigos ---------------------------------------------------- */
.articles-page {
    background:
        radial-gradient(circle at 78% 18%, rgba(194, 168, 122, 0.12), transparent 30%),
        linear-gradient(180deg, #050505 0%, var(--h-tone-1) 42%, var(--h-tone-3) 100%);
    color: var(--h-text);
}

.articles-wrap {
    width: calc(100% - 80px);
    max-width: var(--h-wrap);
    margin: 0 auto;
}

.articles-hero {
    padding: 170px 0 92px;
    border-bottom: 1px solid var(--h-line-soft);
}

.articles-hero h1 {
    max-width: 900px;
    margin: 18px 0 24px;
    font-family: var(--font-serif);
    font-size: clamp(68px, 12vw, 150px);
    font-weight: 400;
    line-height: 0.92;
    color: var(--h-text);
}

.articles-hero p:not(.dk-eyebrow) {
    max-width: 660px;
    color: var(--h-muted);
    font-size: 18px;
    line-height: 1.8;
}

.articles-index {
    padding: 78px 0 120px;
}

.articles-index__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
    gap: 42px;
    align-items: end;
    margin-bottom: 42px;
    padding-bottom: 30px;
    border-bottom: 1px solid var(--h-line);
}

.articles-index__head h2 {
    margin-top: 12px;
    font-family: var(--font-serif);
    font-size: clamp(34px, 5vw, 64px);
    font-weight: 400;
    line-height: 1.04;
    color: var(--h-text);
}

.articles-index__head p {
    color: var(--h-muted);
    line-height: 1.75;
}

.articles-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.article-card {
    display: grid;
    grid-template-rows: auto auto 1fr auto;
    gap: 18px;
    min-height: 360px;
    padding: 30px;
    border: 1px solid var(--h-line);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.025)),
        rgba(7, 7, 7, 0.72);
    color: var(--h-text);
    text-decoration: none;
    transition: transform 0.24s ease, border-color 0.24s ease, background 0.24s ease;
}

.article-card:hover {
    transform: translateY(-4px);
    border-color: rgba(194, 168, 122, 0.48);
    background:
        linear-gradient(145deg, rgba(194, 168, 122, 0.11), rgba(255, 255, 255, 0.035)),
        rgba(9, 9, 9, 0.9);
}

.article-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    color: var(--h-accent);
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.article-card__pdf {
    padding: 3px 9px;
    border: 1px solid var(--h-accent);
    color: var(--h-accent);
}

.article-pdf-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

.article-pdf-actions--aside {
    margin-top: 18px;
}

.article-pdf-actions--aside .dk-btn {
    width: 100%;
}

.article-reading__aside {
    scroll-margin-top: 120px;
}

.article-pdf-gate {
    display: grid;
    gap: 12px;
    margin-top: 18px;
}

.article-pdf-gate input[type="text"],
.article-pdf-gate input[type="email"] {
    width: 100%;
    padding: 13px 14px;
    background: transparent;
    border: 1px solid var(--h-line);
    color: var(--h-text);
    font-family: var(--font-sans);
    font-size: 13px;
}

.article-pdf-gate input[type="text"]::placeholder,
.article-pdf-gate input[type="email"]::placeholder {
    color: var(--h-faint);
}

.article-pdf-gate input[type="text"]:focus,
.article-pdf-gate input[type="email"]:focus {
    outline: none;
    border-color: var(--h-accent);
}

.article-pdf-consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 12px;
    line-height: 1.6;
    color: var(--h-muted);
    cursor: pointer;
}

.article-pdf-consent input {
    margin-top: 3px;
    accent-color: var(--h-accent);
}

.article-pdf-privacy {
    font-size: 11px;
    line-height: 1.6;
    color: var(--h-faint);
}

.article-pdf-message {
    padding: 10px 14px;
    border: 1px solid var(--h-line);
    font-size: 13px;
    color: var(--h-text);
}

.article-pdf-message--success {
    border-color: rgba(110, 190, 130, 0.5);
}

.article-pdf-message--error {
    border-color: rgba(220, 120, 110, 0.55);
}

.article-card h3 {
    font-family: var(--font-serif);
    font-size: clamp(30px, 3.2vw, 46px);
    font-weight: 400;
    line-height: 1.08;
    color: var(--h-text);
}

.article-card p {
    color: var(--h-muted);
    line-height: 1.75;
}

.article-card__arrow {
    align-self: end;
    color: var(--h-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.articles-list--compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.article-detail-page {
    background:
        radial-gradient(circle at 82% 16%, rgba(194, 168, 122, 0.12), transparent 28%),
        linear-gradient(180deg, #030303 0%, var(--h-tone-1) 50%, var(--h-tone-3) 100%);
    color: var(--h-text);
}

.article-detail-hero {
    position: relative;
    min-height: 82vh;
    display: grid;
    align-items: end;
    overflow: hidden;
}

.article-detail-hero__image {
    position: absolute;
    inset: 0;
}

.article-detail-hero__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(20%) brightness(0.72);
}

.article-detail-hero__veil {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(0, 0, 0, 0.82), rgba(0, 0, 0, 0.3) 62%, rgba(0, 0, 0, 0.58)),
        linear-gradient(0deg, rgba(0, 0, 0, 0.88), transparent 54%);
}

.article-detail-hero__content {
    position: relative;
    z-index: 1;
    width: calc(100% - 80px);
    max-width: var(--h-wrap);
    margin: 0 auto;
    padding: 170px 0 82px;
}

.article-back-link {
    display: inline-flex;
    margin-bottom: 34px;
    color: var(--h-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-decoration: none;
    text-transform: uppercase;
}

.article-detail-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    color: var(--h-accent);
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.article-detail-hero h1 {
    max-width: 980px;
    margin: 20px 0 24px;
    font-family: var(--font-serif);
    font-size: clamp(54px, 9vw, 118px);
    font-weight: 400;
    line-height: 0.96;
    color: var(--h-text);
}

.article-detail-hero p {
    max-width: 680px;
    color: rgba(245, 241, 234, 0.78);
    font-size: 19px;
    line-height: 1.75;
}

.article-reading {
    width: calc(100% - 80px);
    max-width: var(--h-wrap);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(220px, 0.28fr) minmax(0, 0.72fr);
    gap: 72px;
    padding: 96px 0 110px;
}

.article-reading__aside {
    position: sticky;
    top: 120px;
    align-self: start;
    color: var(--h-muted);
    line-height: 1.7;
}

.article-body {
    max-width: 820px;
}

.article-body p,
.article-body li {
    margin: 0 0 34px;
    color: rgba(245, 241, 234, 0.78);
    font-family: var(--font-sans);
    font-size: 20px;
    font-weight: 300;
    line-height: 1.7;
}

/* Elementos vindos do editor de texto ------------------------- */
.article-body h2,
.article-body h3,
.article-body h4 {
    margin: 56px 0 20px;
    color: var(--h-text);
    font-family: var(--font-serif);
    font-weight: 400;
    line-height: 1.25;
}

.article-body h2 {
    font-size: 34px;
}

.article-body h3 {
    font-size: 26px;
}

.article-body h4 {
    font-size: 21px;
    font-family: var(--font-sans);
    letter-spacing: 0.02em;
}

.article-body > :first-child {
    margin-top: 0;
}

.article-body strong,
.article-body b {
    color: var(--h-text);
    font-weight: 500;
}

.article-body a {
    color: var(--h-accent);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.article-body a:hover {
    color: var(--h-text);
}

.article-body ul,
.article-body ol {
    margin: 0 0 34px;
    padding-left: 24px;
}

/* O reset global zera o marcador das listas; aqui ele precisa voltar. */
.article-body ul {
    list-style: disc;
}

.article-body ol {
    list-style: decimal;
}

.article-body li::marker {
    color: var(--h-accent);
}

.article-body li {
    margin-bottom: 12px;
}

.article-body blockquote {
    margin: 44px 0;
    padding: 4px 0 4px 28px;
    border-left: 2px solid var(--h-accent);
}

.article-body blockquote p {
    margin-bottom: 16px;
    color: var(--h-text);
    font-family: var(--font-serif);
    font-size: 24px;
    font-style: italic;
    line-height: 1.5;
}

.article-body blockquote p:last-child {
    margin-bottom: 0;
}

.article-body figure {
    margin: 44px 0;
}

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

.article-body figcaption {
    margin-top: 12px;
    color: var(--h-muted);
    font-size: 14px;
    line-height: 1.6;
}

.article-body hr {
    margin: 56px 0;
    border: 0;
    border-top: 1px solid var(--h-line);
}

/* Tabela larga rola sozinha em vez de esticar a página. */
.article-body figure.table {
    overflow-x: auto;
}

.article-body table {
    width: 100%;
    border-collapse: collapse;
    color: rgba(245, 241, 234, 0.78);
    font-size: 16px;
}

.article-body th,
.article-body td {
    padding: 12px 14px;
    border: 1px solid var(--h-line);
    text-align: left;
}

.article-body th {
    color: var(--h-text);
    font-weight: 500;
}

.article-gallery {
    padding: 0 0 110px;
}

.article-gallery__head {
    max-width: 760px;
    margin-bottom: 34px;
    padding-top: 52px;
    border-top: 1px solid var(--h-line-soft);
}

.article-gallery__head h2 {
    margin-top: 12px;
    font-family: var(--font-serif);
    font-size: clamp(36px, 5vw, 72px);
    font-weight: 400;
    line-height: 1;
    color: var(--h-text);
}

.article-gallery__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.65fr);
    gap: 18px;
}

.article-gallery__item {
    position: relative;
    height: 300px;
    min-height: 300px;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--h-line);
    background: rgba(255, 255, 255, 0.04);
}

.article-gallery__item--feature {
    grid-row: span 2;
    height: 620px;
    min-height: 620px;
}

.article-gallery__item img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    filter: grayscale(12%) brightness(0.86);
    transition: transform 0.5s ease, filter 0.5s ease;
}

.article-gallery__item:hover img {
    transform: scale(1.035);
    filter: grayscale(0%) brightness(0.94);
}

.article-gallery__item figcaption {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    color: rgba(245, 241, 234, 0.84);
    font-size: 12px;
    letter-spacing: 0.04em;
    line-height: 1.5;
    text-shadow: 0 1px 18px rgba(0, 0, 0, 0.88);
}

.article-related {
    padding: 88px 0 120px;
    border-top: 1px solid var(--h-line-soft);
}

.article-related__head {
    margin-bottom: 34px;
}

.article-related__head h2 {
    margin-top: 12px;
    font-family: var(--font-serif);
    font-size: clamp(36px, 5vw, 68px);
    font-weight: 400;
    line-height: 1;
    color: var(--h-text);
}

/* Forms ------------------------------------------------------ */
.page-inner-dark .contact-form label {
    color: var(--h-muted);
}

.page-inner-dark .contact-form input,
.page-inner-dark .contact-form select,
.page-inner-dark .contact-form textarea,
.page-inner-dark .newsletter-form input {
    background: rgba(255, 255, 255, 0.045);
    border-color: var(--h-line);
    color: var(--h-text);
}

.page-inner-dark .contact-form input::placeholder,
.page-inner-dark .contact-form textarea::placeholder {
    color: var(--h-faint);
}

.page-inner-dark .contact-form input:focus,
.page-inner-dark .contact-form select:focus,
.page-inner-dark .contact-form textarea:focus {
    outline: none;
    border-color: var(--h-accent);
}

.page-inner-dark .btn-dark,
.page-inner-dark .btn-white {
    background: var(--h-text);
    color: #000;
}

.page-inner-dark .btn-outline-dark {
    border-color: rgba(255, 255, 255, 0.38);
    color: var(--h-text);
}

.page-inner-dark .btn-outline-dark:hover {
    background: var(--h-text);
    color: #000;
}

/* Dark footer fallback -------------------------------------- */
.page-inner-dark .footer {
    background: #000;
    border-top: 1px solid var(--h-line-soft);
}

.page-inner-dark .footer-about h4,
.page-inner-dark .footer-nav h5,
.page-inner-dark .footer-newsletter h5 {
    color: var(--h-text);
}

.page-inner-dark .footer-about p,
.page-inner-dark .footer-nav a,
.page-inner-dark .footer-newsletter p {
    color: var(--h-muted);
}

.page-inner-dark .footer-nav a:hover {
    color: var(--h-accent);
}

/* Fine Art hero --------------------------------------------- */
.fa-hero {
    --fa-hero-image: url("https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?w=1800&q=85");
    position: relative;
    min-height: 92vh;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: #000;
}

.fa-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--fa-hero-image) center/cover no-repeat;
    filter: grayscale(30%) brightness(0.68) contrast(1.08);
    transform: scale(1.04);
}

.fa-hero__veil {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.22) 48%, rgba(0, 0, 0, 0.58) 100%),
        linear-gradient(180deg, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.62) 100%);
}

.fa-hero__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: var(--h-wrap);
    margin: 0 auto;
    padding: 150px 40px 82px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: end;
}

.fa-hero__copy h1 {
    max-width: 820px;
    margin: 18px 0 24px;
    font-family: var(--font-serif);
    font-size: clamp(58px, 8vw, 118px);
    font-weight: 400;
    line-height: 0.95;
    color: #fff;
}

.fa-hero__copy p {
    max-width: 560px;
    color: rgba(243, 240, 234, 0.84);
    font-size: 17px;
    font-weight: 300;
    line-height: 1.78;
}

.fa-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 34px;
}

/* Fine Art collections landing ------------------------------ */
.fa-series {
    padding: 90px 0 120px;
}

.fa-series > .container {
    max-width: min(1520px, calc(100vw - 48px));
}

.fa-series__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 12px 28px;
    margin-bottom: 46px;
}

.fa-series__head h2 {
    font-family: var(--font-serif);
    font-size: clamp(34px, 4vw, 52px);
    font-weight: 400;
    color: #fff;
}

.fa-series__all {
    margin-left: auto;
    color: var(--h-muted);
    font-size: 13px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fa-series__all:hover {
    color: var(--h-accent);
}

.fa-series__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px;
}

.fa-series__card {
    display: block;
    color: var(--h-text);
}

.fa-series__image {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #0a0a0a;
    border: 6px solid #f3f1eb;
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.2);
}

.fa-series__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(12%) contrast(1.04);
    transition: transform 0.7s ease, filter 0.7s ease;
}

.fa-series__card:hover .fa-series__image img {
    transform: scale(1.05);
    filter: grayscale(0) contrast(1.04);
}

.fa-series__info {
    padding: 18px 2px 0;
}

.fa-series__info h3 {
    display: inline;
    margin-right: 10px;
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 400;
    color: #fff;
}

.fa-series__info span {
    color: var(--h-muted);
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    white-space: nowrap;
}

.fa-series__info p {
    margin-top: 10px;
    max-width: 420px;
    color: var(--h-muted);
    font-size: 14px;
    font-weight: 300;
    line-height: 1.7;
}

/* Fine Art collection header -------------------------------- */
.fa-colhead {
    --fa-colhead-image: none;
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: 52vh;
    overflow: hidden;
    background: #000;
}

.fa-colhead::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--fa-colhead-image) center/cover no-repeat;
    /* A capa aparece: nada de escurecer a imagem inteira. Quem garante a leitura
       do título é o véu abaixo, concentrado no canto onde o texto fica. */
    filter: grayscale(12%) contrast(1.04);
    transform: scale(1.04);
}

.fa-colhead__veil {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(
            98% 140% at 2% 105%,
            rgba(0, 0, 0, 0.95) 0%,
            rgba(0, 0, 0, 0.88) 26%,
            rgba(0, 0, 0, 0.6) 48%,
            rgba(0, 0, 0, 0) 78%
        );
}

.fa-colhead__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: var(--h-wrap);
    margin: 0 auto;
    padding: 150px 40px 62px;
    /* Capa é escolhida no admin e pode ser clara: a sombra segura a leitura sem
       precisar escurecer a imagem inteira. */
    text-shadow: 0 1px 14px rgba(0, 0, 0, 0.6);
}

.fa-colhead__crumbs {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
    color: var(--h-muted);
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.fa-colhead__crumbs a {
    color: var(--h-accent);
}

.fa-colhead__inner h1 {
    font-family: var(--font-serif);
    font-size: clamp(44px, 6vw, 88px);
    font-weight: 400;
    line-height: 1;
    color: #fff;
}

.fa-colhead__desc {
    max-width: 620px;
    margin-top: 20px;
    color: rgba(243, 240, 234, 0.84);
    font-size: 16px;
    font-weight: 300;
    line-height: 1.75;
}

.fa-colhead__count {
    margin-top: 18px;
    color: var(--h-muted);
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.fa-colhead__footlinks {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 14px;
    margin-top: 56px;
    padding-top: 26px;
    border-top: 1px solid var(--h-line);
}

.fa-colhead__footlinks a {
    color: var(--h-muted);
    font-size: 13px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fa-colhead__footlinks a:hover {
    color: var(--h-accent);
}

/* Fine Art catalog ------------------------------------------ */
.page-fineart-dark .collection-section {
    padding: 90px 0 120px;
}

.page-fineart-dark .collection-section > .container {
    max-width: min(1520px, calc(100vw - 48px));
}

.page-fineart-dark .collection-layout {
    display: block;
}

.page-fineart-dark .collection-filters {
    position: static;
    top: auto;
    max-width: none;
    margin-bottom: 34px;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid var(--h-line);
    padding: 20px;
}

.page-fineart-dark .filter-form {
    display: grid;
    grid-template-columns: minmax(130px, 0.7fr) repeat(4, minmax(140px, 1fr)) auto;
    gap: 18px;
    align-items: start;
    background: transparent;
    padding: 0;
    border-radius: 0;
}

.page-fineart-dark .filter-header {
    display: grid;
    gap: 10px;
    align-items: start;
    padding: 0;
}

.page-fineart-dark .filter-group,
.page-fineart-dark .collection-toolbar {
    border-color: var(--h-line);
}

.page-fineart-dark .filter-group {
    min-width: 0;
    padding: 0 0 0 18px;
    border-top: 0;
    border-left: 1px solid var(--h-line);
}

.page-fineart-dark .filter-group summary {
    min-height: 28px;
}

.page-fineart-dark .filter-options {
    gap: 7px;
}

.page-fineart-dark .filter-check {
    font-size: 12px;
}

.page-fineart-dark .filter-price-range {
    margin-bottom: 10px;
}

.page-fineart-dark .price-slider {
    margin-bottom: 0;
}

.page-fineart-dark .filter-apply {
    width: auto;
    min-width: 142px;
    margin-top: 0;
    align-self: end;
    padding-inline: 18px;
}

.page-fineart-dark .filter-header h2,
.page-fineart-dark .filter-group summary,
.page-fineart-dark .collection-sort,
.page-fineart-dark .collection-sort label {
    color: var(--h-text);
}

.page-fineart-dark .filter-clear,
.page-fineart-dark .filter-check,
.page-fineart-dark .filter-price-range,
.page-fineart-dark .price-slider-labels,
.page-fineart-dark .price-slider-bounds,
.page-fineart-dark .collection-tag,
.page-fineart-dark .collection-artist {
    color: var(--h-muted);
}

.page-fineart-dark .price-slider-labels strong,
.page-fineart-dark .collection-price strong {
    color: var(--h-text);
}

.page-fineart-dark .collection-sort select {
    background: rgba(255, 255, 255, 0.045);
    border-color: var(--h-line);
    color: var(--h-text);
}

.page-fineart-dark .collection-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(28px, 3vw, 46px);
}

.page-fineart-dark .collection-card {
    position: relative;
}

.page-fineart-dark .collection-image {
    aspect-ratio: 16 / 11;
    margin: 0;
    background: #0b0c0e;
    border: 6px solid #f3f1eb;
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.2);
}

.page-fineart-dark .collection-image-vertical {
    aspect-ratio: 4 / 5;
}

.page-fineart-dark .collection-image img {
    filter: grayscale(28%) brightness(0.88);
}

.page-fineart-dark .collection-card:hover .collection-image img {
    filter: grayscale(0%) brightness(1);
}

.page-fineart-dark .collection-info {
    padding: 20px 2px 4px;
}

.page-fineart-dark .collection-info h3 {
    color: var(--h-text);
    font-size: clamp(24px, 2.8vw, 38px);
}

.page-fineart-dark .theme-pill {
    background: transparent;
    border-color: var(--h-line);
    color: var(--h-muted);
}

.page-fineart-dark a.theme-pill:hover {
    background: var(--h-accent);
    color: #000;
    border-color: var(--h-accent);
}

/* Obra em várias coleções: marca por qual delas o visitante está navegando. */
.page-fineart-dark .theme-pill--current {
    border-color: var(--h-accent);
    color: var(--h-text);
}

/* Fine Art detail ------------------------------------------- */
.page-fineart-detail-dark .product-page {
    background: linear-gradient(180deg, #050505 0%, var(--h-tone-2) 100%);
    /* O tema claro reserva 110px no topo para a navbar; aqui quem reserva é o
       próprio palco, que precisa da altura da janela inteira para a obra caber. */
    padding-top: 0;
}

.page-fineart-detail-dark {
    overflow-x: hidden;
}

.page-fineart-detail-dark .product-page > .container {
    max-width: none;
    padding: 0;
}

.page-fineart-detail-dark .alerts,
.page-fineart-detail-dark .product-editorial,
.page-fineart-detail-dark .product-layout,
.page-fineart-detail-dark .product-related {
    width: calc(100% - 80px);
    max-width: var(--h-wrap);
    margin-left: auto;
    margin-right: auto;
}

/* Palco da obra: imagem em tela (quase) cheia, sem corte ----- */
.fa-work-stage {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    /* Altura definida, e não apenas mínima: o max-height:100% da imagem só tem
       contra o que resolver se a linha do meio tiver altura real. Com
       min-height a linha crescia até caber a foto, e a obra em retrato passava
       da janela. */
    height: 100vh;
    height: 100svh;
    min-height: 560px;
    padding: 88px clamp(20px, 4vw, 56px) 0;
    background: #050505;
}

.fa-work-stage__crumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 16px 0 14px;
    color: var(--h-muted);
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.fa-work-stage__crumbs a {
    color: var(--h-muted);
}

.fa-work-stage__crumbs a:hover {
    color: var(--h-accent);
}

.fa-work-stage__crumbs span:last-child {
    color: var(--h-text);
}

/* Palco da obra: mosaico da coleção à esquerda, imagem em destaque à direita. */
.fa-work-stage__main {
    display: grid;
    min-height: 0;
}

.fa-work-stage__main--with-mosaic {
    grid-template-columns: clamp(180px, 20vw, 280px) minmax(0, 1fr);
    gap: clamp(20px, 3vw, 48px);
}

.fa-mosaic {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 0;
    padding-top: 4px;
}

.fa-mosaic__title {
    margin: 0;
    color: var(--h-muted);
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

/* Duas colunas de miniaturas inteiras: a proporção de cada obra é preservada,
   então as linhas do trilho têm alturas diferentes — daí o align-items: start. */
.fa-mosaic__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
    overflow-y: auto;
    min-height: 0;
    /* Coleção longa não cabe na altura da janela e o trilho precisa rolar. A
       barra nativa é clara e pesada ao lado das fotos; some daqui e quem avisa
       que há mais obras é o esmaecido nas pontas, com as setas logo abaixo. */
    scrollbar-width: none;
    -ms-overflow-style: none;
    overscroll-behavior: contain;
    mask-image: linear-gradient(
        to bottom,
        transparent 0,
        #000 22px,
        #000 calc(100% - 22px),
        transparent 100%
    );
}

.fa-mosaic__grid::-webkit-scrollbar {
    width: 0;
    height: 0;
}

.fa-mosaic__item {
    display: block;
    overflow: hidden;
    background: #111;
}

.fa-mosaic__item img {
    width: 100%;
    height: auto;
    display: block;
    opacity: 0.78;
    transition: opacity 0.2s ease, transform 0.4s ease;
}

.fa-mosaic__item:hover img,
.fa-mosaic__item:focus-visible img {
    opacity: 1;
    transform: scale(1.06);
}

/* A obra em cena precisa se localizar no trilho: fica opaca e emoldurada. */
.fa-mosaic__item--current {
    outline: 1px solid var(--h-accent);
    outline-offset: -1px;
}

.fa-mosaic__item--current img {
    opacity: 1;
}

.fa-mosaic__about {
    color: var(--h-muted);
    font-size: 12px;
    line-height: 1.6;
}

.fa-mosaic__about summary {
    cursor: pointer;
    letter-spacing: 0.04em;
}

.fa-mosaic__about summary:hover {
    color: var(--h-accent);
}

.fa-mosaic__about p {
    margin: 8px 0 0;
}

.fa-mosaic__nav {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--h-muted);
    font-size: 12px;
    letter-spacing: 0.08em;
}

.fa-mosaic__step {
    color: var(--h-text);
    font-size: 15px;
    line-height: 1;
}

.fa-mosaic__step:hover {
    color: var(--h-accent);
}

.fa-mosaic__step--off {
    color: var(--h-line);
}

.fa-mosaic__count {
    margin-left: auto;
}

.fa-mosaic__more {
    color: var(--h-muted);
    font-size: 12px;
    letter-spacing: 0.04em;
}

.fa-mosaic__more:hover {
    color: var(--h-accent);
}

.fa-work-stage__figure {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    margin: 0;
}

.fa-work-stage__figure img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    border: 9px solid #fdfdfb;
    box-shadow: 0 32px 90px rgba(0, 0, 0, 0.6);
}

.fa-work-stage__bar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px 40px;
    padding: 26px 0 30px;
}

.fa-work-stage__id h1 {
    margin: 8px 0 6px;
    font-family: var(--font-serif);
    font-size: clamp(30px, 3.6vw, 52px);
    font-weight: 400;
    line-height: 1.02;
    color: #fff;
}

.fa-work-stage__id .product-artist {
    margin: 0;
    color: var(--h-muted);
}

.fa-work-stage__cta {
    display: grid;
    gap: 12px;
    justify-items: end;
    text-align: right;
}

.fa-work-stage__cta p {
    color: var(--h-muted);
    font-size: 13px;
}

/* Informações da obra: abaixo do palco, com menos destaque --- */
.product-editorial {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 38px clamp(48px, 7vw, 110px);
    padding: clamp(56px, 8vh, 96px) 0 clamp(48px, 7vh, 80px);
    border-top: 1px solid var(--h-line-soft);
}

.product-editorial .product-themes {
    grid-column: 1 / -1;
    margin: 0;
}

.page-fineart-detail-dark .product-layout {
    grid-template-columns: minmax(0, 1fr) minmax(380px, 480px);
    gap: clamp(40px, 6vw, 96px);
    padding: 0 0 clamp(40px, 6vh, 72px);
    align-items: start;
}

.product-editorial .product-story-block h2 {
    margin-bottom: 14px;
    font-family: var(--font-serif);
    font-size: clamp(24px, 2.6vw, 34px);
    font-weight: 400;
    color: var(--h-text);
}

.product-editorial .product-story-block p {
    max-width: 620px;
    color: var(--h-muted);
    font-size: 15px;
    font-weight: 300;
    line-height: 1.85;
}

.page-fineart-detail-dark .product-summary {
    top: 120px;
    padding: clamp(26px, 3vw, 38px);
    border: 1px solid var(--h-line);
    background: rgba(255, 255, 255, 0.02);
    color: var(--h-text);
}

.product-summary__title {
    margin: 4px 0 18px;
    font-family: var(--font-serif);
    font-size: clamp(24px, 2.6vw, 32px);
    font-weight: 400;
    line-height: 1.1;
    color: #fff;
}

.page-fineart-detail-dark .product-summary h1 {
    color: #fff;
}

.page-fineart-detail-dark .product-type,
.page-fineart-detail-dark .product-artist,
.page-fineart-detail-dark .chip-group legend,
.page-fineart-detail-dark .product-price-label,
.page-fineart-detail-dark .product-price-installments,
.page-fineart-detail-dark .product-stock,
.page-fineart-detail-dark .product-assurances li,
.page-fineart-detail-dark .product-accordions details > div {
    color: var(--h-muted);
}

.page-fineart-detail-dark .chip {
    background: rgba(255, 255, 255, 0.045);
    border-color: var(--h-line);
    color: var(--h-text);
}

.page-fineart-detail-dark .chip-active {
    background: var(--h-text);
    border-color: var(--h-text);
    color: #000;
}

.page-fineart-detail-dark .product-price-block,
.page-fineart-detail-dark .product-assurances,
.page-fineart-detail-dark .product-accordions,
.page-fineart-detail-dark .product-accordions details,
.page-fineart-detail-dark .product-story,
.page-fineart-detail-dark .product-related {
    border-color: var(--h-line);
}

.page-fineart-detail-dark .product-price,
.page-fineart-detail-dark .product-story h2,
.page-fineart-detail-dark .product-related-head h2,
.page-fineart-detail-dark .collection-info h3 {
    color: var(--h-text);
}

.page-fineart-detail-dark .product-story p,
.page-fineart-detail-dark .product-related-head a {
    color: var(--h-muted);
}

.page-fineart-detail-dark .collection-grid-related {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1200px) {
    .page-fineart-detail-dark .collection-grid-related {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.fineart-inline-gallery {
    padding: clamp(26px, 3.6vw, 54px);
    border-top: 1px solid var(--h-line);
    background:
        radial-gradient(circle at 18% 0%, rgba(194, 168, 122, 0.11), transparent 30%),
        #0b0c0f;
}

.fineart-inline-gallery__head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}

.fineart-inline-gallery__head h2 {
    font-family: var(--font-serif);
    font-size: clamp(30px, 4vw, 54px);
    font-weight: 400;
    line-height: 1;
    color: var(--h-text);
}

.fineart-inline-gallery__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.fineart-inline-gallery--column {
    padding: clamp(24px, 3vw, 40px);
    border: 1px solid var(--h-line);
    background: #0b0c0f;
}

.fineart-inline-gallery--column .fineart-inline-gallery__head {
    margin-bottom: 24px;
}

.fineart-inline-gallery--column .fineart-inline-gallery__head h2 {
    font-size: clamp(24px, 2.6vw, 34px);
}

.fineart-inline-card {
    display: grid;
    min-width: 0;
    color: inherit;
    background: #121319;
    transition: border-color 0.25s ease, transform 0.25s ease;
}

.fineart-inline-card:hover {
    opacity: 1;
    border-color: rgba(255, 255, 255, 0.28);
    transform: translateY(-2px);
}

.fineart-inline-card--living {
    grid-column: 1 / -1;
}

.fineart-inline-card .fineart-room__scene,
.fineart-inline-card .fineart-detail-mock {
    min-height: 250px;
}

.fineart-inline-card--living .fineart-room__scene {
    min-height: 360px;
}

.fineart-inline-card .fineart-frame {
    padding: 5px;
    border-width: 6px;
}

.fineart-inline-card .fineart-gallery-wall {
    padding: 34px 24px 66px;
    gap: 12px;
}

.fineart-inline-card .fineart-context__copy {
    padding: 18px;
}

.fineart-inline-card .fineart-context__copy h3 {
    font-size: clamp(22px, 2.5vw, 32px);
}

.fineart-lightbox {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: none;
    place-items: center;
    padding: 96px 32px 32px;
}

.fineart-lightbox:target {
    display: grid;
}

.fineart-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.86);
    backdrop-filter: blur(8px);
}

.fineart-lightbox__panel {
    position: relative;
    z-index: 1;
    width: min(1120px, 100%);
    max-height: calc(100vh - 128px);
    overflow: auto;
    border: 1px solid var(--h-line);
    background: #111217;
    box-shadow: 0 36px 90px rgba(0, 0, 0, 0.56);
}

.fineart-lightbox__panel .fineart-room__scene,
.fineart-lightbox__panel .fineart-detail-mock {
    min-height: clamp(420px, 62vh, 680px);
}

.fineart-lightbox__close {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 3;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    background: rgba(0, 0, 0, 0.58);
    color: var(--h-text);
    font-size: 28px;
    line-height: 1;
}

.fineart-lightbox__close:hover {
    opacity: 1;
    background: var(--h-text);
    color: #000;
}

.fineart-lightbox__copy {
    padding: 24px 28px 28px;
    border-top: 1px solid var(--h-line);
}

.fineart-lightbox__copy h3 {
    font-family: var(--font-serif);
    font-size: clamp(30px, 4vw, 52px);
    font-weight: 400;
    color: var(--h-text);
}

.fineart-lightbox__copy p {
    max-width: 640px;
    margin-top: 8px;
    color: var(--h-muted);
    line-height: 1.7;
}

.fineart-context {
    --room-wall: #222126;
    --room-wall-dark: #121318;
    --room-floor: #0d0d10;
    margin-top: clamp(70px, 8vw, 120px);
    scroll-margin-top: 120px;
}

.fineart-context__head {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(280px, 0.55fr);
    gap: clamp(24px, 5vw, 76px);
    align-items: end;
    margin-bottom: 34px;
}

.fineart-context__head h2 {
    max-width: 820px;
    font-family: var(--font-serif);
    font-size: clamp(42px, 6vw, 86px);
    font-weight: 400;
    line-height: 1;
    color: var(--h-text);
}

.fineart-context__head p:not(.dk-eyebrow) {
    color: var(--h-muted);
    font-size: 15px;
    line-height: 1.8;
}

.fineart-context__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.65fr);
    gap: 24px;
}

.fineart-room {
    position: relative;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--h-line);
    background: #111217;
}

.fineart-room--living {
    grid-row: span 2;
}

.fineart-room__scene {
    position: relative;
    min-height: 520px;
    overflow: hidden;
}

.fineart-room__scene--living {
    background-image: url("../images/room_living.ea468cfab675.png");
    background-size: cover;
    background-position: center;
}

.fineart-room__scene--gallery {
    background-image: url("../images/room_gallery.2f5b52a13be7.png");
    background-size: cover;
    background-position: center;
}

.fineart-room--gallery .fineart-room__scene,
.fineart-room--detail .fineart-room__scene {
    min-height: 330px;
}

.fineart-frame {
    position: absolute;
    padding: 7px;
    /* padding = paspatur; border = moldura. As duas seguem a escolha do
       visitante, definida em .product-page. */
    /* A moldura é pintada na caixa da borda e o paspatur na caixa do padding,
       em duas camadas do mesmo background. Com border-image a fatia de 1px
       amostrava um pedaço mínimo do degradê e o esticava nos cantos, deixando
       falhas visíveis nas quinas. */
    border-style: solid;
    border-width: 8px;
    border-color: transparent;
    background-color: var(--fa-mat, #fff);
    background-image: linear-gradient(var(--fa-mat, #fff), var(--fa-mat, #fff)), var(--fa-frame-fill, linear-gradient(#101010, #101010));
    background-clip: padding-box, border-box;
    background-origin: padding-box, border-box;
    background-repeat: no-repeat;
    /* A linha interna separa moldura de paspatur, mas só a branca precisa dela:
       nas outras ela virava uma faixa escura extra e engrossava a moldura. */
    box-shadow: 0 28px 58px rgba(0, 0, 0, 0.45), var(--fa-frame-line, none);
}

/* Museum glass reflection effect */
.fineart-frame::after,
.fineart-detail-mock__image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0.05) 30%, transparent 50%, rgba(255, 255, 255, 0.03) 70%, transparent 100%);
    pointer-events: none;
    z-index: 2;
}

.fineart-frame img,
.fineart-detail-mock img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

/* Center dynamic frames relative to photos */
.fineart-room__scene--living .fineart-frame--hero {
    position: absolute;
    left: 60%;
    top: 35%;
    transform: translate(-50%, -50%);
    box-shadow: 0 32px 64px rgba(0, 0, 0, 0.65), 0 16px 24px rgba(0, 0, 0, 0.45);
}

.fineart-room__scene--living .fineart-frame--hero {
    width: min(38%, 360px);
    aspect-ratio: 16 / 10;
}
.fineart-context--vertical .fineart-room__scene--living .fineart-frame--hero {
    width: min(28%, 260px);
    aspect-ratio: 4 / 5;
}
.fineart-context--quadrado .fineart-room__scene--living .fineart-frame--hero {
    width: min(32%, 300px);
    aspect-ratio: 1 / 1;
}

.fineart-room__scene--gallery .fineart-frame--gallery {
    position: absolute;
    left: 50%;
    top: 40%;
    transform: translate(-50%, -50%);
    box-shadow: 0 40px 80px rgba(0, 0, 0, 0.7), 0 20px 30px rgba(0, 0, 0, 0.5);
}

.fineart-room__scene--gallery .fineart-frame--gallery {
    width: min(42%, 400px);
    aspect-ratio: 16 / 10;
}
.fineart-context--vertical .fineart-room__scene--gallery .fineart-frame--gallery {
    width: min(30%, 300px);
    aspect-ratio: 4 / 5;
}
.fineart-context--quadrado .fineart-room__scene--gallery .fineart-frame--gallery {
    width: min(35%, 350px);
    aspect-ratio: 1 / 1;
}

.fineart-detail-mock {
    position: relative;
    min-height: 330px;
    overflow: hidden;
    background: #15161b;
}

.fineart-detail-mock--textured {
    background-image: url("../images/detail_bg.b664e1b2a679.png");
    background-size: cover;
    background-position: center;
}

.fineart-detail-mock__image {
    position: absolute;
    left: 20%;
    top: 18%;
    width: 72%;
    height: 72%;
    padding: 9px 9px 13px;
    border-style: solid;
    border-width: 10px;
    border-color: transparent;
    background-color: var(--fa-mat, #fff);
    background-image: linear-gradient(var(--fa-mat, #fff), var(--fa-mat, #fff)), var(--fa-frame-fill, linear-gradient(#101010, #101010));
    background-clip: padding-box, border-box;
    background-origin: padding-box, border-box;
    background-repeat: no-repeat;
    box-shadow:
        -24px 24px 0 rgba(0, 0, 0, 0.4),
        0 36px 72px rgba(0, 0, 0, 0.7),
        var(--fa-frame-line, none);
}

.fineart-context__copy {
    display: grid;
    gap: 10px;
    padding: 24px;
    border-top: 1px solid var(--h-line);
}

.fineart-context__copy span {
    color: var(--h-accent);
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.fineart-context__copy h3 {
    font-family: var(--font-serif);
    font-size: clamp(26px, 3vw, 42px);
    font-weight: 400;
    color: var(--h-text);
}

.fineart-context__copy p {
    color: var(--h-muted);
    font-size: 14px;
    line-height: 1.7;
}

/* Educação --------------------------------------------------- */
.page-education-dark .exp-card {
    background: var(--h-panel);
    border: 1px solid var(--h-line);
}

.page-education-dark .exp-card:hover {
    border-color: rgba(255, 255, 255, 0.28);
}

.page-education-dark .exp-info h3,
.page-education-dark .exp-price {
    color: var(--h-text);
}

.page-education-dark .exp-image img {
    filter: grayscale(28%) brightness(0.9);
}

.page-education-dark .exp-card:hover .exp-image img {
    filter: grayscale(0%) brightness(1);
}

.page-education-dark .exp-type-tab {
    border-color: var(--h-line);
    color: var(--h-muted);
    background: rgba(255, 255, 255, 0.035);
}

.page-education-dark .exp-type-tab.active,
.page-education-dark .exp-type-tab:hover {
    background: var(--h-accent);
    color: #000;
    opacity: 1;
}

.page-education-detail-dark .exp-detail-page {
    padding: 128px 0 90px;
    background:
        radial-gradient(circle at 84% 8%, rgba(194, 168, 122, 0.12), transparent 30%),
        linear-gradient(180deg, #050505 0%, var(--h-tone-2) 54%, var(--h-tone-3) 100%);
    color: var(--h-text);
}

.page-education-detail-dark .product-breadcrumb {
    color: var(--h-muted);
}

.page-education-detail-dark .product-breadcrumb a {
    color: var(--h-muted);
}

.page-education-detail-dark .product-breadcrumb a:hover,
.page-education-detail-dark .product-breadcrumb span:last-child {
    color: var(--h-text);
}

.page-education-detail-dark .exp-detail-hero {
    gap: 0;
    margin: 34px 0 70px;
    border: 1px solid var(--h-line);
    background: #070708;
}

.page-education-detail-dark .exp-detail-hero-image {
    border-radius: 0;
    background: #0b0c0e;
}

.page-education-detail-dark .exp-detail-hero-image img {
    height: 100%;
    min-height: clamp(520px, 72vh, 780px);
    aspect-ratio: auto;
    filter: grayscale(24%) brightness(0.86);
}

.page-education-detail-dark .exp-detail-hero-info {
    justify-content: center;
    padding: clamp(42px, 6vw, 82px);
}

.page-education-detail-dark .exp-detail-hero-info h1 {
    max-width: 720px;
    font-size: clamp(44px, 6vw, 86px);
    line-height: 0.98;
    color: var(--h-text);
}

.page-education-detail-dark .exp-detail-lead,
.page-education-detail-dark .exp-spec,
.page-education-detail-dark .exp-detail-price-label,
.page-education-detail-dark .exp-installment,
.page-education-detail-dark .exp-itinerary p,
.page-education-detail-dark .exp-checklist li,
.page-education-detail-dark .exp-enrollment-header p,
.page-education-detail-dark .exp-enrollment-spots,
.page-education-detail-dark .exp-form-note {
    color: var(--h-muted);
}

.page-education-detail-dark .exp-detail-specs,
.page-education-detail-dark .exp-detail-price-block,
.page-education-detail-dark .exp-detail-section h2,
.page-education-detail-dark .exp-enrollment-section,
.page-education-detail-dark .product-related {
    border-color: var(--h-line);
}

.page-education-detail-dark .exp-spec svg,
.page-education-detail-dark .exp-checklist li::before,
.page-education-detail-dark .exp-enrollment-spots strong {
    color: var(--h-accent);
}

.page-education-detail-dark .exp-spec dt,
.page-education-detail-dark .exp-spec dd,
.page-education-detail-dark .exp-detail-price,
.page-education-detail-dark .exp-detail-section h2,
.page-education-detail-dark .exp-itinerary-day h4,
.page-education-detail-dark .exp-enrollment-header h2,
.page-education-detail-dark .exp-form-field label,
.page-education-detail-dark .product-related-head h2 {
    color: var(--h-text);
}

.page-education-detail-dark .exp-detail-body,
.page-education-detail-dark .exp-enrollment-inner {
    max-width: 980px;
}

.page-education-detail-dark .exp-detail-section {
    padding: clamp(24px, 4vw, 42px);
    border: 1px solid var(--h-line);
    background: rgba(255, 255, 255, 0.04);
}

.page-education-detail-dark .exp-detail-section h2 {
    padding-bottom: 16px;
}

.page-education-detail-dark .exp-itinerary-day h4 {
    background: rgba(255, 255, 255, 0.06);
    border-left-color: var(--h-accent);
}

.page-education-detail-dark .exp-enrollment-section {
    padding-top: 0;
    border-top: 0;
}

.page-education-detail-dark .exp-enrollment-inner {
    display: grid;
    grid-template-columns: minmax(0, 0.75fr) minmax(360px, 1fr);
    gap: clamp(28px, 5vw, 72px);
    padding: clamp(28px, 5vw, 56px);
    border: 1px solid var(--h-line);
    background: #111217;
}

.page-education-detail-dark .exp-form-field input,
.page-education-detail-dark .exp-form-field textarea {
    background: rgba(255, 255, 255, 0.045);
    border-color: var(--h-line);
    color: var(--h-text);
}

.page-education-detail-dark .exp-form-field input::placeholder,
.page-education-detail-dark .exp-form-field textarea::placeholder {
    color: var(--h-faint);
}

.page-education-detail-dark .exp-form-field input:focus,
.page-education-detail-dark .exp-form-field textarea:focus {
    border-color: var(--h-accent);
}

.page-education-detail-dark .exp-form-submit,
.page-education-detail-dark .exp-detail-cta,
.page-education-detail-dark .exp-footer .btn {
    background: var(--h-text);
    color: #000;
    border-color: var(--h-text);
}

.page-education-detail-dark .exp-form-submit:hover,
.page-education-detail-dark .exp-detail-cta:hover,
.page-education-detail-dark .exp-footer .btn:hover {
    background: var(--h-accent);
    border-color: var(--h-accent);
    opacity: 1;
}

.page-education-detail-dark .exp-closed-lg {
    color: var(--h-muted);
}

.page-education-detail-dark .product-related-head a {
    color: var(--h-muted);
}

.page-education-detail-dark .product-related-head a:hover {
    color: var(--h-accent);
}

/* Livro -> Fine Art bridge ---------------------------------- */
.book-fineart-bridge {
    width: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 32px;
    align-items: center;
    padding: 90px max(40px, calc((100vw - var(--h-wrap)) / 2));
    border-top: 1px solid var(--h-line);
    background: #0d0e12;
}

.book-fineart-bridge h2 {
    max-width: 760px;
    margin: 16px 0;
    font-family: var(--font-serif);
    font-size: clamp(34px, 5vw, 68px);
    font-weight: 400;
    line-height: 1.04;
    color: var(--h-text);
}

.book-fineart-bridge p:not(.books-eyebrow) {
    max-width: 560px;
    color: var(--h-muted);
    line-height: 1.8;
}

@media (max-width: 1080px) {
    .page-fineart-dark .collection-layout {
        grid-template-columns: 1fr;
    }

    .page-fineart-dark .collection-filters {
        position: static;
        max-width: none;
    }

    .page-fineart-dark .filter-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .page-fineart-dark .filter-header {
        grid-column: 1 / -1;
        display: flex;
        align-items: baseline;
        justify-content: space-between;
    }

    .page-fineart-dark .filter-apply {
        width: 100%;
    }

    .fineart-context__head {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .fineart-context__head p:not(.dk-eyebrow) {
        max-width: 640px;
    }

    .page-education-detail-dark .exp-detail-hero,
    .page-education-detail-dark .exp-enrollment-inner {
        grid-template-columns: 1fr;
    }

    .page-education-detail-dark .exp-detail-hero-image img {
        min-height: 52vh;
    }

    .articles-list {
        grid-template-columns: 1fr;
    }

    .articles-list--compact {
        grid-template-columns: 1fr;
    }

    .article-card {
        min-height: 280px;
    }

    .article-reading {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .article-reading__aside {
        position: static;
    }

    .article-gallery__grid {
        grid-template-columns: 1fr;
    }

    .article-gallery__item,
    .article-gallery__item--feature {
        height: 420px;
        min-height: 420px;
    }
}

@media (max-width: 960px) {
    .fa-series__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .page-fineart-detail-dark .product-layout {
        grid-template-columns: 1fr;
    }

    .page-fineart-detail-dark .product-summary {
        min-height: auto;
        max-width: none;
    }
}

@media (max-width: 768px) {
    .fa-hero {
        min-height: auto;
    }

    .fa-hero__inner {
        grid-template-columns: 1fr;
        padding: 128px 24px 58px;
    }

    .fa-hero__copy h1 {
        font-size: clamp(46px, 13vw, 76px);
    }

    .page-fineart-dark .collection-grid {
        grid-template-columns: 1fr;
    }

    .fa-series__grid {
        grid-template-columns: 1fr;
    }

    .fa-series > .container {
        max-width: none;
    }

    .fa-colhead {
        min-height: auto;
    }

    /* Aqui o texto ocupa a largura toda, então o escurecimento vem de baixo em
       faixa, e não do canto: o topo da imagem continua limpo. */
    .fa-colhead__veil {
        background: linear-gradient(
            180deg,
            rgba(0, 0, 0, 0) 6%,
            rgba(0, 0, 0, 0.5) 34%,
            rgba(0, 0, 0, 0.9) 100%
        );
    }

    .fa-colhead__inner {
        padding: 128px 24px 48px;
    }

    .page-fineart-dark .collection-section > .container {
        max-width: none;
    }

    .page-fineart-dark .collection-filters {
        padding: 18px;
    }

    .page-fineart-dark .filter-form {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .page-fineart-dark .filter-header {
        display: grid;
        gap: 8px;
    }

    .page-fineart-dark .filter-group {
        padding: 14px 0 0;
        border-left: 0;
        border-top: 1px solid var(--h-line);
    }

    .fa-work-stage {
        /* No celular a faixa de miniaturas fica sob a imagem; prender tudo na
           altura da janela deixaria a obra pequena demais. */
        height: auto;
        min-height: 88vh;
        padding-top: 76px;
    }

    /* Em telas estreitas o mosaico vira uma faixa horizontal sob a imagem. */
    .fa-work-stage__main--with-mosaic {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }

    .fa-mosaic {
        order: 2;
    }

    .fa-mosaic__grid {
        grid-auto-flow: column;
        grid-auto-columns: 96px;
        grid-template-columns: none;
        overflow-x: auto;
        overflow-y: hidden;
        padding-bottom: 4px;
        /* Aqui a faixa é horizontal: o esmaecido vai para as laterais. */
        mask-image: linear-gradient(
            to right,
            transparent 0,
            #000 16px,
            #000 calc(100% - 16px),
            transparent 100%
        );
    }

    .fa-work-stage__figure img {
        border-width: 5px;
    }

    .fa-work-stage__bar {
        padding-bottom: 24px;
    }

    .fa-work-stage__cta {
        justify-items: start;
        text-align: left;
    }

    .page-fineart-detail-dark .alerts,
    .page-fineart-detail-dark .product-editorial,
    .page-fineart-detail-dark .product-layout,
    .page-fineart-detail-dark .product-related {
        width: calc(100% - 48px);
    }

    .product-editorial {
        grid-template-columns: 1fr;
    }

    .fineart-inline-gallery {
        padding: 24px;
    }

    .fineart-inline-gallery__head,
    .fineart-inline-gallery__grid {
        grid-template-columns: 1fr;
    }

    .fineart-inline-gallery__head {
        display: grid;
        gap: 10px;
    }

    .fineart-inline-card--living {
        grid-column: auto;
    }

    .fineart-context__head,
    .fineart-context__grid {
        grid-template-columns: 1fr;
    }

    .fineart-room--living {
        grid-row: auto;
    }

    .fineart-room__scene,
    .fineart-room--gallery .fineart-room__scene,
    .fineart-detail-mock {
        min-height: 360px;
    }

    .fineart-frame {
        padding: 5px;
        border-width: 6px;
    }

    .fineart-frame--hero {
        top: 13%;
        width: 78%;
    }

    .fineart-context--vertical .fineart-frame--hero {
        width: 58%;
    }

    .fineart-gallery-wall {
        padding: 38px 22px 76px;
        gap: 12px;
    }

    .fineart-context__copy {
        padding: 20px;
    }

    .page-fineart-detail-dark .product-gallery > figure img {
        height: 58vh;
        min-height: 360px;
    }

    .page-fineart-detail-dark .product-summary {
        padding: 34px 24px 48px;
    }

    .page-education-detail-dark .exp-detail-page {
        padding: 112px 0 70px;
    }

    .page-education-detail-dark .exp-detail-hero {
        margin: 24px 0 48px;
    }

    .page-education-detail-dark .exp-detail-hero-info {
        padding: 30px 24px 38px;
    }

    .page-education-detail-dark .exp-detail-hero-info h1 {
        font-size: clamp(38px, 12vw, 60px);
    }

    .page-education-detail-dark .exp-detail-hero-image img {
        min-height: 360px;
    }

    .page-education-detail-dark .exp-detail-cols,
    .page-education-detail-dark .exp-form-row {
        grid-template-columns: 1fr;
    }

    .page-education-detail-dark .exp-detail-section,
    .page-education-detail-dark .exp-enrollment-inner {
        padding: 24px;
    }

    .articles-wrap {
        width: calc(100% - 48px);
    }

    .articles-hero {
        padding: 140px 0 68px;
    }

    .articles-index {
        padding: 58px 0 88px;
    }

    .articles-index__head,
    .article-card {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .article-card {
        min-height: 0;
        padding: 24px;
    }

    .article-detail-hero {
        min-height: 72vh;
    }

    .article-detail-hero__content,
    .article-reading {
        width: calc(100% - 48px);
    }

    .article-detail-hero__content {
        padding: 132px 0 58px;
    }

    .article-detail-hero p {
        font-size: 17px;
    }

    .article-reading {
        padding: 64px 0 74px;
    }

    .article-gallery {
        padding-bottom: 74px;
    }

    .article-gallery__head {
        grid-template-columns: 1fr;
        gap: 18px;
        padding-top: 38px;
    }

    .article-gallery__item,
    .article-gallery__item--feature {
        height: 280px;
        min-height: 280px;
    }

    .article-gallery__item figcaption {
        left: 14px;
        right: 14px;
        bottom: 14px;
    }

    .book-fineart-bridge {
        grid-template-columns: 1fr;
        padding: 70px 24px;
    }
}

/* ============================================================
   MATERIAIS & MONTAGENS
   ============================================================ */
.page-materiais-dark .mat-page {
    padding: 120px 0 0;
}

.mat-intro {
    max-width: 760px;
    margin: 28px 0 24px;
}

.mat-eyebrow {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--h-accent);
    margin-bottom: 18px;
}

.mat-intro h1 {
    font-family: var(--font-serif);
    font-size: clamp(40px, 6vw, 76px);
    font-weight: 400;
    line-height: 1.02;
    color: var(--h-text);
    margin-bottom: 22px;
}

.mat-lead {
    font-size: 17px;
    font-weight: 300;
    line-height: 1.7;
    color: var(--h-muted);
}

.mat-list {
    max-width: var(--h-wrap);
    margin: 60px auto 0;
    padding: 0 40px;
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.mat-item {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    align-items: stretch;
    gap: 0;
    border: 1px solid var(--h-line);
    background: var(--h-tone-1);
    overflow: hidden;
}

.mat-item--flip .mat-illustration {
    order: 2;
}

.mat-illustration {
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
    background:
        radial-gradient(120% 120% at 50% 0%, #24262d 0%, #16171c 70%);
    border-right: 1px solid var(--h-line);
}

.mat-item--flip .mat-illustration {
    border-right: 0;
    border-left: 1px solid var(--h-line);
}

.mat-illustration svg {
    width: 100%;
    height: auto;
    max-width: 460px;
}

.mat-content {
    padding: 48px clamp(28px, 4vw, 56px);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.mat-index {
    font-family: var(--font-serif);
    font-size: 15px;
    color: var(--h-faint);
    letter-spacing: 0.1em;
}

.mat-finish {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--h-accent);
    margin-top: 14px;
}

.mat-content h2 {
    font-family: var(--font-serif);
    font-size: clamp(28px, 3.4vw, 40px);
    font-weight: 400;
    line-height: 1.08;
    color: var(--h-text);
    margin: 8px 0 18px;
}

.mat-desc {
    font-size: 15.5px;
    font-weight: 300;
    line-height: 1.72;
    color: var(--h-muted);
}

.mat-desc em {
    color: var(--h-text);
    font-style: italic;
}

.mat-specs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 26px;
    margin-top: 30px;
    padding-top: 26px;
    border-top: 1px solid var(--h-line-soft);
}

.mat-spec h4 {
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--h-faint);
    margin-bottom: 9px;
}

.mat-spec p {
    font-size: 13.5px;
    font-weight: 300;
    line-height: 1.6;
    color: var(--h-muted);
}

.mat-cta {
    margin-top: 96px;
    padding: 86px 0 100px;
    border-top: 1px solid var(--h-line);
    background: var(--h-tone-3);
    text-align: center;
}

.mat-cta h2 {
    font-family: var(--font-serif);
    font-size: clamp(28px, 3.6vw, 44px);
    font-weight: 400;
    color: var(--h-text);
    margin-bottom: 14px;
}

.mat-cta p {
    font-size: 16px;
    font-weight: 300;
    color: var(--h-muted);
    margin-bottom: 30px;
}

@media (max-width: 900px) {
    .page-materiais-dark .mat-page { padding-top: 96px; }
    .mat-list { padding: 0 24px; }
    .mat-item,
    .mat-item--flip {
        grid-template-columns: 1fr;
    }
    .mat-item--flip .mat-illustration { order: 0; }
    .mat-illustration {
        border-right: 0;
        border-bottom: 1px solid var(--h-line);
        padding: 22px;
    }
    .mat-item--flip .mat-illustration {
        border-left: 0;
        border-bottom: 1px solid var(--h-line);
    }
    .mat-content { padding: 34px 26px; }
    .mat-cta { margin-top: 64px; padding: 64px 0 76px; }
}

@media (max-width: 520px) {
    .mat-specs { grid-template-columns: 1fr; gap: 20px; }
}

/* Link "entenda os materiais" na página de detalhe */
.material-help-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: var(--h-accent);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s ease;
}

.material-help-link:hover {
    border-bottom-color: var(--h-accent);
}

.material-help-link span {
    transition: transform 0.2s ease;
}

.material-help-link:hover span {
    transform: translateX(3px);
}

/* ===========================================================
   Trabalhos — Documental e Publicidade
   =========================================================== */
.pj-page {
    background: var(--h-bg);
}

.pj-wrap {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 clamp(20px, 4vw, 56px);
}

.pj-hero {
    padding: 150px 0 60px;
}

.pj-hero h1 {
    margin: 10px 0 18px;
    color: var(--h-text);
    font-family: var(--font-serif);
    font-size: clamp(38px, 6vw, 68px);
    font-weight: 400;
    line-height: 1.05;
}

.pj-hero p {
    max-width: 620px;
    color: var(--h-muted);
    font-size: 17px;
    font-weight: 300;
    line-height: 1.7;
}

.pj-switch {
    margin-top: 26px;
}

.pj-switch a {
    color: var(--h-accent);
    font-size: 13px;
    letter-spacing: 0.06em;
}

.pj-switch a:hover {
    color: var(--h-text);
}

.pj-index {
    padding: 20px 0 110px;
}

.pj-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: clamp(28px, 4vw, 52px);
}

.pj-card {
    display: block;
    color: inherit;
}

.pj-card__media {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #111;
}

.pj-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: brightness(0.92);
    transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1), filter 0.6s ease;
}

.pj-card:hover .pj-card__media img {
    transform: scale(1.04);
    filter: brightness(1);
}

.pj-card__body {
    padding: 18px 0 0;
}

.pj-card__meta {
    margin: 0 0 8px;
    color: var(--h-muted);
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.pj-card__title {
    margin: 0 0 10px;
    color: var(--h-text);
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.25;
}

.pj-card__text {
    margin: 0 0 14px;
    color: var(--h-muted);
    font-size: 15px;
    font-weight: 300;
    line-height: 1.65;
}

.pj-card__link {
    color: var(--h-accent);
    font-size: 13px;
    letter-spacing: 0.04em;
}

/* ---------- Página do trabalho ---------- */
.pj-detail__head {
    padding: 150px 0 46px;
}

.pj-crumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 22px;
    color: var(--h-muted);
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.pj-crumbs a {
    color: var(--h-muted);
}

.pj-crumbs a:hover {
    color: var(--h-accent);
}

.pj-crumbs span:last-child {
    color: var(--h-text);
}

.pj-detail__head h1 {
    margin: 0 0 14px;
    max-width: 900px;
    color: var(--h-text);
    font-family: var(--font-serif);
    font-size: clamp(34px, 5vw, 58px);
    font-weight: 400;
    line-height: 1.08;
}

.pj-detail__meta {
    margin: 0 0 20px;
    color: var(--h-accent);
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.pj-detail__lead {
    max-width: 720px;
    margin: 0;
    color: var(--h-muted);
    font-family: var(--font-serif);
    font-size: 21px;
    font-style: italic;
    font-weight: 400;
    line-height: 1.55;
}

.pj-detail__cover {
    margin: 0 0 clamp(40px, 6vw, 80px);
}

.pj-detail__cover img {
    width: 100%;
    height: auto;
    display: block;
}

/* Texto à esquerda, ficha técnica à direita e acompanhando a rolagem. */
.pj-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: clamp(32px, 5vw, 80px);
    align-items: start;
    padding-bottom: clamp(40px, 6vw, 80px);
}

.pj-detail__body {
    max-width: 760px;
}

.pj-sheet {
    position: sticky;
    top: 120px;
    padding-top: 6px;
    border-top: 1px solid var(--h-line);
}

.pj-sheet__title {
    margin: 18px 0 20px;
    color: var(--h-muted);
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.pj-sheet__list {
    margin: 0;
    display: grid;
    gap: 16px;
}

.pj-sheet__row dt {
    color: var(--h-muted);
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.pj-sheet__row dd {
    margin: 4px 0 0;
    color: var(--h-text);
    font-size: 15px;
    font-weight: 300;
    line-height: 1.5;
}

.pj-gallery .pj-wrap {
    display: grid;
    gap: clamp(28px, 4vw, 56px);
    padding-bottom: clamp(50px, 7vw, 100px);
}

.pj-gallery__item {
    margin: 0;
}

.pj-gallery__item img {
    width: 100%;
    height: auto;
    display: block;
}

.pj-gallery__item figcaption {
    margin-top: 12px;
    color: var(--h-muted);
    font-size: 13px;
    line-height: 1.6;
}

.pj-related {
    padding: 0 0 110px;
    border-top: 1px solid var(--h-line-soft);
}

.pj-related__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding: 52px 0 34px;
}

.pj-related__head h2 {
    margin: 0;
    color: var(--h-text);
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 400;
}

.pj-related__head a {
    color: var(--h-accent);
    font-size: 13px;
}

@media (max-width: 900px) {
    .pj-detail__layout {
        grid-template-columns: minmax(0, 1fr);
    }

    /* Sem coluna lateral, a ficha vem depois do texto e não gruda. */
    .pj-sheet {
        position: static;
    }
}

@media (max-width: 768px) {
    .pj-hero,
    .pj-detail__head {
        padding-top: 120px;
    }

    .pj-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ===========================================================
   Escolha da moldura — página da obra
   =========================================================== */
/* O paspatur é branco nas três; muda só a moldura. Cada opção define as
   variáveis que .fineart-frame e .fineart-detail-mock__image consomem. */
.product-page {
    --fa-mat: #ffffff;
    --fa-frame-fill: linear-gradient(#101010, #101010);
    --fa-frame-line: none;
}

.product-page.is-frame-branca {
    --fa-frame-fill: linear-gradient(#f6f4f0, #ebe7e0);
    --fa-frame-line: inset 0 0 0 1px rgba(0, 0, 0, 0.10);
}

.product-page.is-frame-madeira {
    --fa-frame-fill: linear-gradient(150deg, #e6cfa8 0%, #cfb083 38%, #ddc39a 62%, #bf9c69 100%);
}

.fa-frames {
    margin: 0 0 26px;
}

.fa-frames__label {
    margin: 0 0 14px;
    color: var(--h-muted);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.fa-frames__label span {
    font-weight: 400;
    letter-spacing: 0.08em;
    text-transform: none;
}

.fa-frames__options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.fa-frame-option {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 9px 16px 9px 10px;
    color: var(--h-muted);
    background: transparent;
    border: 1px solid var(--h-line);
    font-family: inherit;
    font-size: 13px;
    cursor: pointer;
    transition: border-color 0.3s ease, color 0.3s ease;
}

.fa-frame-option:hover {
    color: var(--h-text);
    border-color: var(--h-muted);
}

.fa-frame-option.is-active {
    color: var(--h-text);
    border-color: var(--h-accent);
}

/* A pastilha mostra a moldura em volta de um miolo branco, que é o paspatur. */
.fa-frame-option__chip {
    width: 26px;
    height: 26px;
    border: 4px solid transparent;
    background-color: #fff;
    background-image: linear-gradient(#fff, #fff), var(--fa-chip-fill, linear-gradient(#101010, #101010));
    background-clip: padding-box, border-box;
    background-origin: padding-box, border-box;
    box-shadow: var(--fa-chip-line, none);
}

.fa-frame-option__chip--branca {
    --fa-chip-fill: linear-gradient(#f6f4f0, #ebe7e0);
    --fa-chip-line: inset 0 0 0 1px rgba(0, 0, 0, 0.10);
}

.fa-frame-option__chip--madeira {
    --fa-chip-fill: linear-gradient(150deg, #e6cfa8, #cfb083 38%, #ddc39a 62%, #bf9c69);
}

/* ===========================================================
   Visualizador em tela cheia — obra grande com a tira da coleção
   =========================================================== */
.fa-work-stage__zoom {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    /* Altura explícita, não a herdada do "esticar" do flex: altura esticada não
       conta como definida, e sem isso o max-height:100% da imagem vira "none" —
       foto grande volta a passar da janela. */
    height: 100%;
    width: 100%;
    min-height: 0;
    padding: 0;
    background: none;
    border: 0;
    cursor: zoom-in;
    line-height: 0;
}

.fa-work-stage__zoom img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    border: 9px solid #fdfdfb;
    box-shadow: 0 32px 90px rgba(0, 0, 0, 0.6);
}

/* Centralizada: o botão ocupa a coluna inteira, então um canto fixo cairia
   longe da foto quando ela é estreita. */
.fa-work-stage__zoom-hint {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 7px 14px;
    color: var(--h-text);
    background: rgba(8, 8, 9, 0.72);
    border: 1px solid rgba(245, 241, 234, 0.28);
    border-radius: 999px;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    line-height: 1;
    opacity: 0;
    transition: opacity 0.3s ease;
    backdrop-filter: blur(6px);
}

.fa-work-stage__zoom:hover .fa-work-stage__zoom-hint,
.fa-work-stage__zoom:focus-visible .fa-work-stage__zoom-hint {
    opacity: 1;
}

.fa-viewer {
    position: fixed;
    inset: 0;
    z-index: 1300;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    /* Opaco de propósito: em tela cheia a página atrás não deve aparecer. */
    background: #050506;
}

.fa-viewer[hidden] {
    display: none;
}

.fa-viewer__close {
    position: absolute;
    top: 20px;
    right: 24px;
    z-index: 2;
    width: 46px;
    height: 46px;
    color: var(--h-text);
    background: transparent;
    border: 1px solid var(--h-line);
    border-radius: 50%;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    transition: border-color 0.3s ease, color 0.3s ease;
}

.fa-viewer__close:hover {
    color: var(--h-accent);
    border-color: var(--h-accent);
}

.fa-viewer__stage {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(8px, 2vw, 24px);
    min-height: 0;
    padding: clamp(56px, 7vh, 84px) clamp(12px, 3vw, 40px) 16px;
}

.fa-viewer__figure {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    height: 100%;
    margin: 0;
}

.fa-viewer__figure img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    box-shadow: 0 40px 110px rgba(0, 0, 0, 0.75);
}

.fa-viewer__step {
    width: 52px;
    height: 52px;
    color: var(--h-text);
    background: rgba(8, 8, 9, 0.6);
    border: 1px solid var(--h-line);
    border-radius: 50%;
    font-size: 18px;
    cursor: pointer;
    transition: border-color 0.3s ease, color 0.3s ease, opacity 0.3s ease;
}

.fa-viewer__step:hover:not([disabled]) {
    color: var(--h-accent);
    border-color: var(--h-accent);
}

.fa-viewer__step[disabled] {
    opacity: 0.25;
    cursor: default;
}

.fa-viewer__foot {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas:
        "id compra"
        "tira tira";
    align-items: center;
    gap: 12px 20px;
    padding: 0 clamp(16px, 3vw, 40px) clamp(16px, 3vh, 28px);
}

.fa-viewer__id {
    grid-area: id;
    margin: 0;
    display: flex;
    align-items: baseline;
    gap: 14px;
    color: var(--h-muted);
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.fa-viewer__id strong {
    color: var(--h-text);
    font-weight: 500;
}

.fa-viewer__buy {
    grid-area: compra;
    color: var(--h-accent);
    font-size: 12px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.fa-viewer__buy:hover {
    color: var(--h-text);
}

/* A tira é horizontal: rola de lado e nunca corta miniatura no meio. */
.fa-viewer__strip {
    grid-area: tira;
    display: flex;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
    overscroll-behavior-x: contain;
    mask-image: linear-gradient(
        to right,
        transparent 0,
        #000 20px,
        #000 calc(100% - 20px),
        transparent 100%
    );
}

.fa-viewer__strip::-webkit-scrollbar {
    width: 0;
    height: 0;
}

.fa-viewer__thumb {
    display: block;
    width: 88px;
    padding: 0;
    background: #111;
    border: 0;
    cursor: pointer;
    line-height: 0;
}

.fa-viewer__thumb img {
    width: 100%;
    height: auto;
    display: block;
    opacity: 0.55;
    transition: opacity 0.25s ease;
}

.fa-viewer__thumb:hover img {
    opacity: 0.85;
}

.fa-viewer__thumb.is-current {
    outline: 1px solid var(--h-accent);
    outline-offset: -1px;
}

.fa-viewer__thumb.is-current img {
    opacity: 1;
}

@media (max-width: 768px) {
    .fa-viewer__stage {
        grid-template-columns: minmax(0, 1fr);
        padding-top: 64px;
    }

    /* Sem espaço nas laterais, as setas saem: a tira e o arrastar dão conta. */
    .fa-viewer__step {
        display: none;
    }

    .fa-viewer__foot {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "id"
            "tira"
            "compra";
        justify-items: start;
    }

    .fa-viewer__thumb {
        width: 68px;
    }
}
