/* Lara — tokens sacados de las fotos: hormigón, madera y metal negro, luz de lámpara */

/* Archivo alojada en la propia web (licencia OFL): subconjunto latino, ejes de peso y anchura. Sin peticiones a Google. */
@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("../fonts/archivo-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --hormigon: #E2E2DF;
  --papel: #F3F2EF;
  --bronce: #2B211C;
  --bronce-2: #3A2E27;
  --gris: #5C544D;          /* 5,7:1 sobre hormigón, 6,6:1 sobre papel */
  --linea: #C9C4BC;         /* líneas decorativas */
  --linea-control: #7D736A; /* bordes de controles: 3,6:1 (WCAG 1.4.11) */
  --linea-oscura: #54463D;
  --texto-oscuro: #CFC7BD;  /* sobre bronce: 9,4:1 */
  --ambar: #D6974A;
  --ambar-claro: #E7B87A;
  --error: #A3402A;
  --focus: var(--bronce);

  --font: "Archivo", system-ui, sans-serif;
  --gutter: clamp(1rem, 4vw, 3rem);
  --max: 88rem;
  --header-h: 5.5rem;
  --section: clamp(4.5rem, 9vw, 8rem);
  --ease: cubic-bezier(.22, 1, .36, 1);
}

@view-transition { navigation: auto; }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
body {
  margin: 0;
  background: var(--hormigon);
  color: var(--bronce);
  font-family: var(--font);
  font-size: 1.0625rem;
  line-height: 1.6;
  font-stretch: 100%;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, dl, dd, ul, ol, figure { margin: 0; }
h1, h2, h3 { font-weight: inherit; font-size: inherit; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; text-underline-offset: .2em; text-decoration-thickness: 1px; }
a, button, summary, input, select, textarea { touch-action: manipulation; }
::selection { background: var(--ambar); color: var(--bronce); }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.process, .cta, .site-footer { --focus: var(--ambar-claro); }

.wrap { width: min(100% - 2 * var(--gutter), var(--max)); margin-inline: auto; }
.section { padding-block: var(--section); }
.section-end { padding-bottom: var(--section); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--bronce); color: var(--papel); padding: .75rem 1rem; }
.skip:focus { top: 1rem; }

/* Tipografía: titulares condensados = lamas verticales */
.display {
  font-stretch: 62%;
  font-weight: 340;
  line-height: .92;
  letter-spacing: -.01em;
  text-wrap: balance;
}
.h2 { font-size: clamp(2.5rem, 6vw, 5.25rem); }
.h3 { font-size: 1.5rem; font-weight: 500; font-stretch: 85%; line-height: 1.15; }
.lead { font-size: clamp(1.125rem, 1.6vw, 1.375rem); line-height: 1.5; max-width: 34ch; }
.kicker { display: block; font-size: .8125rem; font-weight: 600; letter-spacing: .06em; line-height: 1.4; text-transform: uppercase; color: var(--gris); text-wrap: balance; }
p { max-width: 62ch; text-wrap: pretty; }
.facts dt, .info-big, .steps li::before, .timeline-year, .header-call { font-variant-numeric: lining-nums tabular-nums; }

/* Botones */
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-top: 2rem; }
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 3rem; padding: .75rem 1.5rem;
  font: 500 1rem/1.15 var(--font); text-align: center; text-decoration: none; cursor: pointer;
  border: 1px solid transparent; border-radius: 0;
  transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .15s var(--ease);
  -webkit-tap-highlight-color: transparent;
}
.btn:active { transform: scale(.97); }
.btn-dark { background: var(--bronce); color: var(--papel); }
.btn-line { background: none; color: var(--bronce); border-color: var(--bronce); }
.btn-amber { background: var(--ambar); color: var(--bronce); }
.btn-line-light { border-color: var(--papel); color: var(--papel); }
.btn-light { background: var(--papel); color: var(--bronce); }
@media (hover: hover) {
  .btn-dark:hover { background: var(--bronce-2); }
  .btn-line:hover { background: var(--bronce); color: var(--papel); }
  .btn-amber:hover { background: var(--ambar-claro); }
  .btn-line-light:hover { background: var(--papel); color: var(--bronce); }
  .btn-light:hover { background: var(--hormigon); }
}
.link { display: inline-block; padding-block: .375rem; font-weight: 500; text-underline-offset: .3em; }
@media (hover: hover) { .link:hover { text-decoration-color: var(--ambar); text-decoration-thickness: 2px; } }

