@charset "UTF-8";

:root {
  --paper: #f7f3e9;
  --paper-deep: #eee7d7;
  --paper-soft: #fbf9f3;
  --forest: #183d34;
  --forest-deep: #102f29;
  --forest-mid: #345d4b;
  --ink: #1c302a;
  --muted: #4d5c53;
  --terracotta: #91462e;
  --clay: #b66e4d;
  --gold: #e5c486;
  --border: #d7d3c7;
  --white: #fffdf8;
  --font-body: "Segoe UI", Arial, sans-serif;
  --font-display: Georgia, "Times New Roman", serif;
  --text-base: 1.125rem;
  --text-small: .875rem;
  --space-1: .5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2rem;
  --space-5: 3rem;
  --space-6: 4rem;
  --space-7: 6rem;
  --radius-sm: .25rem;
  --radius-lg: 1.25rem;
  --shadow: 0 18px 55px rgb(16 47 41 / .12);
  --max-width: 1240px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 6.5rem; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 var(--text-base)/1.65 var(--font-body); }
body, button { -webkit-font-smoothing: antialiased; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
button, summary { font: inherit; }
a { color: inherit; text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
button { cursor: pointer; }
strong { font-weight: 700; }
:focus-visible { outline: 3px solid var(--terracotta); outline-offset: 4px; }
[id] { scroll-margin-top: 6.5rem; }
.wrap { width: min(calc(100% - 3rem), var(--max-width)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 100; top: .5rem; left: .5rem; padding: .7rem 1rem; color: var(--white); background: var(--forest-deep); transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }

.topline { display: flex; justify-content: space-between; padding: .42rem clamp(1.5rem, 4vw, 4.5rem); background: var(--forest-deep); color: #f8efd9; font-size: .62rem; font-weight: 700; letter-spacing: .2em; }
.site-header { position: sticky; top: 0; z-index: 20; background: rgb(247 243 233 / .97); border-bottom: 1px solid var(--border); backdrop-filter: blur(15px); }
.header-inner { min-height: 5.5rem; display: flex; align-items: center; gap: 1.5rem; }
.brand { display: inline-flex; align-items: center; gap: .65rem; flex: 0 0 auto; text-decoration: none; color: var(--terracotta); font-family: var(--font-display); font-weight: 700; font-size: 1.52rem; line-height: 1; letter-spacing: -.045em; }
.brand-mark { width: 2.45rem; height: 2.45rem; }
.brand small { display: block; padding-top: .31rem; font: 700 .56rem/1 var(--font-body); letter-spacing: .22em; }
.desktop-nav { display: flex; align-items: center; justify-content: center; gap: clamp(.75rem, 1.35vw, 1.65rem); margin-left: auto; }
.desktop-nav a { min-height: 2.75rem; display: inline-flex; align-items: center; white-space: nowrap; text-decoration: none; font-size: .83rem; font-weight: 650; color: var(--ink); }
.desktop-nav a:hover, .footer-top a:hover, .resources a:hover { color: var(--terracotta); }
.header-cta { min-height: 2.75rem; display: inline-flex; align-items: center; gap: .9rem; flex: 0 0 auto; padding: .48rem .95rem; border: 1px solid var(--forest); color: var(--forest); font-size: .82rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.header-cta:hover { background: var(--forest); color: var(--white); }
.mobile-menu { display: none; }

.eyebrow { display: flex; align-items: center; gap: .8rem; margin: 0 0 1.3rem; color: var(--terracotta); font-size: .72rem; font-weight: 800; line-height: 1.4; letter-spacing: .2em; text-transform: uppercase; }
.eyebrow--light { color: var(--gold); }
.eyebrow-line { display: inline-block; width: 1.7rem; height: 1px; background: currentColor; }
h1, h2, h3, p, figure { margin-top: 0; }
h1, h2, h3 { line-height: 1.08; }
h1, h2 { font-family: var(--font-display); font-weight: 400; letter-spacing: -.055em; }
h2 { font-size: clamp(2.9rem, 5.4vw, 5.6rem); }
h3 { font-family: var(--font-display); font-size: clamp(1.55rem, 2.4vw, 2.25rem); font-weight: 400; letter-spacing: -.035em; }
p { margin-bottom: 1.3rem; }
.section { padding-block: clamp(5rem, 8vw, 8.5rem); }
.button { min-height: 3.4rem; display: inline-flex; align-items: center; justify-content: space-between; gap: 1.2rem; padding: .8rem 1.3rem; border: 1px solid transparent; text-decoration: none; font-size: .9rem; font-weight: 750; line-height: 1.3; transition: background .2s ease, color .2s ease, transform .2s ease; }
.button:hover { transform: translateY(-2px); }
.button--light { background: var(--paper); color: var(--forest-deep); }
.button--light:hover { background: #fff; }
.button--dark { background: var(--forest); color: var(--white); }
.button--dark:hover { background: var(--forest-deep); }
.text-link, .inline-link { display: inline-flex; align-items: center; gap: .6rem; min-height: 2.75rem; font-size: .9rem; font-weight: 750; text-decoration: none; border-bottom: 1px solid currentColor; }
.text-link--light { color: var(--white); }
.inline-link { color: var(--terracotta); }

.hero { display: grid; grid-template-columns: minmax(0, 56%) minmax(0, 44%); min-height: min(48rem, calc(100svh - 7.5rem)); background: var(--forest); color: var(--white); overflow: hidden; }
.hero-copy { display: flex; flex-direction: column; justify-content: space-between; min-width: 0; padding: clamp(3rem, 5.5vw, 6rem) clamp(1.5rem, 5.3vw, 6.3rem) 1.7rem max(1.5rem, calc((100vw - var(--max-width))/2)); position: relative; }
.hero-copy::after { content: ""; position: absolute; width: 23rem; height: 23rem; right: -9rem; top: -9rem; border: 1px solid rgb(229 196 134 / .19); border-radius: 50%; pointer-events: none; }
.hero-copy__inner { position: relative; z-index: 1; max-width: 44rem; }
.hero h1 { margin: 0 0 1.65rem; font-size: clamp(4.1rem, 8vw, 9rem); line-height: .83; letter-spacing: -.075em; overflow-wrap: anywhere; }
.hero h1 span { display: block; padding-left: .28em; font-style: italic; font-weight: 400; }
.hero-lede { margin: 0 0 1.6rem; color: #f5e7ca; font: 400 clamp(1.4rem, 2.15vw, 2.15rem)/1.26 var(--font-display); }
.hero-intro { max-width: 30rem; margin-bottom: 2rem; color: #e7e9dd; font-size: 1.03rem; line-height: 1.65; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.65rem; }
.hero-index { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 3rem; color: #e9dcbf; font-size: .65rem; font-weight: 750; letter-spacing: .17em; }
.hero-image { position: relative; min-width: 0; min-height: 30rem; margin: 0; }
.hero-image picture, .hero-image img { width: 100%; height: 100%; }
.hero-image img { object-fit: cover; object-position: center 40%; }
.hero-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgb(12 24 19 / .44), transparent 35%); pointer-events: none; }
.hero-image figcaption { position: absolute; z-index: 1; right: 1.3rem; bottom: 1.2rem; color: white; font-size: .69rem; text-shadow: 0 1px 6px #000; }
.location-strip { background: var(--paper-deep); border-bottom: 1px solid var(--border); }
.location-strip .wrap { min-height: 4rem; display: flex; align-items: center; justify-content: center; gap: clamp(1rem, 3.5vw, 4rem); color: var(--forest); font-size: .69rem; font-weight: 800; letter-spacing: .17em; text-align: center; }
.strip-rule { width: clamp(1rem, 5vw, 6rem); height: 1px; background: #a9ada1; }

.intro-grid { display: grid; grid-template-columns: 16% 1fr; gap: 3rem; }
.section-aside { display: flex; align-items: flex-start; gap: .8rem; padding-top: .5rem; color: var(--terracotta); font-size: .7rem; font-weight: 800; letter-spacing: .17em; }
.section-aside p { margin: .15rem 0; }
.section-number { font-family: var(--font-display); font-size: 1.5rem; font-weight: 400; letter-spacing: 0; line-height: 1; }
.intro-main h2 { max-width: 53rem; margin-bottom: 2.5rem; }
.intro-columns { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 5.5rem); max-width: 59rem; color: var(--muted); }
.intro-columns p { margin-bottom: 1.5rem; }
.intro-main .inline-link { margin-top: .2rem; }
.pueblo-feature { display: grid; grid-template-columns: 38% 62%; margin-top: clamp(4rem, 7vw, 7rem); background: var(--paper-deep); }
.pueblo-feature__label { align-self: center; padding: clamp(2rem, 4vw, 4.8rem); }
.little-sun { display: block; margin-bottom: 3rem; color: var(--terracotta); font-size: 2.7rem; line-height: 1; }
.pueblo-feature__label > p:first-of-type { color: var(--terracotta); font-size: .7rem; font-weight: 800; letter-spacing: .2em; }
.pueblo-feature h3 { margin-bottom: 1.4rem; }
.pueblo-feature__label > p:last-child { color: var(--muted); font-size: 1rem; }
.pueblo-feature figure { position: relative; min-height: 25rem; margin: 0; overflow: hidden; }
.pueblo-feature img { width: 100%; height: 100%; object-fit: cover; }
.pueblo-feature figcaption { position: absolute; right: .8rem; bottom: .7rem; padding: .25rem .5rem; color: #fff; background: rgb(16 47 41 / .83); font-size: .68rem; }

.history-section { background: var(--paper-deep); }
.history-head { display: grid; grid-template-columns: 1fr .72fr; align-items: end; gap: clamp(2rem, 7vw, 7rem); }
.history-head h2 { max-width: 43rem; margin-bottom: 0; }
.history-head > p { max-width: 28rem; margin: 0 0 .4rem; color: var(--muted); }
.history-body { display: grid; grid-template-columns: 1fr .77fr; gap: clamp(2.5rem, 7vw, 7rem); margin-top: clamp(3.5rem, 6vw, 6.5rem); }
.timeline { margin: 0; padding: 0; list-style: none; border-top: 1px solid #b7b9aa; }
.timeline li { display: grid; grid-template-columns: 8.5rem 1fr; gap: 1rem; padding: 1.7rem 0 1.35rem; border-bottom: 1px solid #b7b9aa; }
.timeline-date { padding-top: .4rem; color: var(--terracotta); font-size: .8rem; font-weight: 800; letter-spacing: .08em; }
.timeline h3 { margin-bottom: .55rem; font-size: 1.7rem; }
.timeline p { max-width: 30rem; margin-bottom: 0; color: var(--muted); font-size: 1rem; }
.history-note { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; min-height: 25rem; padding: clamp(2rem, 4vw, 4rem); background: var(--terracotta); color: var(--white); }
.history-note > span { color: #e9c4a9; font: 400 5rem/.65 var(--font-display); }
.history-note p { margin: 1.7rem 0 2.2rem; font: 400 clamp(1.3rem, 2vw, 1.85rem)/1.38 var(--font-display); }
.history-note small { font-size: .68rem; font-weight: 800; letter-spacing: .17em; }
.source-note { margin-top: 2rem; color: var(--muted); font-size: .82rem; }
.source-note a { color: var(--terracotta); font-weight: 700; }

.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 3rem; margin-bottom: 3.5rem; }
.section-heading h2 { margin-bottom: 0; }
.section-heading > p { max-width: 20rem; margin: 0 0 .5rem; color: var(--muted); }
.sights-layout { display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(2rem, 5vw, 5.5rem); }
.sight--main figure { position: relative; height: 35rem; margin: 0 0 1.5rem; overflow: hidden; }
.sight--main img { width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.sight--main figcaption { position: absolute; bottom: .65rem; right: .7rem; padding: .25rem .5rem; background: rgb(16 47 41 / .84); color: var(--white); font-size: .68rem; }
.sight-copy > span, .sight-kicker { color: var(--terracotta); font-size: .7rem; font-weight: 800; letter-spacing: .17em; }
.sight-copy h3 { margin: .8rem 0 1rem; font-size: clamp(2rem, 3vw, 3.1rem); }
.sight-copy p, .sights-side p { max-width: 31rem; color: var(--muted); }
.sights-side { display: flex; flex-direction: column; justify-content: space-between; gap: 3rem; }
.sight--plain { padding: clamp(2rem, 3.5vw, 3.7rem); background: var(--paper-deep); }
.sight--plain h3 { margin: 1.2rem 0 1rem; }
.sight-illustration { position: relative; margin-top: 2rem; }
.sight-illustration img { width: 100%; aspect-ratio: 820 / 570; object-fit: cover; }
.sight-illustration span { display: block; margin-top: .55rem; color: var(--muted); font-size: .75rem; }
.sight--line { padding: 0 0 .8rem; border-bottom: 1px solid var(--border); }
.sight--line h3 { margin: .8rem 0 1rem; }
.sight--line figure { position: relative; margin: 1.5rem 0 0; overflow: hidden; }
.sight--line img { width: 100%; aspect-ratio: 1.75; object-fit: cover; }
.sight--line figcaption { position: absolute; right: .6rem; bottom: .6rem; padding: .25rem .5rem; background: rgb(16 47 41 / .86); color: #fff; font-size: .68rem; }

.landscape-section { padding: clamp(4rem, 7vw, 7.5rem) 0; background: var(--forest); color: var(--white); }
.landscape-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(2.5rem, 7vw, 7rem); }
.landscape-copy h2 { max-width: 36rem; margin-bottom: 2rem; }
.landscape-copy p:not(.eyebrow) { max-width: 34rem; color: #e8eee6; }
.landscape-copy .text-link { margin-top: .75rem; }
.landscape-photo { position: relative; margin: 0; min-height: 29rem; align-self: stretch; }
.landscape-photo img { width: 100%; height: 100%; object-fit: cover; }
.landscape-photo figcaption { position: absolute; right: .7rem; bottom: .7rem; padding: .25rem .5rem; color: #fff; background: rgb(16 47 41 / .85); font-size: .68rem; }

.traditions-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem, 9vw, 10rem); }
.traditions-lead { position: sticky; top: 8rem; align-self: start; }
.traditions-lead h2 { margin-bottom: 1.4rem; }
.traditions-lead > p:not(.eyebrow) { max-width: 25rem; color: var(--muted); }
.traditions-list { border-top: 1px solid var(--border); }
.traditions-list article { display: grid; grid-template-columns: 8.3rem 1fr; gap: 1rem; padding: 1.7rem 0; border-bottom: 1px solid var(--border); }
.tradition-time { padding-top: .25rem; color: var(--terracotta); font-size: .71rem; font-weight: 800; letter-spacing: .14em; }
.traditions-list h3 { margin-bottom: .6rem; }
.traditions-list p { max-width: 27rem; margin-bottom: 0; color: var(--muted); font-size: 1rem; }

.gallery-section { padding: clamp(5rem, 8vw, 8rem) 0; background: var(--forest-deep); color: var(--white); }
.gallery-head { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 3rem; }
.gallery-head h2 { margin-bottom: 0; }
.gallery-head > p { max-width: 20rem; margin: 0 .5rem .5rem; color: #e0e7dc; }
.gallery-grid { display: grid; grid-template-columns: 1.08fr 1fr 1fr; align-items: start; gap: 1rem; }
.gallery-item { margin: 0; }
.gallery-open { position: relative; display: block; overflow: hidden; }
.gallery-open img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1.03; object-fit: cover; transition: transform .3s ease; }
.gallery-item--tall .gallery-open img { aspect-ratio: 1 / 1.35; object-position: 55% 48%; }
.gallery-open:hover img { transform: scale(1.025); }
.gallery-open > span { position: absolute; right: .8rem; bottom: .8rem; padding: .45rem .7rem; background: var(--paper); color: var(--forest-deep); font-size: .75rem; font-weight: 800; }
.gallery-item figcaption { display: flex; justify-content: space-between; gap: 1rem; padding-top: .75rem; font-size: .78rem; }
.gallery-item figcaption strong { font-weight: 700; }
.gallery-item figcaption small { color: #d9dfd1; font-size: .67rem; text-align: right; }
.gallery-credit-link { margin-top: 2.2rem; margin-bottom: 0; color: #d9dfd1; font-size: .82rem; }
.gallery-credit-link a { color: var(--white); font-weight: 700; }

.visit-layout { display: grid; grid-template-columns: 1fr .82fr; align-items: center; gap: clamp(3rem, 9vw, 9rem); }
.visit-copy h2 { margin-bottom: 2rem; }
.visit-copy p:not(.eyebrow) { max-width: 36rem; color: var(--muted); }
.visit-copy .button { margin-top: 1rem; }
.visit-card { min-height: 31rem; display: flex; flex-direction: column; padding: clamp(2rem, 4vw, 4rem); color: var(--white); background: var(--terracotta); box-shadow: var(--shadow); }
.visit-card__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: auto; font-size: .7rem; font-weight: 800; letter-spacing: .18em; }
.visit-card__top span:last-child { font-size: 2rem; line-height: 1; }
.visit-card h3 { margin: 3rem 0 1rem; font-size: clamp(2rem, 3vw, 3rem); }
.visit-card p { margin-bottom: 1rem; color: #fff4e9; }
.visit-card__graphic { display: flex; justify-content: space-between; align-items: center; gap: .6rem; margin-top: 1.4rem; padding-block: 1.1rem; border-top: 1px solid rgb(255 255 255 / .55); border-bottom: 1px solid rgb(255 255 255 / .55); color: #fff; font-size: .62rem; font-weight: 800; letter-spacing: .1em; }
.visit-card__graphic .dot { width: .4rem; height: .4rem; flex: 0 0 auto; border-radius: 50%; background: var(--gold); }
.visit-card__graphic .dot--large { width: .7rem; height: .7rem; }
.visit-card .visit-card__fine { margin-top: .65rem; margin-bottom: 0; font-size: .7rem; }
.resources { display: grid; grid-template-columns: .65fr 1fr; gap: 3rem; margin-top: clamp(5rem, 8vw, 8rem); padding-top: 2rem; border-top: 1px solid var(--border); }
.resources h3 { max-width: 18rem; font-size: 1.55rem; }
.resources > div { display: grid; }
.resources a { min-height: 3.7rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--border); text-decoration: none; font-size: .95rem; font-weight: 700; }

.site-footer { padding-top: 4.5rem; background: var(--forest-deep); color: var(--white); }
.footer-top { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; padding-bottom: 4rem; }
.footer-brand { display: inline-flex; flex-direction: column; align-items: flex-start; gap: .45rem; font: 400 2.3rem/1 var(--font-display); letter-spacing: -.06em; text-decoration: none; }
.footer-brand__mark { width: 2.45rem; height: 2.45rem; color: #fff; }
.footer-top p { max-width: 18rem; margin: .9rem 0 0; color: #d4e0d6; font-size: .92rem; }
.footer-top nav { display: grid; grid-template-columns: 1fr 1fr; gap: .25rem 1.4rem; }
.footer-top nav a { min-height: 2.75rem; display: inline-flex; align-items: center; text-decoration: none; font-size: .83rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 2rem; padding-block: 1.2rem; border-top: 1px solid rgb(255 255 255 / .25); color: #d4e0d6; font-size: .75rem; }
.footer-bottom a { color: var(--white); white-space: nowrap; }
.footer-credit { padding-bottom: 1.4rem; color: #d4e0d6; font-size: .75rem; text-align: center; }

.photo-dialog { width: min(95vw, 70rem); max-height: 95vh; padding: 1rem; border: 0; color: var(--ink); background: var(--paper-soft); box-shadow: 0 25px 80px rgb(0 0 0 / .45); }
.photo-dialog::backdrop { background: rgb(10 25 20 / .86); }
.photo-dialog__top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .7rem; }
.photo-dialog h2 { margin: 0; font: 400 1.2rem/1.2 var(--font-display); }
.photo-dialog__close { min-width: 4.5rem; min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; gap: .4rem; border: 1px solid var(--forest); background: var(--paper); color: var(--forest); font-size: .85rem; font-weight: 700; }
.photo-dialog__close span { font-size: 1.45rem; line-height: 1; }
.photo-dialog img { width: 100%; max-height: calc(95vh - 8rem); object-fit: contain; background: var(--forest-deep); }
.photo-dialog__caption { display: flex; justify-content: space-between; gap: 1rem; padding-top: .6rem; font-size: .85rem; }
.photo-dialog__caption p { margin: 0; }
.photo-dialog__caption small { color: var(--muted); text-align: right; }

@media (max-width: 1120px) {
  .desktop-nav { gap: .8rem; }
  .desktop-nav a { font-size: .76rem; }
  .header-cta { display: none; }
  .hero { grid-template-columns: 56% 44%; }
  .hero-copy { padding-left: 2.5rem; }
}

@media (max-width: 900px) {
  .desktop-nav { display: none; }
  .mobile-menu { display: block; position: relative; margin-left: auto; }
  .mobile-menu summary { min-width: 5rem; min-height: 2.75rem; display: flex; align-items: center; justify-content: center; gap: .7rem; border: 1px solid var(--forest); color: var(--forest); cursor: pointer; list-style: none; font-size: .85rem; font-weight: 750; }
  .mobile-menu summary::-webkit-details-marker { display: none; }
  .menu-icon { width: 1rem; display: flex; flex-direction: column; gap: 3px; }
  .menu-icon i { display: block; width: 100%; height: 2px; background: currentColor; }
  .mobile-menu[open] summary { background: var(--forest); color: var(--white); }
  .mobile-menu nav { position: absolute; top: calc(100% + 1rem); right: 0; width: min(20rem, calc(100vw - 3rem)); display: grid; padding: .75rem; background: var(--paper-soft); border: 1px solid var(--border); box-shadow: var(--shadow); }
  .mobile-menu nav a { min-height: 2.9rem; display: flex; align-items: center; padding: .45rem .75rem; text-decoration: none; font-size: .94rem; font-weight: 700; }
  .mobile-menu nav a:hover { background: var(--paper-deep); }
  .mobile-menu nav .mobile-menu__directions { margin-top: .35rem; background: var(--forest); color: var(--white); }
  .hero h1 { font-size: clamp(4.25rem, 8vw, 6.2rem); }
  .hero-copy { padding-left: 1.5rem; padding-right: 1.5rem; }
  .intro-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .section-aside { padding-top: 0; }
  .sights-layout, .history-body { gap: 2.5rem; }
  .sight--main figure { height: 30rem; }
  .sights-side { gap: 2rem; }
  .sight--plain { padding: 2rem; }
  .sight--line { padding-bottom: 1rem; }
  .landscape-grid { gap: 2rem; }
  .traditions-grid { gap: 3rem; }
}

@media (max-width: 760px) {
  html { scroll-padding-top: 5.5rem; }
  [id] { scroll-margin-top: 5.5rem; }
  .topline { display: none; }
  .header-inner { min-height: 4.8rem; }
  .hero { display: flex; flex-direction: column; min-height: 0; }
  .hero-image { order: -1; min-height: 0; height: clamp(19rem, 67vw, 27rem); }
  .hero-image img { object-position: center 35%; }
  .hero-copy { padding: 3.2rem 1.5rem 1.5rem; }
  .hero h1 { font-size: clamp(4rem, 12vw, 6rem); }
  .hero h1 span { display: inline; padding-left: 0; }
  .hero-lede br { display: none; }
  .hero-index { padding-top: 3rem; }
  .location-strip .wrap { flex-wrap: wrap; gap: .4rem 1rem; padding-block: 1rem; font-size: .6rem; }
  .strip-rule { display: none; }
  .intro-columns, .history-head, .history-body, .sights-layout, .landscape-grid, .traditions-grid, .visit-layout, .resources { grid-template-columns: 1fr; }
  .intro-columns { gap: 0; }
  .pueblo-feature { grid-template-columns: 1fr; }
  .pueblo-feature__label { padding: 2rem; }
  .little-sun { margin-bottom: 1.3rem; }
  .pueblo-feature figure { min-height: 0; height: 20rem; }
  .history-head, .history-body { gap: 2rem; }
  .history-head > p { max-width: 35rem; }
  .history-body { margin-top: 3rem; }
  .history-note { min-height: 0; }
  .section-heading, .gallery-head { display: block; margin-bottom: 2.5rem; }
  .section-heading > p, .gallery-head > p { margin: 1rem 0 0; }
  .sights-side { gap: 2.5rem; }
  .sight--main figure { height: 29rem; }
  .landscape-photo { min-height: 0; height: 24rem; }
  .traditions-lead { position: static; }
  .gallery-grid { grid-template-columns: 1fr 1fr; }
  .gallery-item--tall { grid-row: span 2; }
  .gallery-item--tall .gallery-open img { aspect-ratio: .75; }
  .gallery-open img { aspect-ratio: 1.1; }
  .gallery-item figcaption { display: block; }
  .gallery-item figcaption small { display: block; text-align: left; }
  .visit-card { min-height: 27rem; }
  .resources { gap: 1rem; }
  .resources h3 { max-width: none; margin-bottom: 0; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-top > div:first-child { grid-column: 1 / -1; }
  .footer-top nav { grid-column: 1 / -1; }
}

@media (max-width: 500px) {
  .wrap { width: min(calc(100% - 2.25rem), var(--max-width)); }
  .brand { font-size: 1.3rem; }
  .brand-mark { width: 2rem; height: 2rem; }
  .hero-copy { padding-inline: 1.125rem; }
  .hero h1 { font-size: clamp(3.65rem, 13vw, 4.75rem); overflow-wrap: normal; }
  .hero h1 span { display: block; }
  .hero-lede { font-size: 1.4rem; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .hero-index span:last-child { max-width: 12rem; text-align: right; }
  .section { padding-block: 4.7rem; }
  h2 { font-size: clamp(2.7rem, 12vw, 3.7rem); }
  .timeline li, .traditions-list article { grid-template-columns: 1fr; gap: .25rem; }
  .timeline h3, .traditions-list h3 { margin-top: .25rem; }
  .sight--main figure { height: 26rem; }
  .gallery-grid { grid-template-columns: 1fr; gap: 2rem; }
  .gallery-item--tall { grid-row: auto; }
  .gallery-item--tall .gallery-open img { aspect-ratio: 1 / 1.05; }
  .gallery-open img { aspect-ratio: 1.2; }
  .gallery-item figcaption { display: flex; }
  .gallery-item figcaption small { text-align: right; }
  .footer-top { grid-template-columns: 1fr; gap: 2rem; }
  .footer-top > div:first-child { grid-column: auto; }
  .footer-top nav { grid-column: auto; }
  .footer-bottom { flex-direction: column; gap: .5rem; }
  .photo-dialog__caption { display: block; }
  .photo-dialog__caption small { display: block; text-align: left; }
}

@media (max-width: 340px) {
  .hero h1 { font-size: 3.5rem; }
  .brand { font-size: 1.18rem; }
  .mobile-menu summary { min-width: 4.3rem; gap: .4rem; }
  .visit-card__graphic { font-size: .54rem; gap: .25rem; }
}

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

@media (forced-colors: active) {
  .header-cta, .button, .gallery-open > span, .photo-dialog__close { border: 1px solid ButtonText; }
}

/* Sitio de varias páginas */
.scroll-progress { position: fixed; inset: 0 auto auto 0; z-index: 50; width: 100%; height: 3px; background: var(--terracotta); transform: scaleX(0); transform-origin: left center; pointer-events: none; }
.desktop-nav a[aria-current="page"] { color: var(--terracotta); border-bottom: 2px solid currentColor; }
.mobile-menu nav a[aria-current="page"] { background: var(--paper-deep); color: var(--terracotta); }
.site-header { box-shadow: 0 3px 17px rgb(16 47 41 / .035); }
.parallax-window { width: 100%; height: 100%; overflow: hidden; }
.parallax-window img { width: 100%; height: 100%; object-fit: cover; transform: translate3d(0,var(--parallax-y,0px),0) scale(1.12); will-change: transform; }
.motion-ready [data-reveal] { opacity: 0; transform: translate3d(0,2rem,0); transition: opacity .75s ease, transform .75s cubic-bezier(.22,1,.36,1); }
.motion-ready [data-reveal].is-visible { opacity: 1; transform: none; }
.motion-ready .chronicle li:nth-child(2), .motion-ready .festival-list article:nth-child(2) { transition-delay: .08s; }
.motion-ready .chronicle li:nth-child(3), .motion-ready .festival-list article:nth-child(3) { transition-delay: .14s; }
.motion-ready .chronicle li:nth-child(4), .motion-ready .festival-list article:nth-child(4) { transition-delay: .2s; }
.button, .chapter-tile, .hub-index__minor a, .next-chapter a, .resource-list a, .relation-links a { transition: background .25s ease, color .25s ease, transform .25s ease, border-color .25s ease; }

/* Inicio: un índice editorial, no una página única larga. */
.hub-hero { display: grid; grid-template-columns: 56% 44%; min-height: clamp(39rem,82svh,49rem); background: var(--forest); color: var(--white); }
.hub-hero__copy { display: flex; flex-direction: column; justify-content: space-between; min-width: 0; padding: clamp(3rem,5vw,5.5rem) clamp(2rem,5.5vw,6rem) 1.5rem max(1.5rem,calc((100vw - var(--max-width))/2)); position: relative; overflow: hidden; }
.hub-hero__copy::before { content: ""; width: 32rem; height: 32rem; position: absolute; top: -14rem; right: -11rem; border: 1px solid rgb(229 196 134 / .2); border-radius: 50%; }
.hub-hero__inner { position: relative; z-index: 1; align-self: center; width: 100%; }
.hub-hero h1 { margin: .4rem 0 2rem; font-size: clamp(2.5rem,8vw,7rem); line-height: .95; letter-spacing: -.075em; white-space: nowrap; }
.hub-hero__lead { max-width: 32rem; margin-bottom: 2.3rem; color: #f1eadc; font: 400 clamp(1.4rem,2vw,2rem)/1.3 var(--font-display); }
.hub-hero__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.6rem; }
.hub-hero__folio { display: flex; justify-content: space-between; gap: 1rem; padding-top: 2.5rem; color: #dfdfcd; font-size: .67rem; font-weight: 750; letter-spacing: .15em; }
.hub-hero__photo { min-height: 100%; position: relative; margin: 0; overflow: hidden; }
.hub-hero__photo .parallax-window img { object-position: center 45%; }
.hub-hero__photo figcaption, .inner-hero__media figcaption, .photo-band__media figcaption, .street-grid__photo figcaption { position: absolute; right: .8rem; bottom: .8rem; z-index: 1; padding: .27rem .55rem; background: rgb(16 47 41 / .86); color: #fff; font-size: .68rem; }
.chapter-intro__grid { display: grid; grid-template-columns: 17% 1fr; gap: 3rem; }
.chapter-intro h2 { max-width: 57rem; }
.chapter-intro p:last-child { max-width: 53rem; color: var(--muted); font-size: 1.2rem; }
.hub-index { background: var(--paper-deep); }
.hub-index__grid { display: grid; grid-template-columns: 1.12fr 1fr 1fr; gap: 1rem; }
.chapter-tile { min-height: 25rem; display: flex; flex-direction: column; align-items: flex-start; position: relative; isolation: isolate; overflow: hidden; padding: clamp(1.7rem,3vw,3rem); text-decoration: none; }
.chapter-tile:hover { transform: translateY(-5px); }
.chapter-tile--image { color: #fff; background: var(--forest-deep); }
.chapter-tile--image::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,rgb(6 23 18 / .64),rgb(6 23 18 / .10) 35%,rgb(6 23 18 / .42) 65%,rgb(6 23 18 / .90)); }
.tile-photo { position: absolute; z-index: -2; inset: 0; }
.tile-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.chapter-tile--pueblo .tile-photo img { object-position: center top; }
.chapter-tile--historia .tile-photo img { object-position: center center; }
.chapter-tile--patrimonio .tile-photo img { object-position: 60% center; }
.chapter-tile--image:hover img { transform: scale(1.045); }
.tile-meta { font-size: .7rem; font-weight: 800; letter-spacing: .18em; }
.chapter-tile strong { max-width: 16rem; margin-top: auto; font: 400 clamp(1.9rem,2.5vw,2.7rem)/1.12 var(--font-display); letter-spacing: -.045em; }
.tile-description { max-width: 16rem; margin-top: 1rem; font-size: .9rem; line-height: 1.55; }
.tile-arrow { position: absolute; right: 1.6rem; top: 1.35rem; font-size: 1.5rem; line-height: 1; }
.hub-index__minor { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 2.2rem; border-top: 1px solid #bdb7a9; }
.hub-index__minor a { min-height: 5.4rem; display: flex; align-items: center; gap: 1rem; padding: .8rem 1rem .8rem 0; border-bottom: 1px solid #bdb7a9; text-decoration: none; }
.hub-index__minor a + a { padding-left: 1rem; border-left: 1px solid #bdb7a9; }
.hub-index__minor a:hover { color: var(--terracotta); }
.hub-index__minor span:first-child { color: var(--terracotta); font-size: .75rem; font-weight: 800; }
.hub-index__minor strong { font: 400 clamp(1.2rem,1.5vw,1.5rem)/1.2 var(--font-display); }
.hub-index__minor span:last-child { margin-left: auto; }
.home-closing { padding: clamp(5rem,8vw,8rem) 0; background: var(--forest); color: var(--white); }
.home-closing__grid { display: grid; grid-template-columns: 27% 1fr; gap: 3rem; }
.home-closing h2 { max-width: 47rem; }
.home-closing p:not(.eyebrow) { max-width: 37rem; color: #e4ebe1; }

/* Portadas interiores y bloques editoriales */
.inner-hero { display: grid; grid-template-columns: 51% 49%; min-height: clamp(32rem,70svh,42rem); background: var(--forest); color: var(--white); }
.inner-hero__copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; min-width: 0; padding: 4rem clamp(2rem,5.5vw,6rem) 4rem max(1.5rem,calc((100vw - var(--max-width))/2)); }
.inner-hero h1 { max-width: 38rem; margin: 0 0 1.65rem; font-size: clamp(3.7rem,6vw,7rem); line-height: .96; }
.inner-hero__copy > p:not(.eyebrow) { max-width: 33rem; color: #e3ece1; font: 400 clamp(1.2rem,1.7vw,1.55rem)/1.42 var(--font-display); }
.inner-hero__copy > .text-link, .inner-hero__copy > .button { margin-top: 1.1rem; }
.inner-hero__media { position: relative; min-height: 31rem; margin: 0; overflow: hidden; }
.inner-hero__media .parallax-window img { object-position: center 42%; }
.inner-hero__media--pueblo .parallax-window img { object-position: center top; }
.inner-hero__media--patrimonio .parallax-window img { object-position: 60% top; }
.inner-hero__media--traditions .parallax-window img { object-position: center 50%; }
.inner-hero__media--visita .parallax-window img { object-position: center 52%; }
.editorial-grid { display: grid; grid-template-columns: 17% 1fr; gap: 3rem; }
.editorial-grid h2 { max-width: 56rem; }
.editorial-grid > div:last-child > p:not(.eyebrow) { max-width: 58rem; color: var(--muted); }
.history-origin-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(16rem,.68fr); align-items: start; gap: clamp(2rem,4vw,4rem); margin-top: clamp(1.5rem,3vw,2.5rem); }
.history-origin-layout > p { margin-bottom: 0; color: var(--muted); }
.history-origin-photo { width: 100%; max-width: 25rem; margin: 0; }
.history-origin-photo img { display: block; width: 100%; height: auto; }
.history-origin-photo figcaption { margin-top: .7rem; color: var(--muted); font-size: .76rem; text-align: right; }
.copy-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(2rem,5vw,5rem); max-width: 61rem; }
.copy-columns p, .wide-copy { font-size: 1.15rem; line-height: 1.7; }
.built-form, .history-chapters, .memorial-section, .festival-section, .practical-section { background: var(--paper-deep); }
.built-form__grid, .relation-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem,9vw,9rem); }
.built-form h2, .relation-grid h2 { max-width: 39rem; }
.built-form__grid > div:first-child p:not(.eyebrow), .relation-grid > div:first-child p:not(.eyebrow) { max-width: 36rem; color: var(--muted); }
.form-list article { display: grid; grid-template-columns: 3rem 1fr; gap: 0 1.4rem; padding: 1.3rem 0; border-top: 1px solid #b6b9aa; }
.form-list article:last-child { border-bottom: 1px solid #b6b9aa; }
.form-list article > span { grid-row: span 2; color: var(--terracotta); font: 400 1.6rem/1 var(--font-display); }
.form-list h3 { margin-bottom: .4rem; }
.form-list p { margin: 0; color: var(--muted); font-size: 1rem; }
.photo-band { height: clamp(20rem,50vw,36rem); }
.photo-band__media, .photo-band__media .parallax-window { width: 100%; height: 100%; position: relative; margin: 0; }
.photo-band__media .parallax-window img { object-position: center 56%; }
.relation-links article { padding: 1.5rem 0; border-top: 1px solid var(--border); }
.relation-links article:last-child { border-bottom: 1px solid var(--border); }
.relation-links article > span { color: var(--terracotta); font-size: .7rem; font-weight: 800; letter-spacing: .17em; }
.relation-links h3 { margin: .6rem 0; }
.relation-links p { margin: 0; color: var(--muted); font-size: 1rem; }
.relation-links a { display: inline-flex; min-height: 2.75rem; align-items: center; margin-top: .5rem; color: var(--terracotta); font-size: .87rem; font-weight: 750; }
.next-chapter { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 3rem; border-top: 1px solid var(--border); }
.next-chapter > span { color: var(--terracotta); font-size: .7rem; font-weight: 800; letter-spacing: .17em; }
.next-chapter a { display: inline-flex; align-items: center; gap: 1.5rem; color: var(--forest); font: 400 clamp(1.35rem,2vw,2rem)/1.2 var(--font-display); text-decoration: none; }
.next-chapter a:hover { color: var(--terracotta); transform: translateX(3px); }

/* Historia */
.chronicle { margin: 0; padding: 0; list-style: none; border-top: 1px solid #b4b9ac; }
.chronicle li { display: grid; grid-template-columns: minmax(9rem,.55fr) 1.45fr; gap: 2rem; padding: 2.5rem 0; border-bottom: 1px solid #b4b9ac; }
.chronicle__year { color: var(--terracotta); font: 400 clamp(1.7rem,2.5vw,2.5rem)/1 var(--font-display); letter-spacing: -.045em; }
.chronicle h3 { margin-bottom: .65rem; }
.chronicle p { max-width: 49rem; margin: 0; color: var(--muted); }
.history-context { padding: clamp(5rem,8vw,8rem) 0; background: var(--forest); color: var(--white); }
.history-context__grid { display: grid; grid-template-columns: 1fr .9fr; gap: clamp(3rem,9vw,9rem); }
.history-context h2 { max-width: 40rem; }
.history-context p { color: #e4ebe1; }
.source-section__grid { display: grid; grid-template-columns: .8fr 1fr; gap: 5rem; }
.source-section h2 { margin-bottom: 0; }
.source-section p { color: var(--muted); }
.source-section a { color: var(--terracotta); font-weight: 700; }

/* Patrimonio */
.sight-detail__grid, .memorial-grid, .street-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(3rem,8vw,8rem); }
.sight-detail h2, .memorial-grid h2, .street-grid h2 { max-width: 38rem; }
.sight-detail p:not(.eyebrow), .memorial-grid p:not(.eyebrow), .street-grid p:not(.eyebrow) { max-width: 34rem; color: var(--muted); }
.sight-detail__photo { height: 35rem; position: relative; margin: 0; }
.sight-detail__photo .parallax-window img { object-position: center 53%; }
.sight-detail__photo figcaption { position: absolute; right: .7rem; bottom: .7rem; padding: .25rem .5rem; color: var(--white); background: rgb(16 47 41 / .86); font-size: .68rem; }
.memorial-photo { width: min(100%,32rem); margin: 0; justify-self: center; }
.memorial-photo img { display: block; width: 100%; height: auto; }
.memorial-photo figcaption { padding-top: .7rem; color: var(--muted); font-size: .8rem; }
.street-grid__photo { height: 28rem; position: relative; margin: 0; }
.street-grid__photo .parallax-window img { object-position: center top; transform-origin: center top; }
.heritage-note { padding: clamp(4rem,7vw,7rem) 0; background: var(--forest); color: var(--white); }
.heritage-note__grid { display: grid; grid-template-columns: .45fr 1fr; gap: 4rem; }
.heritage-note__grid > span { color: var(--gold); font-size: .72rem; font-weight: 800; letter-spacing: .17em; }
.heritage-note h2 { margin-bottom: 1.2rem; }
.heritage-note p { max-width: 41rem; color: #e3ece1; }
.heritage-note__body { display: grid; grid-template-columns: minmax(0,1fr) minmax(13rem,.72fr); align-items: start; gap: clamp(1.5rem,3vw,3rem); }
.heritage-note__photo { width: 100%; max-width: 21rem; margin: 0; justify-self: end; }
.heritage-note__photo img { display: block; width: 100%; height: auto; }
.heritage-note__photo figcaption { margin-top: .65rem; color: #d4e0d7; font-size: .8rem; text-align: right; }

/* Tradiciones */
.festival-list { border-top: 1px solid #b4b9ac; }
.festival-list article { display: grid; grid-template-columns: minmax(10rem,.55fr) 1.45fr; gap: 2rem; padding: clamp(2rem,4vw,4rem) 0; border-bottom: 1px solid #b4b9ac; }
.festival-month { color: var(--terracotta); font-size: .78rem; font-weight: 800; letter-spacing: .15em; }
.festival-month small { display: block; margin-top: .4rem; font: 400 2rem/1 var(--font-display); letter-spacing: 0; }
.festival-list h2 { margin-bottom: 1rem; font-size: clamp(2.3rem,4.5vw,4.8rem); }
.festival-list p { max-width: 42rem; margin: 0; color: var(--muted); }
.festival-cta { padding: clamp(5rem,8vw,8rem) 0; background: var(--forest); color: var(--white); }
.festival-cta__grid { display: grid; grid-template-columns: 1fr .75fr; gap: clamp(3rem,9vw,9rem); }
.festival-cta p:not(.eyebrow) { color: #e4ebe1; }
.festival-cta .button { margin-top: 1rem; }

/* Galería */
.gallery-page-head { padding: clamp(5rem,9vw,9rem) 0; background: var(--forest-deep); color: var(--white); }
.gallery-page-head h1 { max-width: 59rem; margin: 0; font-size: clamp(3.5rem,7vw,7.5rem); line-height: .95; }
.gallery-page__intro { margin-bottom: 3rem; }
.gallery-page__intro h2 { max-width: 38rem; }
.photo-stories { display: grid; grid-template-columns: 1.08fr 1fr; align-items: start; gap: 2.5rem 1.5rem; }
.photo-story { margin: 0; }
.photo-story--portrait { grid-row: span 2; }
.photo-story .gallery-open img { aspect-ratio: 1.55; }
.photo-story--portrait .gallery-open img { aspect-ratio: .77; object-position: center 47%; }
.photo-story--tower .gallery-open img, .photo-story--school .gallery-open img { object-position: center top; }
.photo-story--framed .gallery-open img { object-fit: contain; background: var(--paper-deep); }
.photo-story--orchard .gallery-open img { object-position: center 35%; }
.photo-story figcaption { display: grid; gap: .3rem; padding-top: .9rem; }
.photo-story figcaption span { color: var(--terracotta); font-size: .67rem; font-weight: 800; letter-spacing: .16em; }
.photo-story figcaption strong { font: 400 1.6rem/1.2 var(--font-display); }
.photo-story figcaption small { color: var(--muted); font-size: .75rem; }

/* Visita */
.visit-page__grid { display: grid; grid-template-columns: 1fr .83fr; align-items: center; gap: clamp(3rem,9vw,9rem); }
.visit-page__grid > div:first-child p:not(.eyebrow) { max-width: 35rem; color: var(--muted); }
.visit-page__grid .button { margin-top: .8rem; }
.practical-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(1.5rem,4vw,4rem); }
.practical-grid article { padding-top: 1.2rem; border-top: 1px solid #b4b9ac; }
.practical-grid article > span { color: var(--terracotta); font-size: .7rem; font-weight: 800; letter-spacing: .15em; }
.practical-grid h3 { margin: 1.3rem 0 .8rem; }
.practical-grid p { color: var(--muted); font-size: 1rem; }
.official-links__grid { display: grid; grid-template-columns: .8fr 1fr; gap: clamp(3rem,9vw,9rem); }
.official-links h2 { max-width: 32rem; }
.resource-list { display: grid; }
.resource-list a { min-height: 4.2rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: .8rem; border-bottom: 1px solid var(--border); text-decoration: none; font-size: .96rem; font-weight: 700; }
.resource-list a:first-child { border-top: 1px solid var(--border); }
.resource-list a:hover { color: var(--terracotta); padding-left: .5rem; }

@media (max-width: 900px) {
  .heritage-note__body { grid-template-columns: 1fr; }
  .heritage-note__photo { max-width: 22rem; justify-self: start; }
  .history-origin-layout { grid-template-columns: 1fr; }
  .history-origin-photo { max-width: 23rem; }
  .hub-hero__copy, .inner-hero__copy { padding-left: 2rem; }
  .hub-index__grid { grid-template-columns: 1fr 1fr; }
  .chapter-tile--pueblo { grid-row: span 2; }
  .hub-index__minor { grid-template-columns: 1fr; }
  .hub-index__minor a + a { padding-left: 0; border-left: 0; }
  .inner-hero h1 { font-size: clamp(3.5rem,6vw,5rem); }
  .built-form__grid, .relation-grid, .sight-detail__grid, .memorial-grid, .street-grid { gap: 3rem; }
}

@media (max-width: 760px) {
  .hub-hero, .inner-hero { display: flex; flex-direction: column; }
  .hub-hero__photo, .inner-hero__media { order: -1; min-height: 0; height: clamp(19rem,65vw,27rem); }
  .hub-hero__copy, .inner-hero__copy { min-height: 25rem; padding: 3rem 1.5rem 1.5rem; }
  .hub-hero h1 { font-size: clamp(2.5rem,10vw,5.5rem); }
  .hub-hero__folio { padding-top: 3rem; }
  .inner-hero h1 { font-size: clamp(3.7rem,10vw,5.5rem); }
  .chapter-intro__grid, .editorial-grid, .home-closing__grid, .built-form__grid, .relation-grid, .history-context__grid, .source-section__grid, .sight-detail__grid, .memorial-grid, .street-grid, .heritage-note__grid, .festival-cta__grid, .gallery-page__intro, .visit-page__grid, .official-links__grid { grid-template-columns: 1fr; gap: 2rem; }
  .copy-columns { grid-template-columns: 1fr; gap: 0; }
  .chapter-intro .section-aside, .editorial-section .section-aside { margin-bottom: 0; }
  .chapter-tile { min-height: 20rem; }
  .photo-band { height: 23rem; }
  .sight-detail__photo, .street-grid__photo { height: 24rem; }
  .photo-stories { gap: 2rem 1rem; }
  .photo-story--portrait .gallery-open img { aspect-ratio: .7; }
  .practical-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .next-chapter { flex-wrap: wrap; }
}

@media (max-width: 500px) {
  .hub-hero__actions { align-items: flex-start; flex-direction: column; gap: .8rem; }
  .inner-hero h1 { font-size: clamp(3.1rem,11vw,4rem); }
  .hub-index__grid, .photo-stories { grid-template-columns: 1fr; }
  .chapter-tile--pueblo, .photo-story--portrait { grid-row: auto; }
  .chapter-tile { min-height: 18rem; }
  .photo-story--portrait .gallery-open img { aspect-ratio: 1 / 1.06; }
  .chronicle li, .festival-list article { grid-template-columns: 1fr; gap: 1rem; }
  .festival-month small { display: inline; margin-left: .5rem; font-size: 1.5rem; }
  .inner-hero__copy { min-height: 0; }
  .gallery-page-head { padding-block: 5rem; }
  .visit-card { min-height: 26rem; }
}

@media (prefers-reduced-motion: reduce) {
  .parallax-window img { transform: none !important; will-change: auto; }
  .motion-ready [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
  .scroll-progress { display: none; }
  .chapter-tile:hover, .next-chapter a:hover, .button:hover, .chapter-tile--image:hover img { transform: none; }
}
