/*
  El sitio de Anbieter. Desde el móvil hacia arriba; los valores salen de anbieter.css.
  Referencia: planchas A-home, U-marcas, U-quienes y U-contacto.
*/

/* Switzer, autoalojada tal como viene de Fontshare (ADR 0001). */
@font-face {
  font-family: "Switzer";
  src: url("fuentes/Switzer-Variable.4523d2c62663.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Switzer";
  src: url("fuentes/Switzer-VariableItalic.98bf8bdc576d.woff2") format("woff2");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}

:root {
  --gutter: var(--spacing-4);
  --tamano-display: 40px;
  --interlinea-display: 44px;
  --tamano-titulo: 30px;
  --interlinea-titulo: 36px;
}

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--color-fondo);
  color: var(--color-texto);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 24px;
  -webkit-text-size-adjust: 100%;
  /* El pie queda abajo aunque la página sea corta: main se lleva el alto que sobra. */
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}

main { flex: 1 0 auto; }

a { color: inherit; text-decoration: none; }
p, h1, h2, ol, dl, dd, figure, blockquote { margin: 0; padding: 0; }
ol { list-style: none; }
img { display: block; }
a:focus-visible { outline: 2px solid var(--color-negro); outline-offset: 2px; }
.pie a:focus-visible { outline-color: var(--color-crema); }

/* Texto */
.versal {
  font-size: 13px;
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--tracking-versal);
  text-transform: uppercase;
}
.display, .titulo {
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-display);
}
.display { font-size: var(--tamano-display); line-height: var(--interlinea-display); }
.titulo { font-size: var(--tamano-titulo); line-height: var(--interlinea-titulo); }
.titulo-medio { font-weight: var(--font-weight-medium); }
.gris { color: var(--color-gris); }
.lectura { font-size: var(--text-texto); line-height: var(--leading-texto); }
.chico { font-size: 13px; line-height: 20px; color: var(--color-texto-secundario); }

/* Encabezado */
.cab {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
  padding: var(--spacing-4) var(--gutter) var(--spacing-2);
  border-bottom: 1px solid var(--color-borde);
}
.cab-logo { align-self: flex-start; display: flex; align-items: center; min-height: 44px; }
.logo { width: 130px; height: auto; }
.nav { display: flex; flex-wrap: wrap; column-gap: var(--spacing-6); }
.nav a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
.activa { text-decoration: underline 2px var(--color-verde); text-underline-offset: 6px; }

/* Secciones */
.sec {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-8);
  padding: var(--spacing-12) var(--gutter);
}
.sec-portada { align-items: center; text-align: center; }

/* Botones */
.botones { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 26px;
  border: 1px solid var(--color-accion);
  border-radius: var(--radius-pill);
  background: var(--color-accion);
  color: var(--color-sobre-accion);
  font-size: 13px;
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-versal);
  text-transform: uppercase;
  white-space: nowrap;
}
.pill:hover { background: var(--color-negro-hover); }
.pill-borde { background: transparent; color: var(--color-texto); border-color: var(--color-negro); }
.pill-borde:hover { background: var(--color-superficie); }

/* Aplicaciones de los manuales de marca, hasta que existan las fotos documentales propias. */
.foto-marco { padding: 0 var(--gutter); }
.foto { height: 240px; overflow: hidden; border-radius: var(--radius-card); background: var(--color-foto); }
.foto img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Cifras */
.parentesis { display: flex; align-items: center; justify-content: center; gap: var(--spacing-2); }
.paren { font-size: 96px; line-height: 1; font-weight: var(--font-weight-regular); }
.cifras { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--spacing-6) var(--spacing-4); }
.cifra { display: flex; flex-direction: column; align-items: center; }
.cifra dt { order: 2; }
.cifra-n {
  font-size: 40px;
  line-height: 48px;
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-display);
}