/* Cabecera */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--hormigon);
  border-bottom: 1px solid transparent;
  transition: border-color .3s;
}
.site-header.is-scrolled { border-bottom-color: var(--linea); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: var(--header-h); }
.logo { flex: none; }
.logo img { height: 4.5rem; width: auto; }
.nav { display: flex; align-items: center; gap: clamp(.9rem, 1.8vw, 1.75rem); font-size: .9375rem; }
.nav > a:not(.btn) { text-decoration: none; padding-block: .5rem; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .3s var(--ease); }
.nav > a[aria-current="page"] { background-size: 100% 1px; }
@media (hover: hover) { .nav > a:not(.btn):hover { background-size: 100% 1px; } }
.nav-cta { min-height: 2.75rem; padding-inline: 1.25rem; }
.nav > a.nav-usm { display: flex; align-items: center; gap: .6rem; padding: .25rem 0 .25rem clamp(.9rem, 1.8vw, 1.75rem); border-left: 1px solid var(--linea); background: none; font-size: .8125rem; line-height: 1.25; }
.nav-usm img { width: auto; height: 2.25rem; }
.nav-usm-kicker { display: block; color: var(--gris); font-size: .6875rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
@media (hover: hover) {
  .nav > a.nav-usm:hover .nav-usm-text { text-decoration: underline; text-decoration-color: var(--ambar); text-underline-offset: .2em; }
}
.nav-toggle, .header-call, .nav-extra { display: none; }

@media (max-width: 1240px) {
  :root { --header-h: 4.5rem; }
  .logo img { height: 3.5rem; }
  .nav-toggle {
    display: grid; place-items: center; width: 3rem; height: 3rem; margin-right: -.75rem;
    background: none; border: 0; color: inherit; cursor: pointer;
  }
  .nav-toggle-bars, .nav-toggle-bars::before {
    display: block; width: 1.5rem; height: 1px; background: currentColor; content: "";
    transition: transform .3s var(--ease);
  }
  .nav-toggle-bars { transform: translateY(-4px); }
  .nav-toggle-bars::before { transform: translateY(8px); }
  .nav-toggle[aria-expanded="true"] .nav-toggle-bars { transform: rotate(45deg); }
  .nav-toggle[aria-expanded="true"] .nav-toggle-bars::before { transform: rotate(-90deg); }
  .header-call {
    display: inline-flex; align-items: center; min-height: 2.75rem; margin-left: auto;
    font-weight: 500; font-size: .9375rem; text-decoration: none;
  }
  .nav {
    position: fixed; inset: var(--header-h) 0 0; z-index: 40;
    flex-direction: column; align-items: flex-start; gap: 0;
    padding: 1.5rem var(--gutter) 2rem; overflow-y: auto;
    background: var(--hormigon);
    font-size: 2.5rem; font-stretch: 62%; font-weight: 340; line-height: 1.1;
    visibility: hidden; opacity: 0; transform: translateY(-.5rem);
    transition: opacity .25s var(--ease), transform .25s var(--ease), visibility 0s .25s;
    overscroll-behavior: contain;
  }
  .nav.is-open { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
  .nav > a:not(.btn) { padding-block: .35rem; }
  .nav-cta { margin-top: 1.5rem; font-size: 1rem; font-stretch: 100%; }
  .nav > a.nav-usm { margin-top: 1.5rem; padding: 0; border: 0; gap: .75rem; font-size: 1rem; font-stretch: 100%; font-weight: 400; }
  .nav-usm img { height: 2.75rem; }
  .nav-extra {
    display: grid; justify-items: start; gap: .25rem; width: 100%; margin-top: auto; padding-top: 1.5rem; border-top: 1px solid var(--linea);
    font-size: 1rem; font-stretch: 100%; font-weight: 400; line-height: 1.5;
  }
  .nav-extra a { padding-block: .5rem; text-decoration: none; }
  .nav-extra p { color: var(--gris); font-size: .875rem; }
}
@media (max-width: 380px) { .header-call { font-size: .8125rem; } .logo img { height: 3rem; } }

/* Hero: foto a sangre con el texto encima, abajo a la izquierda */
.hero { position: relative; display: grid; min-height: min(100svh - var(--header-h), 56rem); background: var(--bronce); color: var(--papel); --focus: var(--ambar-claro); }
.hero > * { grid-area: 1 / 1; }
.hero-media { position: relative; overflow: hidden; }
.hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to right, rgb(43 33 28 / .72), rgb(43 33 28 / .4) 45%, transparent 70%), linear-gradient(to top, rgb(43 33 28 / .82), rgb(43 33 28 / .6) 40%, transparent 75%); pointer-events: none; }
.hero-copy { position: relative; align-self: end; padding-block: clamp(2rem, 5vw, 3.5rem); }
.hero-lead { max-width: 46ch; }
.hero-h1 .kicker { margin-bottom: 1.25rem; max-width: 34ch; color: var(--papel); }
.hero-title { display: block; max-width: 16ch; font-size: clamp(3.25rem, 5.6vw, 6.25rem); font-weight: 300; line-height: .88; }
.hero-lead { margin-top: 1.5rem; }
.hero-facts { display: grid; grid-template-columns: 3fr 1fr; gap: 1rem 3rem; align-items: end; padding-block: clamp(2rem, 4vw, 3rem) 0; }
.hero-note { font-size: .875rem; color: var(--gris); }
.facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--linea); }
.facts dt { font-size: 2.5rem; font-stretch: 62%; font-weight: 340; line-height: 1; }
.facts dd { margin: .5rem 0 0; font-size: .875rem; line-height: 1.4; color: var(--gris); }
.hero-media img, .svc-media img, .case-cover img { width: 100%; height: 100%; object-fit: cover; }
.hero-media .slats span { background: var(--bronce); }
.hero-media img { position: absolute; inset: 0; }

/* El momento: la persiana de lamas se abre al cargar (sin estilos en línea: CSP style-src 'self') */
.slats { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(12, 1fr); pointer-events: none; }
.slats span { --i: 0; background: var(--hormigon); transform-origin: 0 50%; animation: slat .9s var(--ease) both; animation-delay: calc(.15s + var(--i) * 40ms); }
.slats span:nth-child(2) { --i: 1; } .slats span:nth-child(3) { --i: 2; } .slats span:nth-child(4) { --i: 3; }
.slats span:nth-child(5) { --i: 4; } .slats span:nth-child(6) { --i: 5; } .slats span:nth-child(7) { --i: 6; }
.slats span:nth-child(8) { --i: 7; } .slats span:nth-child(9) { --i: 8; } .slats span:nth-child(10) { --i: 9; }
.slats span:nth-child(11) { --i: 10; } .slats span:nth-child(12) { --i: 11; }
@keyframes slat { to { transform: scaleX(0); } }
.hero-media img, .svc-media img, .case-cover img { animation: settle 1.6s var(--ease) both; }
@keyframes settle { from { transform: scale(1.06); } }

