/* ==========================================================================
   site.css — Gold Bricks · marca + componentes propios de esta página
   Se carga DESPUÉS de los estilos del kit: aquí viven los overrides.
   ========================================================================== */

/* ---- Tokens de marca Gold Bricks ---- */
:root {
  --color-bg: #0b0a09;
  --color-surface: #151310;
  --color-text: #f6f3ee;
  --color-text-muted: rgba(246, 243, 238, 0.64);
  --color-accent: #c8a468; /* oro Gold Bricks */
  --color-accent-contrast: #14100a;

  --font-display: 'Cormorant Garamond', 'Times New Roman', serif;
  --font-body: 'Inter', -apple-system, 'Segoe UI', sans-serif;

  --text-hero: clamp(2.8rem, 8vw, 7.5rem);
}

h1, h2, h3, .csk-headline { font-weight: 500; letter-spacing: -0.015em; }
h1 em, h2 em { font-style: italic; color: var(--color-accent); }

/* ---- Loader ---- */
[data-loader] {
  flex-direction: column;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
}
.gb-loader__logo { width: min(200px, 44vw); height: auto; opacity: 0.92; }

/* ---- Barra de progreso de scroll ---- */
.gb-progress {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 2px;
  z-index: 95;
  background: transparent;
  pointer-events: none;
}
.gb-progress span {
  display: block;
  height: 100%;
  width: 100%;
  background: var(--color-accent);
  transform: scaleX(0);
  transform-origin: left center;
}

/* ---- Navegación ---- */
.gb-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.1rem var(--space-inline);
  transition: background 0.4s var(--ease-out), padding 0.4s var(--ease-out);
}
.gb-nav.is-scrolled {
  background: rgba(11, 10, 9, 0.82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  padding-block: 0.7rem;
  border-bottom: 1px solid rgba(246, 243, 238, 0.06);
}
.gb-nav__brand img { width: clamp(110px, 12vw, 150px); height: auto; display: block; }
.gb-nav__links {
  display: flex;
  gap: clamp(1rem, 2.5vw, 2.2rem);
}
.gb-nav__links a {
  color: var(--color-text-muted);
  text-decoration: none;
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: color var(--duration-fast) var(--ease-out);
}
.gb-nav__links a:hover { color: var(--color-accent); }
.gb-nav__cta { padding: 0.65em 1.6em; font-size: 0.85rem; }
.gb-nav__side { display: flex; align-items: center; gap: clamp(0.8rem, 2vw, 1.6rem); }

/* Selector de idioma */
.gb-lang { display: flex; gap: 0.2rem; }
.gb-lang button {
  background: none;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--color-text-muted);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  padding: 0.45em 0.8em;
  cursor: pointer;
  transition: color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);
}
.gb-lang button:hover { color: var(--color-accent); }
.gb-lang button.is-active {
  color: var(--color-accent);
  border-color: rgba(200, 164, 104, 0.5);
}

@media (max-width: 1023px) {
  .gb-nav__links { display: none; }
}
@media (max-width: 767px) {
  .gb-nav__cta { display: none; } /* en móvil manda la sticky CTA */
  .gb-nav { padding-inline: 1rem; }
  .gb-lang button { padding: 0.45em 0.55em; }
}

/* ---- Hero ---- */
.gb-hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.csk-hero__content h1 { max-width: 12ch; }

