:root {
  --bg: #ffffff;
  --paper: #ffffff;
  --ink: #211f1b;
  --muted: #666666;
  --line: #e6e6e6;
  --accent: #8b6f4d;
  --max: 1180px;
  --radius: 20px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: "Helvetica Neue", Helvetica, Arial, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.62;
}

img {
  display: block;
  width: 100%;
  height: auto;
}

a {
  color: inherit;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(230, 230, 230, 0.95);
}

.nav {
  max-width: var(--max);
  margin: 0 auto;
  padding: 18px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.logo {
  text-decoration: none;
  font-weight: 750;
  letter-spacing: -0.03em;
  font-size: 1.05rem;
}

.logo span {
  display: block;
  color: var(--muted);
  font-weight: 400;
  font-size: 0.78rem;
  margin-top: -2px;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 22px;
}

.nav-links a {
  text-decoration: none;
  color: var(--muted);
  font-size: 0.94rem;
}

.nav-links a:hover,
.nav-links a.active {
  color: var(--ink);
}

.menu-button {
  display: none;
  border: 1px solid var(--line);
  background: transparent;
  border-radius: 999px;
  padding: 8px 14px;
  color: var(--ink);
}

main {
  min-height: 70vh;
}

.hero-full {
  position: relative;
  min-height: calc(100vh - 78px);
  display: grid;
  align-items: end;
  overflow: hidden;
  isolation: isolate;
}

.hero-full.compact {
  min-height: 64vh;
}

.hero-full img {
  position: absolute;
  inset: 0;
  height: 100%;
  object-fit: cover;
  z-index: -2;
}

.hero-full::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.18) 0%, rgba(0,0,0,0.15) 35%, rgba(0,0,0,0.68) 100%),
    linear-gradient(90deg, rgba(0,0,0,0.58) 0%, rgba(0,0,0,0.18) 52%, rgba(0,0,0,0.06) 100%);
  z-index: -1;
}

.hero-content {
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  padding: clamp(28px, 6vw, 76px) 24px;
  color: #fff;
}

.hero-content .eyebrow {
  color: rgba(255,255,255,0.78);
}

.hero-content h1 {
  max-width: 920px;
}

.hero-content .lead {
  color: rgba(255,255,255,0.82);
  max-width: 760px;
}

.section {
  max-width: var(--max);
  margin: 0 auto;
  padding: 76px 24px;
}

.section.flush-top {
  padding-top: 42px;
}

.section-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 34px;
}

.section-header p {
  color: var(--muted);
  max-width: 620px;
  margin: 0;
}

.eyebrow {
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.76rem;
  font-weight: 760;
  margin: 0 0 18px;
}

h1,
h2,
h3 {
  line-height: 1.05;
  letter-spacing: -0.045em;
  margin: 0;
}

h1 {
  font-size: clamp(3rem, 7vw, 7.2rem);
}

h2 {
  font-size: clamp(2.1rem, 4.1vw, 4.3rem);
}

h3 {
  font-size: clamp(1.35rem, 2.1vw, 2rem);
}

.lead {
  font-size: clamp(1.12rem, 1.55vw, 1.36rem);
  color: var(--muted);
  margin: 24px 0 0;
  max-width: 760px;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 34px;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  border-radius: 999px;
  padding: 10px 20px;
  border: 1px solid currentColor;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.94rem;
}

.button.primary {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--paper);
}

.hero-full .button.primary {
  background: #fff;
  border-color: #fff;
  color: #111;
}

.hero-full .button.secondary {
  color: #fff;
}

.button.secondary {
  background: transparent;
}

.three-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.feature-card {
  display: block;
  text-decoration: none;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 6px);
  padding: 14px;
  transition: transform .18s ease, border-color .18s ease;
}

.feature-card:hover {
  transform: translateY(-4px);
  border-color: rgba(139, 111, 77, 0.55);
}

.feature-card img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius);
  border: 1px solid rgba(120, 110, 96, 0.25);
}

.feature-card h3 {
  margin: 18px 0 8px;
}

.feature-card p {
  margin: 0 0 6px;
  color: var(--muted);
}

.project-grid,
.case-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.project-card,
.case-card {
  text-decoration: none;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 6px);
  padding: 12px;
}

.project-card img,
.case-card img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius);
  border: 1px solid rgba(120, 110, 96, 0.25);
}

.project-card .meta {
  color: var(--accent);
  font-size: 0.78rem;
  font-weight: 760;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-top: 15px;
}

.project-card h3,
.case-card h3 {
  font-size: 1.25rem;
  letter-spacing: -0.02em;
  margin-top: 5px;
}

.case-card h3 {
  margin-top: 14px;
}

.case-card p {
  color: var(--muted);
  margin: 8px 0 6px;
  font-size: 0.96rem;
}

.text-panel {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 10px);
  padding: clamp(28px, 5vw, 58px);
}

.text-panel p {
  color: var(--muted);
  max-width: 850px;
}

.sector-list,
.service-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0;
  list-style: none;
  margin: 28px 0 0;
}

.sector-list li,
.service-list li {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 9px 14px;
  color: var(--muted);
  background: #ffffff;
}

.page-intro {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 42px;
  align-items: start;
}

.page-intro p {
  color: var(--muted);
  margin-top: 0;
}

.gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.gallery img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius);
  border: 1px solid rgba(120, 110, 96, 0.25);
}

.gallery img.tall {
  aspect-ratio: 3 / 4;
}

.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 42px;
  align-items: start;
}

.video-placeholder {
  aspect-ratio: 16 / 9;
  border-radius: var(--radius);
  border: 1px solid rgba(120, 110, 96, 0.25);
  background: #222;
  color: white;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 22px;
}

.video-placeholder strong {
  display: block;
  font-size: 1.6rem;
  margin-bottom: 8px;
}

.filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 28px;
}

.filter-button {
  border: 1px solid var(--line);
  background: #ffffff;
  border-radius: 999px;
  padding: 9px 14px;
  color: var(--muted);
  cursor: pointer;
}

.filter-button.active {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}

.bio-layout,
.contact-grid {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 48px;
}

.bio-card,
.contact-box,
.form-note {
  border: 1px solid var(--line);
  background: var(--paper);
  border-radius: calc(var(--radius) + 8px);
  padding: 26px;
}

.bio-card p,
.form-note,
.contact-box p {
  color: var(--muted);
}

.field-list {
  margin: 18px 0 0;
  color: var(--muted);
}

.cta {
  text-align: center;
  max-width: 850px;
  margin: 0 auto;
}

.cta p {
  color: var(--muted);
}

.site-footer {
  border-top: 1px solid var(--line);
  padding: 34px 24px;
  color: var(--muted);
}