@media (max-width: 860px) { .hero-facts { grid-template-columns: 1fr; } .facts { gap: 1rem; } .facts dt { font-size: 2rem; } }
@media (max-width: 767px) {
  .hero { display: block; min-height: 0; background: var(--hormigon); color: var(--bronce); --focus: var(--bronce); }
  .hero-media { aspect-ratio: 4 / 3; }
  .hero-media::after { display: none; }
  .hero-media .slats span { background: var(--hormigon); }
  .hero-h1 .kicker { color: var(--gris); }
  .hero .btn-light { background: var(--bronce); color: var(--papel); }
  .hero .btn-line-light { border-color: var(--bronce); color: var(--bronce); }
}

/* Encuadres de las fotos (object-position) */
.op-28-60 { object-position: 28% 60%; } .op-40-60 { object-position: 40% 60%; } .op-45-50 { object-position: 45% 50%; }
.op-50-45 { object-position: 50% 45%; } .op-50-50 { object-position: 50% 50%; } .op-50-55 { object-position: 50% 55%; }
.op-50-60 { object-position: 50% 60%; } .op-50-65 { object-position: 50% 65%; } .op-50-70 { object-position: 50% 70%; }
.op-55-60 { object-position: 55% 60%; } .op-60-50 { object-position: 60% 50%; } .op-60-60 { object-position: 60% 60%; }

/* Transición entre la tarjeta y la portada de cada proyecto */
.vt-laudofarma { view-transition-name: p-laudofarma; } .vt-chint-madrid { view-transition-name: p-chint; }
.vt-c-bolonia { view-transition-name: p-bolonia; } .vt-titan-fire-system { view-transition-name: p-titan; }
.vt-bmc-agricola { view-transition-name: p-bmc; } .vt-automaticos-rogar { view-transition-name: p-rogar; }
.vt-gripple { view-transition-name: p-gripple; }

/* Pies de foto */
figure figcaption { margin-top: .75rem; font-size: .8125rem; color: var(--gris); }
figure figcaption a { display: inline-block; padding-block: .25rem; }

/* Franja de clientes */
.clients { padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.clients-list {
  display: flex; flex-wrap: wrap; gap: .1em 1.1em; margin-top: .5rem;
  font-size: clamp(1.375rem, 2.4vw, 2rem); font-stretch: 62%; font-weight: 400; line-height: 1.2;
}
.clients-list a { display: inline-block; padding-block: .25rem; text-decoration: none; }
@media (hover: hover) { .clients-list a:hover { text-decoration: underline; text-decoration-color: var(--ambar); } }

/* Servicios */
.services { background: var(--papel); }
.services .h2 { max-width: 16ch; margin-bottom: clamp(3rem, 6vw, 5rem); }
.service { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.service + .service { margin-top: clamp(4rem, 8vw, 7rem); }
.service-img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.service-flip .service-media { order: 2; }
.service-flip .service-img { aspect-ratio: 1 / 1; }
.service-flip { grid-template-columns: 5fr 7fr; }
.service-flip .service-body { max-width: 30rem; justify-self: end; }
.service-body p { margin-top: 1rem; color: var(--gris); }
.service-body .service-more, .service-projects { margin-top: 1.25rem; color: var(--bronce); }
.service-projects a { display: inline-block; padding-block: .375rem; font-weight: 500; }
.ticks { margin-top: 1.5rem; border-top: 1px solid var(--linea); }
.ticks li { padding-block: .7rem; border-bottom: 1px solid var(--linea); font-size: .9375rem; }
.ticks-2 { display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem; }
@media (max-width: 860px) {
  .service, .service-flip { grid-template-columns: 1fr; }
  .service-flip .service-media { order: 0; }
  .service-flip .service-img { aspect-ratio: 4 / 3; }
  .service-flip .service-body { justify-self: start; }
}
@media (max-width: 560px) { .ticks-2 { grid-template-columns: 1fr; } }

/* Proyectos */
.section-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.section-head .h2 { max-width: 14ch; }
/* Mosaico de proyectos: la primera a todo lo ancho, el resto a dos columnas */
.mosaic { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(2.5rem, 5vw, 4rem) clamp(1rem, 3vw, 2.5rem); }
.mosaic .card:first-child { grid-column: 1 / -1; }
.mosaic .card img { aspect-ratio: 4 / 3; }
.mosaic .card:first-child img { aspect-ratio: 16 / 9; }
.mosaic .card:first-child .card-title { font-size: 1.75rem; }
.card { display: block; text-decoration: none; }
.card:focus-visible { outline-offset: 6px; }
.card img { width: 100%; aspect-ratio: 1.12 / 1; object-fit: cover; transition: filter .4s var(--ease); }
.card-title { margin-top: 1rem; font-size: 1.375rem; font-weight: 500; font-stretch: 85%; line-height: 1.2; }
.card-meta { margin-top: .25rem; font-size: .9375rem; color: var(--gris); }
.card-desc { margin-top: .5rem; color: var(--gris); max-width: 52ch; }
@media (hover: hover) {
  .card:hover img { filter: brightness(1.04) saturate(1.08); }
  .card:hover .card-title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .25em; }
}
@media (max-width: 760px) {
  .mosaic { grid-template-columns: 1fr; }
  .mosaic .card:first-child img { aspect-ratio: 4 / 3; }
}
.related-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(2.5rem, 5vw, 4rem) clamp(1rem, 3vw, 2.5rem); }
@media (max-width: 760px) { .related-grid { grid-template-columns: 1fr; } }

