/* huevoroto · estilos (fuente: Figma WEB-HUEVOROTO) */

@font-face {
  font-family: 'IBM Plex Mono';
  src: url('/assets/fonts/ibm-plex-mono-400.woff') format('woff');
  font-weight: 400; font-style: normal; font-display: swap;
}
@view-transition { navigation: auto; }

:root {
  --black: #000; --white: #fff; --yellow: #FBC700; --blue: #080A87; --grey: #ADADAD; --media: #101010;
  --font: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --pad: 24px; --pad2: 48px;
  color-scheme: dark;
}
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--black); -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--black); color: var(--white); font: 400 12px/18px var(--font); letter-spacing: 0; -webkit-font-smoothing: antialiased; min-height: 100vh; overflow-x: clip; }
p, h1, h2, h3, dl, dd, figure { margin: 0; }
h1, h2 { font-weight: 400; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; text-transform: inherit; letter-spacing: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
img, video, svg { display: block; max-width: 100%; }
.u { text-transform: uppercase; }
.y { color: var(--yellow); }
.g { color: var(--grey); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 2px solid var(--yellow); outline-offset: 3px; }
.skip { position: absolute; left: -9999px; top: 8px; z-index: 1000; background: var(--yellow); color: #000; padding: 8px 12px; text-transform: uppercase; }
.skip:focus { left: 8px; }
.arr { display: inline-block; transition: transform .35s var(--ease); }
a:hover .arr { transform: translateX(3px); }
a:hover .arr:is([aria-hidden]) { }
.m { display: none; }
.invite__l, .intro__mcta, .hgrid__mcta, .est__c, .nf a, .legal__top, .fnav a, .fhead__back { gap: .6ch; }

/* enlaces de texto: microinteracción */
.hdr__nav a, .arch a, .invite__l, .anav__b, .fhead__back, .fnav a, .legal a, .intro__mcta, .hgrid__mcta, .est__c, .con__b a, .cta__m, .est__m, .nf a {
  position: relative; transition: color .25s var(--ease);
}
.hdr__nav a:hover, .anav__b:hover, .fhead__back:hover, .fnav a:hover, .legal a:hover, .invite__l:hover, .con__b a:hover { color: var(--yellow); }

/* ───────── Cabecera ───────── */
.hdr { display: flex; align-items: center; gap: 32px; padding: 16px var(--pad); position: relative; z-index: 3; }
.hdr__sym { width: 51px; height: 51px; flex: none; color: var(--white); transition: color .25s var(--ease); }
.hdr__sym svg { width: 100%; height: 100%; }
.hdr__sym:hover { color: var(--yellow); }
.hdr__who { flex: 1; font-size: 14px; line-height: 18px; min-width: 0; }
.hdr__nav { display: flex; gap: 32px; }
.hdr__nav a { height: 44px; display: flex; align-items: center; justify-content: center; font-size: 12px; }
.hdr__nav a:nth-child(1) { width: 150px; } .hdr__nav a:nth-child(2), .hdr__nav a:nth-child(3) { width: 100px; }
.hdr__nav a[aria-current="page"]::after { content: ''; position: absolute; left: 50%; bottom: 8px; width: 6px; height: 6px; margin-left: -3px; background: var(--yellow); }
.hdr--home { padding-top: 24px; padding-bottom: 24px; }
.hdr--home .hdr__who { font-size: 16px; line-height: 20px; }

/* ───────── Huevo ───────── */
.egg { position: relative; display: block; width: 100%; aspect-ratio: 1 / 1; }
.egg__mask { position: absolute; inset: 0; background: var(--media); overflow: hidden;
  -webkit-mask: url('/assets/egg-mask.svg') center / 100% 100% no-repeat; mask: url('/assets/egg-mask.svg') center / 100% 100% no-repeat; }
.egg__mask img, .egg__mask video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.egg__line { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.egg__line path { fill: none; stroke: var(--white); stroke-width: 1.5; vector-effect: non-scaling-stroke; transition: stroke .3s var(--ease); }
a:hover .egg__line path, a:focus-visible .egg__line path, .egg.is-hover .egg__line path { stroke: var(--yellow); }
a:hover .egg__mask img, a:hover .egg__mask video { transform: scale(1.03); }
a:focus-visible { outline: none; }
a:focus-visible .egg__line path { stroke-width: 2.5; }

/* ───────── Pie ───────── */
.foot { padding: 88px var(--pad) 24px; }
.cta { display: grid; grid-template-columns: minmax(0, 890fr) minmax(0, 502fr); align-items: end; gap: 8px 32px; padding-bottom: 96px; }
.cta__k { grid-column: 2; font-size: 12px; }
.cta__q { grid-column: 2; font-size: 28px; line-height: 34px; }
.cta__m { grid-column: 2; font-size: 16px; line-height: 26px; margin-top: 16px; justify-self: start; }
.cta__m:hover { text-decoration: underline; text-underline-offset: 5px; }
.mani { color: var(--blue); font-size: 28px; line-height: 34px; }
.foot__firma { display: flex; align-items: center; gap: 32px; margin-top: 38px; }
.foot__logo { width: 116px; flex: none; color: var(--white); transition: color .25s var(--ease); }
.foot__logo:hover { color: var(--yellow); }
.foot__firma .sp { flex: 1; }
.foot__aut { font-size: 20px; line-height: 28px; width: 260px; }
.foot__mob { display: none; }
.legal { display: flex; align-items: center; gap: 24px; margin-top: 64px; font-size: 11px; line-height: 16px; color: var(--grey); flex-wrap: wrap; }
.legal nav { display: flex; gap: 24px; flex: 1; flex-wrap: wrap; }
.legal a { min-height: 44px; display: inline-flex; align-items: center; }
.legal__top { margin-left: auto; }
.foot--line { padding-top: 0; }
.foot__line { display: flex; justify-content: space-between; gap: 32px; font-size: 14px; line-height: 22px; }
.foot__line .mani { font-size: 14px; line-height: 22px; }
.foot__line .g { font-size: 12px; line-height: 18px; text-align: right; }
.foot--line .foot__mob { display: none; }
.foot--line .legal { margin-top: 24px; }

/* ───────── Inicio ───────── */
.hero { position: relative; min-height: 730px; overflow: hidden; }
.hero__bg { position: absolute; inset: 0; z-index: 0; }
.hero__bg picture { display: contents; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; opacity: .4; }
.hero__logo { position: relative; z-index: 2; padding: 108px var(--pad) 0; }
.hero__logo .logo { width: 100%; height: auto; color: var(--white); }
.intro { display: grid; grid-template-columns: minmax(0, 770fr) minmax(0, 430fr) minmax(0, 160fr); gap: 32px; padding: 48px var(--pad) 0; }
.intro__who { display: flex; flex-direction: column; gap: 8px; }
.intro__name { font-size: 28px; line-height: 34px; }
.intro__role { font-size: 12px; line-height: 18px; }
.intro__txt { font-size: 14px; line-height: 20px; }
.intro__txt p + p { margin-top: 20px; }
.intro__mob { display: none; }
.arch { display: flex; justify-content: space-between; align-items: center; padding: 42px var(--pad) 0; }
.arch a { width: 190px; height: 44px; display: flex; align-items: center; justify-content: center; }
.arch a:hover { text-decoration: underline; text-underline-offset: 5px; }
.hgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; padding: 24px var(--pad) 0; }
.hcard { display: block; container-type: inline-size; }
.hcard__meta { display: flex; flex-direction: column; padding-top: calc(8 / 480 * 100cqw); }
.hcard__meta .n { color: var(--yellow); font-size: calc(18 / 480 * 100cqw); line-height: calc(24 / 480 * 100cqw); }
.hcard__meta .m { display: block; font-size: max(10px, calc(12 / 480 * 100cqw)); line-height: max(16px, calc(18 / 480 * 100cqw)); margin-top: calc(7 / 480 * 100cqw); }
.hgrid__mcta { display: none; }
.invite { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; padding: 104px var(--pad) 0; }
.invite__t { font-size: 16px; line-height: 22px; }
.invite__s { margin-top: 16px; }
.invite__l { grid-column: 3; align-self: center; justify-self: start; height: 44px; display: inline-flex; align-items: center; }

/* hero: la foto entra lenta, el logo se queda quieto */
@media (prefers-reduced-motion: no-preference) {
  .hero__bg img { animation: heroIn 2.2s var(--ease) both; }
  @keyframes heroIn { from { opacity: 0; transform: scale(1.06); } to { opacity: .4; transform: none; } }
}

/* hero (escritorio, 1.ª visita): un huevo cae, se agrieta y se rompe; la foto se derrama desde la yema */
.hero.is-drop .hero__bg img, .hero.dropped .hero__bg img { animation: none; }
.hero.is-drop .hero__bg img { opacity: 0; }
.drop { position: absolute; left: 0; top: 0; z-index: 3; pointer-events: none; }
.drop[hidden] { display: none; }
.drop img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; will-change: transform, opacity, filter; }
.drop__l, .drop__r { opacity: 0; }
/* grieta en zigzag a lo ancho del huevo: mitad izquierda / mitad derecha */
.drop__l { clip-path: polygon(0 0, 53% 0, 47% 14%, 55% 29%, 46% 45%, 54% 60%, 47% 76%, 53% 90%, 49% 100%, 0 100%); }
.drop__r { clip-path: polygon(53% 0, 100% 0, 100% 100%, 49% 100%, 53% 90%, 47% 76%, 54% 60%, 46% 45%, 55% 29%, 47% 14%); }

/* ───────── Archivo de eggs ───────── */
.ahead { display: flex; justify-content: space-between; align-items: flex-start; padding: 48px var(--pad2) 0; }
.ahead__t { margin-top: 16px; font-size: 56px; line-height: 60px; }
.ahead__mh { display: none; }
.ahead__h { text-align: right; }
.stage { --k: 1; position: relative; height: calc(700px * var(--k)); margin-top: calc(35px * var(--k)); overflow: hidden; outline: none; touch-action: pan-y; }
.stage:focus-visible { box-shadow: inset 0 0 0 2px var(--yellow); }
.stage.is-carousel { cursor: grab; user-select: none; -webkit-user-select: none; }
.stage.is-carousel.is-drag { cursor: grabbing; }
.stage__bg { position: absolute; left: 0; top: 0; width: calc(1920px * var(--k)); height: calc(860px * var(--k)); will-change: transform; pointer-events: none; }
.stage__bg picture { display: contents; }
.stage__bg img { width: 100%; height: 100%; object-fit: cover; opacity: .6; }
.stage__cards { position: relative; height: 100%; }
/* sin JS: lista legible */
.stage__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; padding: 0 var(--pad2); height: auto; }
.stage:has(.stage__cards) { height: auto; }
.acard { display: block; container-type: inline-size; }
.acard__meta { display: flex; flex-direction: column; padding-top: calc(8 / 480 * 100cqw); white-space: nowrap; }
.acard__meta .n { color: var(--yellow); font-size: calc(18 / 480 * 100cqw); line-height: calc(24 / 480 * 100cqw); }
.acard__meta .t { display: block; color: var(--white); font-size: max(12px, calc(14 / 480 * 100cqw)); line-height: 1.5; margin-top: calc(10 / 480 * 100cqw); white-space: normal; max-width: 48ch; }
.is-carousel .acard__meta .t { opacity: 0; transition: opacity .4s var(--ease); }
.is-carousel .acard.is-active .acard__meta .t { opacity: 1; }
/* etiqueta que sigue al cursor sobre el archivo */
.acur { position: fixed; left: 0; top: 0; z-index: 500; pointer-events: none; padding: 3px 7px; background: var(--black); color: var(--yellow); font-size: 12px; line-height: 18px; white-space: nowrap; opacity: 0; transition: opacity .2s; }
.acur.on { opacity: 1; }
.acard__meta .m { display: block; font-size: calc(12 / 480 * 100cqw); line-height: calc(18 / 480 * 100cqw); margin-top: calc(8 / 480 * 100cqw); }
/* con JS: escenario diagonal */
/* el carrusel cabe en la pantalla: los botones siempre a la vista */
.stage.is-carousel { height: calc(700px * var(--k) + 64px); }
.is-carousel .stage__cards { display: block; padding: 0; height: 100%; }
.is-carousel .acard { position: absolute; left: 0; top: 0; width: calc(480px * var(--k)); transform-origin: 0 0; will-change: transform; -webkit-user-drag: none; }
.is-carousel .acard img { -webkit-user-drag: none; pointer-events: none; }
.anav { display: none; }
.is-carousel .anav { position: absolute; left: 0; right: 0; bottom: 0; z-index: 300; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 16px var(--pad2) 4px; background: linear-gradient(transparent, rgba(0,0,0,.9) 35%); cursor: auto; }
.anav__b { width: 170px; height: 44px; display: flex; align-items: center; justify-content: center; }
.anav__next { justify-self: end; }
.anav__c { text-align: center; }
.acred { padding: 32px var(--pad2) 0; font-size: 20px; line-height: 28px; }
.p-archive .foot { padding-top: 64px; }