.footer-inner {
  max-width: var(--max);
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.footer-inner a {
  color: var(--muted);
  text-decoration: none;
}

.footer-links {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
}

@media (max-width: 900px) {
  .menu-button {
    display: inline-flex;
  }

  .nav {
    align-items: flex-start;
  }

  .nav-links {
    display: none;
    position: absolute;
    left: 24px;
    right: 24px;
    top: 72px;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 20px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--radius);
  }

  .nav-links.open {
    display: flex;
  }

  .page-intro,
  .split,
  .bio-layout,
  .contact-grid {
    grid-template-columns: 1fr;
  }

  .three-cards,
  .project-grid,
  .gallery,
  .case-grid {
    grid-template-columns: 1fr 1fr;
  }

  .section-header {
    display: block;
  }

  .section-header p {
    margin-top: 16px;
  }
}

@media (max-width: 620px) {
  body {
    font-size: 16px;
  }

  .nav {
    padding: 14px 18px;
  }

  .hero-content,
  .section {
    padding-left: 18px;
    padding-right: 18px;
  }

  .hero-full {
    min-height: 78vh;
  }

  .hero-full.compact {
    min-height: 55vh;
  }

  .three-cards,
  .project-grid,
  .gallery,
  .case-grid {
    grid-template-columns: 1fr;
  }

  .hero-actions {
    display: grid;
  }

  .button {
    width: 100%;
  }
}


/* Páginas individuales de proyecto */
.project-detail {
  max-width: var(--max);
  margin: 0 auto;
  padding: 76px 24px;
}

.project-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 26px;
}

.project-meta span {
  border: 1px solid rgba(255,255,255,0.55);
  color: rgba(255,255,255,0.9);
  border-radius: 999px;
  padding: 8px 13px;
  font-size: 0.86rem;
}

.project-info-grid {
  display: grid;
  grid-template-columns: 0.78fr 1.22fr;
  gap: 46px;
  align-items: start;
}

.project-facts {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 8px);
  padding: 26px;
}

.project-facts h3 {
  margin-bottom: 14px;
}

.project-facts dl {
  margin: 0;
}

.project-facts dt {
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.74rem;
  font-weight: 800;
  margin-top: 18px;
}

.project-facts dt:first-child {
  margin-top: 0;
}

.project-facts dd {
  margin: 4px 0 0;
  color: var(--muted);
}

.project-copy {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 8px);
  padding: clamp(28px, 5vw, 54px);
}

.project-copy p {
  color: var(--muted);
  max-width: 820px;
}

.next-projects {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}

.next-card {
  display: block;
  text-decoration: none;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 6px);
  padding: 12px;
}

.next-card img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--radius);
  border: 1px solid rgba(120, 110, 96, 0.25);
}

.next-card .meta {
  color: var(--accent);
  font-size: 0.78rem;
  font-weight: 760;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-top: 15px;
}

.next-card h3 {
  font-size: 1.25rem;
  letter-spacing: -0.02em;
  margin-top: 5px;
}

@media (max-width: 900px) {
  .project-info-grid {
    grid-template-columns: 1fr;
  }

  .next-projects {
    grid-template-columns: 1fr;
  }
}


/* Home hero con carrusel automático */
.hero-carousel {
  position: relative;
  min-height: calc(100vh - 78px);
  display: grid;
  align-items: end;
  overflow: hidden;
  isolation: isolate;
}

.hero-carousel::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.18) 0%, rgba(0,0,0,0.14) 38%, rgba(0,0,0,0.68) 100%),
    linear-gradient(90deg, rgba(0,0,0,0.58) 0%, rgba(0,0,0,0.18) 52%, rgba(0,0,0,0.06) 100%);
  z-index: 1;
  pointer-events: none;
}

.carousel-track {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.carousel-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1200ms ease;
}

.carousel-slide.active {
  opacity: 1;
}

.carousel-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-carousel .hero-content {
  position: relative;
  z-index: 2;
}

.carousel-dots {
  position: absolute;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  gap: 9px;
}

.carousel-dot {
  width: 9px;
  height: 9px;
  border: 1px solid rgba(255,255,255,0.8);
  border-radius: 999px;
  background: rgba(255,255,255,0.18);
  padding: 0;
  cursor: pointer;
}

.carousel-dot.active {
  background: rgba(255,255,255,0.95);
}

@media (max-width: 620px) {
  .hero-carousel {
    min-height: 78vh;
  }

  .carousel-dots {
    bottom: 18px;
  }
}


.hero-actions.centered {
  justify-content: center;
}


/* Flechas del carrusel */
.carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 52px;
  height: 52px;
  border: 1px solid rgba(255,255,255,0.65);
  border-radius: 999px;
  background: rgba(255,255,255,0.12);
  color: #ffffff;
  cursor: pointer;
  display: grid;
  place-items: center;
  backdrop-filter: blur(4px);
  transition: background 160ms ease, border-color 160ms ease, opacity 160ms ease;
}

.carousel-arrow:hover {
  background: rgba(255,255,255,0.22);
  border-color: rgba(255,255,255,0.92);
}

.carousel-arrow.prev {
  left: 24px;
}

.carousel-arrow.next {
  right: 24px;
}

.carousel-arrow svg {
  width: 18px;
  height: 18px;
}

@media (max-width: 620px) {
  .carousel-arrow {
    width: 44px;
    height: 44px;
  }

  .carousel-arrow.prev {
    left: 14px;
  }

  .carousel-arrow.next {
    right: 14px;
  }
}


/* Logo en cabecera */
.logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--ink);
  min-width: 0;
}

.logo-mark {
  width: 32px;
  height: 32px;
  object-fit: contain;
  flex: 0 0 auto;
}

.logo-copy {
  display: block;
  min-width: 0;
}

.logo-copy strong {
  display: block;
  font-weight: 750;
  letter-spacing: -0.03em;
  font-size: 1.05rem;
  line-height: 1.05;
}

.logo-copy small {
  display: block;
  color: var(--muted);
  font-weight: 400;
  font-size: 0.78rem;
  line-height: 1.2;
  margin-top: 2px;
}

@media (max-width: 620px) {
  .logo-mark {
    width: 28px;
    height: 28px;
  }

  .logo-copy strong {
    font-size: 0.96rem;
  }

  .logo-copy small {
    font-size: 0.72rem;
  }
}


/* Ajuste de escala tipográfica en los hero */
.hero-content h1 {
  font-size: clamp(2.45rem, 5.25vw, 5.35rem);
  max-width: 900px;
}

.hero-full.compact .hero-content h1 {
  font-size: clamp(2.15rem, 4.35vw, 4.3rem);
  max-width: 920px;
}