/* Proceso: bloque oscuro */
.process { background: var(--bronce); color: var(--papel); }
.process-grid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(3rem, 7vw, 7rem); align-items: start; }
.process-intro { position: sticky; top: 7rem; }
.process-intro .btn { margin-top: 2rem; }
.process-intro p { margin-top: 1.5rem; color: var(--texto-oscuro); max-width: 38ch; }
.steps { counter-reset: step; }
.steps li { counter-increment: step; display: grid; grid-template-columns: 5rem 1fr; gap: 0 1.5rem; padding-block: 2rem; border-top: 1px solid var(--linea-oscura); }
.steps li:last-child { border-bottom: 1px solid var(--linea-oscura); }
.steps li::before { content: counter(step); grid-row: span 2; font-size: 4.5rem; font-stretch: 62%; font-weight: 300; line-height: .85; color: var(--ambar); }
.steps p { margin-top: .6rem; color: var(--texto-oscuro); }
@media (max-width: 860px) {
  .process-grid { grid-template-columns: 1fr; }
  .process-intro { position: static; }
  .steps li { grid-template-columns: 3rem 1fr; gap: 0 1rem; }
  .steps li::before { font-size: 3.25rem; }
}

/* Marcas */
.brands-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: end; }
.brands-copy p { margin-top: 1.5rem; color: var(--gris); }
.brands-copy .service-more { color: var(--bronce); }
.brands-img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; max-height: 38rem; }
.brand-wall {
  grid-column: 1 / -1;
  display: flex; flex-wrap: wrap; gap: .1em .55em;
  margin-top: clamp(2rem, 4vw, 3rem); padding-top: clamp(2rem, 5vw, 4rem); border-top: 1px solid var(--linea);
  font-size: clamp(1.75rem, 4.2vw, 3.75rem); font-stretch: 62%; font-weight: 340; line-height: 1.1;
}
.brands-grid .brand-wall { margin-top: 0; }
.brand-wall li:nth-child(odd) { color: var(--gris); }
.brand-wall-sm { font-size: clamp(1.5rem, 3vw, 2.5rem); padding-top: 1.25rem; margin-top: 1rem; }
@media (max-width: 760px) { .brands-grid { grid-template-columns: 1fr; } .brands-img { aspect-ratio: 1; } }

/* Desde 1974 */
.anniversary { background: var(--papel); }
.anniversary-grid { display: grid; grid-template-columns: 5fr 6fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.anniversary-grid img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.anniversary-grid .lead { margin-top: 1.5rem; }
.timeline { margin-top: 2rem; border-top: 1px solid var(--linea); }
.timeline li { display: grid; grid-template-columns: 5.5rem 1fr; gap: 1.25rem; padding-block: 1rem; border-bottom: 1px solid var(--linea); }
.timeline-year { font-size: 2rem; font-stretch: 62%; font-weight: 340; line-height: 1; }
.timeline p { color: var(--gris); }
@media (max-width: 760px) { .anniversary-grid { grid-template-columns: 1fr; } .anniversary-grid img { aspect-ratio: 4 / 3; } .timeline li { grid-template-columns: 4rem 1fr; } }

/* FAQ */
.faq-grid { display: grid; grid-template-columns: 4fr 8fr; gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.faq-grid > .h2 { position: sticky; top: 7rem; }
.faq-list { border-top: 1px solid var(--linea); }
.faq-list details { border-bottom: 1px solid var(--linea); }
.faq-list summary {
  display: flex; justify-content: space-between; gap: 1.5rem; align-items: baseline;
  padding-block: 1.35rem; cursor: pointer; list-style: none;
  font-size: 1.1875rem; font-weight: 500; line-height: 1.35;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; font-size: 1.75rem; font-weight: 300; line-height: 1; transition: transform .3s var(--ease); flex: none; }
.faq-list details[open] summary::after { transform: rotate(45deg); }
.faq-list details p { padding-bottom: 1.5rem; color: var(--gris); }
.faq-list details p a { color: var(--bronce); }
@media (hover: hover) { .faq-list summary:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .25em; } }
@media (max-width: 860px) { .faq-grid { grid-template-columns: 1fr; } .faq-grid > .h2 { position: static; } }

/* CTA final */
.cta { background: var(--bronce); color: var(--papel); }
.cta-title { font-size: clamp(2.5rem, 7vw, 6.5rem); max-width: 16ch; }
.cta .actions { margin-top: 3rem; }
.cta-note { margin-top: 1.5rem; font-size: .9375rem; color: var(--texto-oscuro); }

/* Pie */
.site-footer { background: var(--bronce); color: var(--texto-oscuro); padding-block: 4rem 2rem; border-top: 1px solid var(--linea-oscura); font-size: .9375rem; }
.footer-grid { display: grid; grid-template-columns: 1.5fr repeat(4, 1fr); gap: 2rem; }
.footer-grid p, .footer-links { margin-top: .75rem; }
.footer-brand p { max-width: 26ch; }
.footer-h { font-size: .9375rem; font-weight: 600; color: var(--papel); }
.site-footer a { display: inline-block; padding-block: .3rem; text-decoration: none; }
.footer-links li + li { margin-top: .1rem; }
@media (hover: hover) { .site-footer a:hover { color: var(--ambar-claro); text-decoration: underline; } }
.logo-full img { width: 18rem; height: auto; }
.footer-legal { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 4rem; padding-top: 1.5rem; border-top: 1px solid var(--linea-oscura); font-size: .8125rem; }
.footer-legal ul { display: flex; flex-wrap: wrap; gap: 0 1.25rem; }
@media (max-width: 1080px) { .footer-grid { grid-template-columns: repeat(2, 1fr); } .footer-brand { grid-column: 1 / -1; } }
@media (max-width: 420px) { .footer-grid { grid-template-columns: 1fr; } }

/* Páginas interiores */
.crumbs { padding-top: 1.5rem; font-size: .875rem; color: var(--gris); }
.crumbs ol { display: flex; flex-wrap: wrap; gap: .25rem; }
.crumbs li + li::before { content: "/"; margin-right: .25rem; }
.crumbs a, .crumbs [aria-current] { display: inline-block; padding-block: .25rem; }
.page-head { padding-block: clamp(2.5rem, 7vw, 6rem) clamp(2.5rem, 5vw, 4.5rem); }
.page-head h1 .kicker { margin-bottom: 1rem; }
.page-title { display: block; font-size: clamp(3.25rem, 9vw, 8.5rem); font-weight: 300; line-height: .88; }
.page-title-long { font-size: clamp(2.75rem, 7vw, 6.5rem); max-width: 18ch; }
.page-head .lead { margin-top: 1.75rem; max-width: 46ch; }


/* Páginas de servicio */
.svc-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: end; }
.svc-media { position: relative; overflow: hidden; aspect-ratio: 4 / 3; }
.svc-media .slats { grid-template-columns: repeat(8, 1fr); }
.svc-section + .svc-section { padding-top: 0; }
.svc-alt { background: var(--papel); }
.svc-alt + .svc-section { padding-top: var(--section); }
.svc-grid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(2rem, 6vw, 6rem); align-items: start; padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--linea); }
.svc-alt .svc-grid, .brands.svc-alt .svc-grid { border-top: 0; padding-top: 0; }
.svc-grid .h2 { max-width: 12ch; }
.svc-text p { color: var(--gris); }
.svc-text p + p { margin-top: 1rem; }
.svc-facts { margin-top: 1.5rem; border-top: 1px solid var(--linea); }
.svc-facts div { display: grid; grid-template-columns: 7rem 1fr; gap: 1rem; padding-block: .75rem; border-bottom: 1px solid var(--linea); }
.svc-facts dt { font-weight: 600; }
.svc-facts dd { margin: 0; color: var(--gris); }
@media (max-width: 860px) {
  .svc-head, .svc-grid { grid-template-columns: 1fr; }
  .svc-media { order: -1; aspect-ratio: 3 / 2; }
}