/* ───────── Ficha ───────── */
.fhead { padding: 56px var(--pad2) 0; }
.fhead__back { width: 210px; height: 44px; margin-left: 0; display: flex; align-items: center; justify-content: center; }
.fhead__t { margin-top: 11px; font-size: 28px; line-height: 34px; }
.fhead__d { margin-top: 24px; }
.fmain { display: grid; grid-template-columns: minmax(0, 760fr) minmax(0, 600fr); gap: 32px; padding: 56px var(--pad) 0; }
.fmain__egg .egg { max-width: 760px; }
.fmain__meta { display: flex; flex-direction: column; margin-top: 12px; }
.fmain__meta .n { font-size: 28.5px; line-height: 38px; }
.fmain__meta .m { display: block; font-size: 19px; line-height: 28.5px; margin-top: 12px; }
.finfo__dl { display: grid; grid-template-columns: 152px minmax(0, 432px); column-gap: 16px; row-gap: 32px; }
.finfo__dl + .finfo__dl { margin-top: 32px; }
.finfo dt { color: var(--yellow); font-size: 12px; line-height: 20px; }
.finfo dd { font-size: 14px; line-height: 20px; }
.finfo dd p + p { margin-top: 10px; }
.gal { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; padding: 96px var(--pad2) 0; align-items: start; }
.gal__i { background: var(--media); padding: 32px; min-height: 240px; display: flex; flex-direction: column; justify-content: center; gap: 24px; }
.gal__i.has-media { background: none; padding: 0; min-height: 0; gap: 12px; }
.gal__m img, .gal__m video { width: 100%; height: auto; }
.gal__t { font-size: 16px; line-height: 26px; }
.gal__i.has-media .gal__t { font-size: 14px; line-height: 20px; }
.fnav { display: flex; justify-content: space-between; padding: 64px var(--pad2) 0; }
.fnav a { height: 44px; display: flex; align-items: center; justify-content: center; min-width: 150px; }
/* aparición de los textos tras la transición */
@media (prefers-reduced-motion: no-preference) {
  .rv { animation: rvIn .7s var(--ease) .45s both; }
  .fhead > * { animation: rvIn .6s var(--ease) both; }
  .fhead > *:nth-child(2) { animation-delay: .08s; } .fhead > *:nth-child(3) { animation-delay: .16s; }
  @keyframes rvIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
  ::view-transition-group(*) { animation-duration: .76s; animation-timing-function: cubic-bezier(.65, 0, .25, 1); }
  ::view-transition-old(root), ::view-transition-new(root) { animation-duration: .35s; }
}