/* ---- Cifras de confianza ---- */
.gb-stats-section { border-bottom: 1px solid rgba(246, 243, 238, 0.07); }
.gb-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1.5rem, 4vw, 3rem);
}
.gb-stat { text-align: center; }
.gb-stat__num {
  font-family: var(--font-display);
  font-size: clamp(2.6rem, 5.5vw, 4.6rem);
  line-height: 1;
  color: var(--color-accent);
  display: block;
  font-variant-numeric: tabular-nums;
}
.gb-stat__label {
  display: block;
  margin-top: 0.7rem;
  font-size: var(--text-caption);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
@media (max-width: 767px) {
  .gb-stats { grid-template-columns: repeat(2, 1fr); }
}

/* ---- Cabeceras de sección ---- */
.gb-section-head { padding-block: var(--space-section) 2rem; }
.gb-section-head h2 { max-width: 22ch; }

/* ---- Portfolio: intro + property cards dentro de la galería ---- */
.gb-gallery-intro {
  width: clamp(280px, 34vw, 480px);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  justify-content: center;
}
.csk-h-gallery__item { width: clamp(300px, 38vw, 560px); }

.gb-prop {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}
.gb-prop__media {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
}
.gb-prop__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 12px;
  /* `scale` es una propiedad independiente: convive con el translate del
     drift parallax de GSAP y evita que el desplazamiento exponga bordes */
  scale: 1.14;
  transition: scale 0.8s var(--ease-out);
}
.gb-prop:hover .gb-prop__media img { scale: 1.2; }
.gb-prop__price {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  z-index: 2;
  padding: 0.45em 1em;
  border-radius: 999px;
  background: rgba(11, 10, 9, 0.78);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(200, 164, 104, 0.45);
  color: var(--color-accent);
  font-weight: 600;
  font-size: 0.95rem;
  font-variant-numeric: tabular-nums;
}
.gb-prop__type {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 2;
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 0.4em 0.9em;
  border-radius: 999px;
  background: rgba(11, 10, 9, 0.6);
  color: var(--color-text);
}
.gb-prop__loc {
  color: var(--color-accent);
  font-size: var(--text-caption);
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.gb-prop h3 { font-size: clamp(1.3rem, 2vw, 1.7rem); }
.gb-prop__meta {
  color: var(--color-text-muted);
  font-size: 0.9rem;
  letter-spacing: 0.04em;
}
.gb-prop__desc {
  color: var(--color-text-muted);
  font-size: 0.92rem;
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.gb-prop__actions { display: flex; gap: 0.7rem; flex-wrap: wrap; margin-top: 0.2rem; }
.gb-prop__actions .csk-btn { padding: 0.6em 1.4em; font-size: 0.85rem; }

/* ---- Parallax claim ---- */
.csk-parallax .csk-overlay { z-index: 2; }
.csk-parallax__layer--content h2 { font-size: clamp(2.2rem, 5.5vw, 5rem); max-width: 16ch; margin-inline: auto; }

/* ---- Secuencias de frames (hero + villa) ---- */
.gb-hero-seq {
  background: url('../assets/videos/posters/hero-poster.jpg') center / cover no-repeat #0b0a09;
}
.gb-villa-seq {
  background: url('../assets/videos/posters/featured-poster.jpg') center / cover no-repeat #0b0a09;
}
.csk-sequence__content--center {
  max-width: none;
  align-items: center;
  text-align: center;
}

/* ---- Propiedad destacada ---- */
.csk-reveal { padding-block: var(--space-section) 0; }
.gb-featured__detail {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.gb-featured__detail .csk-lead { margin-inline: auto; }
.gb-featured__thumbs {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.8rem;
}
.gb-featured__thumbs img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 10px;
}
.gb-featured__price {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  color: var(--color-accent);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.gb-specs {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  padding-block: 1.4rem;
  border-block: 1px solid rgba(246, 243, 238, 0.1);
}
.gb-specs dt {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.4vw, 2.2rem);
  color: var(--color-text);
}
.gb-specs dd {
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-top: 0.25rem;
}
.gb-features {
  list-style: none;
  display: grid;
  gap: 0.55rem;
  color: var(--color-text-muted);
}
.gb-features li::before {
  content: '—';
  color: var(--color-accent);
  margin-right: 0.6em;
}
.gb-featured__actions { display: flex; gap: 0.8rem; flex-wrap: wrap; justify-content: center; }

/* ---- Card stack: tarjetas de visita Gold Bricks ----
   Cada tarjeta simula una business card de la casa: sello con el emblema,
   numeración grande, pie con el wordmark y un acabado propio por servicio. */
.gb-card-list {
  list-style: none;
  display: grid;
  gap: 0.5rem;
  color: var(--color-text-muted);
  font-size: 0.95rem;
}
.gb-card-list li::before {
  content: '—';
  color: var(--color-accent);
  margin-right: 0.6em;
}
.csk-card { background: linear-gradient(150deg, #171411 0%, #100e0c 100%); }

.gb-card {
  padding-bottom: clamp(5.5rem, 9vh, 7rem); /* aire para el pie de tarjeta */
  /* Aire de lectura: la siguiente tarjeta tarda ~30vh más en llegar,
     así cada una se lee completa antes de ser cubierta */
  margin-bottom: 32vh;
}
.gb-card:last-child { margin-bottom: 8vh; }
/* Las tarjetas se pegan por debajo de la nav fija, no debajo de ella */
.csk-cards .csk-card { top: calc(76px + var(--card-top, 0px)); min-height: min(78vh, 820px); }
.gb-card h3 { font-size: clamp(1.7rem, 3vw, 2.6rem); }
.gb-card .csk-lead,
.gb-card .gb-card-list { max-width: 52ch; }

/* Numeración grande en filigrana */
.gb-card__num {
  position: absolute;
  right: clamp(1.4rem, 4vw, 3.2rem);
  bottom: clamp(4.5rem, 9vh, 6rem);
  font-family: var(--font-display);
  font-size: clamp(7rem, 16vw, 15rem);
  line-height: 1;
  opacity: 0.12;
  pointer-events: none;
}

/* Sello: emblema de Gold Bricks estampado */
.gb-card__seal {
  position: absolute;
  top: clamp(1.4rem, 3.5vw, 2.4rem);
  right: clamp(1.4rem, 3.5vw, 2.4rem);
  width: 92px;
  height: 92px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(14, 11, 7, 0.9);
  border: 1px solid rgba(200, 164, 104, 0.65);
  box-shadow: inset 0 0 0 4px rgba(14, 11, 7, 1), inset 0 0 0 5px rgba(200, 164, 104, 0.35);
  rotate: -8deg;
}
.gb-card__seal-crop {
  display: block;
  width: 40px;
  height: 44px;
  overflow: hidden;
}
.gb-card__seal-crop img {
  height: 44px;
  width: auto;
  max-width: none;
}

/* Pie de tarjeta de visita */
.gb-card__foot {
  position: absolute;
  left: clamp(2rem, 5vw, 4.5rem);
  right: clamp(2rem, 5vw, 4.5rem);
  bottom: clamp(1.6rem, 4vh, 2.6rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(200, 164, 104, 0.3);
}
.gb-card__foot img { height: 22px; width: auto; }
.gb-card__foot span {
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  opacity: 0.65;
  white-space: nowrap;
}
.gb-card__langs {
  font-size: 0.8rem;
  letter-spacing: 0.3em;
  color: #8a6a33;
}

/* 01 · Comprar — oro pulido (gold foil) */
.gb-card--foil {
  background: linear-gradient(135deg, #e6c98c 0%, #cfa96b 42%, #a8834b 100%);
  color: #17110a;
}
.gb-card--foil .csk-eyebrow { color: #6f5120; }
.gb-card--foil .csk-lead { color: rgba(23, 17, 10, 0.78); }
.gb-card--foil .gb-card-list { color: rgba(23, 17, 10, 0.82); }
.gb-card--foil .gb-card-list li::before { color: #6f5120; }
.gb-card--foil .gb-card__num { color: #17110a; }
.gb-card--foil .gb-card__foot { border-top-color: rgba(23, 17, 10, 0.28); }

/* 02 · Vender — tarjeta negra (black card) con filo dorado */
.gb-card--noir {
  background: linear-gradient(160deg, #16120d 0%, #0b0906 100%);
  border: 1px solid rgba(200, 164, 104, 0.5);
  color: var(--color-text);
}
.gb-card--noir .gb-card__num { color: var(--color-accent); }
.gb-card--noir h3 { color: var(--color-accent); }

/* 03 · Invertir — bronce lingote con veta de luz */
.gb-card--bronze {
  background:
    linear-gradient(115deg, transparent 42%, rgba(255, 244, 214, 0.16) 50%, transparent 58%),
    linear-gradient(150deg, #7c5c28 0%, #a37f43 55%, #c8a468 100%);
  color: #1b1409;
}
.gb-card--bronze .csk-eyebrow { color: #f0e0b8; }
.gb-card--bronze .csk-lead { color: rgba(27, 20, 9, 0.8); }
.gb-card--bronze .gb-card-list { color: rgba(27, 20, 9, 0.85); }
.gb-card--bronze .gb-card-list li::before { color: #f0e0b8; }
.gb-card--bronze .gb-card__num { color: #f0e0b8; opacity: 0.2; }
.gb-card--bronze .gb-card__foot { border-top-color: rgba(27, 20, 9, 0.3); }
.gb-card--bronze .gb-card__foot span { color: #1b1409; }

/* 04 · Internacional — marfil papel de carta */
.gb-card--ivory {
  background: linear-gradient(160deg, #f4ecdb 0%, #e7dbc0 100%);
  color: #17110a;
}
.gb-card--ivory .csk-eyebrow { color: #8a6a33; }
.gb-card--ivory .csk-lead { color: rgba(23, 17, 10, 0.75); }
.gb-card--ivory .gb-card-list { color: rgba(23, 17, 10, 0.8); }
.gb-card--ivory .gb-card-list li::before { color: #8a6a33; }
.gb-card--ivory .gb-card__num { color: #8a6a33; opacity: 0.16; }
.gb-card--ivory .gb-card__foot { border-top-color: rgba(23, 17, 10, 0.22); }

@media (max-width: 767px) {
  .gb-card__seal { width: 68px; height: 68px; }
  .gb-card__seal-crop { width: 30px; height: 33px; }
  .gb-card__seal-crop img { height: 33px; }
  .gb-card__num { font-size: clamp(5rem, 22vw, 8rem); bottom: 5rem; }
  .gb-card__foot span { display: none; }
}

/* ---- Zonas ---- */
.gb-zones {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.2rem;
}
.gb-zone {
  position: relative;
  display: block;
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  color: var(--color-text);
  aspect-ratio: 3 / 4;
}
.gb-zone img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.9s var(--ease-out);
}
.gb-zone:hover img { transform: scale(1.06); }
.gb-zone::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(4, 4, 5, 0.82) 0%, rgba(4, 4, 5, 0.05) 55%);
}
.gb-zone__info {
  position: absolute;
  z-index: 2;
  left: 1.2rem;
  right: 1.2rem;
  bottom: 1.2rem;
}
.gb-zone__info h3 { font-size: 1.35rem; }
.gb-zone__info p {
  font-size: 0.78rem;
  color: var(--color-text-muted);
  letter-spacing: 0.06em;
  margin-top: 0.3rem;
}
.gb-zones__note {
  color: var(--color-text-muted);
  font-size: 0.85rem;
  letter-spacing: 0.04em;
}
@media (max-width: 1023px) { .gb-zones { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .gb-zones { grid-template-columns: 1fr; } .gb-zone { aspect-ratio: 16 / 10; } }

/* ---- Portfolio completo (índice del catálogo real) ---- */
.gb-catalog { border-top: 1px solid rgba(246, 243, 238, 0.07); }
.gb-catalog__list { list-style: none; }
.gb-catalog__list a {
  display: grid;
  grid-template-columns: minmax(90px, 140px) 1fr auto;
  align-items: baseline;
  gap: clamp(1rem, 3vw, 2.5rem);
  padding-block: clamp(1.2rem, 3vh, 2rem);
  border-bottom: 1px solid rgba(246, 243, 238, 0.1);
  text-decoration: none;
  color: var(--color-text);
  transition: padding-left 0.4s var(--ease-out);
}
.gb-catalog__list li:first-child a { border-top: 1px solid rgba(246, 243, 238, 0.1); }
.gb-catalog__list a:hover { padding-left: 1rem; }
.gb-catalog__count {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3.5vw, 3rem);
  color: var(--color-accent);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.gb-catalog__count--icon { font-size: clamp(1.3rem, 2.4vw, 2rem); }
.gb-catalog__label {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2.6vw, 2.2rem);
}
.gb-catalog__arrow {
  font-size: 1.4rem;
  color: var(--color-text-muted);
  transition: color 0.3s var(--ease-out), transform 0.4s var(--ease-out);
}
.gb-catalog__list a:hover .gb-catalog__arrow { color: var(--color-accent); transform: translateX(6px); }

/* ---- Sobre nosotros ---- */
.gb-about { border-top: 1px solid rgba(246, 243, 238, 0.07); }
.gb-about__grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(2rem, 6vw, 6rem);
  align-items: start;
}
.gb-about__photo {
  position: sticky;
  top: 9vh;
}
.gb-about__photo img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 16px;
}
.gb-about__photo figcaption {
  margin-top: 0.8rem;
  font-size: var(--text-caption);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
.gb-about__quote {
  border-left: 2px solid var(--color-accent);
  padding-left: 1.4rem;
}
.gb-about__quote p {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2.2vw, 1.8rem);
  font-style: italic;
  line-height: 1.3;
}
.gb-about__quote cite {
  display: block;
  margin-top: 0.6rem;
  font-style: normal;
  font-size: 0.85rem;
  color: var(--color-text-muted);
  letter-spacing: 0.08em;
}
.gb-team {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
.gb-team__card {
  background: var(--color-surface);
  border: 1px solid rgba(246, 243, 238, 0.08);
  border-radius: 14px;
  padding: 1.4rem;
}
.gb-team__avatar {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  overflow: hidden;
  margin-bottom: 0.9rem;
  background: rgba(200, 164, 104, 0.12);
  border: 1px solid rgba(200, 164, 104, 0.4);
}
.gb-team__avatar img { width: 100%; height: 100%; object-fit: cover; object-position: 65% 20%; }
.gb-team__avatar--mono {
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--color-accent);
}
.gb-team__avatar--seal { background: rgba(14, 11, 7, 0.9); }
.gb-team__avatar--seal img { width: auto; height: 33px; object-fit: none; }
.gb-team__avatar--seal .gb-card__seal-crop { width: 30px; height: 33px; }
.gb-team__card h3 { font-size: 1.2rem; }
.gb-team__role { font-size: 0.85rem; color: var(--color-text-muted); margin-top: 0.2rem; }
.gb-team__meta {
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-top: 0.5rem;
}
.gb-team__link {
  display: inline-block;
  margin-top: 0.5rem;
  font-size: 0.85rem;
  color: var(--color-text-muted);
  text-decoration: none;
}
.gb-team__link:hover { color: var(--color-accent); }
@media (max-width: 1023px) {
  .gb-about__grid { grid-template-columns: 1fr; }
  .gb-about__photo { position: static; max-width: 460px; }
}
@media (max-width: 600px) {
  .gb-team { grid-template-columns: 1fr; }
}

/* ---- Testimonios (placeholder honesto) ---- */
.gb-testimonials { border-top: 1px solid rgba(246, 243, 238, 0.07); text-align: left; }

/* ---- Cierre / formulario ---- */
.csk-final { padding-block: clamp(4rem, 10vh, 8rem); }
.csk-final__content { max-width: 780px; margin-inline: auto; width: 100%; }
.gb-form {
  width: 100%;
  display: grid;
  gap: 0.8rem;
  text-align: left;
  background: rgba(11, 10, 9, 0.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(246, 243, 238, 0.1);
  border-radius: 16px;
  padding: clamp(1.2rem, 3vw, 2rem);
}
.gb-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.8rem;
}
.gb-form input,
.gb-form select,
.gb-form textarea {
  width: 100%;
  padding: 0.85em 1em;
  border-radius: 10px;
  border: 1px solid rgba(246, 243, 238, 0.14);
  background: rgba(246, 243, 238, 0.04);
  color: var(--color-text);
}
.gb-form input::placeholder,
.gb-form textarea::placeholder { color: rgba(246, 243, 238, 0.4); }
.gb-form select { appearance: none; }
.gb-form__actions { display: flex; gap: 0.8rem; flex-wrap: wrap; }
.gb-form__hint { font-size: 0.75rem; color: var(--color-text-muted); }
.gb-address { font-style: normal; font-size: 0.85rem; color: var(--color-text-muted); letter-spacing: 0.04em; }
@media (max-width: 600px) { .gb-form__row { grid-template-columns: 1fr; } }

/* ---- Footer ---- */
.gb-footer {
  border-top: 1px solid rgba(246, 243, 238, 0.07);
  padding-block: var(--space-section) 2rem;
  background: #080706;
}
.gb-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: clamp(2rem, 5vw, 4rem);
}
.gb-footer h4 {
  font-family: var(--font-body);
  font-size: 0.8rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: 0.9rem;
}
.gb-footer p { color: var(--color-text-muted); font-size: 0.92rem; line-height: 1.8; }
.gb-footer a { color: var(--color-text-muted); text-decoration: none; }
.gb-footer a:hover { color: var(--color-accent); }
.gb-footer__tagline { margin-top: 1rem; font-family: var(--font-display); font-style: italic; font-size: 1.15rem; }
.gb-footer__social { display: flex; flex-wrap: wrap; gap: 0.4rem 1.1rem; }
.gb-footer__legal {
  margin-top: 3.5rem;
  text-align: center;
  font-size: 0.75rem;
  color: rgba(246, 243, 238, 0.4);
}
.gb-footer__legal a { color: inherit; }
@media (max-width: 767px) {
  .gb-footer__grid { grid-template-columns: 1fr; }
  .gb-footer { padding-bottom: 6.5rem; } /* aire para la sticky CTA */
}