/* Casos de estudio */
.case-head .page-title { margin-top: .75rem; }
.h1-sub { display: block; margin-top: 1rem; font-size: clamp(1.25rem, 2.2vw, 1.75rem); font-stretch: 85%; font-weight: 400; line-height: 1.2; letter-spacing: 0; max-width: 32ch; }
.case-cover { position: relative; overflow: hidden; aspect-ratio: 16 / 9; max-height: calc(100svh - var(--header-h)); width: 100%; }
.case-cover .slats { grid-template-columns: repeat(8, 1fr); }
@media (max-width: 860px) { .case-cover { aspect-ratio: 4 / 3; } }
.ficha { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.5rem), 1fr)); gap: 0 1.5rem; margin-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--linea); }
.ficha div { padding-block: 1.25rem; border-bottom: 1px solid var(--linea); }
.ficha dt { font-size: .8125rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--gris); }
.ficha dd { margin: .4rem 0 0; font-size: clamp(1.25rem, 2vw, 1.625rem); font-stretch: 85%; font-weight: 400; line-height: 1.2; }
.statement { font-size: clamp(1.625rem, 3.2vw, 2.75rem); line-height: 1.15; font-stretch: 85%; font-weight: 380; max-width: 28ch; }
.case-objective .statement { margin-top: 1rem; max-width: 30ch; }
.case-story { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(2rem, 6vw, 6rem); }
.case-story p { margin-top: 1rem; color: var(--gris); }
.case-story .case-service { color: var(--bronce); font-size: .9375rem; }
.case-story .case-service a { font-weight: 500; }
@media (max-width: 860px) { .case-story { grid-template-columns: 1fr; } }
.gallery { display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(1rem, 2.5vw, 2rem); }
.gallery figure { grid-column: span 6; }
.gallery .g-12 { grid-column: 1 / -1; } .gallery .g-8 { grid-column: span 8; } .gallery .g-4 { grid-column: span 4; }
.gallery img { width: 100%; height: 100%; object-fit: cover; }
.gallery .g-12 img { aspect-ratio: 16 / 9; } .gallery .g-8 img { aspect-ratio: 3 / 2; } .gallery .g-6 img { aspect-ratio: 4 / 3; }
.gallery .g-6.g-tall img { aspect-ratio: 4 / 5; }
@media (max-width: 760px) {
  .gallery figure, .gallery .g-8, .gallery .g-4 { grid-column: 1 / -1; }
  .gallery img, .gallery .g-12 img, .gallery .g-8 img, .gallery .g-6 img { height: auto; aspect-ratio: 4 / 3; }
  .gallery .g-tall img, .gallery .g-6.g-tall img { aspect-ratio: 4 / 5; }
}
.case-result { background: var(--papel); }
.case-result .statement { margin-top: 1rem; max-width: 32ch; }
.case-brands { padding-block: var(--section) 0; }
.case-brands-note { margin-top: 1.25rem; color: var(--gris); }
.case-brands-note a { color: var(--bronce); }
.case-brands + .cta, article + .cta { margin-top: var(--section); }
.case-result + .case-brands { padding-top: var(--section); }
.others-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(2rem, 4vw, 3rem) clamp(1rem, 2.5vw, 2rem); }
.others-grid .card img { aspect-ratio: 4 / 3; }
@media (max-width: 860px) { .others-grid { grid-template-columns: 1fr; } }
.others + .cta { margin-top: 0; }
.faq-more { padding-block: 1.5rem; color: var(--gris); max-width: none; }
.faq-more a { color: var(--bronce); }