.hero-content .lead {
  font-size: clamp(1.02rem, 1.25vw, 1.22rem);
  max-width: 720px;
}

@media (max-width: 620px) {
  .hero-content h1 {
    font-size: clamp(2.15rem, 10vw, 3.4rem);
  }

  .hero-full.compact .hero-content h1 {
    font-size: clamp(1.95rem, 9vw, 3rem);
  }

  .hero-content .lead {
    font-size: 1rem;
  }
}


/* V10 — hero todavía más contenido */
.hero-content h1 {
  font-size: clamp(2.25rem, 4.55vw, 4.65rem);
  max-width: 860px;
}

.hero-full.compact .hero-content h1 {
  font-size: clamp(2rem, 3.9vw, 3.85rem);
  max-width: 880px;
}

.hero-content .lead {
  font-size: clamp(0.98rem, 1.12vw, 1.12rem);
  max-width: 690px;
}

.hero-content .eyebrow {
  font-size: 0.72rem;
}

@media (max-width: 620px) {
  .hero-content h1 {
    font-size: clamp(1.95rem, 8.6vw, 2.95rem);
  }

  .hero-full.compact .hero-content h1 {
    font-size: clamp(1.8rem, 8vw, 2.65rem);
  }

  .hero-content .lead {
    font-size: 0.96rem;
  }
}


/* V11 — home hero más sobrio */
.hero-carousel .hero-content h1 {
  font-size: clamp(1.95rem, 3.95vw, 4.15rem);
  max-width: 800px;
}

.hero-carousel .hero-content .lead {
  font-size: clamp(0.94rem, 1.02vw, 1.05rem);
  max-width: 650px;
}

.hero-carousel .hero-content .eyebrow {
  font-size: 0.68rem;
}

@media (max-width: 620px) {
  .hero-carousel .hero-content h1 {
    font-size: clamp(1.75rem, 7.7vw, 2.65rem);
  }

  .hero-carousel .hero-content .lead {
    font-size: 0.92rem;
  }
}


/* V12 — galerías más fotográficas, sin esquinas redondeadas */
.gallery img {
  border-radius: 0;
  border: none;
  cursor: zoom-in;
}

.project-copy,
.project-facts,
.text-panel,
.project-card,
.case-card,
.next-card,
.feature-card,
.bio-card,
.contact-box,
.form-note {
  border-radius: 0;
}

/* Lightbox / visor limpio de galería */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(5, 5, 5, 0.94);
  color: #ffffff;
}

.lightbox.open {
  display: flex;
}

.lightbox-image {
  max-width: 92vw;
  max-height: 86vh;
  object-fit: contain;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.45);
}

.lightbox-button {
  position: absolute;
  border: 1px solid rgba(255,255,255,0.55);
  background: rgba(255,255,255,0.08);
  color: #ffffff;
  min-width: 44px;
  min-height: 44px;
  border-radius: 999px;
  cursor: pointer;
  display: grid;
  place-items: center;
  font-size: 1.5rem;
  line-height: 1;
  transition: background 160ms ease, border-color 160ms ease;
}

.lightbox-button:hover {
  background: rgba(255,255,255,0.18);
  border-color: rgba(255,255,255,0.9);
}

.lightbox-close {
  top: 22px;
  right: 22px;
}

.lightbox-prev {
  left: 22px;
  top: 50%;
  transform: translateY(-50%);
}

.lightbox-next {
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
}

.lightbox-counter {
  position: absolute;
  left: 50%;
  bottom: 22px;
  transform: translateX(-50%);
  color: rgba(255,255,255,0.74);
  font-size: 0.9rem;
}

@media (max-width: 620px) {
  .lightbox-image {
    max-width: 94vw;
    max-height: 78vh;
  }

  .lightbox-prev {
    left: 12px;
  }

  .lightbox-next {
    right: 12px;
  }

  .lightbox-close {
    top: 14px;
    right: 14px;
  }
}


/* V13 — detalles de maqueta */
.provisional-note {
  color: var(--muted);
  font-size: 0.92rem;
  margin-top: 18px;
  border-top: 1px solid var(--line);
  padding-top: 14px;
}

.hero-carousel .hero-content h1 {
  font-size: clamp(1.85rem, 3.65vw, 3.85rem);
  max-width: 760px;
}

.hero-carousel .hero-content .lead {
  font-size: clamp(0.92rem, 0.98vw, 1.02rem);
  max-width: 620px;
}


/* V14 — navegación con nueva arquitectura */
.nav-links {
  gap: clamp(12px, 1.7vw, 26px);
}

.nav-links a {
  white-space: nowrap;
}

@media (max-width: 1020px) {
  .nav-links {
    font-size: 0.82rem;
    gap: 12px;
  }
}


/* V15 — Home corregida: captions claras y cuatro líneas de trabajo */
.four-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.slide-caption {
  position: absolute;
  right: clamp(22px, 4vw, 60px);
  bottom: clamp(70px, 7vw, 104px);
  z-index: 2;
  color: #ffffff;
  text-align: right;
  max-width: 330px;
  text-shadow: 0 2px 18px rgba(0,0,0,0.36);
}

.slide-caption span {
  display: block;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.78;
  margin-bottom: 6px;
}

.slide-caption strong {
  display: block;
  font-size: clamp(1rem, 1.5vw, 1.5rem);
  line-height: 1.1;
  font-weight: 620;
}

.hero-carousel .hero-content h1 {
  max-width: 920px;
}

@media (max-width: 1100px) {
  .four-cards {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 720px) {
  .four-cards {
    grid-template-columns: 1fr;
  }

  .slide-caption {
    right: 18px;
    left: 18px;
    bottom: 64px;
    text-align: left;
    max-width: none;
  }

  .slide-caption strong {
    font-size: 1rem;
  }
}


/* V16 — Retrato & Personas */
.retrato-intro {
  max-width: 760px;
}

.case-card img,
.project-card img,
.feature-card img {
  background: #e7e3dd;
}


/* V17 — control de posición del texto sobre imágenes hero */
.hero-full img {
  width: 100%;
}

.hero-content.hero-align-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
}

.hero-content.hero-align-right h1,
.hero-content.hero-align-right .lead,
.hero-content.hero-align-right .project-meta {
  margin-left: auto;
}

.hero-content.hero-align-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.hero-full.hero-text-right::after {
  background:
    linear-gradient(180deg, rgba(0,0,0,0.16) 0%, rgba(0,0,0,0.16) 35%, rgba(0,0,0,0.64) 100%),
    linear-gradient(270deg, rgba(0,0,0,0.64) 0%, rgba(0,0,0,0.22) 52%, rgba(0,0,0,0.04) 100%);
}