/* Lista de marcas */
.marca {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: center;
  column-gap: var(--spacing-2);
  row-gap: var(--spacing-1);
  padding: var(--spacing-4) 0;
  border-top: 1px solid var(--color-negro);
}
.marca:last-child { border-bottom: 1px solid var(--color-negro); }
.marca-num { font-size: 13px; }
.marca-nom {
  font-size: 24px;
  line-height: 30px;
  font-weight: var(--font-weight-semibold);
  letter-spacing: -0.01em;
}
.marca-des { grid-column: 2 / -1; grid-row: 2; color: var(--color-texto-secundario); }
.flecha {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--color-negro);
  border-radius: 50%;
}
.flecha:hover { background: var(--color-verde); border-color: var(--color-verde); }
.etq {
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 12px;
  border: 1px solid var(--color-gris);
  border-radius: var(--radius-pill);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Nuestras marcas */
.sec-intro { padding-bottom: var(--spacing-8); }
.texto-ancho { max-width: 720px; }
.sec-lista { padding-top: 0; }
.marca-det { grid-column: 1 / -1; display: flex; flex-direction: column; gap: var(--spacing-6); padding-top: var(--spacing-4); }
.marca-txt { display: flex; flex-direction: column; justify-content: center; gap: 18px; }
.botones-izq { justify-content: flex-start; }
.marca-abierta .foto { height: 200px; }

/* Quiénes somos */
.centrado { text-align: center; }
.subtitulo { margin: 0; font-size: var(--text-subtitulo); line-height: 28px; font-weight: var(--font-weight-semibold); }
.dos { display: flex; flex-direction: column; gap: var(--spacing-6); padding: 0 var(--gutter) var(--spacing-12); }
.dos-txt { display: flex; flex-direction: column; gap: 18px; }
.banda-negra {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-6);
  padding: var(--spacing-12) var(--gutter);
  background: var(--color-negro);
  color: var(--color-crema);
}
.banda-negra .chico { color: var(--color-gris); }
.banda-negra .etq { color: var(--color-crema); }
.proceso { display: flex; flex-direction: column; }
.proceso li { display: flex; flex-direction: column; align-items: center; }
.proceso .etq { justify-content: center; width: 100%; }
/* El tramo con su punto: ocupa todo el espacio entre dos pasos. */
.proceso li + li::before {
  content: "";
  width: 10px;
  height: 44px;
  margin: 6px 0;
  background:
    radial-gradient(circle closest-side, var(--color-verde) 98%, transparent) center / 10px 10px no-repeat,
    linear-gradient(var(--color-verde), var(--color-verde)) center / 1px 100% no-repeat;
}
.valores { display: flex; flex-direction: column; gap: var(--spacing-8); margin: 0; padding: 0; list-style: none; }
.valor { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; }
.ic {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border: 1px solid var(--color-negro);
  border-radius: 50%;
}
.punto { width: 12px; height: 12px; border-radius: 50%; background: var(--color-verde); }

/* Testimonios */
.testimonios { display: flex; flex-direction: column; gap: 20px; }
.testi {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
  padding: var(--spacing-6);
  border-radius: var(--radius-card);
  background: var(--color-superficie);
}
.testi figcaption { display: flex; flex-direction: column; }

/* Pie */
.pie {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-8);
  padding: var(--spacing-12) var(--gutter);
  background: var(--color-negro);
  color: var(--color-crema);
}
.pie-marca { display: flex; flex-direction: column; gap: 12px; }
.pie-marca .chico { color: var(--color-gris); }
.pie-col { display: flex; flex-direction: column; font-size: 14px; }
.pie-col .versal { padding-bottom: var(--spacing-2); font-size: 12px; color: var(--color-gris); }
.pie-col a, .pie-col span { display: flex; align-items: center; min-height: 44px; }
.pie-col .etq { height: auto; min-height: 0; margin-left: 8px; padding: 0; border: 0; color: var(--color-gris); letter-spacing: 0; text-transform: none; }

/* Contacto */
.contacto { display: flex; flex-direction: column; gap: var(--spacing-8); padding: var(--spacing-12) var(--gutter); }
.contacto-texto { display: flex; flex-direction: column; gap: var(--spacing-6); }
.contacto-datos { display: flex; flex-direction: column; gap: var(--spacing-2); padding-top: 12px; }
.formulario {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
  padding: var(--spacing-6) var(--spacing-4);
  border-radius: var(--radius-card);
  background: var(--color-superficie);
}
.fila { display: flex; flex-direction: column; gap: var(--spacing-4); }
.campo { display: flex; flex-direction: column; gap: 6px; flex: 1; min-width: 0; }
.campo label { font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; }
.opcional { text-transform: none; letter-spacing: 0; color: var(--color-texto-secundario); }
.inp {
  width: 100%;
  min-height: 50px;
  padding: 0 14px;
  border: 1px solid var(--color-gris);
  border-radius: var(--radius-sm);
  background: #fff;
  color: var(--color-texto);
  font: inherit;
  font-size: 16px; /* 16 px o más: en iOS menos hace que la página haga zoom al enfocar */
}
.inp::placeholder { color: var(--color-texto-secundario); }
/* Select con flecha propia. El desplegable se dibuja donde el navegador lo permite
   (base-select); en Safari y Firefox queda el nativo, con el mismo campo cerrado. */