/* Contacto */
.contact-quick { margin-top: 1.25rem; font-size: 1rem; }
.contact-quick a { font-weight: 500; }
.contact-grid { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 1.25rem; }
.field { display: grid; gap: .45rem; align-content: start; }
.field-wide { grid-column: 1 / -1; }
.field label { font-size: .9375rem; font-weight: 500; }
.field input, .field select, .field textarea {
  width: 100%; min-height: 3rem; padding: .75rem .9rem;
  font: 1rem/1.4 var(--font); color: var(--bronce);
  background: var(--papel); border: 1px solid var(--linea-control); border-radius: 0;
  transition: border-color .2s;
}
.field textarea { min-height: 9rem; resize: vertical; }
.field input::placeholder, .field textarea::placeholder { color: var(--gris); opacity: 1; }
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible { outline: 2px solid var(--bronce); outline-offset: 1px; border-color: var(--bronce); }
.field [aria-invalid="true"] { border-color: var(--error); box-shadow: inset 0 0 0 1px var(--error); }
.field-hint { font-size: .875rem; color: var(--gris); }
.field-error { font-size: .875rem; font-weight: 500; color: var(--error); }
.privacy-note { grid-column: 1 / -1; padding: 1rem; border: 1px solid var(--linea); font-size: .8125rem; line-height: 1.5; color: var(--gris); max-width: none; }
.check-wrap { display: grid; gap: .25rem; }
.check { display: flex; gap: .75rem; align-items: flex-start; min-height: 2.75rem; padding-block: .5rem; font-size: .9375rem; color: var(--bronce); cursor: pointer; }
.check input { width: 1.25rem; height: 1.25rem; margin: .15rem 0 0; accent-color: var(--bronce); flex: none; }
.form-foot { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.form-note { font-size: .875rem; color: var(--gris); max-width: 44ch; }
.form-status:empty { display: none; }
.form-status { display: grid; justify-items: start; gap: .75rem; padding: 1rem; border-left: 3px solid var(--bronce); background: var(--papel); font-size: .9375rem; }
.form-status[data-kind="error"] { border-left-color: var(--error); }
.form-status p { max-width: 60ch; }
.req { color: var(--gris); font-weight: 400; }
.info-block { padding-block: 1.5rem; border-top: 1px solid var(--linea); }
.info-block:last-of-type { border-bottom: 1px solid var(--linea); }
.info-block h2 { font-size: .9375rem; font-weight: 600; }
.info-block p { margin-top: .5rem; color: var(--gris); }
.info-block a { color: var(--bronce); }
.info-block .info-big { font-size: clamp(1.75rem, 3vw, 2.5rem); font-stretch: 62%; font-weight: 340; line-height: 1.1; color: var(--bronce); }
.info-big a { text-decoration: none; }
.mini-steps { counter-reset: paso; margin-top: .75rem; display: grid; gap: .75rem; }
.mini-steps li { counter-increment: paso; display: grid; grid-template-columns: 1.75rem 1fr; }
.mini-steps li::before { content: counter(paso); grid-row: span 2; font-size: 1.5rem; font-stretch: 62%; line-height: 1.1; color: var(--gris); }
.mini-title { font-weight: 500; }
.mini-steps p { margin-top: .1rem; font-size: .9375rem; }
.contact-more { margin-top: 1rem; }
.map { margin-top: clamp(3rem, 7vw, 6rem); }
.map iframe { display: block; width: 100%; height: clamp(20rem, 45vw, 32rem); border: 0; filter: grayscale(1) contrast(.95); }
.map-consent { display: grid; align-content: center; justify-items: start; gap: 1rem; min-height: clamp(16rem, 30vw, 22rem); padding: clamp(1.5rem, 4vw, 3rem); background: var(--papel); border: 1px solid var(--linea); }
.map-consent p { color: var(--gris); max-width: 56ch; }
.map-consent .map-address { font-size: clamp(1.5rem, 3vw, 2.25rem); font-stretch: 62%; font-weight: 340; line-height: 1.1; color: var(--bronce); }
.map-consent .actions { margin-top: .5rem; }
@media (max-width: 860px) { .contact-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .form { grid-template-columns: 1fr; } }

/* Textos legales */
.legal { max-width: 46rem; }
.legal h2 { margin-top: 2.5rem; font-size: 1.375rem; font-weight: 500; font-stretch: 85%; line-height: 1.2; }
.legal h2:first-child { margin-top: 0; }
.legal p, .legal ul { margin-top: 1rem; color: var(--gris); }
.legal ul { padding-left: 1.25rem; list-style: disc; }
.legal li + li { margin-top: .35rem; }
.legal a, .legal strong { color: var(--bronce); }

/* 404 */
.notfound .page-title { max-width: 12ch; }
.notfound-help { margin-top: 2rem; color: var(--gris); }

/* Portada (fase 1) */
.hero .hero-note { margin-top: 1.25rem; max-width: 46ch; color: var(--papel); }
.hero-facts { grid-template-columns: 1fr; gap: clamp(2rem, 4vw, 3rem); }
.hero-facts .clients { padding-bottom: 0; }
@media (max-width: 767px) { .hero .hero-note { color: var(--gris); } }

/* Servicios y proyectos (fase 1) */
.reads { padding-block: 2.5rem; border-top: 1px solid var(--linea, rgba(0,0,0,.12)); }
.reads-inner { display: grid; grid-template-columns: 14rem 1fr auto; gap: 1rem 2.5rem; align-items: baseline; }
.reads-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.reads-list a { font-size: 1.125rem; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.reads-list a:hover { text-decoration-thickness: 2px; }
@media (max-width: 760px) { .reads-inner { grid-template-columns: 1fr; } }
@media (min-width: 861px) {
  .svc-head { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
  .svc-head .lead { font-size: 1.25rem; max-width: none; }
}

/* Formulario (fase 1) */
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form-status .actions { margin-top: 0; }
.form[aria-busy="true"] [data-submit] { cursor: progress; opacity: .7; }
.page-msg .page-title { max-width: 18ch; }
.page-msg-help { margin-top: 2rem; color: var(--gris); }

/* Sobre Lara (fase 1) */
.talks { margin-top: 1.5rem; padding: 0; list-style: none; border-top: 1px solid var(--linea); }
.talks li { padding-block: 1.25rem; border-bottom: 1px solid var(--linea); }
.talk-date { font-size: .8125rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--gris); }
.talk-title { margin-top: .4rem; font-size: clamp(1.25rem, 2vw, 1.5rem); font-stretch: 85%; font-weight: 500; line-height: 1.2; }
.talk-people { margin-top: .5rem; color: var(--gris); }
.talk-links { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-top: .75rem; }
.talk-links a { font-weight: 500; color: var(--bronce); }
.about-photos { display: grid; grid-template-columns: 2.571fr 1fr; gap: clamp(1rem, 2.5vw, 2rem); align-items: start; margin-top: clamp(2.5rem, 5vw, 4rem); }
.about-photos img { width: 100%; height: auto; }
.about-photos figcaption { margin-top: .75rem; font-size: .875rem; color: var(--gris); }
@media (max-width: 760px) { .about-photos { grid-template-columns: 1fr; } }

/* Noticias (fase 1) */
/* Entrada: título y foto lado a lado (72rem) y el texto en una columna centrada (48rem) */
.post { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); column-gap: clamp(2rem, 4vw, 4rem); align-items: center; width: min(100% - 2 * var(--gutter), 72rem); margin-inline: auto; }
.post > * { grid-column: 1 / -1; width: min(100%, 48rem); }
.post > .post-cover { grid-column: 2; width: auto; margin: clamp(2rem, 4vw, 3rem) 0; }
.post > .post-head:has(+ .post-cover) { grid-column: 1; width: auto; }
.post-head:has(+ .post-cover) .post-title { font-size: clamp(2.25rem, 3.6vw, 3.5rem); }
.post > .post-head { margin-inline: 0; }
.crumbs:has(+ .post), .post-more { width: min(100% - 2 * var(--gutter), 72rem); }
@media (max-width: 760px) {
  .post { grid-template-columns: 1fr; }
  .post > .post-cover, .post > .post-head:has(+ .post-cover) { grid-column: 1; }
  .post > .post-cover { order: -1; margin-block: 1rem 0; }
}
.post-head { padding-block: clamp(2rem, 5vw, 4rem) clamp(1.5rem, 3vw, 2.5rem); }
.post-title { margin-top: .75rem; max-width: 22ch; font-size: clamp(2.5rem, 5.5vw, 4.75rem); font-weight: 300; }
.post-cover { margin-bottom: clamp(2rem, 4vw, 3rem); }
.post-cover img { width: 100%; max-width: 56rem; }
.post-cover figcaption, .post-gallery figcaption { margin-top: .75rem; font-size: .875rem; color: var(--gris); }
.post-cover figcaption a, .post-gallery figcaption a { color: var(--bronce); }
.post-body { padding-bottom: clamp(2rem, 4vw, 3rem); }
.post-body > * + * { margin-top: 1.25rem; }
.post-body h2 { margin-top: 2.75rem; max-width: 32ch; font-size: clamp(1.5rem, 2.4vw, 2rem); font-weight: 500; font-stretch: 85%; line-height: 1.15; }
.post-body h3 { margin-top: 2rem; max-width: 40ch; font-size: 1.25rem; font-weight: 600; font-stretch: 85%; line-height: 1.25; }
.post-body h4 { margin-top: 1.5rem; font-size: 1.0625rem; font-weight: 600; }
.post-body ul, .post-body ol { max-width: 62ch; padding-left: 1.25rem; }
.post-body ul { list-style: disc; }
.post-body ol { list-style: decimal; }
.post-body li + li { margin-top: .4rem; }
.post-summary { max-width: 62ch; padding-left: 1.25rem; border-left: 3px solid var(--ambar); }
.post-summary ul, .post-summary ol { margin-top: .75rem; }
.post-body blockquote { margin-inline: 0; padding-left: 1.25rem; border-left: 3px solid var(--ambar); font-size: 1.25rem; font-stretch: 85%; max-width: 46ch; }
.post-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); gap: clamp(1rem, 2vw, 1.5rem); align-items: start; padding-bottom: clamp(2rem, 4vw, 3rem); }
.post-gallery img { width: 100%; }
.post-more { padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--linea); }
.post-more-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem 2rem; margin-top: 1.25rem; }
.post-more .link { margin-top: 1.5rem; }
@media (max-width: 860px) { .post-more-list { grid-template-columns: 1fr; } }
.post-card, .news-link { display: grid; gap: .4rem; text-decoration: none; }
.post-card time, .news-link time { font-size: .8125rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--gris); font-variant-numeric: lining-nums; }
.post-card img, .post-card:not(:has(img))::before { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin-bottom: .6rem; }
.post-card:not(:has(img))::before { content: ""; background: var(--bronce) url("/assets/img/marca/lara-logo-white-576.webp") center / 50% no-repeat; }
.post-card-title { font-size: 1.25rem; font-weight: 500; font-stretch: 85%; line-height: 1.2; }
/* Índice: la más reciente destacada a todo lo ancho y el resto en rejilla; toda la tarjeta es clicable */
.news-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2.5rem, 4vw, 3.5rem) clamp(1.25rem, 2.5vw, 2rem); }
.news-item { position: relative; display: grid; grid-template-rows: auto 1fr; gap: 1rem; align-content: start; }
.news-link { grid-row: 2; }
.news-link::after { content: ""; position: absolute; inset: 0; }
.news-title { font-size: clamp(1.25rem, 1.6vw, 1.5rem); font-weight: 500; font-stretch: 85%; line-height: 1.15; }
.news-desc { max-width: 62ch; color: var(--gris); font-size: .9375rem; }
.news-thumb { grid-row: 1; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.news-item:not(:has(.news-thumb))::before { content: ""; grid-row: 1; aspect-ratio: 4 / 3; background: var(--bronce) url("/assets/img/marca/lara-logo-white-576.webp") center / 50% no-repeat; }
.news-item:first-child { grid-column: 1 / -1; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); grid-template-rows: auto; gap: 1.5rem clamp(2rem, 4vw, 4rem); align-items: center; padding-bottom: clamp(2.5rem, 4vw, 3.5rem); border-bottom: 1px solid var(--linea); }
.news-item:first-child .news-link { grid-row: 1; grid-column: 2; }
.news-item:first-child .news-title { font-size: clamp(1.875rem, 3.2vw, 2.75rem); }
.news-item:first-child .news-desc { font-size: 1.0625rem; }
@media (hover: hover) { .post-card:hover .post-card-title, .news-link:hover .news-title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; } }
@media (max-width: 1000px) { .news-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .news-list { grid-template-columns: 1fr; }
  .news-item:first-child { grid-template-columns: 1fr; }
  .news-item:first-child .news-link { grid-row: 2; grid-column: 1; }
}