.hero-full.hero-text-center::after {
  background:
    linear-gradient(180deg, rgba(0,0,0,0.20) 0%, rgba(0,0,0,0.14) 34%, rgba(0,0,0,0.68) 100%),
    linear-gradient(90deg, rgba(0,0,0,0.28) 0%, rgba(0,0,0,0.24) 50%, rgba(0,0,0,0.28) 100%);
}

/* V17 — etiqueta única del carrusel para evitar desajustes durante el fundido */
.slide-caption {
  display: none;
}

.carousel-current-label {
  position: absolute;
  right: clamp(22px, 4vw, 60px);
  bottom: clamp(72px, 7vw, 108px);
  z-index: 3;
  color: #ffffff;
  text-align: right;
  max-width: 360px;
  text-shadow: 0 2px 18px rgba(0,0,0,0.42);
  pointer-events: none;
}

.carousel-current-label span {
  display: block;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.78;
  margin-bottom: 6px;
}

.carousel-current-label strong {
  display: block;
  font-size: clamp(1rem, 1.45vw, 1.45rem);
  line-height: 1.12;
  font-weight: 620;
}

/* V17 — evitar cortes raros en nombres y etiquetas de tarjetas */
.project-card,
.case-card,
.next-card {
  overflow: visible;
}

.project-card .meta,
.next-card .meta {
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.project-card h3,
.case-card h3,
.next-card h3 {
  line-height: 1.18;
  overflow-wrap: anywhere;
}

/* V17 — los puntos del carrusel quedan más discretos */
.carousel-dots {
  bottom: 22px;
}

.carousel-dot {
  opacity: 0.68;
}

.carousel-dot.active {
  opacity: 1;
}

@media (max-width: 720px) {
  .hero-content.hero-align-right,
  .hero-content.hero-align-center {
    align-items: flex-start;
    text-align: left;
  }

  .hero-content.hero-align-right h1,
  .hero-content.hero-align-right .lead,
  .hero-content.hero-align-right .project-meta {
    margin-left: 0;
  }

  .carousel-current-label {
    right: 18px;
    left: 18px;
    bottom: 64px;
    text-align: left;
    max-width: none;
  }

  .carousel-current-label strong {
    font-size: 1rem;
  }
}


/* V18 — limpieza definitiva de Proyectos seleccionados en home */
.home-project-grid {
  align-items: start;
}

.home-project-grid .project-card.clean-card {
  position: relative;
  display: block;
  overflow: hidden;
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  text-decoration: none;
}

.home-project-grid .project-card.clean-card::before,
.home-project-grid .project-card.clean-card::after,
.home-project-grid .project-card.clean-card .meta::before,
.home-project-grid .project-card.clean-card .meta::after,
.home-project-grid .project-card.clean-card h3::before,
.home-project-grid .project-card.clean-card h3::after {
  content: none !important;
  display: none !important;
}

.home-project-grid .project-card.clean-card img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 0;
  margin: 0 0 16px 0;
}

.home-project-grid .project-card.clean-card .meta {
  display: block;
  position: static;
  margin: 0 0 8px 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 0.72rem;
  line-height: 1.25;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  white-space: normal;
}

.home-project-grid .project-card.clean-card h3 {
  display: block;
  position: static;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: clamp(1.05rem, 1.4vw, 1.34rem);
  line-height: 1.16;
  letter-spacing: -0.035em;
  white-space: normal;
}

/* V18 — asegurar que la etiqueta del carrusel vive solo dentro del hero */
.hero-carousel {
  position: relative;
  overflow: hidden;
}

.hero-carousel .carousel-current-label {
  position: absolute;
}

/* V18 — eliminar restos visuales de captions antiguas si quedaran en cache */
.hero-carousel .slide-caption {
  display: none !important;
}

@media (max-width: 760px) {
  .home-project-grid .project-card.clean-card img {
    aspect-ratio: 1 / 1;
  }
}


/* V21 — foco seguro sin estilos inline */
img.focus-top,
.hero-full img.focus-top,
.case-card img.focus-top,
.project-card img.focus-top {
  object-position: center 18%;
}


/* V22 — Audiovisual */
.compact-grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.hero-actions:empty {
  display: none;
}

.project-copy a[target="_blank"] {
  color: var(--ink);
  text-underline-offset: 0.22em;
}

img.focus-top,
.hero-full img.focus-top,
.case-card img.focus-top,
.project-card img.focus-top {
  object-position: center 18%;
}


/* V23 — Audiovisual con lenguaje más cinematográfico */
body.theme-cinematic {
  background: #0f0f0f;
  color: #f1eee9;
}

body.theme-cinematic .site-header {
  background: rgba(15, 15, 15, 0.88);
  border-bottom-color: rgba(255, 255, 255, 0.09);
  backdrop-filter: blur(18px);
}

body.theme-cinematic .logo-copy strong,
body.theme-cinematic .nav-links a,
body.theme-cinematic .menu-button {
  color: #f1eee9;
}

body.theme-cinematic .logo-copy small,
body.theme-cinematic .section-header p,
body.theme-cinematic .lead,
body.theme-cinematic .text-panel p,
body.theme-cinematic .project-copy p,
body.theme-cinematic .video-note {
  color: rgba(241, 238, 233, 0.68);
}

body.theme-cinematic .nav-links a.active::after,
body.theme-cinematic .nav-links a:hover::after {
  background: #f1eee9;
}

body.theme-cinematic .section,
body.theme-cinematic .project-detail {
  background: #0f0f0f;
}

body.theme-cinematic .section-header h2,
body.theme-cinematic .text-panel h2,
body.theme-cinematic .project-copy h2,
body.theme-cinematic .project-facts h3 {
  color: #f1eee9;
}

body.theme-cinematic .eyebrow,
body.theme-cinematic .meta,
body.theme-cinematic .case-card p,
body.theme-cinematic .project-facts dt {
  color: rgba(241, 238, 233, 0.58);
}

body.theme-cinematic .project-facts,
body.theme-cinematic .text-panel {
  background: #161616;
  border-color: rgba(255, 255, 255, 0.08);
}

body.theme-cinematic .project-facts dd,
body.theme-cinematic .project-copy a,
body.theme-cinematic .button.primary {
  color: #f1eee9;
}

body.theme-cinematic .site-footer {
  background: #0b0b0b;
  border-top-color: rgba(255, 255, 255, 0.09);
  color: rgba(241, 238, 233, 0.72);
}

.cinematic-hero::after {
  background:
    linear-gradient(180deg, rgba(0,0,0,0.18) 0%, rgba(0,0,0,0.48) 52%, rgba(0,0,0,0.88) 100%),
    linear-gradient(90deg, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0.24) 58%, rgba(0,0,0,0.1) 100%);
}

