:root {
    --paper: #dfd2b7;
    --paper-light: #e8dec9;
    --paper-dark: #c9b995;
    --archive-blue: #4f6b7a;
    --archive-blue-dark: #2f3a46;
    --archive-blue-light: #76919e;
    --graphite: #4e4a46;
    --ink: #2f2d2a;
    --sepia: #8c7a5c;
    --border-aged: #b7a78c;
    --soft-background: #f3ebd8;
    --shadow: 0 24px 55px rgb(47 45 42 / 14%);
    --container: min(1180px, calc(100vw - 48px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--graphite); background-color: var(--paper); font-family: Inter, Arial, sans-serif; line-height: 1.6; }
body::before { content: ""; position: fixed; inset: 0; z-index: 100; pointer-events: none; opacity: .035; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E"); }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #1a617d; outline-offset: 4px; }
.container { width: var(--container); margin-inline: auto; }
.container-wide { width: min(1380px, calc(100vw - 32px)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 999; padding: 10px 16px; background: white; transform: translateY(-150%); }
.skip-link:focus { transform: none; }

.site-header { position: relative; z-index: 50; background: color-mix(in srgb, var(--paper-light) 94%, transparent); border-bottom: 1px solid var(--border-aged); }
.header-rule { height: 5px; background: var(--archive-blue-dark); }
.header-inner { min-height: 96px; display: flex; align-items: center; justify-content: space-between; gap: 36px; }
.brand { display: inline-flex; align-items: center; gap: 15px; color: var(--ink); }
.brand-monogram { display: grid; width: 57px; height: 57px; flex: 0 0 auto; overflow: hidden; place-items: center; border: 2px solid var(--archive-blue); border-radius: 50%; background: #fff; }
.brand-monogram img { display: block; width: 100%; height: 100%; object-fit: cover; }
.brand-copy { display: flex; flex-direction: column; font-family: Lora, serif; line-height: 1.08; }
.brand-copy strong { font-size: 18px; font-weight: 600; }
.brand-copy small { margin-top: 5px; color: var(--sepia); font: 500 11px/1 Inter, sans-serif; letter-spacing: .25em; text-transform: uppercase; }
.main-nav { display: flex; align-items: center; gap: clamp(11px, 1.55vw, 24px); font-size: 12px; font-weight: 600; letter-spacing: .075em; text-transform: uppercase; }
.main-nav a { position: relative; padding-block: 10px; }
.main-nav a::after { content: ""; position: absolute; right: 0; bottom: 4px; left: 0; height: 1px; background: var(--archive-blue); transform: scaleX(0); transform-origin: right; transition: transform .3s ease; }
.main-nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.search-link { color: var(--archive-blue-dark); }
.search-link span { margin-left: 4px; font-size: 20px; vertical-align: -2px; }
.nav-toggle { display: none; border: 0; background: transparent; }
.nav-toggle > span:not(.sr-only) { display: block; width: 25px; height: 2px; margin: 5px; background: var(--ink); }

.notice { position: fixed; z-index: 90; top: 112px; left: 50%; width: min(620px, calc(100vw - 32px)); padding: 14px 18px; transform: translateX(-50%); color: white; box-shadow: var(--shadow); font-size: 14px; text-align: center; }
.notice-success { background: #3d6657; }
.notice-error { background: #8b4038; }

.hero { position: relative; height: clamp(570px, 72vh, 760px); min-height: 570px; overflow: hidden; color: #fff; background: var(--archive-blue-dark); }
.hero-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .9s ease, visibility .9s; }
.hero-slide.is-active { opacity: 1; visibility: visible; }
.hero-slide::after { content: ""; position: absolute; inset: 0; opacity: .16; background-image: repeating-linear-gradient(90deg, transparent 0 3px, rgb(255 255 255 / 5%) 4px), radial-gradient(ellipse at 75% 20%, transparent 0 20%, rgb(18 27 33 / 35%) 75%); mix-blend-mode: soft-light; }
.hero-slide img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(22%) sepia(9%) saturate(80%) contrast(94%); }
.hero-slide-texture { background: radial-gradient(circle at 72% 32%, rgb(118 145 158 / 42%) 0 16%, transparent 38%), linear-gradient(125deg, #293943, #4f6b7a 56%, #26323b); }
.hero-slide-texture::before { content: "IHO"; position: absolute; right: 4vw; bottom: -14vw; color: rgb(255 255 255 / 4%); font: 600 clamp(240px, 34vw, 560px)/1 Oswald, sans-serif; }
.hero-wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgb(31 42 49 / 88%) 0, rgb(36 50 59 / 58%) 50%, rgb(34 44 50 / 18%) 78%), linear-gradient(0deg, rgb(25 31 36 / 35%), transparent 55%); }
.hero-content { position: relative; z-index: 2; display: flex; height: 100%; flex-direction: column; align-items: flex-start; justify-content: center; padding-bottom: 55px; }
.eyebrow { display: inline-flex; align-items: center; gap: 12px; font-size: 10px; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 40px; height: 1px; background: currentColor; opacity: .65; }
.eyebrow.dark { color: var(--archive-blue-dark); }
.hero h1 { max-width: 820px; margin: 24px 0 18px; font: 500 clamp(54px, 7vw, 98px)/.98 Oswald, sans-serif; letter-spacing: -.025em; text-transform: uppercase; text-wrap: balance; }
.hero-content p { max-width: 620px; margin: 0 0 30px; color: rgb(255 255 255 / 82%); font: 400 clamp(17px, 2vw, 21px)/1.65 Lora, serif; }
.button { display: inline-flex; min-height: 47px; align-items: center; justify-content: center; padding: 10px 24px; border: 1px solid var(--archive-blue-dark); color: #fff; background: var(--archive-blue-dark); cursor: pointer; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; transition: transform .25s, background .25s, color .25s; }
.button:hover { transform: translateY(-2px); background: var(--archive-blue); }
.button-light { border-color: rgb(255 255 255 / 55%); background: transparent; }
.button-light:hover { color: var(--ink); background: var(--paper-light); }
.hero-controls { position: absolute; z-index: 4; right: 0; bottom: 38px; left: 0; display: flex; align-items: center; justify-content: flex-end; gap: 14px; }
.hero-controls button { width: 42px; height: 42px; border: 1px solid rgb(255 255 255 / 40%); color: #fff; background: rgb(0 0 0 / 12%); cursor: pointer; }
.hero-controls span { min-width: 72px; font-size: 10px; letter-spacing: .18em; text-align: center; }
.hero-index { position: absolute; z-index: 3; right: 20px; top: 50%; font-size: 9px; letter-spacing: .42em; transform: rotate(90deg) translate(50%, -50%); transform-origin: right top; opacity: .55; }

.section { padding: clamp(80px, 10vw, 145px) 0; }
.editorial-split { display: grid; grid-template-columns: 90px 1.1fr 1fr; gap: clamp(28px, 5vw, 90px); align-items: start; }
.section-number { color: var(--sepia); font: 400 20px/1 Oswald, sans-serif; letter-spacing: .1em; }
.about-home h2, .section-heading h2 { margin: 20px 0 0; color: var(--ink); font: 500 clamp(42px, 5.6vw, 72px)/1.02 Oswald, sans-serif; letter-spacing: -.02em; text-transform: uppercase; text-wrap: balance; }
.lead-copy { border-top: 1px solid var(--border-aged); padding-top: 25px; }
.lead-copy p:first-child { margin-top: 0; color: var(--ink); font: 500 21px/1.65 Lora, serif; }
.prose p { font-family: Lora, serif; }
.text-link { position: relative; display: inline-flex; gap: 22px; align-items: center; margin-top: 14px; padding-bottom: 5px; color: var(--archive-blue-dark); border-bottom: 1px solid var(--archive-blue-light); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.text-link span { transition: transform .25s; }
.text-link:hover span { transform: translateX(5px); }

.archive-counts { position: relative; overflow: hidden; padding: clamp(75px, 9vw, 120px) 0; color: #fff; background: var(--archive-blue-dark); }
.archive-counts::after { content: "ACERVO"; position: absolute; right: -20px; bottom: -70px; color: rgb(255 255 255 / 3%); font: 600 250px/1 Oswald, sans-serif; }
.section-heading { margin-bottom: 55px; }
.section-heading.inverse h2 { color: #fff; }
.count-grid { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgb(255 255 255 / 25%); border-bottom: 1px solid rgb(255 255 255 / 25%); }
.count-item { padding: 36px 30px; border-right: 1px solid rgb(255 255 255 / 20%); }
.count-item:last-child { border-right: 0; }
.count-item strong { display: block; font: 400 clamp(48px, 6vw, 82px)/1 Oswald, sans-serif; }
.count-item span { display: block; margin-top: 15px; color: rgb(255 255 255 / 65%); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
.section-heading.with-link { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.section-heading.with-link .text-link { flex: 0 0 auto; margin-bottom: 12px; }

.news-grid { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 26px; }
.news-card { border-top: 1px solid var(--border-aged); padding-top: 13px; }
.card-image { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--paper-dark); }
.card-image img, .archive-thumb img, .gallery-teaser img, .gallery-index-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(25%) sepia(12%) saturate(85%) contrast(94%); transition: filter .45s, transform .55s; }
.card-image:hover img, .gallery-teaser:hover img, .gallery-index-grid a:hover img { filter: grayscale(5%) sepia(3%); transform: scale(1.025); }
.image-placeholder { display: flex; width: 100%; height: 100%; flex-direction: column; align-items: center; justify-content: center; color: rgb(255 255 255 / 45%); background: linear-gradient(145deg, var(--archive-blue), var(--archive-blue-dark)); font: 500 45px/1 Oswald, sans-serif; letter-spacing: .08em; }
.image-placeholder small { margin-top: 12px; font: 500 9px/1 Inter, sans-serif; letter-spacing: .22em; text-transform: uppercase; }
.card-copy { padding-top: 20px; }
.card-copy time, .archive-row time { color: var(--sepia); font-size: 9px; font-weight: 600; letter-spacing: .15em; }
.card-copy h3 { margin: 12px 0 10px; color: var(--ink); font: 500 25px/1.18 Lora, serif; }
.card-copy h3 a:hover { color: var(--archive-blue); }
.card-copy p { margin: 0; font: 400 14px/1.7 Lora, serif; }
.news-card-featured .card-image { aspect-ratio: 3 / 2; }
.news-card-featured .card-copy h3 { font-size: 32px; }

.magazines-home { background: var(--paper-light); border-block: 1px solid var(--border-aged); }
.magazine-shelf, .magazine-library { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(25px, 4vw, 55px); align-items: start; }
.magazine-card a { display: block; }
.magazine-cover { position: relative; display: grid; aspect-ratio: .71; place-items: center; overflow: hidden; padding: 10%; color: var(--paper-light); background: linear-gradient(155deg, #506b78, #2f3a46); box-shadow: 7px 10px 0 rgb(47 45 42 / 8%), var(--shadow); transition: transform .4s, box-shadow .4s; }
.magazine-cover::before { content: ""; position: absolute; inset: 7%; border: 1px solid rgb(255 255 255 / 30%); }
.magazine-cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.magazine-cover span { position: relative; z-index: 1; font: 500 clamp(36px, 5vw, 62px)/1 Oswald, sans-serif; letter-spacing: .08em; text-align: center; }
.magazine-cover small { display: block; margin-top: 16px; font: 500 10px/1 Inter, sans-serif; letter-spacing: .2em; text-transform: uppercase; }
.magazine-card a:hover .magazine-cover { transform: translateY(-7px) rotate(-.5deg); box-shadow: 10px 17px 0 rgb(47 45 42 / 8%), 0 30px 60px rgb(47 45 42 / 20%); }
.magazine-card h3, .magazine-card h2 { margin: 22px 0 5px; color: var(--ink); font: 500 21px/1.25 Lora, serif; }
.magazine-card p, .magazine-meta { color: var(--sepia); font-size: 9px; letter-spacing: .15em; text-transform: uppercase; }
.magazine-meta { display: block; margin-top: 20px; }

.gallery-home { background: var(--paper); }
.gallery-teasers { display: grid; grid-template-columns: 1.35fr .85fr; grid-template-rows: repeat(2, 265px); gap: 20px; }
.gallery-teaser { position: relative; min-height: 260px; overflow: hidden; color: #fff; background: var(--archive-blue-dark); }
.gallery-teaser:first-child { grid-row: 1 / 3; }
.gallery-teaser::after { content: ""; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgb(27 35 40 / 85%)); }
.gallery-teaser > div { position: absolute; z-index: 2; right: 25px; bottom: 25px; left: 25px; display: flex; align-items: flex-end; gap: 20px; }
.gallery-teaser > div > span { font: 400 12px/1 Oswald, sans-serif; }
.gallery-teaser h3 { margin: 0; font: 500 clamp(23px, 3vw, 39px)/1.08 Lora, serif; }
.institutional-cta { position: relative; overflow: hidden; padding: 110px 0; color: #fff; background: var(--archive-blue); text-align: center; }
.institutional-cta::before { content: ""; position: absolute; inset: -40%; background: repeating-radial-gradient(circle, transparent 0 8px, rgb(255 255 255 / 2%) 9px); }
.institutional-cta .container { position: relative; }
.institutional-cta > div > span { font-size: 9px; letter-spacing: .35em; }
.institutional-cta h2 { max-width: 820px; margin: 25px auto 35px; font: 500 clamp(42px, 6vw, 76px)/1.02 Oswald, sans-serif; text-transform: uppercase; }
.empty-state { padding: 70px 30px; border: 1px solid var(--border-aged); text-align: center; }
.empty-state span { color: var(--archive-blue-dark); font: 500 13px/1 Oswald, sans-serif; letter-spacing: .2em; }
.empty-state p { font-family: Lora, serif; }

.site-footer { padding: 78px 0 25px; color: rgb(255 255 255 / 72%); background: var(--archive-blue-dark); }
.footer-grid { display: grid; grid-template-columns: 1.5fr .7fr .8fr; gap: 80px; }
.footer-mark { display: inline-flex; align-items: center; gap: 13px; color: #fff; font: 500 23px/1 Oswald, sans-serif; }
.footer-mark img { width: 62px; height: 62px; border: 1px solid rgb(232 222 201 / 58%); border-radius: 50%; background: #fff; object-fit: cover; }
.footer-mark b { letter-spacing: .12em; }
.footer-grid p { max-width: 430px; margin-top: 24px; font-family: Lora, serif; }
.footer-grid h2 { margin: 0 0 18px; color: #fff; font: 500 11px/1 Inter, sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.footer-grid a { display: block; margin-block: 9px; font-size: 13px; }
.footer-grid a:hover { color: #fff; }
.footer-bottom { display: flex; justify-content: space-between; margin-top: 70px; padding-top: 20px; border-top: 1px solid rgb(255 255 255 / 15%); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }

.page-hero, .listing-hero { padding: clamp(85px, 11vw, 145px) 0 clamp(65px, 8vw, 100px); border-bottom: 1px solid var(--border-aged); background: var(--paper-light); }
.page-hero h1, .listing-hero h1 { margin: 20px 0 15px; color: var(--ink); font: 500 clamp(58px, 9vw, 120px)/.95 Oswald, sans-serif; letter-spacing: -.035em; text-transform: uppercase; }
.page-hero p, .listing-hero p { max-width: 720px; margin: 0; color: var(--sepia); font: 400 clamp(17px, 2.2vw, 22px)/1.65 Lora, serif; }
.article-layout { display: grid; grid-template-columns: 170px minmax(0, 730px); gap: 70px; justify-content: center; padding-top: 90px; padding-bottom: 120px; }
.article-layout aside { color: var(--sepia); font-size: 9px; letter-spacing: .18em; line-height: 1.7; text-transform: uppercase; }
.vertical-rule { width: 1px; height: 130px; margin: 24px 0 0 10px; background: var(--border-aged); }
.rich-text { color: var(--ink); font: 400 18px/1.95 Lora, serif; }
.rich-text > :first-child { margin-top: 0; }
.rich-text h2 { margin: 1.7em 0 .55em; font: 500 37px/1.2 Oswald, sans-serif; text-transform: uppercase; }
.rich-text h3 { font-size: 25px; }
.rich-text a { color: var(--archive-blue-dark); text-decoration: underline; }
.rich-text blockquote { margin: 2em 0; padding: 8px 0 8px 28px; border-left: 3px solid var(--archive-blue); color: var(--archive-blue-dark); font-style: italic; }

.listing-section { padding-top: 60px; padding-bottom: 120px; }
.filter-bar { display: flex; align-items: flex-end; gap: 14px; margin-bottom: 65px; padding: 24px; border: 1px solid var(--border-aged); background: rgb(232 222 201 / 55%); }
.filter-bar label { min-width: 145px; }
.filter-bar label.grow { flex: 1; }
.filter-bar label span, .contact-form label span { display: block; margin-bottom: 8px; color: var(--sepia); font-size: 9px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.filter-bar input, .filter-bar select, .search-form input, .search-form select, .contact-form input, .contact-form select, .contact-form textarea { width: 100%; min-height: 47px; padding: 10px 12px; border: 1px solid var(--border-aged); border-radius: 0; color: var(--ink); background: var(--soft-background); }
.archive-list { border-top: 1px solid var(--border-aged); }
.archive-row { display: grid; grid-template-columns: 300px 1fr; gap: clamp(30px, 6vw, 85px); padding: 45px 0; border-bottom: 1px solid var(--border-aged); }
.archive-thumb { aspect-ratio: 16 / 10; overflow: hidden; }
.archive-row h2 { max-width: 700px; margin: 11px 0 15px; color: var(--ink); font: 500 clamp(26px, 3vw, 39px)/1.17 Lora, serif; }
.archive-row p { max-width: 700px; font-family: Lora, serif; }
.pagination { display: grid; justify-items: center; gap: 16px; margin-top: 55px; }
.pagination > p { margin: 0; color: var(--ink-soft); font-size: 14px; }
.pagination > div { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.pagination a { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--border-aged); font-size: 11px; }
.pagination a.active { color: #fff; background: var(--archive-blue-dark); }
.pagination a.is-direction { width: auto; padding: 0 15px; grid-auto-flow: column; gap: 8px; }
.pagination-gap { display: grid; width: 24px; height: 42px; place-items: center; color: var(--ink-soft); }

.article-header { max-width: 980px; padding-top: 95px; padding-bottom: 60px; }
.back-link { display: block; margin-bottom: 55px; color: var(--archive-blue-dark); font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.article-header time { color: var(--sepia); font-size: 10px; letter-spacing: .16em; }
.article-header h1 { margin: 20px 0; color: var(--ink); font: 500 clamp(46px, 7vw, 82px)/1.03 Lora, serif; letter-spacing: -.03em; }
.article-header > p { max-width: 760px; color: var(--sepia); font: 400 21px/1.65 Lora, serif; }
.byline { display: block; margin-top: 25px; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.article-cover img { width: 100%; max-height: 780px; object-fit: cover; }
.article-cover figcaption { padding: 10px 5px; color: var(--sepia); font-size: 10px; }

.magazine-library { grid-template-columns: repeat(4, 1fr); row-gap: 75px; }
.magazine-detail { padding: 90px 0 0; }
.magazine-detail-grid { display: grid; grid-template-columns: minmax(250px, 420px) 1fr; gap: clamp(50px, 9vw, 130px); align-items: center; }
.magazine-detail-cover { position: relative; display: grid; aspect-ratio: .71; place-items: center; overflow: hidden; color: var(--paper-light); background: linear-gradient(145deg, var(--archive-blue), var(--archive-blue-dark)); box-shadow: 12px 16px 0 rgb(47 45 42 / 9%), var(--shadow); }
.magazine-detail-cover img { width: 100%; height: 100%; object-fit: cover; }
.magazine-detail-cover span { font: 500 75px/1 Oswald, sans-serif; }
.magazine-detail-cover small { display: block; margin-top: 20px; font: 500 12px/1 Inter, sans-serif; letter-spacing: .2em; text-align: center; }
.magazine-detail-copy .back-link { margin-bottom: 60px; }
.magazine-detail-copy h1 { margin: 20px 0; color: var(--ink); font: 500 clamp(48px, 6vw, 78px)/1.02 Oswald, sans-serif; text-transform: uppercase; }
.magazine-detail-copy .subtitle { max-width: 620px; font: 400 19px/1.65 Lora, serif; }
.magazine-detail-copy dl { display: grid; grid-template-columns: repeat(2, 1fr); margin: 35px 0; border-block: 1px solid var(--border-aged); }
.magazine-detail-copy dl div { padding: 17px 10px 17px 0; }
.magazine-detail-copy dt { color: var(--sepia); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.magazine-detail-copy dd { margin: 5px 0 0; color: var(--ink); font-family: Lora, serif; }
.status-note { display: inline-block; padding: 13px 17px; border: 1px solid var(--border-aged); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }

.reader { min-height: 100vh; color: #e7e3dc; background: #1f2529; user-select: none; }
.reader-header { display: grid; min-height: 80px; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; padding: 14px 28px; border-bottom: 1px solid rgb(255 255 255 / 14%); }
.reader-header > a, .reader-header button { color: #e7e3dc; border: 0; background: none; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.reader-header > div { text-align: center; }
.reader-header > div span { display: block; font: 500 16px/1.2 Lora, serif; }
.reader-header > div small { color: rgb(255 255 255 / 45%); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.reader-header button { justify-self: end; cursor: pointer; }
.reader-stage { display: grid; min-height: calc(100vh - 150px); grid-template-columns: 65px minmax(0, 1fr) 65px; align-items: center; padding: 25px; }
.reader-stage figure { margin: 0; text-align: center; }
.reader-image-wrap { display: inline-block; max-width: 100%; overflow: auto; box-shadow: 0 25px 70px rgb(0 0 0 / 50%); }
.reader-image-wrap img { max-height: calc(100vh - 220px); margin: auto; object-fit: contain; transform: scale(var(--zoom, 1)); transform-origin: center; transition: transform .2s; }
.reader-stage figcaption { margin-top: 12px; color: rgb(255 255 255 / 52%); font-size: 10px; }
.reader-arrow { width: 48px; height: 48px; border: 1px solid rgb(255 255 255 / 25%); color: #fff; background: transparent; cursor: pointer; }
.reader-arrow:disabled { opacity: .2; cursor: default; }
.reader-arrow.next { justify-self: end; }
.reader-footer { display: flex; min-height: 70px; align-items: center; justify-content: center; gap: 80px; border-top: 1px solid rgb(255 255 255 / 14%); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.reader-footer strong { font: 500 18px/1 Oswald, sans-serif; }
.reader-footer div { display: flex; align-items: center; gap: 10px; }
.reader-footer button { width: 30px; height: 30px; border: 1px solid rgb(255 255 255 / 20%); color: #fff; background: transparent; }

.gallery-index-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 75px 30px; }
.gallery-index-grid article { min-width: 0; margin-top: 0; }
.gallery-index-image { aspect-ratio: 16 / 11; overflow: hidden; background: var(--archive-blue-dark); }
.gallery-index-grid article > a > span { display: block; margin-top: 20px; color: var(--sepia); font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }
.gallery-index-grid h2 { margin: 9px 0 0; color: var(--ink); font: 500 clamp(28px, 4vw, 43px)/1.12 Lora, serif; }
.gallery-detail-header { max-width: 980px; padding-top: 90px; padding-bottom: 100px; }
.gallery-detail-header h1 { margin: 22px 0; color: var(--ink); font: 500 clamp(53px, 8vw, 100px)/.98 Oswald, sans-serif; text-transform: uppercase; }
.gallery-intro { max-width: 730px; font: 400 19px/1.8 Lora, serif; }
.photo-sequence { padding-bottom: 130px; }
.photo-record { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr); gap: clamp(40px, 8vw, 120px); align-items: center; margin-bottom: 135px; }
.photo-record:nth-child(even) { grid-template-columns: minmax(280px, .6fr) minmax(0, 1.4fr); }
.photo-record:nth-child(even) .photo-button { order: 2; transform: rotate(.65deg); }
.photo-record:nth-child(odd) .photo-button { transform: rotate(-.55deg); }
.photo-button { overflow: hidden; padding: 0; border: 0; background: none; box-shadow: var(--shadow); cursor: zoom-in; transition: transform .4s; }
.photo-button:hover { transform: rotate(0) scale(1.01) !important; }
.photo-button img { width: 100%; max-height: 720px; object-fit: cover; filter: grayscale(20%) sepia(10%) saturate(86%); }
.record-number { color: var(--sepia); font: 400 14px/1 Oswald, sans-serif; letter-spacing: .15em; }
.photo-caption h2 { margin: 20px 0; color: var(--ink); font: 500 clamp(31px, 4vw, 48px)/1.1 Lora, serif; }
.photo-caption p { font-family: Lora, serif; }
.photo-caption dl div { display: flex; gap: 20px; padding: 8px 0; border-top: 1px solid var(--border-aged); font-size: 10px; }
.photo-caption dt { width: 70px; color: var(--sepia); text-transform: uppercase; }
.photo-caption dd { margin: 0; }
.tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 20px; }
.tags span { padding: 5px 9px; border: 1px solid var(--border-aged); font-size: 9px; text-transform: uppercase; }
.lightbox { position: fixed; z-index: 1000; inset: 0; display: grid; grid-template-columns: 80px minmax(0, 1fr) 80px; grid-template-rows: minmax(0, 1fr); align-items: center; overflow: hidden; padding: 60px 20px 25px; color: #fff; background: rgb(22 27 31 / 96%); }
.lightbox[hidden] { display: none; }
.lightbox figure { display: grid; grid-template-rows: minmax(0, 1fr) auto auto; gap: 12px; min-width: 0; min-height: 0; height: 100%; max-height: 100%; margin: 0; place-items: center; text-align: center; }
.lightbox img { display: block; width: auto; height: auto; min-height: 0; max-width: 100%; max-height: 100%; margin: auto; object-fit: contain; }
.lightbox figcaption { max-height: 22vh; overflow-y: auto; white-space: pre-line; overflow-wrap: anywhere; font: 400 13px/1.5 Lora, serif; }
.gallery-image-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; width: 100%; margin-top: 16px; }
.gallery-image-actions a, .gallery-image-actions button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 15px; border: 1px solid rgb(232 222 201 / 45%); border-radius: 3px; color: #e8dec9; background: transparent; font: 600 13px/1.3 Arial, sans-serif; text-decoration: none; cursor: pointer; }
.gallery-image-actions a:hover, .gallery-image-actions button:hover { background: rgb(232 222 201 / 12%); }
.gallery-image-actions :is(a, button):focus-visible { outline: 2px solid #e8dec9; outline-offset: 3px; }
.gallery-image-actions button:disabled { opacity: .65; cursor: wait; }
.gallery-copy-status { flex-basis: 100%; color: #e8dec9; font-size: 13px; }
.gallery-copy-status:empty { display: none; }
.gallery-reference-text { width: 100%; max-height: 18vh; min-height: 80px; padding: 10px; color: #222; background: #fff; font-size: 13px; resize: vertical; }
.gallery-reference-text[hidden] { display: none; }
.lightbox .gallery-image-actions { margin-top: 0; }
@media (max-height: 500px) {
    .lightbox { padding-top: 52px; padding-bottom: 12px; }
}
.lightbox-close { position: absolute; top: 15px; right: 22px; width: 44px; height: 44px; border: 0; color: #fff; background: transparent; font-size: 35px; cursor: pointer; }
.lightbox-arrow { width: 48px; height: 48px; border: 1px solid rgb(255 255 255 / 25%); color: #fff; background: transparent; cursor: pointer; }
.lightbox-arrow.next { justify-self: end; }
html.has-open-lightbox,
body.has-open-lightbox { overflow: hidden; }

.search-form { display: grid; grid-template-columns: minmax(0, 1fr) 210px auto; align-items: end; gap: 10px; max-width: 980px; margin-top: 45px; }
.search-form label span { display: block; margin-bottom: 8px; color: var(--sepia); font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.search-page-hero .search-form { padding: 20px; border: 1px solid var(--border-aged); background: rgb(232 222 201 / 55%); }
.search-page-hero .search-form .button { min-height: 48px; }
.search-form-help { display: block; max-width: 980px; margin-top: 12px; color: var(--sepia); font-size: 13px; line-height: 1.6; }
.search-results { padding-top: 70px; padding-bottom: 120px; }
.result-summary { margin-bottom: 55px; font-family: Lora, serif; }
.search-results section { margin-bottom: 70px; }
.search-results section > h2 { padding-bottom: 13px; border-bottom: 2px solid var(--ink); color: var(--ink); font: 500 29px/1 Oswald, sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.search-results section > h2 span { float: right; color: var(--sepia); }
.search-results article { padding: 28px 0; border-bottom: 1px solid var(--border-aged); }
.search-results article > span { color: var(--sepia); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.search-results article h3 { margin: 7px 0; color: var(--ink); font: 500 27px/1.3 Lora, serif; }
.search-results article p { max-width: 800px; margin: 0; font-family: Lora, serif; }
.search-result-card { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 28px; }
.search-result-image { display: grid; min-height: 135px; align-self: start; aspect-ratio: 4 / 3; place-items: center; overflow: hidden; color: var(--paper-light); background: var(--archive-blue-dark); }
.search-result-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(18%) sepia(7%); }
.search-result-image > span { display: grid; gap: 8px; font: 600 22px/1 Oswald, sans-serif; letter-spacing: .08em; text-align: center; }
.search-result-image small { font: 600 9px/1 Inter, sans-serif; letter-spacing: .18em; }
.search-result-copy { min-width: 0; }
.search-result-copy > span { color: var(--archive-blue); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.search-result-meta { display: block; margin-top: 11px; color: var(--sepia); font-size: 13px; }
.search-result-open { display: inline-flex; align-items: center; gap: 14px; margin-top: 17px; color: var(--archive-blue-dark); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.search-result-open span { transition: transform .2s; }
.search-result-open:hover span { transform: translateX(4px); }
.search-feedback { padding: 22px; border-left: 5px solid var(--archive-blue); background: rgb(196 173 127 / 16%); }
.search-feedback strong { color: var(--ink); font: 600 21px/1.3 Lora, serif; }
.search-feedback p { margin: 7px 0 0; color: var(--sepia); }
.search-start { display: grid; grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr); gap: clamp(35px, 7vw, 90px); align-items: start; }
.search-start h2 { margin: 13px 0; color: var(--ink); font: 500 clamp(35px, 5vw, 56px)/1 Oswald, sans-serif; text-transform: uppercase; }
.search-start > div:first-child p { color: var(--sepia); font-family: Lora, serif; }
.search-start-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block: 3px double var(--archive-blue); }
.search-start-grid a { min-width: 0; padding: 22px 18px; border-right: 1px solid var(--border-aged); }
.search-start-grid a:last-child { border-right: 0; }
.search-start-grid strong,
.search-start-grid span,
.search-start-grid small { display: block; }
.search-start-grid strong { color: var(--archive-blue-dark); font: 500 clamp(34px, 4vw, 52px)/1 Oswald, sans-serif; }
.search-start-grid span { margin-top: 9px; color: var(--ink); font-weight: 800; }
.search-start-grid small { margin-top: 18px; color: var(--sepia); font-size: 10px; font-weight: 700; text-transform: uppercase; }

.contact-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(50px, 10vw, 150px); padding-top: 90px; padding-bottom: 130px; }
.contact-index { color: var(--sepia); font-size: 9px; letter-spacing: .18em; }
.contact-grid > div h2 { margin: 20px 0; color: var(--ink); font: 500 clamp(38px, 5vw, 62px)/1.05 Oswald, sans-serif; text-transform: uppercase; }
.contact-grid > div p { font-family: Lora, serif; }
.contact-form { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.contact-form label:nth-of-type(3), .contact-form label:nth-of-type(5), .contact-form .button { grid-column: 1 / -1; }
.contact-form textarea { resize: vertical; }
.honeypot { position: absolute; left: -9999px; }

.error-page { display: grid; min-height: 70vh; place-items: center; padding: 80px 24px; text-align: center; }
.error-page > div { max-width: 850px; }
.error-page span { color: var(--sepia); font-size: 9px; letter-spacing: .2em; }
.error-page h1 { margin: 25px 0; color: var(--ink); font: 500 clamp(45px, 7vw, 83px)/1 Oswald, sans-serif; text-transform: uppercase; }
.error-page p { font-family: Lora, serif; }
.error-page .button { margin-top: 20px; }
.error-page details { margin: 25px auto; padding: 15px; text-align: left; background: var(--paper-light); }
.error-page pre { overflow: auto; white-space: pre-wrap; }

@media (max-width: 900px) {
    :root { --container: min(100% - 32px, 720px); }
    .header-inner { min-height: 78px; }
    .brand-monogram { width: 48px; height: 48px; }
    .brand-copy strong { font-size: 15px; }
    .nav-toggle { display: block; }
    .main-nav { position: absolute; top: 83px; right: 0; left: 0; display: none; align-items: stretch; flex-direction: column; gap: 0; padding: 20px 24px 30px; border-bottom: 1px solid var(--border-aged); background: var(--paper-light); }
    .main-nav.is-open { display: flex; }
    .main-nav a { padding: 12px 0; }
    .hero { height: 620px; }
    .hero h1 { font-size: clamp(50px, 12vw, 74px); }
    .editorial-split { grid-template-columns: 45px 1fr; }
    .editorial-split .lead-copy { grid-column: 2; }
    .count-grid { grid-template-columns: repeat(2, 1fr); }
    .count-item:nth-child(2) { border-right: 0; }
    .count-item:nth-child(-n+2) { border-bottom: 1px solid rgb(255 255 255 / 20%); }
    .news-grid { grid-template-columns: 1fr 1fr; }
    .news-card-featured { grid-column: 1 / -1; }
    .magazine-shelf, .magazine-library { grid-template-columns: repeat(2, 1fr); }
    .footer-grid { grid-template-columns: 1fr 1fr; gap: 45px; }
    .footer-grid > div:first-child { grid-column: 1 / -1; }
    .archive-row { grid-template-columns: 220px 1fr; gap: 30px; }
    .magazine-detail-grid { grid-template-columns: minmax(220px, 330px) 1fr; gap: 45px; }
    .photo-record, .photo-record:nth-child(even) { grid-template-columns: 1fr; gap: 30px; }
    .photo-record:nth-child(even) .photo-button { order: initial; }
    .contact-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
    :root { --container: calc(100% - 28px); }
    .brand-copy { display: none; }
    .hero { height: 590px; min-height: 590px; }
    .hero-wash { background: linear-gradient(90deg, rgb(31 42 49 / 85%), rgb(36 50 59 / 40%)); }
    .hero-content { padding-bottom: 80px; }
    .hero h1 { font-size: 49px; }
    .hero-content p { font-size: 16px; }
    .hero-controls { bottom: 23px; justify-content: flex-start; }
    .hero-index { display: none; }
    .section { padding: 75px 0; }
    .editorial-split { grid-template-columns: 1fr; gap: 25px; }
    .editorial-split .lead-copy { grid-column: auto; }
    .about-home h2, .section-heading h2 { font-size: 43px; }
    .section-heading.with-link { align-items: flex-start; flex-direction: column; }
    .news-grid, .gallery-index-grid { grid-template-columns: 1fr; }
    .gallery-index-grid article:nth-child(3n+2) { margin-top: 0; }
    .magazine-shelf, .magazine-library { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 35px 18px; }
    .magazine-card h3, .magazine-card h2 { font-size: 16px; }
    .gallery-teasers { display: flex; flex-direction: column; }
    .gallery-teaser { height: 320px; }
    .footer-grid { grid-template-columns: 1fr; gap: 35px; }
    .footer-grid > div:first-child { grid-column: auto; }
    .footer-bottom { align-items: flex-start; flex-direction: column; gap: 8px; }
    .article-layout { grid-template-columns: 1fr; gap: 30px; padding: 65px 20px 90px; }
    .article-layout aside { display: none; }
    .page-hero h1, .listing-hero h1 { font-size: 58px; }
    .filter-bar { align-items: stretch; flex-direction: column; }
    .archive-row { grid-template-columns: 1fr; }
    .archive-row h2 { font-size: 28px; }
    .article-header { padding-top: 65px; }
    .article-header .back-link { margin-bottom: 35px; }
    .article-header h1 { font-size: 43px; }
    .container-wide { width: 100%; }
    .magazine-detail { padding-top: 60px; }
    .magazine-detail-grid { grid-template-columns: 1fr; }
    .magazine-detail-cover { width: min(85%, 330px); margin: auto; }
    .reader-header { grid-template-columns: auto 1fr auto; padding: 10px 12px; }
    .reader-header > a { font-size: 0; }
    .reader-header > a::before { content: "←"; font-size: 18px; }
    .reader-header button span { display: none; }
    .reader-stage { grid-template-columns: 1fr; padding: 15px 8px; }
    .reader-arrow { position: fixed; z-index: 2; top: 50%; width: 38px; height: 50px; background: rgb(31 37 41 / 70%); }
    .reader-arrow.previous { left: 5px; }
    .reader-arrow.next { right: 5px; }
    .reader-footer { gap: 35px; }
    .photo-record { margin-bottom: 80px; }
    .lightbox { grid-template-columns: 45px minmax(0, 1fr) 45px; padding-inline: 5px; }
    .lightbox-arrow { width: 40px; }
    .search-form { grid-template-columns: 1fr; }
    .search-page-hero .search-form { padding: 15px; }
    .search-result-card { grid-template-columns: 1fr; gap: 18px; }
    .search-result-image { min-height: 0; aspect-ratio: 16 / 9; }
    .search-start { grid-template-columns: 1fr; }
    .search-start-grid { grid-template-columns: 1fr; }
    .search-start-grid a { border-right: 0; border-bottom: 1px solid var(--border-aged); }
    .search-start-grid a:last-child { border-bottom: 0; }
    .contact-form { grid-template-columns: 1fr; }
    .contact-form label, .contact-form label:nth-of-type(3), .contact-form label:nth-of-type(5), .contact-form .button { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Leitura direta de PDFs com a cópia local do PDF.js. */
.pdf-reader-stage figure { align-items: stretch; }
.pdf-canvas-viewport {
    position: relative;
    width: 100%;
    min-height: 0;
    flex: 1;
    overflow: auto;
    border: 1px solid rgb(232 222 201 / 12%);
    background: rgb(5 10 13 / 24%);
    perspective: 1800px;
    perspective-origin: center;
    scrollbar-color: var(--archive-blue-light) rgb(0 0 0 / 15%);
}
.pdf-canvas-viewport canvas {
    display: block;
    max-width: none;
    margin: 12px auto;
    background: #fff;
    box-shadow: 0 22px 65px rgb(0 0 0 / 46%);
}
.pdf-canvas-viewport canvas[hidden] { display: none; }
.pdf-turning-sheet {
    position: absolute;
    z-index: 4;
    overflow: visible;
    border: 1px solid rgb(227 217 198 / 74%);
    background: transparent;
    box-shadow: 0 22px 65px rgb(0 0 0 / 46%);
    pointer-events: none;
    transform: rotateY(0deg) translateZ(1px);
    transform-style: preserve-3d;
    will-change: transform, filter, opacity;
}
.pdf-paper-strip {
    position: absolute;
    top: 0;
    bottom: 0;
    overflow: hidden;
    background: #fff;
    backface-visibility: hidden;
    transform: translateZ(0) rotateY(0deg);
    transform-style: preserve-3d;
    will-change: transform, filter;
}
.pdf-canvas-viewport .pdf-paper-strip canvas {
    width: 100%;
    height: 100%;
    margin: 0;
    box-shadow: none;
    backface-visibility: hidden;
}
.pdf-paper-strip::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, rgb(18 25 29 / 16%), transparent 36%, rgb(255 255 255 / 18%));
    opacity: 0;
    pointer-events: none;
}
.pdf-turning-sheet::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, rgb(12 18 22 / 32%), transparent 18%, transparent 70%, rgb(255 255 255 / 24%));
    opacity: 0;
    pointer-events: none;
}
.pdf-turning-sheet.is-next { transform-origin: left center; }
.pdf-turning-sheet.is-previous { transform-origin: right center; }
.pdf-turning-sheet.is-active.is-next { animation: pdf-turn-next .64s cubic-bezier(.58, .08, .32, .98) forwards; }
.pdf-turning-sheet.is-active.is-previous { animation: pdf-turn-previous .64s cubic-bezier(.58, .08, .32, .98) forwards; }
.pdf-turning-sheet.is-active::after { animation: pdf-turn-shadow .64s ease forwards; }
.pdf-turning-sheet.is-active .pdf-paper-strip {
    animation: pdf-paper-flex .54s cubic-bezier(.42, 0, .2, 1) var(--paper-delay) both;
}
.pdf-turning-sheet.is-active .pdf-paper-strip::after {
    animation: pdf-paper-fiber-shadow .54s ease var(--paper-delay) both;
}
@keyframes pdf-turn-next {
    0% { opacity: 1; transform: rotateY(0deg) translateZ(1px); filter: brightness(1); }
    58% { opacity: 1; filter: brightness(.72); box-shadow: 18px 22px 45px rgb(0 0 0 / 48%); }
    100% { opacity: 0; transform: rotateY(-96deg) translateZ(1px); filter: brightness(.56); }
}
@keyframes pdf-turn-previous {
    0% { opacity: 1; transform: rotateY(0deg) translateZ(1px); filter: brightness(1); }
    58% { opacity: 1; filter: brightness(.72); box-shadow: -18px 22px 45px rgb(0 0 0 / 48%); }
    100% { opacity: 0; transform: rotateY(96deg) translateZ(1px); filter: brightness(.56); }
}
@keyframes pdf-turn-shadow {
    0%, 100% { opacity: 0; }
    48% { opacity: 1; }
}
@keyframes pdf-paper-flex {
    0% { transform: translateZ(0) rotateY(0deg) scaleX(1); filter: brightness(1); }
    38% { transform: translateZ(var(--paper-bend)) rotateY(var(--paper-tilt)) scaleX(1.035); filter: brightness(.86); }
    72% { transform: translateZ(var(--paper-return)) rotateY(var(--paper-return-tilt)) scaleX(.985); filter: brightness(.94); }
    100% { transform: translateZ(0) rotateY(0deg) scaleX(1); filter: brightness(1); }
}
@keyframes pdf-paper-fiber-shadow {
    0%, 100% { opacity: 0; }
    38% { opacity: .9; }
    72% { opacity: .28; }
}
.pdf-reader-status,
.pdf-reader-error {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    margin: 0;
    transform: translate(-50%, -50%);
    color: rgb(255 255 255 / 76%);
    font: 500 12px/1.5 Inter, Arial, sans-serif;
    letter-spacing: .08em;
    text-align: center;
    text-transform: uppercase;
}
.pdf-reader-status[hidden],
.pdf-reader-error[hidden] { display: none; }
.pdf-reader-error {
    display: grid;
    width: min(440px, calc(100% - 32px));
    gap: 12px;
    justify-items: center;
    padding: 26px;
    border: 1px solid rgb(232 222 201 / 35%);
    background: rgb(12 18 22 / 92%);
    text-transform: none;
}
.pdf-reader-error strong { color: #fff; font-size: 16px; }
.pdf-reader-error span { color: rgb(255 255 255 / 66%); }
.pdf-reader-error .button { color: var(--archive-blue-dark); }

@media (max-width: 620px) {
    .pdf-canvas-viewport canvas { margin-block: 6px; }
    .pdf-reader .reader-footer > span { min-width: 115px; }
}

/* Estatuto, assinatura institucional e legibilidade de títulos acentuados. */
.is-home-view #conteudo,
.is-interior-view:not(.is-reader-view) #conteudo { position: relative; isolation: isolate; }
.is-home-view #conteudo::before,
.is-interior-view:not(.is-reader-view) #conteudo::before {
    content: "";
    position: absolute;
    z-index: 3;
    top: clamp(520px, 70vh, 760px);
    right: max(-155px, -9vw);
    width: min(520px, 50vw);
    aspect-ratio: 1;
    pointer-events: none;
    background: #82704f;
    opacity: .012;
    -webkit-mask: url("../imagens/marca-institucional-iho-transparente.png") center / contain no-repeat;
            mask: url("../imagens/marca-institucional-iho-transparente.png") center / contain no-repeat;
}
.is-home-view #conteudo > *,
.is-interior-view:not(.is-reader-view) #conteudo > * { position: relative; z-index: 1; }
.hero h1,
.page-hero h1,
.listing-hero h1,
.gallery-detail-header h1,
.collection-public-hero h1,
.contact-grid > div h2,
.institutional-cta h2,
.magazine-detail-copy h1,
.statute-hero h1 { line-height: 1.12; overflow-wrap: break-word; text-wrap: pretty; padding-top: .08em; }

.statute-hero { position: relative; overflow: hidden; padding: clamp(72px, 9vw, 128px) 0; color: #fff; background-color: var(--archive-blue-dark); background-image: radial-gradient(ellipse at 80% 20%, rgb(79 107 122 / 72%), transparent 42%), repeating-linear-gradient(90deg, transparent 0 5px, rgb(255 255 255 / 2%) 6px); }
.statute-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; }
.statute-hero h1 { max-width: 850px; margin: 22px 0; font: 500 clamp(48px, 7.5vw, 94px)/1.12 Oswald, sans-serif; letter-spacing: -.025em; text-transform: uppercase; }
.statute-hero p { max-width: 700px; color: rgb(255 255 255 / 78%); font: 400 clamp(17px, 2vw, 21px)/1.7 Lora, serif; }
.statute-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.statute-actions .button:first-child { border-color: var(--paper); color: var(--archive-blue-dark); background: var(--paper); box-shadow: 0 8px 24px rgb(0 0 0 / 18%); }
.statute-actions .button:first-child:hover { color: #fff; background: var(--archive-blue); }
.statute-actions .button-outline { border-color: rgb(255 255 255 / 58%); color: #fff; }
.statute-introduction { display: grid; grid-template-columns: 170px minmax(0, 760px); justify-content: center; gap: 45px; padding-top: 65px; padding-bottom: 65px; border-bottom: 3px double var(--archive-blue); }
.statute-introduction > span { color: var(--archive-blue-dark); font-size: 10px; font-weight: 800; letter-spacing: .18em; }
.statute-introduction p { margin: 0; color: var(--ink); font: 500 clamp(19px, 2.5vw, 27px)/1.65 Lora, serif; }
.statute-reader-shell { width: min(1440px, calc(100% - 32px)); margin: 70px auto; border: 8px solid color-mix(in srgb, var(--archive-blue-dark) 88%, black); box-shadow: var(--shadow); }
.statute-reader-shell .reader { height: min(830px, 88vh); min-height: 620px; }
.statute-reader-shell:fullscreen { width: 100%; margin: 0; border: 0; background: var(--archive-blue-dark); }
.statute-reader-shell:fullscreen .reader { height: 100vh; }
.statute-download-callout { display: flex; align-items: center; justify-content: space-between; gap: 35px; margin-top: 55px; margin-bottom: 110px; padding: 35px 40px; border-block: 3px double var(--archive-blue); background: rgb(255 255 255 / 13%); }
.statute-download-callout span { color: var(--archive-blue); font-size: 10px; font-weight: 800; letter-spacing: .2em; }
.statute-download-callout h2 { margin: 6px 0; color: var(--ink); font: 600 clamp(27px, 3vw, 39px)/1.2 Lora, serif; }
.statute-download-callout p { margin: 0; }
.magazine-reader-actions { padding: 16px; border: 2px solid var(--archive-blue); background: rgb(255 255 255 / 18%); }
.magazine-reader-actions .button { min-height: 52px; font-size: 12px; }
.magazine-reader-actions .button-outline { border-width: 2px; font-weight: 800; }

@media (max-width: 820px) {
    .statute-hero-grid { grid-template-columns: 1fr; }
    .statute-introduction { grid-template-columns: 1fr; gap: 15px; }
    .statute-reader-shell { width: 100%; margin: 35px 0; border-width: 3px; }
    .statute-reader-shell .reader { height: 78vh; min-height: 560px; }
    .statute-download-callout { align-items: flex-start; flex-direction: column; padding: 28px 22px; }
}

@media (max-width: 560px) {
    .hero h1,
    .page-hero h1,
    .listing-hero h1,
    .contact-grid > div h2,
    .statute-hero h1 { letter-spacing: -.01em; line-height: 1.16; }
}

/* Registro de Acervo público e ações da hemeroteca */
.count-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
a.count-item { color: inherit; transition: background .22s ease; }
a.count-item:hover { background: rgb(255 255 255 / 7%); }
.magazine-reader-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 20px; }
.magazine-reader-actions .button { margin: 0; }
.button-outline { border: 1px solid var(--archive-blue); color: var(--archive-blue-dark); background: transparent; }
.button-outline:hover { color: #fff; background: var(--archive-blue); }
.collection-public-hero { position: relative; overflow: hidden; padding: clamp(90px, 12vw, 155px) 0 clamp(65px, 8vw, 100px); color: #f4efdf; background: linear-gradient(120deg, rgb(23 50 62 / 96%), rgb(40 77 92 / 91%)); }
.collection-public-hero::before { content: "ACERVO"; position: absolute; right: -1vw; bottom: -4vw; color: rgb(255 255 255 / 4%); font: 600 clamp(110px, 21vw, 310px)/.8 Oswald, sans-serif; }
.collection-public-hero .container { position: relative; z-index: 1; }
.collection-public-hero h1 { max-width: 900px; margin: 18px 0; font: 500 clamp(50px, 8vw, 100px)/.92 Oswald, sans-serif; letter-spacing: -.03em; text-transform: uppercase; }
.collection-public-hero p { max-width: 680px; margin: 0; color: rgb(255 255 255 / 72%); font: 400 clamp(16px, 2vw, 20px)/1.65 Lora, serif; }
.collection-public-intro { display: grid; grid-template-columns: 90px minmax(0, 760px); gap: clamp(25px, 5vw, 75px); margin-bottom: clamp(45px, 7vw, 80px); }
.collection-public-intro h2 { margin: 12px 0 18px; font: 500 clamp(38px, 5vw, 65px)/1 Oswald, sans-serif; text-transform: uppercase; }
.collection-public-intro p { margin: 0; color: var(--ink-soft); font: 400 17px/1.75 Lora, serif; }
.collection-public-numbers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: 3px double var(--archive-blue); }
.collection-public-numbers article { min-width: 0; padding: clamp(25px, 4vw, 45px) clamp(16px, 3vw, 32px); border-right: 1px solid var(--border-aged); }
.collection-public-numbers article:last-child { border-right: 0; }
.collection-public-numbers strong { display: block; color: var(--archive-blue-dark); font: 500 clamp(45px, 7vw, 86px)/1 Oswald, sans-serif; }
.collection-public-numbers span { display: block; margin-top: 13px; color: var(--sepia); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }

@media (max-width: 900px) {
    .count-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .count-item { border-bottom: 1px solid rgb(255 255 255 / 20%); }
    .count-item:nth-child(2n) { border-right: 0; }
    .count-item:last-child { grid-column: 1 / -1; border-bottom: 0; }
    .collection-public-numbers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .collection-public-numbers article:nth-child(2) { border-right: 0; }
    .collection-public-numbers article:nth-child(-n+2) { border-bottom: 1px solid var(--border-aged); }
}

@media (max-width: 620px) {
    .collection-public-intro { grid-template-columns: 1fr; }
    .collection-public-numbers { grid-template-columns: 1fr; }
    .collection-public-numbers article { border-right: 0; border-bottom: 1px solid var(--border-aged); }
    .collection-public-numbers article:last-child { border-bottom: 0; }
    .count-grid { grid-template-columns: 1fr; }
    .count-item,
    .count-item:nth-child(2n) { border-right: 0; border-bottom: 1px solid rgb(255 255 255 / 20%); }
    .count-item:last-child { grid-column: auto; border-bottom: 0; }
}

/* Direção visual baseada no guia Modelo.png: arquivo editorial impresso. */
:root {
    --container: min(1280px, calc(100vw - 48px));
    --shadow: 0 8px 18px rgb(47 45 42 / 15%), 0 1px 2px rgb(47 45 42 / 18%);
}

body {
    background-color: var(--paper);
    background-image:
        radial-gradient(ellipse at 9% 4%, rgb(140 122 92 / 9%) 0, transparent 24%),
        radial-gradient(ellipse at 92% 31%, rgb(183 167 140 / 10%) 0, transparent 28%),
        radial-gradient(ellipse at 42% 92%, rgb(255 251 238 / 15%) 0, transparent 31%),
        linear-gradient(rgb(223 210 183 / 96%), rgb(223 210 183 / 96%));
}

body::before {
    opacity: .047;
    background-size: 190px 190px;
    mix-blend-mode: multiply;
}

.site-header {
    background: rgb(232 222 201 / 94%);
    box-shadow: 0 4px 16px rgb(47 45 42 / 7%);
    backdrop-filter: blur(8px);
}

.header-rule { height: 3px; background: var(--archive-blue); }
.header-inner { min-height: 86px; }
.brand { gap: 12px; }
.brand-monogram {
    width: 54px;
    height: 54px;
    border: 2px solid rgb(232 222 201 / 72%);
    box-shadow: 0 3px 12px rgb(0 0 0 / 20%);
}
.brand-copy { gap: 0; font-family: Oswald, Arial Narrow, sans-serif; text-transform: uppercase; }
.brand-copy strong { font-size: 14px; font-weight: 600; letter-spacing: .025em; line-height: 1; }
.brand-copy strong + strong { margin-top: 2px; }
.brand-copy small { margin-top: 6px; color: var(--archive-blue); font-size: 7px; font-weight: 700; letter-spacing: .13em; }
.main-nav { gap: clamp(15px, 2vw, 29px); font: 500 10px/1 Oswald, Arial Narrow, sans-serif; letter-spacing: .045em; }
.main-nav a::after { bottom: 2px; height: 2px; }

.hero {
    height: clamp(600px, 72vh, 760px);
    min-height: 600px;
    color: var(--ink);
    background: var(--paper-light);
    border-bottom: 1px solid var(--border-aged);
}
.hero-slide {
    bottom: 96px;
    background-color: var(--paper-light);
    background-image:
        linear-gradient(90deg, rgb(232 222 201 / 98%) 0 45%, rgb(232 222 201 / 69%) 64%, rgb(223 210 183 / 40%)),
        radial-gradient(circle at 80% 30%, rgb(140 122 92 / 11%), transparent 35%);
}
.hero-slide::after {
    opacity: .06;
    background-image: repeating-linear-gradient(0deg, transparent 0 3px, rgb(47 45 42 / 8%) 4px);
    mix-blend-mode: multiply;
}
.hero-slide .hero-slider-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: none; }
.hero-slide .hero-slider-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.8) sepia(.08) contrast(.96); }
.hero-play-toggle { position: absolute; z-index: 6; right: 18px; top: 18px; min-height: 36px; padding: 8px 12px; border: 1px solid rgb(232 222 201 / 50%); color: #f5efdf; background: rgb(24 34 41 / 76%); cursor: pointer; font-size: 12px; }
@media (max-width: 760px) { .hero-play-toggle { top: 10px; right: 10px; font-size: 11px; } .hero-slide .hero-slider-video { object-position: 50% 50%; } }
.hero-slide-texture { background: var(--paper-light); }
.hero-slide-texture::before { content: none; }

@supports ((mask-image: linear-gradient(#000, transparent)) or (-webkit-mask-image: linear-gradient(#000, transparent))) {
    .hero.has-mask-transitions .hero-slide { transition: none; }
    .hero.has-mask-transitions .hero-slide.is-active { z-index: 3; }
    .hero.has-mask-transitions .hero-slide.is-mask-next { z-index: 2; opacity: 1; visibility: visible; }
    .hero.has-mask-transitions .hero-slide.is-mask-leaving {
        z-index: 4;
        opacity: 1;
        visibility: visible;
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 100' preserveAspectRatio='none'%3E%3Cfilter id='rough' x='-10%25' y='-20%25' width='120%25' height='140%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.018 .16' numOctaves='2' seed='11' result='noise'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='noise' scale='28' xChannelSelector='R' yChannelSelector='B'/%3E%3C/filter%3E%3Cpath filter='url(%23rough)' fill='white' d='M0 0H610L585 4L635 9L575 14L645 20L590 25L625 31L568 37L648 43L582 49L638 55L572 61L646 67L588 73L630 79L570 85L640 91L600 96L615 100H0Z'/%3E%3C/svg%3E");
                mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 100' preserveAspectRatio='none'%3E%3Cfilter id='rough' x='-10%25' y='-20%25' width='120%25' height='140%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.018 .16' numOctaves='2' seed='11' result='noise'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='noise' scale='28' xChannelSelector='R' yChannelSelector='B'/%3E%3C/filter%3E%3Cpath filter='url(%23rough)' fill='white' d='M0 0H610L585 4L635 9L575 14L645 20L590 25L625 31L568 37L648 43L582 49L638 55L572 61L646 67L588 73L630 79L570 85L640 91L600 96L615 100H0Z'/%3E%3C/svg%3E");
        -webkit-mask-repeat: no-repeat;
                mask-repeat: no-repeat;
        -webkit-mask-size: 300% 100%;
                mask-size: 300% 100%;
        -webkit-mask-position: 0 0;
                mask-position: 0 0;
        will-change: -webkit-mask-position, mask-position;
        -webkit-animation: iho-mask-slide 1.35s steps(22) forwards;
                animation: iho-mask-slide 1.35s steps(22) forwards;
    }
}

@-webkit-keyframes iho-mask-slide {
    from { -webkit-mask-position: 0 0; mask-position: 0 0; }
    to { -webkit-mask-position: 100% 0; mask-position: 100% 0; }
}
@keyframes iho-mask-slide {
    from { -webkit-mask-position: 0 0; mask-position: 0 0; }
    to { -webkit-mask-position: 100% 0; mask-position: 100% 0; }
}
.hero-content {
    display: grid;
    grid-template-columns: minmax(420px, .88fr) minmax(460px, 1.12fr);
    gap: clamp(30px, 5vw, 80px);
    align-items: center;
    padding: 34px 0 55px;
}
.hero-copy { position: relative; z-index: 3; }
.hero h1 {
    max-width: 720px;
    margin: 18px 0 15px;
    color: var(--ink);
    font-size: clamp(54px, 5.8vw, 87px);
    line-height: .94;
    letter-spacing: -.018em;
    text-shadow: 0 1px rgb(255 255 255 / 40%);
}
.hero-accent {
    display: block;
    width: min(310px, 70%);
    height: 5px;
    margin: 17px 0;
    border-block: 1px solid var(--archive-blue);
}
.hero-content p {
    max-width: 440px;
    margin-bottom: 24px;
    color: var(--graphite);
    font-size: 17px;
    line-height: 1.5;
}
.hero-art {
    position: relative;
    align-self: stretch;
    min-height: 380px;
    overflow: hidden;
    border-left: 1px solid rgb(79 107 122 / 30%);
}
.hero-art::before {
    content: "";
    position: absolute;
    z-index: 2;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, var(--paper-light) 0, transparent 24%),
        linear-gradient(0deg, rgb(232 222 201 / 65%), transparent 28%);
}
.hero-art img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(62%) sepia(20%) contrast(88%) brightness(1.02) saturate(70%);
    opacity: .76;
    mix-blend-mode: multiply;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24%, #000 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 24%, #000 100%);
}
.hero-archive-mark {
    position: absolute;
    inset: 13% 8% 12% 14%;
    display: grid;
    place-content: center;
    color: var(--archive-blue-dark);
    border: 1px solid rgb(79 107 122 / 25%);
    background:
        linear-gradient(90deg, transparent 49.7%, rgb(79 107 122 / 18%) 50%, transparent 50.3%),
        linear-gradient(0deg, transparent 49.7%, rgb(79 107 122 / 18%) 50%, transparent 50.3%);
    opacity: .7;
    transform: rotate(-1.2deg);
}
.hero-archive-mark::before,
.hero-archive-mark::after {
    content: "";
    position: absolute;
    border: 2px solid currentColor;
    opacity: .18;
}
.hero-archive-mark::before { inset: 12% 18%; }
.hero-archive-mark::after { inset: 20% 27%; border-width: 1px; }
.hero-archive-mark span { font: 600 clamp(100px, 14vw, 190px)/.85 Oswald, sans-serif; letter-spacing: -.06em; }
.hero-archive-mark i { display: block; width: 100%; height: 6px; margin: 18px 0 14px; border-block: 1px solid var(--archive-blue); }
.hero-archive-mark small { font: 600 10px/1 Inter, sans-serif; letter-spacing: .2em; text-align: center; text-transform: uppercase; }
.hero-art-year { position: absolute; z-index: 3; right: 14px; bottom: 10px; color: var(--sepia); font: 500 9px/1 Oswald, sans-serif; letter-spacing: .18em; }
.hero-controls { bottom: 111px; }
.hero-controls button {
    border-color: var(--archive-blue);
    color: var(--archive-blue-dark);
    background: rgb(232 222 201 / 82%);
}
.hero-controls span { color: var(--sepia); }
.hero-shortcuts {
    position: absolute;
    z-index: 6;
    right: 0;
    bottom: 0;
    left: 0;
    height: 96px;
    border-top: 1px solid var(--border-aged);
    background: rgb(223 210 183 / 94%);
    box-shadow: 0 -4px 12px rgb(47 45 42 / 5%);
}
.hero-shortcuts .container { display: grid; height: 100%; grid-template-columns: repeat(5, 1fr); }
.hero-shortcuts a {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 7px;
    border-right: 1px solid var(--border-aged);
    color: var(--ink);
    font: 500 10px/1 Oswald, sans-serif;
    letter-spacing: .04em;
    text-transform: uppercase;
    transition: color .25s, background .25s;
}
.hero-shortcuts a:first-child { border-left: 1px solid var(--border-aged); }
.hero-shortcuts a:hover { color: var(--paper-light); background: var(--archive-blue); }
.hero-shortcuts svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: square; stroke-linejoin: miter; }

.section { padding: clamp(76px, 8vw, 112px) 0; }
.about-home h2,
.section-heading h2 {
    font-size: clamp(40px, 4.8vw, 65px);
    letter-spacing: .015em;
}
.section-heading { position: relative; margin-bottom: 46px; padding-top: 18px; border-top: 3px double var(--archive-blue); }
.section-heading::before {
    content: "";
    position: absolute;
    top: -6px;
    left: 0;
    width: 110px;
    height: 7px;
    background: var(--paper);
}
.section-heading.inverse { border-color: var(--archive-blue-light); }
.section-heading.inverse::before { background: var(--archive-blue-dark); }
.editorial-split { grid-template-columns: 70px 1.1fr 1fr; }
.lead-copy { border-top: 3px double var(--archive-blue); }

.archive-counts {
    background-color: var(--archive-blue-dark);
    background-image:
        radial-gradient(circle at 20% 20%, rgb(118 145 158 / 18%), transparent 30%),
        url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E");
}
.archive-counts::after { font-size: 220px; }
.count-item strong { font-size: clamp(44px, 5vw, 72px); }

.news-grid { gap: 20px; }
.news-card {
    padding: 12px;
    border: 1px solid var(--border-aged);
    background: rgb(232 222 201 / 54%);
    box-shadow: 2px 3px 0 rgb(140 122 92 / 8%);
}
.card-image,
.archive-thumb,
.gallery-index-image { position: relative; border: 1px solid rgb(183 167 140 / 65%); }
.card-image::after,
.archive-thumb::after,
.gallery-index-image::after,
.gallery-teaser::before {
    content: "";
    position: absolute;
    z-index: 2;
    inset: 0;
    pointer-events: none;
    opacity: .11;
    background-image: radial-gradient(circle, var(--ink) .55px, transparent .7px);
    background-size: 4px 4px;
    mix-blend-mode: multiply;
}
.card-image img,
.archive-thumb img,
.gallery-teaser img,
.gallery-index-image img {
    filter: grayscale(35%) sepia(18%) contrast(92%) brightness(98%) saturate(85%);
}
.card-copy h3 { font-family: Oswald, Arial Narrow, sans-serif; font-size: 27px; letter-spacing: .015em; text-transform: uppercase; }
.news-card-featured .card-copy h3 { font-size: 34px; }

.magazines-home { background: rgb(232 222 201 / 66%); }
.magazine-cover {
    border: 8px solid var(--paper-light);
    outline: 1px solid var(--border-aged);
    box-shadow: 4px 6px 0 rgb(47 45 42 / 9%), var(--shadow);
}
.magazine-card h3,
.magazine-card h2 { font-family: Oswald, Arial Narrow, sans-serif; letter-spacing: .025em; text-transform: uppercase; }

.gallery-teaser { border: 8px solid var(--paper-light); outline: 1px solid var(--border-aged); }
.gallery-teaser h3 { font-family: Oswald, Arial Narrow, sans-serif; letter-spacing: .02em; text-transform: uppercase; }
.institutional-cta {
    background-color: var(--archive-blue);
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E");
}

.site-footer {
    background-color: var(--archive-blue-dark);
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.10'/%3E%3C/svg%3E");
    border-top: 5px solid var(--archive-blue);
}

.page-hero,
.listing-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(70px, 8vw, 105px) 0 clamp(55px, 6vw, 82px);
    background-color: var(--paper-light);
    background-image:
        linear-gradient(90deg, transparent 0 68%, rgb(140 122 92 / 8%)),
        radial-gradient(circle at 86% 40%, rgb(79 107 122 / 9%), transparent 25%);
}
.page-hero::after,
.listing-hero::after {
    content: "ARQUIVO · IHO";
    position: absolute;
    right: 2vw;
    bottom: -18px;
    color: rgb(47 45 42 / 4%);
    font: 600 90px/1 Oswald, sans-serif;
    letter-spacing: .03em;
}
.page-hero h1,
.listing-hero h1 { font-size: clamp(52px, 7vw, 82px); letter-spacing: .02em; }
.filter-bar {
    border-width: 1px;
    border-top: 4px solid var(--archive-blue);
    border-radius: 2px;
    background: rgb(232 222 201 / 72%);
    box-shadow: 2px 3px 0 rgb(140 122 92 / 8%);
}
.archive-row { padding: 32px 14px; }
.archive-row:nth-child(odd) { background: rgb(232 222 201 / 25%); }
.archive-row h2,
.gallery-index-grid h2 { font-family: Oswald, Arial Narrow, sans-serif; letter-spacing: .025em; text-transform: uppercase; }
.article-header h1,
.gallery-detail-header h1,
.magazine-detail-copy h1 { font-family: Oswald, Arial Narrow, sans-serif; letter-spacing: .015em; text-transform: uppercase; }
.rich-text { font-size: 17px; line-height: 1.8; }
.contact-form { padding: 28px; border: 1px solid var(--border-aged); border-top: 4px solid var(--archive-blue); background: rgb(232 222 201 / 55%); }
.button { border-radius: 1px; }

@media (max-width: 980px) {
    .main-nav { gap: 14px; }
    .main-nav a:first-child { display: none; }
    .hero-content { grid-template-columns: 1fr 1fr; }
    .hero h1 { font-size: clamp(48px, 7vw, 65px); }
    .hero-archive-mark span { font-size: 110px; }
}

@media (max-width: 900px) {
    :root { --container: min(100% - 32px, 760px); }
    button.nav-toggle {
        position: absolute;
        top: 14px;
        right: 0;
        z-index: 80;
        display: grid !important;
        width: 43px;
        height: 43px;
        flex: 0 0 43px;
        place-content: center;
        margin-left: auto;
        border: 1px solid var(--border-aged);
        background: rgb(223 210 183 / 45%);
    }
    .nav-toggle > span:not(.sr-only) { width: 22px; margin: 3px; }
    .main-nav a:first-child { display: block; }
    .hero { height: 680px; }
    .hero-slide { bottom: 88px; }
    .hero-content { grid-template-columns: 1.12fr .88fr; gap: 20px; }
    .hero-art { min-height: 340px; }
    .hero-shortcuts { height: 88px; }
    .hero-controls { bottom: 101px; }
}

@media (max-width: 620px) {
    :root { --container: calc(100% - 28px); }
    .header-inner { min-height: 72px; }
    .brand-monogram { width: 45px; height: 45px; }
    .brand-copy { display: flex; }
    .brand-copy strong { font-size: 11px; }
    .brand-copy small { display: none; }
    .main-nav { top: 75px; }
    .hero { height: 650px; min-height: 650px; }
    .hero-slide { bottom: 79px; }
    .hero-content { display: block; padding-top: 48px; padding-bottom: 35px; }
    .hero-copy { max-width: 94%; }
    .hero h1 { font-size: clamp(45px, 13vw, 60px); }
    .hero-content p { max-width: 88%; font-size: 15px; }
    .hero-art { position: absolute; right: -12%; bottom: 12px; width: 64%; min-height: 220px; border-left: 0; opacity: .32; }
    .hero-archive-mark { inset: 12%; }
    .hero-archive-mark span { font-size: 90px; }
    .hero-art-year { display: none; }
    .hero-shortcuts { height: 79px; overflow-x: auto; }
    .hero-shortcuts .container { width: max-content; min-width: 100%; grid-template-columns: repeat(5, 88px); }
    .hero-shortcuts a { font-size: 8px; }
    .hero-shortcuts svg { width: 23px; height: 23px; }
    .hero-controls { right: 14px; bottom: 92px; left: auto; width: auto; }
    .hero-controls button { width: 36px; height: 36px; }
    .section-heading { padding-top: 14px; }
    .news-card { padding: 10px; }
    .page-hero::after,
    .listing-hero::after { font-size: 55px; }
    .contact-form { padding: 18px; }
}

/* O controle móvel parte visível e é removido apenas em telas largas. */
button.nav-toggle {
    position: absolute;
    z-index: 80;
    top: 14px;
    right: max(16px, calc((100vw - 1280px) / 2));
    display: grid !important;
    width: 43px;
    height: 43px;
    place-content: center;
    padding: 0;
    border: 1px solid var(--border-aged);
    background: rgb(223 210 183 / 70%);
}

@media (min-width: 901px) {
    button.nav-toggle { display: none !important; }
}

/* Camada final de legibilidade e responsividade. */
html,
body { max-width: 100%; overflow-x: clip; }
body { font-size: 17px; }
.brand-copy strong { font-size: 17px; line-height: 1.08; }
.brand-copy small { font-size: 11px; }
.main-nav { font-size: 15px; line-height: 1.25; }
.main-nav a { min-height: 44px; display: inline-flex; align-items: center; }
.eyebrow,
.institutional-cta > div > span { font-size: 12px; line-height: 1.5; }
.button,
.text-link { font-size: 13px; line-height: 1.35; }
.hero-controls span,
.hero-index,
.hero-art-year,
.hero-shortcuts a,
.count-item span,
.image-placeholder small,
.card-copy time,
.archive-row time,
.magazine-card p,
.magazine-meta,
.footer-grid h2,
.footer-bottom,
.article-layout aside,
.back-link,
.article-header time,
.byline,
.article-cover figcaption,
.filter-bar label span,
.contact-form label span,
.gallery-index-grid article > a > span,
.photo-caption dl div,
.tags span,
.search-results article > span,
.contact-index,
.error-page span { font-size: 12px; line-height: 1.5; }
.card-copy p,
.archive-row p,
.prose p,
.footer-grid p,
.footer-grid a,
.gallery-intro,
.photo-caption p { font-size: 17px; line-height: 1.75; }
.pagination a { width: 46px; height: 46px; font-size: 14px; }
.filter-bar input,
.filter-bar select,
.search-form input,
.search-form select,
.contact-form input,
.contact-form select,
.contact-form textarea { min-height: 48px; font-size: 16px; }
.lightbox button { min-width: 48px; min-height: 48px; }

@media (max-width: 900px) {
    .header-inner { position: relative; }
    button.nav-toggle {
        position: absolute;
        z-index: 1002;
        top: 14px;
        right: 0;
        display: grid !important;
        visibility: visible;
        opacity: 1;
    }
    .main-nav { font-size: 16px; line-height: 1.4; }
    .main-nav a { min-height: 48px; }
    .filter-bar { flex-wrap: wrap; }
    .filter-bar label { flex: 1 1 220px; }
}

@media (max-width: 620px) {
    body { font-size: 16px; }
    .brand-copy strong { font-size: 14px; }
    .hero-content p { font-size: 17px; }
    .hero-shortcuts a { font-size: 11px; }
    .page-hero h1,
    .listing-hero h1 { font-size: clamp(43px, 14vw, 58px); }
    .article-header h1 { font-size: clamp(38px, 11vw, 48px); }
    .gallery-detail-header h1 { font-size: clamp(36px, 11vw, 48px); letter-spacing: -.035em; }
    .article-header > p { font-size: 19px; }
    .footer-bottom { flex-direction: column; gap: 8px; }
}

.gallery-detail-header { overflow: hidden; }
.gallery-detail-header h1 { max-width: 100%; overflow-wrap: anywhere; hyphens: auto; }

/* Galeria pública inspirada no movimento tridimensional por rolagem. */
.rotating-gallery-shell { position: relative; overflow: clip; color: #f2ead9; background: #1f292f; isolation: isolate; }
.rotating-gallery-shell::before { content: ""; position: fixed; z-index: 0; inset: 0; pointer-events: none; opacity: .16; background: radial-gradient(circle at 50% 45%, transparent 5%, #11191d 75%); }
.rotating-gallery-mark { position: sticky; z-index: 1; top: 50vh; height: 0; overflow: visible; pointer-events: none; mix-blend-mode: screen; }
.rotating-gallery-mark > div { display: flex; width: max-content; gap: 3vw; will-change: transform; }
.rotating-gallery-mark span,
.rotating-gallery-mark i { color: rgb(183 167 140 / 45%); font: 600 clamp(46px, 11vw, 145px)/.85 "Arial Narrow", Arial, sans-serif; letter-spacing: -.03em; white-space: nowrap; text-transform: uppercase; }
.rotating-gallery-mark i { font-style: normal; }
.rotating-gallery-track { position: relative; z-index: 2; padding: 24vh 0 34vh; }
.rotating-gallery-item-wrap { width: min(620px, calc(100vw - 120px)); margin: 0 auto -38px; perspective: 1100px; will-change: transform; }
.rotating-gallery-item { overflow: hidden; border: 1px solid rgb(232 222 201 / 22%); background: #29363e; box-shadow: 0 35px 90px rgb(0 0 0 / 42%); transform-style: preserve-3d; will-change: transform; }
.rotating-gallery-photo { display: block; width: 100%; aspect-ratio: 14 / 9; overflow: hidden; padding: 0; border: 0; background: #101619; cursor: zoom-in; }
.rotating-gallery-photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(20%) sepia(8%) contrast(95%); transition: filter .35s, scale .5s; }
.rotating-gallery-photo:hover img { filter: none; scale: 1.015; }
.rotating-gallery-caption { display: grid; grid-template-columns: 72px 1fr; gap: 18px; padding: 20px 23px 24px; border-top: 1px solid rgb(232 222 201 / 18%); }
.rotating-gallery-caption > span { color: #b7a78c; font: 600 15px/1.2 Arial, sans-serif; letter-spacing: .12em; }
.rotating-gallery-caption h2 { margin: 0; color: #fff; font: 600 clamp(25px, 4vw, 37px)/1.08 "Arial Narrow", Arial, sans-serif; text-transform: uppercase; }
.rotating-gallery-caption p { margin: 10px 0 0; color: rgb(242 234 217 / 78%); font-size: 16px; line-height: 1.65; }
.rotating-gallery-caption dl { display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 14px 0 0; }
.rotating-gallery-caption dl div { display: flex; gap: 8px; font-size: 13px; }
.rotating-gallery-caption dt { color: #b7a78c; text-transform: uppercase; }
.rotating-gallery-caption dd { margin: 0; }
.rotating-gallery-caption .tags { margin-top: 14px; }
.rotating-gallery-caption .tags span { border-color: rgb(232 222 201 / 28%); color: #e8dec9; }

@media (max-width: 760px) {
    .rotating-gallery-track { padding: 16vh 0 24vh; }
    .rotating-gallery-item-wrap { width: min(520px, calc(100vw - 46px)); margin-bottom: 34px; }
    .rotating-gallery-caption { grid-template-columns: 45px 1fr; gap: 10px; padding: 17px; }
    .rotating-gallery-caption p { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
    .rotating-gallery-item-wrap,
    .rotating-gallery-item,
    .rotating-gallery-mark > div { transform: none !important; }
    .rotating-gallery-item-wrap { margin-bottom: 45px; }
}

/* Linguagem editorial baseada no painel de identidade visual do IHO. */
body {
    background-color: var(--paper);
    background-image:
        radial-gradient(ellipse at 9% 4%, rgb(140 122 92 / 13%) 0, transparent 19%),
        radial-gradient(ellipse at 87% 17%, rgb(79 107 122 / 7%) 0, transparent 23%),
        radial-gradient(ellipse at 38% 72%, rgb(140 122 92 / 7%) 0, transparent 26%),
        linear-gradient(92deg, rgb(255 255 255 / 5%), transparent 35%, rgb(47 45 42 / 3%));
    background-attachment: fixed;
}
body::before {
    opacity: .052;
    background-size: 210px 210px;
    mix-blend-mode: multiply;
}
.public-site-frame { min-height: 100vh; }
.public-site-stage { min-width: 0; }
.site-header {
    background-color: rgb(232 222 201 / 96%);
    background-image:
        radial-gradient(circle at 12% 25%, rgb(140 122 92 / 7%), transparent 23%),
        linear-gradient(90deg, transparent, rgb(255 255 255 / 8%), transparent);
    box-shadow: 0 5px 18px rgb(47 45 42 / 5%);
}
.hero-shortcuts {
    background-color: rgb(223 210 183 / 96%);
    background-image:
        radial-gradient(ellipse at 18% 0, rgb(140 122 92 / 9%), transparent 35%),
        linear-gradient(90deg, rgb(255 255 255 / 7%), transparent 36%, rgb(47 45 42 / 3%));
}
.hero-shortcuts a { border-color: rgb(140 122 92 / 48%); }
.hero-shortcuts a:hover { background-color: var(--archive-blue); }
.section-heading { border-top-color: var(--archive-blue); }
.section-heading::after {
    content: "";
    position: absolute;
    top: -6px;
    right: 0;
    width: 9px;
    height: 9px;
    border: 1px solid var(--archive-blue);
    background: var(--paper);
    transform: rotate(45deg);
}
.magazines-home .section-heading::after { background: var(--paper-light); }

.archive-sidebar { display: none; }

@media (min-width: 1101px) {
    .has-archive-sidebar { --container: min(1080px, calc(100% - 64px)); }
    .has-archive-sidebar .public-site-frame {
        display: grid;
        grid-template-columns: 248px minmax(0, 1fr);
        align-items: start;
    }
    .has-archive-sidebar .site-header { display: none; }
    .has-archive-sidebar .container-wide { width: min(1160px, calc(100% - 36px)); }
    .archive-sidebar {
        position: sticky;
        z-index: 60;
        top: 0;
        display: flex;
        width: 248px;
        height: 100vh;
        min-height: 650px;
        flex-direction: column;
        color: var(--paper-light);
        background-color: var(--archive-blue-dark);
        background-image:
            radial-gradient(ellipse at 25% 8%, rgb(118 145 158 / 20%), transparent 30%),
            radial-gradient(ellipse at 85% 82%, rgb(0 0 0 / 18%), transparent 34%),
            url("data:image/svg+xml,%3Csvg viewBox='0 0 170 170' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)' opacity='.19'/%3E%3C/svg%3E");
        border-right: 1px solid rgb(183 167 140 / 70%);
        box-shadow: 10px 0 28px rgb(47 45 42 / 11%);
    }
    .archive-sidebar-brand {
        display: grid;
        grid-template-columns: 65px 1fr;
        gap: 14px;
        align-items: center;
        min-height: 154px;
        padding: 27px 20px 23px;
        border-bottom: 1px solid rgb(232 222 201 / 22%);
    }
    .archive-sidebar-brand > span:last-child { display: flex; min-width: 0; flex-direction: column; }
    .archive-sidebar-brand strong {
        color: var(--paper-light);
        font: 600 17px/1.12 Oswald, Arial Narrow, sans-serif;
        letter-spacing: .035em;
        text-transform: uppercase;
    }
    .archive-sidebar-brand small {
        margin-top: 10px;
        color: var(--paper-dark);
        font: 600 8px/1.35 Inter, Arial, sans-serif;
        letter-spacing: .12em;
        text-transform: uppercase;
    }
    .archive-sidebar-mark {
        position: relative;
        display: grid;
        width: 65px;
        height: 66px;
        place-items: end center;
        padding-bottom: 7px;
        border-bottom: 3px solid var(--archive-blue-light);
        color: var(--paper-light);
        font: 600 18px/1 Oswald, Arial Narrow, sans-serif;
        letter-spacing: .06em;
    }
    .archive-sidebar-mark i {
        position: absolute;
        inset: 4px 9px 14px;
        border: 2px solid currentColor;
        border-bottom-width: 5px;
        opacity: .48;
        transform: perspective(45px) rotateX(-7deg);
    }
    .archive-sidebar-mark i::before,
    .archive-sidebar-mark i::after {
        content: "";
        position: absolute;
        bottom: 4px;
        width: 8px;
        height: 14px;
        border: 1px solid currentColor;
    }
    .archive-sidebar-mark i::before { left: 5px; }
    .archive-sidebar-mark i::after { right: 5px; }
    .archive-sidebar-mark b { position: relative; z-index: 1; background: var(--archive-blue-dark); }
    .archive-sidebar-kicker {
        margin: 0;
        padding: 25px 22px 21px;
        color: rgb(232 222 201 / 62%);
        font: 500 10px/1.5 Inter, Arial, sans-serif;
        letter-spacing: .22em;
        text-transform: uppercase;
    }
    .archive-sidebar-kicker::after {
        content: "";
        display: block;
        width: 58px;
        height: 4px;
        margin-top: 17px;
        border-block: 1px solid var(--archive-blue-light);
    }
    .archive-sidebar-nav { border-top: 1px solid rgb(232 222 201 / 20%); }
    .archive-sidebar-nav a {
        display: grid;
        min-height: 54px;
        grid-template-columns: 31px 1fr;
        align-items: center;
        gap: 7px;
        padding: 9px 21px;
        border-bottom: 1px solid rgb(232 222 201 / 18%);
        transition: color .2s, background-color .2s, padding-left .2s;
    }
    .archive-sidebar-nav a > span {
        color: rgb(232 222 201 / 42%);
        font: 500 9px/1 Inter, Arial, sans-serif;
        letter-spacing: .1em;
    }
    .archive-sidebar-nav a strong {
        font: 500 13px/1.25 Oswald, Arial Narrow, sans-serif;
        letter-spacing: .045em;
        text-transform: uppercase;
    }
    .archive-sidebar-nav a:hover { padding-left: 25px; color: #fff; background: rgb(118 145 158 / 22%); }
    .archive-sidebar-nav a.is-current {
        color: var(--ink);
        background-color: var(--paper-dark);
        background-image: linear-gradient(90deg, rgb(255 255 255 / 14%), transparent 62%);
        box-shadow: inset 5px 0 0 var(--archive-blue-light);
    }
    .archive-sidebar-nav a.is-current > span { color: var(--sepia); }
    .archive-sidebar-footer {
        display: flex;
        flex-direction: column;
        gap: 11px;
        margin-top: auto;
        padding: 20px 22px 24px;
        border-top: 1px solid rgb(232 222 201 / 20%);
    }
    .archive-sidebar-footer a,
    .archive-sidebar-footer small {
        color: rgb(232 222 201 / 66%);
        font: 600 9px/1.4 Inter, Arial, sans-serif;
        letter-spacing: .11em;
        text-transform: uppercase;
    }
    .archive-sidebar-footer a:hover { color: #fff; }
    .has-archive-sidebar .page-hero,
    .has-archive-sidebar .listing-hero {
        padding: 58px 0 53px;
        background-image:
            radial-gradient(ellipse at 14% 15%, rgb(140 122 92 / 11%), transparent 27%),
            linear-gradient(90deg, transparent 0 67%, rgb(79 107 122 / 8%));
    }
    .has-archive-sidebar .page-hero .container,
    .has-archive-sidebar .listing-hero .container { position: relative; padding-top: 22px; }
    .has-archive-sidebar .page-hero .container::before,
    .has-archive-sidebar .listing-hero .container::before {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        height: 4px;
        border-block: 1px solid var(--archive-blue);
    }
    .has-archive-sidebar .page-hero h1,
    .has-archive-sidebar .listing-hero h1 { max-width: 900px; font-size: clamp(52px, 6vw, 76px); }
    .has-archive-sidebar .listing-section { padding-top: 48px; }
    .has-archive-sidebar .filter-bar {
        margin-bottom: 48px;
        background-color: rgb(232 222 201 / 74%);
        background-image: radial-gradient(ellipse at 12% 0, rgb(140 122 92 / 8%), transparent 40%);
    }
    .has-archive-sidebar .archive-row { border-bottom-color: rgb(140 122 92 / 55%); }
}

@media (max-width: 1100px) {
    .public-site-frame { display: block; }
    .archive-sidebar { display: none; }
}

@media (min-width: 901px) and (max-width: 1180px) {
    .header-inner { gap: 18px; }
    .main-nav { gap: 12px; font-size: 13px; }
    .brand-copy small { display: none; }
}

@media (max-width: 620px) {
    .filter-bar label,
    .filter-bar label.grow { flex: 0 0 auto; width: 100%; min-width: 0; }
    .filter-bar .button { width: 100%; }
}

/* Cabeçalho único em azul-arquivo para a home e todas as páginas públicas. */
.site-header {
    color: var(--paper-light);
    background-color: var(--archive-blue-dark);
    background-image:
        radial-gradient(ellipse at 9% 10%, rgb(118 145 158 / 24%), transparent 27%),
        linear-gradient(95deg, rgb(255 255 255 / 3%), transparent 42%, rgb(0 0 0 / 8%));
    border-bottom-color: rgb(201 185 149 / 55%);
    box-shadow: 0 7px 22px rgb(47 45 42 / 17%);
}
.site-header .header-rule { background: var(--archive-blue-light); }
.site-header .brand,
.site-header .main-nav,
.site-header .search-link { color: var(--paper-light); }
.site-header .brand-monogram { border-color: var(--paper-dark); }
.site-header .brand-copy small { color: var(--paper-dark); }
.site-header .main-nav a::after { background: var(--paper-dark); }
.site-header .main-nav a.is-current { color: #fff; }
.site-header .main-nav a.is-current::after { transform: scaleX(1); transform-origin: left; }
.site-header button.nav-toggle {
    border-color: rgb(232 222 201 / 42%);
    color: var(--paper-light);
    background: rgb(232 222 201 / 8%);
}
.site-header .nav-toggle > span:not(.sr-only) { background: var(--paper-light); }

@media (max-width: 900px) {
    .site-header .main-nav {
        color: var(--paper-light);
        background-color: var(--archive-blue-dark);
        background-image:
            radial-gradient(ellipse at 15% 0, rgb(118 145 158 / 18%), transparent 35%),
            linear-gradient(90deg, rgb(255 255 255 / 3%), transparent 58%);
        border-bottom-color: rgb(201 185 149 / 55%);
        box-shadow: 0 14px 26px rgb(30 38 44 / 28%);
    }
    .site-header .main-nav a { border-bottom: 1px solid rgb(232 222 201 / 15%); }
    .site-header .main-nav a:last-child { border-bottom: 0; }
}

/* Refinamento editorial: navegação fixa, textura leve e hierarquia da home. */
.public-icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.site-header { position: sticky; z-index: 180; top: 0; }
.site-header .header-inner { min-height: 82px; }
.site-header .main-nav { gap: clamp(10px, 1.45vw, 23px); }
.site-header .main-nav a {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    gap: 6px;
}
.main-nav-icon {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.55;
    stroke-linecap: square;
    stroke-linejoin: miter;
    opacity: .84;
}
.site-header .main-nav a:hover .main-nav-icon,
.site-header .main-nav a.is-current .main-nav-icon { opacity: 1; }

.hero {
    width: min(1180px, calc(100vw - 64px));
    height: clamp(410px, 40vw, 500px);
    min-height: 410px;
    margin: clamp(20px, 2.5vw, 34px) auto 0;
    border: 1px solid var(--border-aged);
    outline: 1px solid rgb(79 107 122 / 18%);
    outline-offset: 6px;
    box-shadow: 0 22px 55px rgb(47 45 42 / 13%);
    isolation: isolate;
}
.hero-slide { bottom: 0; }
.hero-controls {
    right: 18px;
    bottom: 18px;
    left: auto;
    width: auto;
    margin: 0;
    padding: 5px;
    background: rgb(28 39 46 / 58%);
    border: 1px solid rgb(232 222 201 / 28%);
    backdrop-filter: blur(7px);
}
.hero-controls button { width: 38px; height: 38px; background: rgb(20 29 34 / 24%); }
.home-ledger { margin-top: clamp(20px, 2.4vw, 32px); }
.home-ledger {
    color: var(--paper-light);
    background-color: var(--archive-blue-dark);
    background-image:
        linear-gradient(90deg, rgb(255 255 255 / 4%), transparent 38%, rgb(0 0 0 / 7%)),
        url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.74' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.11'/%3E%3C/svg%3E");
    border-block: 1px solid rgb(201 185 149 / 45%);
}
.home-ledger .container { display: grid; min-height: 53px; grid-template-columns: repeat(4, 1fr); align-items: center; }
.home-ledger span {
    padding: 5px 18px;
    border-right: 1px solid rgb(232 222 201 / 17%);
    color: rgb(232 222 201 / 72%);
    font: 600 9px/1.3 Inter, sans-serif;
    letter-spacing: .18em;
    text-align: center;
    text-transform: uppercase;
}
.home-ledger span:first-child { border-left: 1px solid rgb(232 222 201 / 17%); }
.about-home { position: relative; overflow: hidden; }
.about-home::after {
    content: "MEMÓRIA";
    position: absolute;
    right: -12px;
    bottom: -44px;
    color: rgb(79 107 122 / 4%);
    font: 600 clamp(100px, 15vw, 220px)/1 Oswald, sans-serif;
    pointer-events: none;
}
.gallery-home {
    color: var(--paper-light);
    background-color: var(--archive-blue-dark);
    background-image:
        radial-gradient(ellipse at 15% 15%, rgb(118 145 158 / 22%), transparent 31%),
        linear-gradient(100deg, rgb(255 255 255 / 3%), transparent 48%, rgb(0 0 0 / 9%)),
        url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.77' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E");
    border-block: 1px solid rgb(201 185 149 / 44%);
}
.gallery-home .section-heading.inverse::before { background: var(--archive-blue-dark); }
.gallery-home .text-link { color: var(--paper-light); }
.gallery-home .gallery-teaser { border-color: rgb(232 222 201 / 82%); outline-color: rgb(201 185 149 / 46%); }
.gallery-home .empty-state { border-color: rgb(232 222 201 / 25%); }
.gallery-home .empty-state span,
.gallery-home .empty-state p { color: var(--paper-light); }
.institutional-cta {
    color: var(--ink);
    background-color: var(--paper-dark);
    background-image:
        radial-gradient(ellipse at 12% 20%, rgb(255 255 255 / 18%), transparent 28%),
        url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");
    border-block: 5px double var(--archive-blue);
}
.institutional-cta .button-light { border-color: var(--archive-blue); color: var(--paper-light); background: var(--archive-blue); }

/* Demo 1 da referência: máscara orgânica em sprites de 23 e 71 quadros. */
@supports ((mask-image: linear-gradient(#000, transparent)) or (-webkit-mask-image: linear-gradient(#000, transparent))) {
    .hero.has-mask-transitions .hero-slide.is-mask-leaving {
        -webkit-mask-image: url("../imagens/mascaras/textura-natureza-2.png");
                mask-image: url("../imagens/mascaras/textura-natureza-2.png");
        -webkit-mask-repeat: no-repeat;
                mask-repeat: no-repeat;
        -webkit-mask-size: 7100% 100%;
                mask-size: 7100% 100%;
        -webkit-animation: iho-organic-mask 1.4s steps(70) forwards;
                animation: iho-organic-mask 1.4s steps(70) forwards;
    }
    .hero.has-mask-transitions .hero-slide.is-mask-leaving:nth-child(even) {
        -webkit-mask-image: url("../imagens/mascaras/textura-natureza.png");
                mask-image: url("../imagens/mascaras/textura-natureza.png");
        -webkit-mask-size: 2300% 100%;
                mask-size: 2300% 100%;
        -webkit-animation: iho-organic-mask 1.4s steps(22) forwards;
                animation: iho-organic-mask 1.4s steps(22) forwards;
    }
}
@-webkit-keyframes iho-organic-mask { from { -webkit-mask-position: 0 0; } to { -webkit-mask-position: 100% 0; } }
@keyframes iho-organic-mask { from { -webkit-mask-position: 0 0; mask-position: 0 0; } to { -webkit-mask-position: 100% 0; mask-position: 100% 0; } }

/* Leitor imersivo de revistas, com zoom real e folha em perspectiva. */
.is-reader-view { overflow: hidden; background: #182229; }
.is-reader-view > .site-header,
.is-reader-view > .notice,
.is-reader-view > .site-footer,
.is-reader-view > .skip-link { display: none; }
.is-reader-view > #conteudo { min-height: 100vh; }
.reader {
    display: grid;
    width: 100%;
    height: 100vh;
    min-height: 520px;
    grid-template-rows: auto minmax(0, 1fr) auto;
    overflow: hidden;
    background-color: #182229;
    background-image:
        radial-gradient(ellipse at 50% 35%, rgb(79 107 122 / 28%), transparent 45%),
        url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.76' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.11'/%3E%3C/svg%3E");
}
.reader-header { min-height: 68px; padding: 10px 24px; background: rgb(13 20 24 / 30%); }
.reader-stage {
    min-height: 0;
    grid-template-columns: 58px minmax(0, 1fr) 58px;
    padding: 14px 24px;
    overflow: hidden;
}
.reader-stage figure { display: flex; min-width: 0; height: 100%; flex-direction: column; margin: 0; overflow: hidden; }
.reader-image-wrap {
    display: block;
    width: 100%;
    min-height: 0;
    flex: 1;
    overflow: auto;
    perspective: 1800px;
    box-shadow: none;
    scrollbar-color: var(--archive-blue-light) rgb(0 0 0 / 15%);
}
.reader-book {
    position: relative;
    width: var(--reader-page-width, min(70vw, 720px));
    max-width: none;
    aspect-ratio: var(--reader-page-ratio, .707);
    margin: 0 auto;
    transform-style: preserve-3d;
    transition: width .2s ease;
}
.reader-page {
    position: absolute;
    inset: 0;
    overflow: hidden;
    border: 1px solid rgb(227 217 198 / 74%);
    background: #e8dec9;
    box-shadow: 0 22px 65px rgb(0 0 0 / 46%), 4px 0 0 rgb(255 255 255 / 9%);
    backface-visibility: hidden;
    transform-style: preserve-3d;
}
.reader-page::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgb(25 31 35 / 13%), transparent 3%, transparent 95%, rgb(25 31 35 / 7%));
}
.reader-page img,
.reader-image-wrap img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: none;
    margin: 0;
    object-fit: contain;
    transform: none;
    transform-origin: center;
}
.reader-page-under { z-index: 1; opacity: 0; }
.reader-page-under.is-visible { opacity: 1; }
.reader-page-current { z-index: 2; }
.reader-page-current.is-turning-next { transform-origin: left center; animation: reader-turn-next .72s cubic-bezier(.58,.08,.32,.98) forwards; }
.reader-page-current.is-turning-previous { transform-origin: right center; animation: reader-turn-previous .72s cubic-bezier(.58,.08,.32,.98) forwards; }
@keyframes reader-turn-next { 0% { transform: rotateY(0); filter: brightness(1); } 58% { filter: brightness(.72); } 100% { transform: rotateY(-178deg); filter: brightness(.52); } }
@keyframes reader-turn-previous { 0% { transform: rotateY(0); filter: brightness(1); } 58% { filter: brightness(.72); } 100% { transform: rotateY(178deg); filter: brightness(.52); } }
.reader-stage figcaption.reader-editorial-caption {
    display: grid;
    width: min(100%, 1120px);
    max-height: clamp(140px, 20vh, 190px);
    grid-template-columns: 1fr;
    flex: 0 0 auto;
    margin: 12px auto 0;
    overflow: auto;
    border: 1px solid rgb(196 173 127 / 72%);
    border-top: 4px solid var(--paper-dark);
    color: var(--archive-blue-dark);
    background: linear-gradient(110deg, rgb(244 239 223 / 98%), rgb(232 222 201 / 96%));
    box-shadow: 0 10px 30px rgb(0 0 0 / 24%);
    font-size: 15px;
    line-height: 1.55;
    text-align: left;
    scrollbar-color: var(--archive-blue) rgb(49 59 66 / 10%);
}
.reader-stage figcaption.reader-editorial-caption[hidden] { display: none; }
.reader-editorial-caption.is-double { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.reader-caption-entry { position: relative; min-width: 0; padding: 15px 20px 17px; }
.reader-caption-entry + .reader-caption-entry { border-left: 1px solid rgb(68 101 120 / 28%); }
.reader-caption-page {
    display: inline-flex;
    min-height: 23px;
    align-items: center;
    margin-bottom: 9px;
    padding: 3px 9px;
    color: #fff;
    background: var(--archive-blue);
    font: 700 11px/1 Oswald, Arial, sans-serif;
    letter-spacing: .11em;
    text-transform: uppercase;
}
.reader-caption-field { display: grid; grid-template-columns: minmax(92px, auto) 1fr; gap: 10px; align-items: baseline; margin-top: 6px; }
.reader-caption-label { color: var(--archive-blue); font: 700 11px/1.35 Oswald, Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.reader-caption-value { min-width: 0; overflow-wrap: anywhere; color: var(--archive-blue-dark); font: 500 15px/1.5 Lora, Georgia, serif; }
.reader-caption-title { display: block; margin-top: 0; }
.reader-caption-title .reader-caption-label { display: block; margin-bottom: 3px; }
.reader-caption-title .reader-caption-value { display: block; font-size: clamp(18px, 1.5vw, 22px); line-height: 1.25; }
.reader-caption-author .reader-caption-value { font-weight: 700; }
.reader-arrow { position: relative; z-index: 4; border-color: rgb(232 222 201 / 32%); background: rgb(12 18 22 / 22%); }
.reader-arrow:hover:not(:disabled) { color: #182229; background: var(--paper-dark); }
.reader-footer { min-height: 58px; gap: clamp(25px, 7vw, 80px); background: rgb(13 20 24 / 30%); }
.reader-footer button { cursor: pointer; }
.reader-footer [data-zoom-reset] { width: auto; padding-inline: 11px; font-size: 9px; letter-spacing: .07em; text-transform: uppercase; }
.reader-zoom-controls > span { min-width: 50px; text-align: center; }

@media (max-width: 900px) {
    .site-header button.nav-toggle {
        position: absolute;
        z-index: 1002;
        top: 14px;
        right: 0;
        display: grid !important;
        width: 43px;
        height: 43px;
        visibility: visible;
        place-content: center;
        opacity: 1;
    }
    .site-header .main-nav a { gap: 12px; padding: 12px 16px; }
    .site-header .main-nav-icon { width: 22px; height: 22px; flex-basis: 22px; }
    .hero { width: calc(100vw - 32px); height: clamp(390px, 58vw, 460px); min-height: 390px; margin-top: 18px; outline-offset: 4px; }
    .hero-slide { bottom: 0; }
    .hero-controls { bottom: 17px; }
    .editorial-split { grid-template-columns: 55px minmax(0, 1fr); }
    .editorial-split .lead-copy { grid-column: 2; }
    .home-ledger .container { grid-template-columns: repeat(2, 1fr); }
    .home-ledger span:nth-child(3) { border-left: 1px solid rgb(232 222 201 / 17%); }
    .home-ledger span { min-height: 42px; align-content: center; }
    .reader-stage { grid-template-columns: 1fr; padding: 10px 7px; }
    .reader-arrow { top: 50%; }
}

@media (max-width: 620px) {
    .site-header .header-inner { min-height: 70px; }
    .site-header .brand-copy { display: none; }
    .site-header .main-nav { top: 73px; }
    .hero { width: calc(100vw - 20px); height: 410px; min-height: 410px; margin-top: 10px; outline: 0; }
    .hero-content { padding-top: 38px; padding-bottom: 40px; }
    .hero-controls { right: 12px; bottom: 13px; }
    .home-ledger span { padding-inline: 8px; font-size: 8px; letter-spacing: .12em; }
    .editorial-split { grid-template-columns: 1fr; gap: 24px; }
    .editorial-split .lead-copy { grid-column: auto; }
    .section-number { font-size: 18px; }
    .reader-header { min-height: 58px; padding: 8px 11px; }
    .reader-header > div span { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .reader-footer { min-height: 64px; flex-wrap: wrap; gap: 5px 22px; padding: 6px 10px; }
    .reader-footer [data-zoom-reset] { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .reader-page-current.is-turning-next,
    .reader-page-current.is-turning-previous { animation: none; }
    .reader-book { transition: none; }
}

/* Leitor em abertura de livro: capa isolada, depois páginas em pares. */
.reader-book {
    width: var(--reader-book-width, min(70vw, 1120px));
    height: var(--reader-page-height, min(72vh, 790px));
    max-width: none;
    aspect-ratio: auto;
    perspective: 2200px;
}
.reader-spread {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    transform-style: preserve-3d;
}
.reader-spread-under { z-index: 1; opacity: 0; }
.reader-spread-under.is-visible { opacity: 1; }
.reader-spread-current { z-index: 2; }
.reader-leaf {
    position: relative;
    min-width: 0;
    overflow: hidden;
    background: #f4efdf;
    box-shadow: 0 8px 28px rgb(0 0 0 / 28%);
    backface-visibility: hidden;
    transform-style: preserve-3d;
}
.reader-leaf[hidden] { display: block; visibility: hidden; }
.reader-leaf-left { border-radius: 4px 0 0 4px; transform-origin: right center; }
.reader-leaf-right { border-radius: 0 4px 4px 0; transform-origin: left center; }
.reader-leaf img { width: 100%; height: 100%; object-fit: contain; background: #f4efdf; }
.reader-leaf-left img { box-shadow: inset -12px 0 18px rgb(30 31 28 / 9%); }
.reader-leaf-right img { box-shadow: inset 12px 0 18px rgb(30 31 28 / 9%); }
.reader-spine {
    position: absolute;
    z-index: 6;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 18px;
    pointer-events: none;
    transform: translateX(-50%);
    background: linear-gradient(90deg, transparent, rgb(20 24 25 / 23%) 46%, rgb(255 255 255 / 13%) 52%, transparent);
}
.reader-book.is-cover-spread .reader-spine { opacity: .45; }
.reader-book.is-turning-next .reader-spread-current .reader-leaf-right {
    z-index: 7;
    animation: reader-spread-next .72s cubic-bezier(.58,.08,.32,.98) forwards;
}
.reader-book.is-turning-previous .reader-spread-current .reader-leaf-left {
    z-index: 7;
    animation: reader-spread-previous .72s cubic-bezier(.58,.08,.32,.98) forwards;
}
@keyframes reader-spread-next { 0% { transform: rotateY(0); filter: brightness(1); } 55% { filter: brightness(.68); } 100% { transform: rotateY(-178deg); filter: brightness(.48); } }
@keyframes reader-spread-previous { 0% { transform: rotateY(0); filter: brightness(1); } 55% { filter: brightness(.68); } 100% { transform: rotateY(178deg); filter: brightness(.48); } }

@media (max-width: 760px) {
    .reader-book {
        width: var(--reader-book-width, min(88vw, 560px));
        height: var(--reader-page-height, min(74vh, 790px));
    }
    .reader-spread { grid-template-columns: 1fr; }
    .reader-leaf { grid-area: 1 / 1; border-radius: 3px; }
    .reader-spine { display: none; }
    .reader-stage figcaption.reader-editorial-caption { max-height: min(180px, 25vh); }
    .reader-editorial-caption.is-double { grid-template-columns: 1fr; }
    .reader-caption-entry { padding: 13px 15px 15px; }
    .reader-caption-entry + .reader-caption-entry { border-top: 1px solid rgb(68 101 120 / 28%); border-left: 0; }
    .reader-caption-field { grid-template-columns: 82px 1fr; gap: 8px; }
    .reader-caption-title { display: block; }
}

@media (prefers-reduced-motion: reduce) {
    .reader-book.is-turning-next .reader-spread-current .reader-leaf-right,
    .reader-book.is-turning-previous .reader-spread-current .reader-leaf-left { animation: none; }
}

/* Garantias finais de responsividade tipográfica, após todas as variações visuais. */
.contact-grid,
.contact-grid > *,
.contact-form,
.contact-form > * { min-width: 0; max-width: 100%; }
.hero h1,
.page-hero h1,
.listing-hero h1,
.gallery-detail-header h1,
.collection-public-hero h1,
.contact-grid > div h2,
.institutional-cta h2,
.magazine-detail-copy h1,
.statute-hero h1 {
    line-height: 1.12;
    overflow-wrap: break-word;
    text-wrap: pretty;
    padding-top: .08em;
}

@media (max-width: 620px) {
    .contact-grid > div h2 { font-size: clamp(32px, 10.5vw, 42px); line-height: 1.17; }
    .page-hero h1,
    .listing-hero h1,
    .collection-public-hero h1,
    .statute-hero h1 { line-height: 1.15; letter-spacing: -.01em; }
}

/* Correspondências internas das revistas e navegação direta do leitor. */
.magazine-page-matches {
    display: grid;
    gap: 7px;
    margin: 18px 0 0;
    padding: 13px 0 0;
    border-top: 1px solid var(--border-aged);
    list-style: none;
}
.magazine-page-matches a {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 2px 13px;
    padding: 10px 12px;
    border-left: 3px solid var(--archive-blue);
    color: var(--ink);
    background: rgb(196 173 127 / 12%);
}
.magazine-page-matches a:hover { background: rgb(68 101 120 / 11%); }
.magazine-page-matches span {
    grid-row: 1 / span 2;
    align-self: center;
    color: var(--archive-blue);
    font: 700 10px/1.2 Oswald, Arial, sans-serif;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.magazine-page-matches strong { overflow-wrap: anywhere; font: 600 15px/1.35 Lora, serif; }
.magazine-page-matches small { color: var(--sepia); font-size: 12px; }
.search-results .magazine-page-matches { max-width: 820px; }

.reader-page-jump {
    position: relative;
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0;
}
.reader-page-jump label { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.reader-page-jump input {
    width: 68px;
    min-height: 34px;
    padding: 4px 7px;
    border: 1px solid rgb(255 255 255 / 34%);
    border-radius: 1px;
    color: #fff;
    background: rgb(7 12 15 / 42%);
    font: 600 15px/1 Oswald, Arial, sans-serif;
    text-align: center;
}
.reader-page-jump input[aria-invalid="true"] { border-color: #e5a099; }
.reader-page-jump button { width: auto; min-width: 38px; padding-inline: 9px; font-weight: 700; text-transform: uppercase; }
.reader-page-jump small {
    position: absolute;
    top: calc(100% + 5px);
    left: 0;
    z-index: 10;
    padding: 4px 7px;
    color: #fff;
    background: #8d3e38;
    font-size: 11px;
    letter-spacing: 0;
    text-transform: none;
    white-space: nowrap;
}
.reader-page-jump small:empty { display: none; }

@media (max-width: 620px) {
    .reader-page-jump { order: 3; width: 100%; justify-content: center; }
    .reader-page-jump small { left: 50%; transform: translateX(-50%); }
    .magazine-page-matches a { grid-template-columns: 1fr; }
    .magazine-page-matches span { grid-row: auto; }
}

/* Marca oficial extraída do Estatuto e narrativa de rolagem do portal público. */
.brand-monogram {
    border-color: rgb(175 154 111 / 54%);
    background: rgb(224 212 181 / 5%);
}
.brand-crest {
    -webkit-mask-image: url("../imagens/marca-institucional-iho-transparente.png");
            mask-image: url("../imagens/marca-institucional-iho-transparente.png");
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-size: contain;
            mask-size: contain;
}
.brand-crest {
    width: 100%;
    height: 100%;
    border-radius: inherit;
    background: #bbaa82;
    opacity: .76;
}
.page-hero,
.listing-hero { isolation: isolate; }
.page-hero::after,
.listing-hero::after {
    content: none;
}
.page-hero > .container,
.listing-hero > .container { position: relative; z-index: 1; }

.site-footer { position: relative; overflow: hidden; isolation: isolate; }
.site-footer::before {
    content: none;
}
.footer-grid,
.footer-bottom { position: relative; z-index: 1; }
.footer-mark { align-items: center; gap: 20px; }
.footer-identity { display: grid; gap: 7px; }
.footer-identity b { color: #e0d4b5; font-size: 34px; letter-spacing: .14em; }
.footer-identity small { max-width: 190px; color: rgb(224 212 181 / 72%); font-size: 10px; line-height: 1.45; letter-spacing: .13em; text-transform: uppercase; }

.is-home-view .hero { isolation: isolate; }
.home-story-panel,
.news-home,
.magazines-home,
.archive-counts,
.gallery-home,
.institutional-cta,
.home-era-bridge { position: relative; overflow: hidden; isolation: isolate; }
.home-story-panel > .container,
.news-home > .container,
.magazines-home > .container,
.archive-counts > .container,
.gallery-home > .container,
.institutional-cta > .container,
.home-era-bridge > .container { position: relative; z-index: 2; }
.news-home {
    background-image: linear-gradient(112deg, rgb(255 255 255 / 14%) 0 28%, transparent 28% 100%);
}
.news-home::before {
    content: "1972";
    position: absolute;
    z-index: 0;
    top: 13%;
    left: -22px;
    color: rgb(79 107 122 / 6%);
    font: 600 clamp(115px, 18vw, 270px)/1 Oswald, sans-serif;
    letter-spacing: -.07em;
    transform: rotate(-90deg) translateX(-100%);
    transform-origin: left top;
}
.home-era-bridge {
    padding: clamp(62px, 8vw, 110px) 0;
    color: #e0d4b5;
    background-color: #2b383f;
    background-image:
        linear-gradient(90deg, rgb(224 212 181 / 5%) 1px, transparent 1px),
        linear-gradient(rgb(224 212 181 / 4%) 1px, transparent 1px);
    background-size: 85px 85px;
    border-block: 5px double #af9a6f;
}
.home-era-grid { display: grid; grid-template-columns: .7fr minmax(280px, 1.3fr) .7fr; align-items: center; gap: clamp(25px, 5vw, 70px); text-align: center; }
.home-era-grid time { color: #af9a6f; font: 500 clamp(60px, 9vw, 126px)/.85 Oswald, sans-serif; letter-spacing: -.04em; }
.home-era-grid > div { padding: clamp(24px, 4vw, 45px); border-inline: 1px solid rgb(224 212 181 / 24%); }
.home-era-grid h2 { margin: 16px 0; color: #e0d4b5; font: 500 clamp(36px, 5vw, 64px)/1 Oswald, sans-serif; text-transform: uppercase; }
.home-era-grid p { max-width: 580px; margin: 0 auto; color: rgb(224 212 181 / 75%); font: 400 17px/1.75 Lora, serif; }

/* A classe só é adicionada quando o navegador oferece IntersectionObserver. */
.has-scroll-scenes .is-home-view [data-scroll-item] {
    --reveal-x: 0px;
    --reveal-y: 54px;
    --reveal-scale: 1;
    --reveal-rotate: 0deg;
    opacity: 0;
    transform: translate3d(var(--reveal-x), var(--reveal-y), 0) scale(var(--reveal-scale)) rotate(var(--reveal-rotate));
    transition:
        opacity .85s cubic-bezier(.2,.72,.2,1),
        transform 1.05s cubic-bezier(.16,1,.3,1);
    transition-delay: calc(var(--reveal-order, 0) * 90ms);
    will-change: transform, opacity;
}
.has-scroll-scenes .is-home-view [data-scroll-from="left"] { --reveal-x: -105px; --reveal-y: 0px; }
.has-scroll-scenes .is-home-view [data-scroll-from="right"] { --reveal-x: 105px; --reveal-y: 0px; }
.has-scroll-scenes .is-home-view [data-scroll-from="up"] { --reveal-y: 85px; }
.has-scroll-scenes .is-home-view [data-scroll-from="down"] { --reveal-y: -85px; }
.has-scroll-scenes .is-home-view [data-scroll-from="spin"] { --reveal-y: 25px; --reveal-scale: .72; --reveal-rotate: -14deg; }
.has-scroll-scenes .is-home-view [data-scroll-scene="ledger"] [data-scroll-item] { --reveal-x: -90px; --reveal-y: 0px; }
.has-scroll-scenes .is-home-view [data-scroll-scene].is-in-view [data-scroll-item] {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1) rotate(0);
}

/* Os grandes conjuntos editoriais entram como blocos completos. */
.has-scroll-scenes .is-home-view [data-scroll-block] {
    --block-x: 0px;
    --block-y: 0px;
    opacity: 0;
    transform: translate3d(var(--block-x), var(--block-y), 0) scale(.985);
    transition:
        opacity .9s cubic-bezier(.2,.72,.2,1),
        transform 1.2s cubic-bezier(.16,1,.3,1);
    will-change: transform, opacity;
}
.has-scroll-scenes .is-home-view [data-scroll-block][data-scroll-from="top"] { --block-y: -110px; }
.has-scroll-scenes .is-home-view [data-scroll-block][data-scroll-from="left"] { --block-x: -11vw; }
.has-scroll-scenes .is-home-view [data-scroll-block][data-scroll-from="right"] { --block-x: 11vw; }
.has-scroll-scenes .is-home-view [data-scroll-block][data-scroll-from="bottom"] { --block-y: 120px; }
.has-scroll-scenes .is-home-view [data-scroll-block].is-in-view {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
}
.has-scroll-scenes .is-home-view [data-scroll-block] [data-scroll-item] {
    opacity: 1;
    transform: none;
    transition: none;
}

@media (max-width: 900px) {
    .home-era-grid { grid-template-columns: 1fr 1.4fr 1fr; gap: 18px; }
    .home-era-grid > div { padding-inline: 18px; }
}

@media (max-width: 620px) {
    .is-home-view #conteudo::before,
    .is-interior-view:not(.is-reader-view) #conteudo::before { top: 500px; right: -105px; width: 300px; opacity: .009; }
    .home-era-grid { grid-template-columns: 1fr 1fr; }
    .home-era-grid > div { grid-column: 1 / -1; grid-row: 1; border-inline: 0; border-block: 1px solid rgb(224 212 181 / 22%); }
    .home-era-grid time { grid-row: 2; font-size: 52px; }
    .footer-mark { align-items: flex-start; flex-direction: column; }
    .has-scroll-scenes .is-home-view [data-scroll-from="left"] { --reveal-x: -45px; }
    .has-scroll-scenes .is-home-view [data-scroll-from="right"] { --reveal-x: 45px; }
    .has-scroll-scenes .is-home-view [data-scroll-from="up"] { --reveal-y: 45px; }
    .has-scroll-scenes .is-home-view [data-scroll-from="down"] { --reveal-y: -45px; }
    .has-scroll-scenes .is-home-view [data-scroll-block][data-scroll-from="top"] { --block-y: -58px; }
    .has-scroll-scenes .is-home-view [data-scroll-block][data-scroll-from="left"] { --block-x: -52px; }
    .has-scroll-scenes .is-home-view [data-scroll-block][data-scroll-from="right"] { --block-x: 52px; }
    .has-scroll-scenes .is-home-view [data-scroll-block][data-scroll-from="bottom"] { --block-y: 64px; }
}

@media (prefers-reduced-motion: reduce) {
    .is-home-view [data-scroll-item],
    .is-home-view [data-scroll-block] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Página institucional construída a partir do discurso de 50 anos e do portfólio do IHO. */
.about-page { overflow: hidden; color: var(--ink); }
.about-page h2,
.about-page h3,
.about-page p { text-wrap: pretty; }
.about-page h1,
.about-page h2,
.about-page h3 { overflow-wrap: normal; word-break: normal; hyphens: none; text-wrap: balance; }
.about-hero { position: relative; padding: clamp(72px, 8vw, 118px) 0; overflow: hidden; color: #e0d4b5; background-color: #2b383f; background-image: linear-gradient(105deg, rgb(0 0 0 / 16%), transparent 58%), repeating-linear-gradient(90deg, rgb(224 212 181 / 2%) 0 1px, transparent 1px 7px); border-bottom: 5px double #af9a6f; }
.about-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 18% 25%, rgb(175 154 111 / 12%), transparent 26%), radial-gradient(circle at 82% 80%, rgb(255 255 255 / 4%), transparent 30%); }
.about-hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(390px, .95fr); align-items: center; gap: clamp(45px, 7vw, 105px); }
.about-hero-copy { position: relative; z-index: 1; }
.about-hero .eyebrow { color: #d4c59f; }
.about-foundation { display: inline-block; margin: 25px 0 0; padding: 7px 11px; border: 1px solid rgb(224 212 181 / 28%); color: rgb(224 212 181 / 75%); font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.about-hero h1 { max-width: 780px; margin: 27px 0 25px; color: #f2ead7; font: 500 clamp(58px, 7.4vw, 108px)/1.05 Oswald, sans-serif; letter-spacing: -.035em; text-transform: uppercase; }
.about-hero-lead { max-width: 720px; margin: 0; color: rgb(224 212 181 / 79%); font: 400 clamp(18px, 1.8vw, 22px)/1.72 Lora, serif; }
.about-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin-top: 34px; }
.about-hero-actions .button { border-color: #af9a6f; color: #2b383f; background: #d8c79f; }
.about-hero-actions .text-link { color: #e0d4b5; border-bottom-color: rgb(224 212 181 / 40%); }
.about-hero-image { position: relative; margin: 0; padding: 15px 15px 0; border: 1px solid rgb(224 212 181 / 27%); background: rgb(224 212 181 / 5%); transform: rotate(1.25deg); }
.about-hero-image::before { content: ""; position: absolute; z-index: -1; inset: 18px -18px -18px 18px; border: 1px solid rgb(175 154 111 / 28%); }
.about-hero-image img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.about-hero-image figcaption { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 15px 2px 14px; }
.about-hero-image figcaption b { color: #e0d4b5; font: 500 17px/1.2 Oswald, sans-serif; text-transform: uppercase; }
.about-hero-image figcaption small { max-width: 180px; color: rgb(224 212 181 / 58%); font-size: 10px; line-height: 1.4; letter-spacing: .08em; text-align: right; text-transform: uppercase; }

.about-ledger { color: #e0d4b5; background: #344751; border-bottom: 1px solid #82704f; }
.about-ledger .container { display: grid; grid-template-columns: repeat(4, 1fr); }
.about-ledger article { display: grid; min-height: 118px; padding: 22px clamp(15px, 2.5vw, 35px); place-content: center; border-right: 1px solid rgb(224 212 181 / 16%); text-align: center; }
.about-ledger article:first-child { border-left: 1px solid rgb(224 212 181 / 16%); }
.about-ledger strong { color: #d2bd8e; font: 500 clamp(31px, 4vw, 50px)/1 Oswald, sans-serif; letter-spacing: -.03em; text-transform: uppercase; }
.about-ledger span { margin-top: 6px; color: rgb(224 212 181 / 62%); font-size: 9px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }

.about-quote-section { padding: clamp(80px, 10vw, 145px) 0; background: var(--paper-light); }
.about-quote-grid { display: grid; grid-template-columns: 120px minmax(0, 980px); justify-content: center; gap: clamp(30px, 6vw, 90px); }
.about-section-index { color: #9c8761; font: 500 13px/1 Oswald, sans-serif; letter-spacing: .12em; }
.about-quote-grid blockquote { position: relative; margin: 0; padding: 0 0 0 clamp(28px, 5vw, 70px); border-left: 1px solid var(--archive-blue); }
.about-quote-grid blockquote::before { content: "“"; position: absolute; top: -42px; left: clamp(18px, 3.5vw, 48px); color: rgb(68 101 120 / 16%); font: 500 130px/1 Lora, serif; }
.about-quote-grid blockquote p { position: relative; margin: 0; color: #393733; font: 500 clamp(28px, 4vw, 51px)/1.34 Lora, serif; }
.about-quote-grid cite { display: block; margin-top: 28px; color: var(--archive-blue-dark); font-size: 10px; font-style: normal; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }

.about-history-section { padding: clamp(85px, 10vw, 150px) 0; background: linear-gradient(90deg, rgb(196 173 127 / 8%), transparent 36%); border-block: 3px double var(--archive-blue); }
.about-history-grid { display: grid; grid-template-columns: minmax(320px, .85fr) minmax(0, 1.15fr); gap: clamp(50px, 9vw, 140px); }
.about-history-heading h2,
.about-mission-heading h2,
.about-timeline-intro h2,
.about-action-heading h2,
.about-legacy-grid h2,
.about-links-heading h2 { margin: 20px 0 0; font: 500 clamp(42px, 5.8vw, 76px)/1.13 Oswald, sans-serif; letter-spacing: -.025em; text-transform: uppercase; }
.about-history-heading h2 { font-size: clamp(42px, 5.25vw, 70px); }
.about-history-heading h2 span { display: block; }
.about-history-copy { padding-top: 27px; border-top: 1px solid var(--archive-blue); }
.about-history-copy p { margin: 0 0 24px; color: #4f4a42; font: 400 clamp(18px, 1.8vw, 22px)/1.85 Lora, serif; }
.about-presidents { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); align-items: stretch; gap: clamp(20px, 2.5vw, 36px); margin-top: clamp(65px, 9vw, 120px); padding-top: 28px; border-top: 1px solid var(--border-aged); }
.about-presidents figure { min-width: 0; height: clamp(280px, 35vw, 470px); margin: 0; overflow: hidden; background: #d1c09c; }
.about-presidents figure img { width: 100%; height: calc(100% + 48px); object-fit: cover; object-position: center top; filter: saturate(.72) sepia(.1) contrast(1.02); }
.about-presidents > div { display: flex; padding: clamp(28px, 5vw, 62px); flex-direction: column; justify-content: center; color: #e0d4b5; background: #446578; }
.about-presidents > div > span { color: #d1be91; font-size: 10px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.about-presidents h3 { margin: 17px 0; color: #f1e8d3; font: 500 clamp(29px, 3.4vw, 47px)/1.14 Oswald, sans-serif; text-transform: uppercase; }
.about-presidents p { margin: 0; color: rgb(240 231 210 / 76%); font: 400 16px/1.75 Lora, serif; }

.about-mission-section { padding: clamp(90px, 11vw, 165px) 0; color: #e0d4b5; background-color: #2b383f; background-image: linear-gradient(90deg, rgb(224 212 181 / 4%) 1px, transparent 1px), linear-gradient(rgb(224 212 181 / 3%) 1px, transparent 1px); background-size: 82px 82px; }
.about-mission-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 50px; margin-bottom: 60px; }
.about-mission-heading .eyebrow { grid-column: 1 / -1; color: #d1be91; }
.about-mission-heading h2 { max-width: 760px; color: #f1e8d3; }
.about-mission-heading p { max-width: 580px; margin: 0 0 6px; color: rgb(224 212 181 / 70%); font: 400 18px/1.75 Lora, serif; }
.about-mission-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid rgb(224 212 181 / 20%); }
.about-mission-grid article { min-width: 0; padding: 35px clamp(18px, 2.4vw, 34px) 42px; border-right: 1px solid rgb(224 212 181 / 20%); }
.about-mission-grid article:first-child { border-left: 1px solid rgb(224 212 181 / 20%); }
.about-mission-grid article > span { color: #af9a6f; font: 500 12px/1 Oswald, sans-serif; letter-spacing: .12em; }
.about-mission-grid h3 { margin: 45px 0 17px; color: #e0d4b5; font: 500 clamp(27px, 3vw, 39px)/1.14 Oswald, sans-serif; text-transform: uppercase; }
.about-mission-grid p { margin: 0; color: rgb(224 212 181 / 65%); font: 400 15px/1.75 Lora, serif; }

.about-timeline-section { padding: clamp(90px, 11vw, 165px) 0; background: var(--paper-light); }
.about-timeline-layout { display: grid; grid-template-columns: minmax(290px, .72fr) minmax(0, 1.28fr); align-items: start; gap: clamp(55px, 10vw, 150px); }
.about-timeline-intro { position: sticky; top: 125px; }
.about-timeline-intro p { max-width: 440px; color: var(--sepia); font: 400 17px/1.75 Lora, serif; }
.about-timeline { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--archive-blue); }
.about-timeline li { display: grid; grid-template-columns: 140px 1fr; gap: 25px; padding: 32px 0; border-bottom: 1px solid var(--border-aged); }
.about-timeline time { color: var(--archive-blue); font: 500 18px/1.2 Oswald, sans-serif; letter-spacing: .03em; text-transform: uppercase; }
.about-timeline h3 { margin: 0 0 9px; color: #35332f; font: 500 clamp(24px, 2.6vw, 34px)/1.16 Oswald, sans-serif; text-transform: uppercase; }
.about-timeline p { margin: 0; color: #665e51; font: 400 16px/1.72 Lora, serif; }

.about-action-section { padding: clamp(85px, 10vw, 145px) 0; background: #ddd0b3; border-block: 3px double #446578; }
.about-action-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .7fr); align-items: end; gap: 40px; margin-bottom: 50px; }
.about-action-heading .eyebrow { grid-column: 1 / -1; }
.about-action-heading p { margin: 0 0 6px; color: #665d4f; font: 400 17px/1.7 Lora, serif; }
.about-photo-mosaic { display: grid; grid-template-columns: 1.1fr .9fr .9fr; grid-auto-rows: clamp(225px, 25vw, 350px); gap: 14px; }
.about-photo-mosaic figure { position: relative; min-width: 0; margin: 0; overflow: hidden; background: #2b383f; }
.about-photo-mosaic figure.is-tall { grid-row: span 2; }
.about-photo-mosaic figure.is-wide { grid-column: span 2; }
.about-photo-mosaic img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72) sepia(.08); transition: transform .8s cubic-bezier(.16,1,.3,1), filter .5s ease; }
.about-photo-mosaic figure:hover img { transform: scale(1.035); filter: saturate(.92); }
.about-photo-mosaic figure::after { content: ""; position: absolute; inset: 35% 0 0; pointer-events: none; background: linear-gradient(transparent, rgb(28 36 41 / 88%)); }
.about-photo-mosaic figcaption { position: absolute; z-index: 1; right: 0; bottom: 0; left: 0; display: grid; gap: 7px; padding: 25px; color: #fff; }
.about-photo-mosaic figcaption span { color: #d8c69b; font-size: 9px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.about-photo-mosaic figcaption b { font: 500 clamp(20px, 2.4vw, 31px)/1.15 Oswald, sans-serif; text-transform: uppercase; }

.about-legacy-section { padding: clamp(90px, 11vw, 160px) 0; color: #e0d4b5; background: #446578; }
.about-legacy-grid { display: grid; grid-template-columns: 85px minmax(0, 1fr) minmax(330px, .7fr); gap: clamp(30px, 6vw, 90px); }
.about-legacy-grid .about-section-index { color: #c9b484; }
.about-legacy-grid .eyebrow { color: #d6c49a; }
.about-legacy-grid h2 { max-width: 750px; color: #f1e8d3; }
.about-legacy-grid > div:last-child { padding-top: 38px; border-top: 1px solid rgb(224 212 181 / 34%); }
.about-legacy-grid p { margin: 0 0 22px; color: rgb(241 232 211 / 75%); font: 400 17px/1.8 Lora, serif; }

.about-links-section { padding: clamp(85px, 10vw, 145px) 0; background: var(--paper-light); }
.about-links-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 50px; }
.about-links-heading h2 { max-width: 740px; }
.about-links-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--archive-blue); }
.about-links-grid a { display: grid; grid-template-columns: 52px 1fr auto; align-items: center; gap: 20px; min-height: 130px; padding: 24px 28px; border-right: 1px solid var(--border-aged); border-bottom: 1px solid var(--border-aged); color: var(--ink); transition: color .25s, background .25s, transform .25s; }
.about-links-grid a:nth-child(even) { border-right: 0; }
.about-links-grid a:hover { color: #f2e8d1; background: #446578; transform: translateY(-2px); }
.about-links-grid a > span { color: #927e58; font: 500 11px/1 Oswald, sans-serif; }
.about-links-grid a div { display: grid; gap: 7px; }
.about-links-grid small { color: var(--sepia); font-size: 9px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.about-links-grid a:hover small,
.about-links-grid a:hover > span { color: #d7c599; }
.about-links-grid strong { font: 500 clamp(23px, 2.7vw, 34px)/1.14 Oswald, sans-serif; text-transform: uppercase; }
.about-links-grid a > b { font-size: 25px; font-weight: 400; }

.has-institutional-reveals .about-page [data-institutional-reveal] { --about-reveal-x: 0px; --about-reveal-y: 55px; opacity: 0; transform: translate3d(var(--about-reveal-x), var(--about-reveal-y), 0); transition: opacity .8s cubic-bezier(.2,.72,.2,1), transform 1s cubic-bezier(.16,1,.3,1); will-change: transform, opacity; }
.has-institutional-reveals .about-page [data-reveal-from="left"] { --about-reveal-x: -85px; --about-reveal-y: 0px; }
.has-institutional-reveals .about-page [data-reveal-from="right"] { --about-reveal-x: 85px; --about-reveal-y: 0px; }
.has-institutional-reveals .about-page [data-reveal-from="up"] { --about-reveal-y: 70px; }
.has-institutional-reveals .about-page [data-institutional-reveal].is-in-view { opacity: 1; transform: translate3d(0, 0, 0); }

@media (max-width: 980px) {
    .about-hero-grid { grid-template-columns: 1fr; }
    .about-hero-copy { max-width: 820px; }
    .about-hero-image { width: min(720px, 94%); margin-left: auto; }
    .about-history-grid,
    .about-timeline-layout { grid-template-columns: 1fr; }
    .about-presidents { grid-template-columns: 1fr; }
    .about-presidents figure { height: clamp(260px, 48vw, 430px); }
    .about-mission-grid { grid-template-columns: 1fr 1fr; }
    .about-mission-grid article:nth-child(3) { border-left: 1px solid rgb(224 212 181 / 20%); }
    .about-mission-grid article:nth-child(-n+2) { border-bottom: 1px solid rgb(224 212 181 / 20%); }
    .about-timeline-intro { position: static; }
    .about-action-heading { grid-template-columns: 1fr; }
    .about-photo-mosaic { grid-template-columns: 1fr 1fr; }
    .about-photo-mosaic figure.is-tall { grid-row: span 2; }
    .about-photo-mosaic figure.is-wide { grid-column: auto; }
    .about-legacy-grid { grid-template-columns: 55px 1fr; }
    .about-legacy-grid > div:last-child { grid-column: 2; }
}

@media (max-width: 680px) {
    .about-hero { padding-top: 58px; }
    .about-hero-grid { gap: 55px; }
    .about-hero h1 { font-size: clamp(50px, 15vw, 72px); line-height: 1.08; }
    .about-hero-actions { align-items: flex-start; flex-direction: column; }
    .about-hero-image { width: calc(100% - 12px); margin: 0; padding: 9px 9px 0; }
    .about-hero-image figcaption { align-items: flex-start; flex-direction: column; }
    .about-hero-image figcaption small { max-width: none; text-align: left; }
    .about-ledger .container { grid-template-columns: 1fr 1fr; }
    .about-ledger article { min-height: 100px; border-bottom: 1px solid rgb(224 212 181 / 16%); }
    .about-quote-grid { grid-template-columns: 1fr; }
    .about-section-index { padding-bottom: 14px; border-bottom: 1px solid var(--archive-blue); }
    .about-quote-grid blockquote { padding-left: 24px; }
    .about-history-grid { gap: 35px; }
    .about-presidents { gap: 16px; margin-inline: -16px; }
    .about-presidents figure { height: 235px; }
    .about-presidents > div { padding: 34px 24px; }
    .about-mission-heading { grid-template-columns: 1fr; gap: 22px; }
    .about-mission-grid { grid-template-columns: 1fr; }
    .about-mission-grid article,
    .about-mission-grid article:nth-child(3) { border-right: 1px solid rgb(224 212 181 / 20%); border-bottom: 1px solid rgb(224 212 181 / 20%); border-left: 1px solid rgb(224 212 181 / 20%); }
    .about-mission-grid h3 { margin-top: 27px; }
    .about-timeline li { grid-template-columns: 1fr; gap: 10px; }
    .about-photo-mosaic { grid-template-columns: 1fr; grid-auto-rows: 310px; }
    .about-photo-mosaic figure.is-tall { grid-row: auto; }
    .about-photo-mosaic figure.is-wide { grid-column: auto; }
    .about-legacy-grid { grid-template-columns: 1fr; }
    .about-legacy-grid > div:last-child { grid-column: auto; }
    .about-links-heading { align-items: flex-start; flex-direction: column; }
    .about-links-grid { grid-template-columns: 1fr; }
    .about-links-grid a,
    .about-links-grid a:nth-child(even) { border-right: 0; }
    .about-links-grid a { grid-template-columns: 38px 1fr auto; padding-inline: 15px; }
    .has-institutional-reveals .about-page [data-reveal-from="left"] { --about-reveal-x: -38px; }
    .has-institutional-reveals .about-page [data-reveal-from="right"] { --about-reveal-x: 38px; }
}

@media (prefers-reduced-motion: reduce) {
    .about-page [data-institutional-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
    .about-photo-mosaic img { transition: none; }
}

/* Consulta documental: folhas do original, sem o tratamento das galerias. */
.historical-document-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; padding-block: 36px 60px; }
.historical-document-card { min-width: 0; padding: 20px; border: 1px solid var(--border-aged); background: var(--paper-light); }
.historical-document-cover { display: flex; align-items: center; justify-content: center; min-height: 280px; aspect-ratio: 4 / 5; padding: 22px; background: var(--paper-dark); border: 1px solid var(--border-aged); overflow: hidden; }
.historical-document-cover img { width: 100%; height: 100%; object-fit: contain; }
.historical-document-cover > span { text-align: center; font-size: 48px; color: var(--archive-blue); }
.historical-document-cover small { display: block; font: 14px sans-serif; margin-top: 12px; }
.historical-document-card h2 { font-size: 25px; margin-block: 18px 10px; overflow-wrap: anywhere; }
.historical-document-card > p { font-size: 14px; }
.historical-document-detail { padding-block: 50px; }
.document-detail-grid { display: grid; grid-template-columns: minmax(220px, .75fr) minmax(0, 1.5fr); gap: 48px; align-items: start; }
.document-detail-grid h1 { font-size: clamp(30px, 4vw, 48px); line-height: 1.15; overflow-wrap: anywhere; }
.document-detail-grid .eyebrow { display: block; margin-top: 26px; }
.document-record, .document-page-record dl { margin-block: 26px; }
.document-record > div, .document-page-record dl > div { padding-block: 10px; border-bottom: 1px solid var(--border-aged); }
.document-record dt, .document-page-record dt { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--archive-blue); }
.document-record dd, .document-page-record dd { margin: 5px 0 0; overflow-wrap: anywhere; }
.document-description { margin-top: 44px; }
.document-viewer { padding: 20px; background: var(--paper-light); min-height: 100dvh; }
.document-viewer:fullscreen { overflow: auto; }
.document-viewer-header { display: flex; gap: 20px; justify-content: space-between; align-items: center; padding: 0 0 20px; }
.document-viewer-header > div { flex: 1; text-align: center; min-width: 0; }
.document-viewer-header h1 { font-size: clamp(20px, 2.5vw, 30px); margin: 6px 0; overflow-wrap: anywhere; }
.document-viewer-header span { color: var(--archive-blue); letter-spacing: .12em; font-size: 11px; }
.document-viewer button, .document-leaf-controls a { padding: 10px 14px; color: var(--archive-blue-dark); border: 1px solid var(--border-aged); background: var(--paper-light); cursor: pointer; }
.document-viewer-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; }
.document-image-stage { height: min(75dvh, 950px); min-height: 300px; overflow: auto; display: flex; align-items: flex-start; justify-content: center; padding: 24px; background: #d5cdbc; border: 1px solid var(--border-aged); }
.document-image-stage img { width: 100%; height: 100%; object-fit: contain; filter: none; }
.document-image-stage img.is-zoomed { max-width: none; height: auto; object-fit: initial; flex-shrink: 0; }
.document-image-stage:has(.is-zoomed) { justify-content: flex-start; }
.document-page-record h2 { font-size: 24px; margin-top: 14px; }
.document-leaf-controls { display: flex; justify-content: space-between; gap: 8px; }
.document-leaf-controls a[aria-disabled="true"] { opacity: .45; cursor: default; }
.document-page-jump { display: block; margin-block: 20px; font-size: 13px; }
.document-page-jump select { display: block; width: 100%; margin-top: 8px; padding: 10px; border: 1px solid var(--border-aged); background: var(--paper-light); }
.document-zoom-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.document-image-status { color: #9c2929; }
.document-thumbnails { display: flex; overflow-x: auto; gap: 12px; padding-block: 20px 8px; }
.document-thumbnails a { flex: 0 0 90px; border: 2px solid transparent; padding: 6px; text-align: center; font-size: 12px; }
.document-thumbnails a[aria-current="page"] { border-color: var(--archive-blue); background: var(--paper-dark); }
.document-thumbnails img { height: 100px; width: 100%; object-fit: contain; }
.document-thumbnails span { display: block; margin-top: 6px; }
@media (min-width: 1201px) and (max-width: 1450px) {
    .site-header .header-inner { gap: 18px; }
    .site-header .main-nav { gap: 10px; font-size: 13px; }
    .site-header .main-nav-icon { width: 14px; height: 14px; flex-basis: 14px; }
}
/* Rótulos curtos e espaçamento uniforme sem esconder módulos do portal. */
.site-header .main-nav .search-link span { margin-left: 0; font-size: inherit; vertical-align: baseline; }
@media (min-width: 1201px) {
    .site-header .header-inner { gap: 24px; }
    .site-header .brand { flex-shrink: 0; }
    .site-header .main-nav { gap: clamp(10px, 1vw, 16px); font-size: 13px; flex-wrap: nowrap; }
    .site-header .main-nav a { gap: 5px; white-space: nowrap; }
    .site-header .main-nav-icon { width: 15px; height: 15px; flex-basis: 15px; }
    .site-header .main-nav .search-link { font-size: inherit; }
}
@media (max-width: 1200px) {
    .site-header .header-inner { position: relative; }
    .site-header button.nav-toggle { display: grid !important; right: 0; }
    .site-header .main-nav { position: absolute; top: calc(100% + 1px); right: 0; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 16px 22px 24px; background: var(--archive-blue-dark); border: 1px solid var(--border-aged); box-shadow: 0 14px 26px rgb(30 38 44 / 28%); font-size: 16px; }
    .site-header .main-nav.is-open { display: flex; max-height: calc(100dvh - 95px); overflow-y: auto; }
    .site-header .main-nav a, .site-header .main-nav a:first-child { display: inline-flex; padding: 12px 0; border-bottom: 1px solid rgb(232 222 201 / 15%); }
    .site-header .main-nav a:last-child { border-bottom: 0; }
}
@media (max-width: 900px) {
    .historical-document-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .document-viewer-layout { grid-template-columns: minmax(0, 1fr); }
    .document-image-stage { height: 65dvh; }
    .document-page-record dl { margin-block: 14px; }
}
@media (max-width: 600px) {
    .historical-document-grid, .document-detail-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .historical-document-detail { padding-block: 28px; }
    .document-viewer { padding: 12px; }
    .document-viewer-header { flex-wrap: wrap; gap: 12px; }
    .document-viewer-header > div { order: 3; flex-basis: 100%; text-align: left; }
    .document-image-stage { padding: 10px; }
}