/* Newsletter, al principio del pie (envía a api/newsletter.js) */
.footer-news { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 1.5rem 3rem; padding-bottom: 3rem; margin-bottom: 3rem; border-bottom: 1px solid var(--linea-oscura); }
.footer-news p { margin-top: .75rem; }
.footer-news .footer-news-title { margin-top: .5rem; font-size: clamp(1.5rem, 3vw, 2.25rem); font-stretch: 62%; font-weight: 340; line-height: 1.1; color: var(--papel); }
.news-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.news-row input {
  flex: 1 1 12rem; min-width: 0; min-height: 3rem; padding: .75rem 1rem;
  font: 400 1rem/1.2 var(--font); color: var(--bronce); background: var(--papel); border: 1px solid var(--papel); border-radius: 0;
}
.news-row input::placeholder { color: var(--gris); opacity: 1; }
.news-row input:focus-visible { outline: 2px solid var(--ambar); outline-offset: 2px; }
.news-form [aria-invalid="true"] { outline: 2px solid var(--ambar); outline-offset: 2px; }
.news-check { margin-top: .5rem; color: var(--texto-oscuro); font-size: .875rem; }
.news-check input { accent-color: var(--ambar); }
.site-footer .news-check a { display: inline; padding: 0; color: var(--papel); text-decoration: underline; text-underline-offset: .2em; }
.news-status:empty { display: none; }
.footer-news .news-status { margin-top: .75rem; padding: .75rem 1rem; border-left: 3px solid var(--ambar); background: var(--bronce-2); color: var(--papel); font-size: .9375rem; }
.news-form[aria-busy="true"] [data-submit] { cursor: progress; opacity: .7; }
@media (max-width: 760px) { .footer-news { grid-template-columns: 1fr; } }