.audiovisual-landing {
  min-height: calc(100vh - 78px);
}

.cinema-intro {
  padding-top: clamp(54px, 8vw, 110px);
}

.cinema-grid .cinema-card {
  background: #151515;
  border: 1px solid rgba(255,255,255,0.08);
  color: #f1eee9;
  overflow: hidden;
}

.cinema-grid .cinema-card img {
  aspect-ratio: 16 / 10;
  filter: saturate(0.92) contrast(1.05);
}

.cinema-grid .cinema-card h3 {
  color: #f1eee9;
}

.cinema-grid .cinema-card:hover img {
  transform: scale(1.035);
}

.video-section {
  padding-top: clamp(34px, 6vw, 80px);
  padding-bottom: clamp(28px, 5vw, 64px);
}

.video-shell {
  width: min(1180px, calc(100vw - 40px));
  margin: 0 auto;
  aspect-ratio: 16 / 9;
  background: #050505;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.09);
  box-shadow: 0 24px 80px rgba(0,0,0,0.42);
}

.video-poster {
  appearance: none;
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%;
  height: 100%;
  display: block;
  background: #050505;
  cursor: pointer;
  position: relative;
  color: #fff;
}

.video-poster img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.72) contrast(1.04);
  transition: transform 420ms ease, filter 420ms ease;
}

.video-poster:hover img {
  transform: scale(1.025);
  filter: brightness(0.62) contrast(1.08);
}

.play-mark {
  width: clamp(68px, 8vw, 104px);
  height: clamp(68px, 8vw, 104px);
  border: 1px solid rgba(255,255,255,0.72);
  border-radius: 999px;
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  background: rgba(0,0,0,0.28);
  backdrop-filter: blur(10px);
}

.play-mark::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-38%, -50%);
  width: 0;
  height: 0;
  border-top: 13px solid transparent;
  border-bottom: 13px solid transparent;
  border-left: 20px solid #fff;
}

.video-kicker {
  position: absolute;
  left: clamp(18px, 4vw, 44px);
  bottom: clamp(18px, 4vw, 40px);
  font-size: 0.76rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.78);
}

.video-iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.video-note {
  width: min(1180px, calc(100vw - 40px));
  margin: 14px auto 0;
  font-size: 0.9rem;
}

body.theme-cinematic .gallery img {
  background: #171717;
}

body.theme-cinematic .site-header .logo-mark {
  filter: invert(1);
}

@media (max-width: 760px) {
  .video-shell {
    width: calc(100vw - 28px);
  }

  .cinema-grid .cinema-card img {
    aspect-ratio: 16 / 11;
  }
}


/* V24 — Parrillas completas y home DOP */
@media (min-width: 1080px) {
  body.theme-cinematic .cinema-intro .cinema-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  body.theme-cinematic .cinema-secondary .cinema-grid {
    grid-template-columns: minmax(280px, 420px);
    justify-content: center;
  }
}

.case-grid .case-card img,
.project-grid .project-card img,
.home-project-grid .project-card img {
  background-color: #e7e3dd;
}

/* V25 — Sobre mí opción B / Klingele / Hospitality 3x3 */
.about-image-hero {
  width: 100%;
  background: #f3f0eb;
  border-bottom: 1px solid var(--line);
}

.about-image-hero img {
  width: 100%;
  height: min(72vh, 760px);
  object-fit: cover;
  object-position: center center;
  display: block;
}

.about-intro .section-header {
  max-width: 980px;
}

.about-intro h1 {
  font-size: clamp(2.2rem, 5.4vw, 5.4rem);
  line-height: 0.95;
  letter-spacing: -0.06em;
}

.hero-full.hero-focus-klingele img {
  object-position: center 25%;
}

@media (min-width: 1080px) {
  .case-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 760px) {
  .about-image-hero img {
    height: 58vh;
  }
}

/* V26 — Contacto luminoso + iframes directos de vídeo */
.contact-hero img {
  object-position: center center;
}
.video-shell.vimeo-ratio-adidas {
  aspect-ratio: 2.4 / 1;
}
.video-shell.vimeo-ratio-fred {
  aspect-ratio: 2.387 / 1;
}

/* V27 — Galerías en patrón masonry
   Mantiene la proporción real de cada imagen y evita huecos blancos al mezclar horizontales y verticales. */
.gallery {
  display: block;
  column-count: 3;
  column-gap: 16px;
}

.gallery img,
.gallery img.tall {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  display: block;
  margin: 0 0 16px;
  break-inside: avoid;
  page-break-inside: avoid;
  -webkit-column-break-inside: avoid;
}

@media (max-width: 900px) {
  .gallery {
    column-count: 2;
  }
}

@media (max-width: 620px) {
  .gallery {
    column-count: 1;
  }
}


/* V28 — SEO más discreto y páginas legales */
.home-copy-compact .section-header p {
  max-width: 520px;
  font-size: 0.94rem;
  line-height: 1.55;
}

.home-copy-compact .section-header h3 {
  margin-top: 6px;
}

.legal-page {
  max-width: 920px;
}

.legal-header {
  margin-bottom: 36px;
}

.legal-header h1 {
  max-width: 760px;
}

.legal-content {
  border: 1px solid var(--line);
  background: var(--paper);
  border-radius: calc(var(--radius) + 8px);
  padding: 32px;
  color: var(--muted);
}

.legal-content h2 {
  color: var(--ink);
  font-size: 1.15rem;
  margin-top: 30px;
  margin-bottom: 10px;
}

.legal-content h2:first-child {
  margin-top: 0;
}