/* ───────── Estudio ───────── */
.estudio { display: grid; grid-template-columns: minmax(0, 770fr) minmax(0, 410fr) minmax(0, 68fr); column-gap: 96px; padding: 120px var(--pad2) 0; }
.est__n { margin-top: 32px; font-size: 28px; line-height: 34px; }
.est__p { max-width: 630px; margin-top: 32px; font-size: 14px; line-height: 20px; }
.est__p p + p { margin-top: 52px; }
.est__b { padding-top: 80px; }
.est__q { margin-top: 32px; font-size: 28px; line-height: 34px; max-width: 300px; }
.est__m { display: inline-block; margin-top: 66px; font-size: 16px; line-height: 26px; }
.est__m:hover, .cta__m:hover { text-decoration: underline; text-underline-offset: 5px; }
.est__c { display: flex; width: fit-content; align-items: center; height: 44px; margin-top: 14px; }
.p-estudio .foot { padding-top: 160px; }

/* ───────── Contacto ───────── */
.contacto { display: grid; grid-template-columns: minmax(0, 720fr) minmax(0, 608fr); column-gap: 64px; padding: 96px var(--pad) 0; min-height: calc(866px - 83px); align-content: start; }
.con__n { margin-top: 24px; font-size: 28px; line-height: 34px; }
.con__r { margin-top: 24px; }
.con__i { margin-top: 24px; font-size: 14px; line-height: 22px; }
.con__b { display: grid; grid-template-columns: 152px minmax(0, 1fr); column-gap: 16px; row-gap: 32px; align-content: start; }
.con__b dt { color: var(--grey); font-size: 12px; line-height: 22px; }
.con__b dd { font-size: 14px; line-height: 22px; }
.con__b a:hover { text-decoration: underline; text-underline-offset: 5px; }
.p-contacto .foot { padding-top: 0; }