/* Consentimiento (assets/js/main.js): debajo del menú móvil (z-index 40), que lo tapa y lo vuelve inerte */
.consent {
  position: fixed; right: 1rem; bottom: 1rem; z-index: 30;
  width: min(27rem, calc(100% - 2rem)); max-height: calc(100dvh - var(--header-h) - 2rem); overflow-y: auto;
  padding: 1.5rem; background: var(--papel); color: var(--bronce);
  border: 1px solid var(--linea-control); box-shadow: 0 .75rem 2.5rem rgb(43 33 28 / .18);
}
.consent[hidden], .consent-tab[hidden], .consent-prefs[hidden], .consent-close[hidden] { display: none; }
.consent-head { display: flex; justify-content: space-between; align-items: start; gap: 1rem; }
.consent-title { font-size: 1.25rem; font-weight: 600; line-height: 1.2; }
.consent-title:focus { outline: none; }
.consent-title:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.consent-close { position: relative; flex: none; width: 2.75rem; height: 2.75rem; margin: -.75rem -.75rem 0 0; background: none; border: 0; color: var(--bronce); cursor: pointer; }
.consent-close::before, .consent-close::after { content: ""; position: absolute; inset: 50% 30%; height: 1.5px; background: currentColor; }
.consent-close::before { transform: rotate(45deg); }
.consent-close::after { transform: rotate(-45deg); }
.consent > p { margin-top: .75rem; color: var(--gris); font-size: .9375rem; }
.consent-prefs { margin-top: 1rem; border-top: 1px solid var(--linea); }
.consent-cat { padding-block: .875rem; border-bottom: 1px solid var(--linea); }
.consent-cat-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.consent-cat-head > span { font-size: .8125rem; color: var(--gris); }
.consent-cat p { margin-top: .25rem; font-size: .875rem; color: var(--gris); }
.consent-switch { display: inline-flex; align-items: center; gap: .5rem; min-height: 2.75rem; font-size: .875rem; cursor: pointer; }
.consent-switch input { width: 1.25rem; height: 1.25rem; accent-color: var(--bronce); }
.consent .actions { margin-top: 1.25rem; gap: .5rem; }
.consent .actions .btn { flex: 1 1 auto; padding-inline: 1rem; }
.consent-links { display: flex; flex-wrap: wrap; gap: 0 1rem; margin-top: 1rem; font-size: .8125rem; }
.consent-links a { padding-block: .375rem; color: var(--bronce); text-underline-offset: .2em; }
.consent-tab {
  position: fixed; right: 1rem; bottom: 0; z-index: 30;
  min-height: 2.75rem; padding: .5rem 1rem;
  font: 500 .8125rem/1 var(--font); background: var(--bronce); color: var(--papel); border: 0; cursor: pointer;
}
@media (hover: hover) { .consent-tab:hover { background: var(--bronce-2); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0s !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .slats { display: none; }
  @view-transition { navigation: none; }
}