.legal-content a,
.contact-methods a {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.contact-list {
  list-style: none;
  padding-left: 0;
}

.contact-list li {
  margin-bottom: 16px;
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}


/* SEO phase 1: visible but discreet supporting copy */
.seo-support{
  max-width: 860px;
  margin: 24px auto 0;
  font-size: clamp(.86rem, .82rem + .18vw, .98rem);
  line-height: 1.72;
  color: rgba(31, 31, 29, .66);
}
.seo-support.compact{max-width:760px;margin-top:18px;}
.seo-support strong{font-weight:600;color:rgba(31,31,29,.78);}
.contact-list a{word-break:break-word;}


/* V30 — ajuste tipográfico editorial inspirado en la nueva página de contacto */
body {
  font-weight: 300;
  letter-spacing: 0.005em;
}
.logo-copy strong {
  font-weight: 400;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}
.logo-copy small {
  font-weight: 300;
  letter-spacing: 0.38em;
  text-transform: uppercase;
}
.nav-links a,
.menu-button {
  font-weight: 400;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  font-size: 0.78rem;
}
h1, .hero-content h1 {
  font-weight: 300;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  line-height: 1.15;
}
h2, h3 {
  font-weight: 350;
  letter-spacing: 0.045em;
}
.eyebrow {
  font-weight: 400;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.lead, .page-intro p, .seo-support, .project-text p {
  font-weight: 300;
}
.contact-list strong {
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.78rem;
}
.contact-list a {
  font-weight: 300;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}
@media (max-width: 720px) {
  h1, .hero-content h1 {
    letter-spacing: 0.08em;
  }
  .logo-copy strong {
    letter-spacing: 0.09em;
  }
  .logo-copy small {
    letter-spacing: 0.18em;
  }
}

/* V31 — menú siempre compacto + apellido sin salto */
.site-header .nav {
  align-items: center;
  position: relative;
}
.site-header .menu-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.site-header .nav-links {
  display: none;
  position: absolute;
  right: 24px;
  left: auto;
  top: calc(100% + 10px);
  width: min(340px, calc(100vw - 48px));
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  padding: 20px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 20px 60px rgba(0,0,0,.12);
  z-index: 80;
}
.site-header .nav-links.open {
  display: flex;
}
.logo-copy strong {
  white-space: nowrap;
}
.logo-copy {
  max-width: calc(100vw - 150px);
}
@media (max-width: 620px) {
  .site-header .nav {
    padding-inline: 18px;
  }
  .site-header .nav-links {
    right: 18px;
    width: min(320px, calc(100vw - 36px));
  }
  .logo-copy strong {
    font-size: clamp(.72rem, 3.1vw, .9rem);
    letter-spacing: 0.10em;
  }
  .logo-copy small {
    font-size: clamp(.52rem, 2.25vw, .68rem);
    letter-spacing: 0.22em;
  }
}


/* V35 — ajustes solicitados: ratios Vimeo, Finca Noel y foco de imagen en Cérvix */
.video-shell.vimeo-ratio-memento {
  aspect-ratio: 1.896 / 1;
}
.gallery.gallery-three-columns {
  column-count: 3;
}
.hero-full img.hero-focus-cervix {
  object-position: center 28%;
}
@media (max-width: 900px) {
  .gallery.gallery-three-columns { column-count: 2; }
}
@media (max-width: 600px) {
  .gallery.gallery-three-columns { column-count: 1; }
}


/* V36 — ajustes audiovisual: cajas oscuras, menú oscuro y galerías 2 columnas según número de imágenes */
body.theme-cinematic .project-copy,
body.theme-cinematic .project-facts,
body.theme-cinematic .next-card {
  background: #151515;
  border-color: rgba(255,255,255,0.10);
  color: #f1eee9;
}

body.theme-cinematic .project-copy p,
body.theme-cinematic .project-facts dd,
body.theme-cinematic .next-card h3,
body.theme-cinematic .next-card .meta {
  color: rgba(241,238,233,0.72);
}

body.theme-cinematic .project-copy h2,
body.theme-cinematic .project-facts h3 {
  color: #f1eee9;
}

body.theme-cinematic .site-header .nav-links {
  background: #050505;
  border-color: rgba(255,255,255,0.14);
  box-shadow: 0 28px 80px rgba(0,0,0,.62);
}

body.theme-cinematic .site-header .nav-links a {
  color: #f1eee9;
}

body.theme-cinematic .site-header .nav-links a:hover,
body.theme-cinematic .site-header .nav-links a.active {
  color: #ffffff;
}

.gallery.gallery-two-columns {
  column-count: 2;
}

@media (max-width: 620px) {
  .gallery.gallery-two-columns {
    column-count: 1;
  }
}


/* V37 — ajustes de estrategia, cajas equilibradas y parrillas específicas */
.split, .split.equal-panels {
  align-items: stretch;
}
.split .text-panel {
  height: 100%;
  display: flex;
  flex-direction: column;
}
.split .text-panel p:last-child {
  margin-bottom: 0;
}
.case-grid.case-grid-two {
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 720px) {
  .case-grid.case-grid-two {
    grid-template-columns: 1fr;
  }
}


/* V38 — galerías equilibradas: 2 columnas reales y alturas compensadas */
.gallery.gallery-two-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  column-count: initial;
  column-gap: initial;
}

.gallery.gallery-two-columns img,
.gallery.gallery-two-columns img.tall {
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  margin: 0;
  break-inside: auto;
  page-break-inside: auto;
  -webkit-column-break-inside: auto;
}

.gallery.gallery-two-columns.gallery-portrait-grid img,
.gallery.gallery-two-columns.gallery-portrait-grid img.tall {
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

.gallery.gallery-two-columns.gallery-product-grid img,
.gallery.gallery-two-columns.gallery-product-grid img.tall {
  aspect-ratio: 3 / 4;
  object-fit: contain;
  background: #050505;
}

@media (max-width: 620px) {
  .gallery.gallery-two-columns {
    grid-template-columns: 1fr;
  }
}


/* V39 — accesos rápidos WhatsApp / FAQ */
.floating-actions {
  position: fixed;
  right: clamp(16px, 2vw, 28px);
  bottom: clamp(16px, 2vw, 28px);
  z-index: 90;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
}

.floating-action {
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(6, 6, 6, .86);
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 18px 45px rgba(0,0,0,.22);
  backdrop-filter: blur(12px);
  text-decoration: none;
  pointer-events: auto;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}

.floating-action:hover,
.floating-action:focus-visible {
  transform: translateY(-2px);
  background: #000;
  border-color: rgba(255,255,255,.34);
  outline: none;
}

.floating-action svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.floating-action .floating-label {
  position: absolute;
  right: 58px;
  white-space: nowrap;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(6,6,6,.86);
  color: #fff;
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateX(6px);
  transition: opacity .18s ease, transform .18s ease;
  pointer-events: none;
}

.floating-action:hover .floating-label,
.floating-action:focus-visible .floating-label {
  opacity: 1;
  transform: translateX(0);
}

.floating-action.whatsapp svg {
  stroke-width: 1.65;
}

.floating-action.faq {
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .08em;
}

.faq-list {
  display: grid;
  gap: 16px;
  margin-top: 28px;
}

.faq-item {
  border-top: 1px solid var(--line);
  padding-top: 22px;
}

.faq-item h2 {
  margin: 0 0 10px;
  font-size: clamp(1.05rem, 1.5vw, 1.32rem);
  letter-spacing: -0.02em;
}

.faq-item p {
  margin: 0;
  color: var(--muted);
  max-width: 820px;
}

@media (max-width: 620px) {
  .floating-actions {
    right: 14px;
    bottom: 14px;
    gap: 8px;
  }
  .floating-action {
    width: 44px;
    height: 44px;
  }
  .floating-action .floating-label {
    display: none;
  }
}


/* V42 — identidad editorial: logotipo y monograma */
.logo.logo-brand {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: var(--ink);
  min-width: 0;
}

.logo-editorial {
  width: clamp(176px, 17vw, 260px);
  max-width: calc(100vw - 142px);
  height: auto;
  object-fit: contain;
  display: block;
}

.site-header .nav {
  min-height: 74px;
}

body.theme-cinematic .logo-editorial {
  filter: invert(1);
}

.footer-brand {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-width: min(100%, 320px);
}

.footer-monogram {
  width: 38px;
  height: auto;
  opacity: .86;
  flex: 0 0 auto;
}

body.theme-cinematic .footer-monogram {
  filter: invert(1);
  opacity: .88;
}

@media (max-width: 620px) {
  .site-header .nav {
    min-height: 66px;
  }

  .logo-editorial {
    width: 168px;
    max-width: calc(100vw - 118px);
  }

  .footer-brand {
    align-items: flex-start;
  }

  .footer-monogram {
    width: 32px;
  }
}


/* Editorial CTA — subtle conversion layer */
.editorial-cta {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding-top: clamp(38px, 5vw, 68px);
  padding-bottom: clamp(38px, 5vw, 68px);
}
.editorial-cta .cta-inner {
  max-width: 980px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(22px, 4vw, 56px);
  align-items: end;
}
.editorial-cta .eyebrow {
  margin-bottom: 16px;
}
.editorial-cta h2 {
  margin: 0;
  font-size: clamp(2rem, 4.3vw, 4.8rem);
  line-height: .94;
  letter-spacing: -.045em;
  font-weight: 300;
}
.editorial-cta p {
  max-width: 620px;
  margin: 18px 0 0;
  color: var(--muted);
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  line-height: 1.7;
}
.editorial-cta .button {
  white-space: nowrap;
}
.editorial-cta.compact h2 {
  font-size: clamp(1.65rem, 3vw, 3.2rem);
}
body.theme-cinematic .editorial-cta {
  border-color: rgba(255,255,255,.14);
}
body.theme-cinematic .editorial-cta p {
  color: rgba(255,255,255,.68);
}
body.theme-cinematic .editorial-cta .button.primary {
  background: #fff;
  border-color: #fff;
  color: #050505;
}
@media (max-width: 760px) {
  .editorial-cta .cta-inner {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .editorial-cta .button {
    width: 100%;
  }
}


/* V49 — Arquitectura premiada */
.award-hero{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);min-height:72vh;border-bottom:1px solid var(--line)}
.award-hero>div{padding:clamp(110px,12vw,180px) clamp(28px,6vw,96px) clamp(60px,8vw,110px);display:flex;flex-direction:column;justify-content:flex-end}
.award-hero h1{font-size:clamp(3.4rem,7vw,8.2rem);font-weight:300;letter-spacing:-.055em;line-height:.88;margin:14px 0 28px}
.award-hero .lead{max-width:620px;font-size:clamp(1.05rem,1.5vw,1.35rem);line-height:1.65;color:var(--muted)}
.award-hero>img{width:100%;height:100%;min-height:72vh;object-fit:cover}
.award-intro{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,8vw,120px);align-items:start}
.award-intro h2{font-size:clamp(2.1rem,4.6vw,5rem);line-height:.98;letter-spacing:-.045em;font-weight:300;margin:12px 0 0}
.award-intro>p{font-size:clamp(1rem,1.35vw,1.2rem);line-height:1.8;color:var(--muted);max-width:680px}
.award-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(34px,6vw,88px) clamp(22px,4vw,58px)}
.award-card{text-decoration:none;color:var(--ink);display:block}
.award-card-image{aspect-ratio:16/10;overflow:hidden;background:#eee}
.award-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.award-card:hover img{transform:scale(1.025)}
.award-card-copy{padding:22px 0 0;border-top:1px solid var(--line);margin-top:14px}
.award-card-copy h2{font-size:clamp(1.6rem,2.7vw,3rem);font-weight:300;letter-spacing:-.035em;line-height:1.02;margin:10px 0}
.award-card-copy p:not(.eyebrow){color:var(--muted);line-height:1.55;max-width:620px}
.text-link{display:inline-flex;gap:10px;align-items:center;margin-top:16px;text-decoration:none;color:var(--ink);font-size:.9rem;text-transform:uppercase;letter-spacing:.08em}
.home-awarded-feature .section-header{max-width:760px}
.award-feature-wide{display:grid;grid-template-columns:1.35fr .65fr;text-decoration:none;color:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.award-feature-wide img{width:100%;height:clamp(340px,48vw,680px);object-fit:cover}
.award-feature-wide>div{padding:clamp(28px,5vw,72px);display:flex;flex-direction:column;justify-content:space-between;background:#f4f3f0}
.award-feature-wide span{line-height:1.7;color:var(--muted)}
.award-feature-wide strong{font-size:clamp(1.5rem,2.8vw,3rem);font-weight:300;letter-spacing:-.035em}
.architecture-award-callout{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,6vw,90px);align-items:center;background:#f4f3f0}
.architecture-award-callout h2{font-size:clamp(2.2rem,4.7vw,5rem);font-weight:300;letter-spacing:-.045em;line-height:.96;margin:14px 0 24px}
.architecture-award-callout p{color:var(--muted);line-height:1.75;max-width:620px}
.architecture-award-callout img{width:100%;height:clamp(360px,48vw,680px);object-fit:cover}
.project-hero-award{position:relative;min-height:78vh;background:#111;overflow:hidden}
.project-hero-award>img{width:100%;height:78vh;object-fit:cover;display:block;opacity:.88}
.project-hero-award:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.58))}
.project-hero-overlay{position:absolute;z-index:2;left:clamp(24px,6vw,96px);right:clamp(24px,6vw,96px);bottom:clamp(38px,7vw,92px);color:#fff}
.project-hero-overlay h1{font-size:clamp(3rem,7.2vw,8.4rem);font-weight:300;letter-spacing:-.055em;line-height:.88;margin:16px 0 0;max-width:1100px}
.project-hero-overlay .eyebrow{color:rgba(255,255,255,.78)}
.back-link{color:#fff;text-decoration:none;display:inline-block;margin-bottom:36px;font-size:.88rem;letter-spacing:.06em;text-transform:uppercase}
.project-editorial-head{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,8vw,120px)}
.project-editorial-head h2{font-size:clamp(2.2rem,4.8vw,5.2rem);font-weight:300;letter-spacing:-.045em;line-height:.98;margin:12px 0}
.project-editorial-head>div>p{font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.8;color:var(--muted)}
.project-facts{margin:38px 0 0;border-top:1px solid var(--line)}
.project-facts>div{display:grid;grid-template-columns:150px 1fr;gap:24px;padding:14px 0;border-bottom:1px solid var(--line)}
.project-facts dt{text-transform:uppercase;font-size:.75rem;letter-spacing:.08em;color:var(--muted)}
.project-facts dd{margin:0}
.project-masonry{display:grid;grid-template-columns:repeat(12,1fr);gap:10px}
.project-masonry figure{margin:0;grid-column:span 6;overflow:hidden;background:#eee}
.project-masonry figure:nth-child(3n+1){grid-column:span 7}.project-masonry figure:nth-child(3n+2){grid-column:span 5}.project-masonry figure:nth-child(3n){grid-column:span 12}
.project-masonry img{width:100%;height:100%;max-height:820px;object-fit:cover;display:block}
.recognition-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,120px);border-top:1px solid var(--line)}
.recognition-grid h2{font-size:clamp(1.8rem,3.2vw,3.5rem);font-weight:300;letter-spacing:-.035em}
.recognition-grid ul{list-style:none;padding:0;margin:30px 0 0}
.recognition-grid li{padding:16px 0;border-top:1px solid var(--line);line-height:1.5}
.project-related a{display:flex;justify-content:space-between;align-items:center;text-decoration:none;color:var(--ink);padding:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.project-related strong{font-size:clamp(1.6rem,3vw,3.4rem);font-weight:300;letter-spacing:-.04em}
@media(max-width:980px){.nav-links{gap:12px}.nav-links a{font-size:.78rem}.award-hero{grid-template-columns:1fr}.award-hero>img{min-height:52vh;height:52vh;order:-1}.award-hero>div{padding-top:58px}.award-intro,.architecture-award-callout,.project-editorial-head,.recognition-grid{grid-template-columns:1fr}.architecture-award-callout img{order:-1}.award-feature-wide{grid-template-columns:1fr}.award-feature-wide>div{min-height:240px}}
@media(max-width:720px){.award-grid{grid-template-columns:1fr}.award-hero h1{font-size:clamp(3.2rem,16vw,5.4rem)}.project-hero-award,.project-hero-award>img{min-height:68vh;height:68vh}.project-masonry{display:block}.project-masonry figure{margin-bottom:10px}.project-masonry img{max-height:none}.project-facts>div{grid-template-columns:1fr;gap:5px}.project-related a{align-items:flex-start;gap:20px;flex-direction:column}}


/* V49.2 — carrusel aleatorio de Arquitectura premiada */
.award-collection-carousel{position:relative;min-height:78vh;background:#111;overflow:hidden;color:#fff}
.award-carousel-track,.award-carousel-slide{position:absolute;inset:0}
.award-carousel-slide{opacity:0;visibility:hidden;transition:opacity .9s ease,visibility .9s ease}
.award-carousel-slide.active{opacity:1;visibility:visible}
.award-carousel-slide img{width:100%;height:78vh;min-height:620px;object-fit:cover;display:block}
.award-collection-carousel:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.2) 58%,rgba(0,0,0,.12) 100%),linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.5));z-index:1;pointer-events:none}
.award-carousel-overlay{position:absolute;z-index:2;left:clamp(24px,6vw,96px);bottom:clamp(58px,9vw,126px);max-width:880px}
.award-carousel-overlay .eyebrow{color:rgba(255,255,255,.72)}
.award-carousel-overlay h1{font-size:clamp(3.5rem,7.5vw,9rem);font-weight:300;letter-spacing:-.06em;line-height:.86;margin:16px 0 28px}
.award-carousel-overlay .lead{max-width:690px;font-size:clamp(1.05rem,1.5vw,1.35rem);line-height:1.65;color:rgba(255,255,255,.82)}
.award-carousel-label{position:absolute;z-index:2;right:clamp(24px,5vw,72px);bottom:clamp(40px,5vw,68px);display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}
.award-carousel-label span{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.65)}
.award-carousel-label strong{font-weight:400;font-size:clamp(1rem,1.6vw,1.35rem)}
.award-carousel-arrow{position:absolute;z-index:3;top:50%;width:48px;height:48px;border:1px solid rgba(255,255,255,.42);border-radius:50%;background:rgba(0,0,0,.12);color:#fff;display:grid;place-items:center;cursor:pointer;transform:translateY(-50%);backdrop-filter:blur(4px)}
.award-carousel-arrow:hover{background:rgba(0,0,0,.34)}
.award-carousel-arrow svg{width:20px;height:20px}.award-carousel-arrow.prev{left:20px}.award-carousel-arrow.next{right:20px}
.award-carousel-dots{position:absolute;z-index:3;left:clamp(24px,6vw,96px);bottom:26px;display:flex;gap:9px}
.award-carousel-dot{width:34px;height:2px;border:0;background:rgba(255,255,255,.35);padding:0;cursor:pointer}.award-carousel-dot.active{background:#fff}

/* V49.2 — dos proyectos relacionados al final */
.award-related-projects{border-top:1px solid var(--line)}
.award-related-projects .section-header{max-width:760px}
.award-related-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,58px)}
.award-related-card{display:block;text-decoration:none;color:var(--ink)}
.award-related-image{aspect-ratio:16/10;overflow:hidden;background:#eee}
.award-related-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.award-related-card:hover img{transform:scale(1.025)}
.award-related-copy{padding:18px 0 0;border-top:1px solid var(--line);margin-top:12px}
.award-related-copy h3{font-size:clamp(1.45rem,2.5vw,2.8rem);font-weight:300;letter-spacing:-.035em;line-height:1.04;margin:9px 0 0}
@media(max-width:720px){.award-collection-carousel,.award-carousel-slide img{min-height:72vh;height:72vh}.award-carousel-overlay{bottom:84px}.award-carousel-overlay h1{font-size:clamp(3rem,15vw,5.4rem)}.award-carousel-label{display:none}.award-carousel-arrow{width:42px;height:42px}.award-carousel-arrow.prev{left:12px}.award-carousel-arrow.next{right:12px}.award-related-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.award-carousel-slide,.award-related-image img{transition:none}}

/* V49.11 — índice de continuidad de arquitectura premiada */
.award-project-index{padding-top:clamp(52px,7vw,96px)}
.award-index-intro{max-width:760px;margin-top:14px;color:var(--muted);line-height:1.65}
.award-index-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,44px)}
.award-index-card .award-related-image{aspect-ratio:4/3;overflow:hidden;background:#eceae5}
.award-index-card .award-related-image img{width:100%;height:100%;object-fit:cover;display:block}
.award-index-card .award-related-copy{padding-top:16px}
.award-index-card .award-related-copy h3{margin:.25rem 0 .55rem}
@media(max-width:980px){.award-index-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.award-index-grid{grid-template-columns:1fr}}