/* ───────── Legal y 404 ───────── */
.legalp, .nf { padding: 96px var(--pad2) 0; max-width: 820px; }
.legalp h1, .nf h1 { margin-top: 16px; font-size: 28px; line-height: 34px; }
.legalp__u { margin-top: 16px; }
.legalp__body { margin-top: 48px; font-size: 14px; line-height: 22px; }
.legalp__body h2 { margin: 40px 0 12px; font-size: 12px; line-height: 18px; text-transform: uppercase; color: var(--yellow); }
.legalp__body p + p { margin-top: 14px; }
.legalp__body a { text-decoration: underline; text-underline-offset: 4px; }
.nf p:not(.g) { margin-top: 24px; font-size: 14px; line-height: 22px; }
.nf a { display: inline-flex; align-items: center; height: 44px; margin-top: 24px; }

/* ───────── Aparición al hacer scroll ───────── */
@media (prefers-reduced-motion: no-preference) {
  .js [data-reveal]:not(.is-in) { opacity: 0; transform: translateY(16px); }
  .js [data-reveal] { transition: opacity .9s var(--ease), transform .9s var(--ease); }
}

/* ───────── Tablet ───────── */
@media (max-width: 1100px) {
  .hdr { gap: 20px; }
  .hdr__nav { gap: 8px; }
  .hdr__nav a:nth-child(n) { width: auto; padding: 0 12px; }
  .intro { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .estudio { column-gap: 48px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .contacto { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 32px; }
}

/* ───────── Móvil (Figma 390) ───────── */
@media (max-width: 759px) {
  .d { display: none; }
  .m { display: initial; }
  .hdr, .hdr--home { flex-wrap: wrap; gap: 16px; padding: 24px var(--pad) 16px; }
  .hdr__sym { width: 40px; height: 40px; }
  .hdr__who, .hdr--home .hdr__who { font-size: 12px; line-height: 18px; }
  .hdr__nav { width: 100%; gap: 0; }
  .hdr__nav a:nth-child(n) { flex: 1; width: auto; padding: 0; }
  .hdr__nav a[aria-current="page"]::after { bottom: 4px; }

  .hero { min-height: 0; }
  .hero { overflow: visible; }
  .hero__bg { display: none; }
  .intro { position: relative; z-index: 1; }
  .hero__logo { padding-top: 8px; }
  .intro { display: block; padding-top: 32px; }
  .intro__who, .intro__txt { display: none; }
  .intro__mob { display: block; }
  .intro__mname { margin-top: 32px; font-size: 32px; line-height: 38px; }
  .intro__mname span { display: block; }
  .intro__mtxt { margin-top: 32px; font-size: 14px; line-height: 22px; }
  .intro__mcta, .hgrid__mcta { display: flex; justify-content: center; align-items: center; height: 44px; margin: 32px 0 16px; }
  .hgrid__mcta { margin: 24px var(--pad) 0; }
  .intro__mob > p:last-child { margin-top: 24px; }
  .arch { display: none; }
  .hgrid { grid-template-columns: 1fr; gap: 32px; padding-top: 24px; }
  .hcard__meta .n { font-size: 14px; line-height: 18px; }
  .hcard__meta .m { font-size: 12px; line-height: 18px; margin-top: 5px; }
  .hcard__meta { padding-top: 6px; }
  .invite { display: none; }

  .foot { padding: 56px var(--pad) 24px; }
  .cta { display: block; padding-bottom: 56px; }
  .cta__q { margin-top: 12px; font-size: 24px; line-height: 29px; }
  .cta__m { display: inline-block; margin-top: 16px; }
  .mani { font-size: 24px; line-height: 29px; }
  .foot__firma { display: none; }
  .foot__mob { display: block; margin-top: 24px; font-size: 12px; line-height: 18px; }
  .foot__mob .g { margin-top: 24px; }
  .legal { margin-top: 40px; gap: 4px 16px; }
  .legal nav { gap: 16px; flex-basis: 100%; }
  .legal__top { margin-left: 0; }
  .foot__line { display: none; }
  .foot--line .foot__mob { display: block; margin-top: 0; }
  .foot--line .foot__mob .mani { font-size: 24px; line-height: 29px; }

  .ahead { display: block; padding: 32px var(--pad) 0; }
  .ahead__l { color: var(--grey); }
  .ahead__t { font-size: 28px; line-height: 34px; }
  .ahead__mh { display: block; margin-top: 16px; }
  .ahead__h { display: none; }
  .stage { margin-top: 0; }
  .stage.is-carousel { height: calc(630px * var(--k) + 56px); }
  .stage__cards { grid-template-columns: 1fr; padding: 0 var(--pad); }
  .is-carousel .acard__meta .n { font-size: 14px !important; line-height: 18px !important; }
  .is-carousel .acard__meta .m { font-size: 12px !important; line-height: 18px !important; margin-top: 4px !important; }
  .is-carousel .acard__meta .t { font-size: 12px; line-height: 18px; margin-top: 6px; max-width: 30ch; }
  .is-carousel .anav { padding: 12px var(--pad) 4px; }
  .anav { padding: 16px var(--pad) 0; }
  .anav__b { width: auto; }
  .anav__prev { justify-self: start; } .anav__next { justify-self: end; }
  .anav__c { color: var(--white); }
  .acred { display: none; }

  .fhead { padding: 32px var(--pad) 0; }
  .fhead__back { width: 100%; }
  .fhead__t { margin-top: 3px; }
  .fhead__d { margin-top: 16px; color: var(--grey); }
  .fmain { display: block; padding-top: 32px; }
  .fmain__meta .n { font-size: 14px; line-height: 18px; color: var(--yellow); }
  .fmain__meta .m { font-size: 12px; line-height: 18px; margin-top: 5px; }
  .fmain__meta { margin-top: 6px; }
  .finfo { margin-top: 48px; }
  .finfo__dl { display: block; }
  .finfo dt { color: var(--yellow); font-size: 12px; line-height: 18px; }
  .finfo dd { font-size: 14px; line-height: 22px; margin: 8px 0 24px; }
  .finfo__dl + .finfo__dl { margin-top: 24px; }
  .gal { grid-template-columns: 1fr; gap: 24px; padding: 48px var(--pad) 0; }
  .gal__i { padding: 24px; min-height: 220px; gap: 16px; }
  .gal__l { color: var(--grey); }
  .gal__t { font-size: 14px; line-height: 22px; }
  .fnav { justify-content: center; padding: 40px var(--pad) 0; }
  .fnav__back { display: none !important; }

  .estudio { display: block; padding: 64px var(--pad) 0; }
  .est__l { color: var(--grey); }
  .est__n { font-size: 32px; line-height: 38px; text-transform: uppercase; max-width: 8ch; }
  .est__p { font-size: 14px; line-height: 22px; }
  .est__p p + p { margin-top: 32px; }
  .est__b { padding-top: 64px; }
  .est__k { display: none; }
  .est__q { margin-top: 0; font-size: 24px; line-height: 29px; text-transform: uppercase; }
  .est__m { margin-top: 24px; }
  .est__c { display: flex; justify-content: center; color: var(--white); margin-top: 24px; }
  .p-estudio .foot { padding-top: 64px; }

  .contacto { display: block; padding: 64px var(--pad) 0; min-height: 0; }
  .con__n { font-size: 32px; line-height: 38px; }
  .con__n span { display: block; }
  .con__b { grid-template-columns: 80px minmax(0, 1fr); margin-top: 48px; row-gap: 32px; }
  .con__b dt { color: var(--yellow); }
  .p-contacto .foot { padding-top: 64px; }

  .legalp, .nf { padding: 48px var(--pad) 0; }
}

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