select.inp {
  appearance: none;
  padding-right: 44px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none' stroke='%231c1c1b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
}
@supports (appearance: base-select) {
  select.inp, select.inp::picker(select) { appearance: base-select; }
  select.inp { display: flex; align-items: center; }
  select.inp::picker-icon { display: none; }
  select.inp::picker(select) {
    position-try-order: normal; /* hacia abajo; hacia arriba solo si abajo no entra */
    max-height: 320px;
    margin-block: var(--spacing-1);
    padding: var(--spacing-1);
    border: 1px solid var(--color-gris);
    border-radius: var(--radius-sm);
    background: #fff;
    box-shadow: 0 8px 24px rgb(28 28 27 / 0.16);
  }
  select.inp option {
    white-space: normal;
    min-height: 44px;
    padding: 10px;
    border-radius: 8px;
    font-size: 16px;
    cursor: pointer;
  }
  select.inp option::checkmark { display: none; }
  select.inp option:hover, select.inp option:focus-visible { background: var(--color-fondo); outline: none; }
  select.inp option:checked { font-weight: var(--font-weight-semibold); }
}
.inp:focus-visible { outline: 2px solid var(--color-negro); outline-offset: 2px; }
.area { min-height: 120px; padding: 12px 14px; resize: vertical; }
.campo-error .inp { border-color: var(--color-error); }
.error { font-size: 14px; line-height: 20px; color: var(--color-error); }
.aviso-error {
  padding: 12px 14px;
  border: 1px solid var(--color-error);
  border-radius: var(--radius-sm);
  background: #fff;
}
.formulario .pill { cursor: pointer; font-family: inherit; }
.formulario .pill:focus-visible { outline: 2px solid var(--color-negro); outline-offset: 2px; }
/* El campo trampa: fuera de pantalla, no con display:none, que algunos programas saltean. */
.trampa { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

@media (min-width: 768px) {
  :root {
    --gutter: var(--spacing-12);
    --tamano-display: 56px;
    --interlinea-display: 62px;
    --tamano-titulo: var(--text-titulo);
    --interlinea-titulo: var(--leading-titulo);
  }
  .cab { flex-direction: row; align-items: center; justify-content: space-between; padding: 18px var(--gutter); }
  .cab-logo { align-self: center; }
  .logo { width: 170px; }
  .nav { column-gap: 30px; }
  .sec { padding-top: var(--spacing-16); padding-bottom: var(--spacing-16); }
  .foto { height: 360px; }
  .cifras { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--spacing-12); }
  .paren { font-size: 150px; }
  .cifra-n { font-size: 52px; line-height: 60px; }
  .marca { grid-template-columns: 40px 200px minmax(0, 1fr) auto; column-gap: var(--spacing-6); padding: 22px 0; }
  .marca-nom { font-size: 30px; line-height: 36px; }
  .marca-des { grid-column: auto; grid-row: auto; color: inherit; font-size: var(--text-texto); line-height: var(--leading-texto); }
  .etq { padding: 0 14px; }
  .marca-abierta .marca-det { padding-left: 64px; flex-direction: row; align-items: stretch; gap: 48px; padding-bottom: 24px; }
  .marca-abierta .foto { width: 420px; height: 280px; flex-shrink: 0; }
  .dos { flex-direction: row; align-items: center; gap: 64px; }
  .dos .foto { flex: 1; height: 420px; }
  .dos-txt { width: 420px; flex-shrink: 0; }
  .banda-negra { padding-top: 72px; padding-bottom: 72px; gap: 32px; }
  .valores { flex-direction: row; gap: var(--spacing-12); }
  .valor { flex: 1; }
  .testimonios { flex-direction: row; }
  .testi { padding: 28px; }
  .fila { flex-direction: row; }
  .formulario { padding: 36px; gap: 16px; }
  .pie { flex-direction: row; justify-content: space-between; padding: 56px var(--gutter); }
  .pie-col a, .pie-col span { min-height: 30px; }
}

@media (min-width: 1100px) {
  .proceso { flex-direction: row; }
  .proceso li { flex-direction: row; }
  .proceso li + li { flex: 1 1 auto; }
  .proceso .etq { flex-shrink: 0; width: auto; }
  .proceso li + li::before { flex: 1; width: auto; height: 10px; margin: 0 12px; background-size: 10px 10px, 100% 1px; }
  .contacto { flex-direction: row; align-items: flex-start; gap: 80px; padding-top: 88px; padding-bottom: 88px; }
  .contacto-texto { flex: 1; }
  .formulario { width: 600px; flex-shrink: 0; }
}

@media (min-width: 1200px) {
  :root {
    --gutter: var(--spacing-24);
    --tamano-display: var(--text-display);
    --interlinea-display: 78px;
  }
  .sec { padding-top: 88px; padding-bottom: 88px; gap: 36px; }
  .sec-portada { padding-bottom: 56px; }
  .foto { height: 440px; }
  .marca { grid-template-columns: 40px 260px minmax(0, 1fr) auto; }
}
