/*
  Mi Gerente de Restaurante · portal
  Base visual de Lumbre: roja chile, mostaza y papel cálido.
  Sin fuentes ni recursos externos.

  Variables de tema en :root (claro) y html.tema-oscuro. El script del
  encabezado lee `lumbre.tema`; si no existe, usa prefers-color-scheme.
*/

:root {
  color-scheme: light;

  /* Marca */
  --chile: #9C2B1B;
  --chile-hondo: #7A1F13;
  --chile-brillo: #B9402C;
  --chile-texto: #8F2517;
  --chile-suave: #F9EAE5;
  --mostaza: #E0A32E;
  --mostaza-honda: #C98A17;
  --mostaza-texto: #8A5A08;
  --mostaza-suave: #FFF3D8;

  /* Superficies y texto */
  --fondo: #FBF7F1;
  --superficie: #FFFFFF;
  --superficie-2: #F5EDE2;
  --crema: #FFF4E0;
  --tinta: #241A17;
  --tinta-suave: #67564E;
  --linea: #E4D7C8;
  --linea-fuerte: #D2BFAC;
  --enlace: #8F2517;
  --foco: #7A1F13;

  /* Estados */
  --verde: #1F6B3D;
  --verde-fondo: #E9F4EC;
  --rojo: #8E2416;
  --rojo-fondo: #FBECE7;
  --ambar: #8A5A08;
  --ambar-fondo: #FFF3D8;

  /* Cabecera y pie */
  --cabecera: #6E1B10;
  --cabecera-2: #8A2518;
  --pie: #2B0C08;
  --texto-cabecera: #FFF7F2;
  --texto-cabecera-suave: #F2D5C8;

  --radio: 15px;
  --radio-chico: 9px;
  --ancho: 1180px;
  --sombra: 0 1px 2px rgba(36, 26, 23, .05), 0 10px 30px rgba(36, 26, 23, .08);
  --sombra-alta: 0 18px 46px rgba(36, 26, 23, .16);
  --fuente: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}

html.tema-oscuro {
  color-scheme: dark;

  --chile: #B9402C;
  --chile-hondo: #9C2B1B;
  --chile-brillo: #D05A44;
  --chile-texto: #F0917C;
  --chile-suave: #3A1E18;
  --mostaza: #E7B24A;
  --mostaza-honda: #D29C2F;
  --mostaza-texto: #F3C975;
  --mostaza-suave: #362817;

  --fondo: #16100E;
  --superficie: #221915;
  --superficie-2: #2C211C;
  --crema: #33241C;
  --tinta: #F6ECE5;
  --tinta-suave: #CCB8AA;
  --linea: #453329;
  --linea-fuerte: #5C4436;
  --enlace: #F3C975;
  --foco: #F3C975;

  --verde: #8CD3A8;
  --verde-fondo: #1B3325;
  --rojo: #F2957F;
  --rojo-fondo: #3B1F19;
  --ambar: #F3C975;
  --ambar-fondo: #362817;

  --cabecera: #3B110B;
  --cabecera-2: #4A150D;
  --pie: #120806;
  --texto-cabecera: #FFF7F2;
  --texto-cabecera-suave: #E7C4B6;

  --sombra: 0 1px 2px rgba(0, 0, 0, .35), 0 10px 28px rgba(0, 0, 0, .32);
  --sombra-alta: 0 18px 46px rgba(0, 0, 0, .5);
}

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

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 92px;
}

body {
  margin: 0;
  font-family: var(--fuente);
  font-size: 16px;
  line-height: 1.6;
  color: var(--tinta);
  background: var(--fondo);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img,
svg,
video { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4 {
  color: var(--tinta);
  line-height: 1.16;
  letter-spacing: -.02em;
  margin: 0 0 .5em;
}

h1 { font-size: clamp(2rem, 4.6vw, 3.2rem); font-weight: 850; }
h2 { font-size: clamp(1.6rem, 3vw, 2.15rem); font-weight: 820; }
h3 { font-size: 1.12rem; font-weight: 800; }

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

strong, b { font-weight: 760; }

a {
  color: var(--enlace);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

a:hover { text-decoration-thickness: 2px; }

:focus-visible {
  outline: 3px solid var(--foco);
  outline-offset: 3px;
  border-radius: 4px;
}

.cabera :focus-visible,
.hero :focus-visible,
.pie :focus-visible { outline-color: #FFF3D8; }

::selection { background: var(--mostaza); color: #241A17; }

code, kbd {
  font-family: var(--mono);
  font-size: .9em;
  background: var(--superficie-2);
  border: 1px solid var(--linea);
  border-radius: 5px;
  padding: .08em .38em;
  overflow-wrap: anywhere;
}

/* ------------------------------------------------------------- Utilidades */

.envoltura {
  width: 100%;
  max-width: var(--ancho);
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
}

.solo-lectores {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.salto {
  position: fixed;
  top: -80px;
  left: 16px;
  z-index: 100;
  padding: 10px 16px;
  border-radius: 8px;
  background: var(--superficie);
  color: var(--tinta);
  font-weight: 700;
  box-shadow: var(--sombra-alta);
  transition: top .15s ease;
}

.salto:focus { top: 12px; }

.simbolos {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.oculto { display: none !important; }

.centro { text-align: center; }

/* --------------------------------------------------------------- Cabecera */

.cabera {
  position: sticky;
  top: 0;
  z-index: 50;
  color: var(--texto-cabecera);
  background:
    radial-gradient(520px 120px at 12% 0%, rgba(224, 163, 46, .16), transparent 70%),
    linear-gradient(180deg, var(--cabecera-2), var(--cabecera));
  border-bottom: 1px solid rgba(255, 255, 255, .1);
  box-shadow: 0 2px 14px rgba(36, 10, 6, .18);
}

.cabera__barra {
  display: flex;
  align-items: center;
  gap: 18px;
  padding-top: 11px;
  padding-bottom: 11px;
  flex-wrap: wrap;
}

.marca {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: var(--texto-cabecera);
  font-size: 17px;
  font-weight: 820;
  line-height: 1.15;
  letter-spacing: -.01em;
  text-decoration: none;
  flex: none;
}

.marca:hover { text-decoration: none; }

.marca__icono {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  flex: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .24);
}

.marca small {
  display: block;
  margin-top: 2px;
  color: var(--texto-cabecera-suave);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px;
  margin-left: auto;
}

.nav a {
  padding: 8px 10px;
  border-radius: 8px;
  color: var(--texto-cabecera-suave);
  font-size: 14.5px;
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}

.nav a:hover {
  background: rgba(255, 255, 255, .13);
  color: #fff;
}

.nav__cta {
  margin-left: 6px;
  background: var(--mostaza);
  color: #241A17 !important;
  font-weight: 800 !important;
  box-shadow: 0 3px 0 rgba(36, 26, 23, .18);
}

.nav__cta:hover { background: var(--mostaza-honda); }

.tema {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-left: 6px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 9px;
  background: transparent;
  color: var(--texto-cabecera);
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease;
}

.tema:hover {
  background: rgba(255, 255, 255, .14);
  border-color: rgba(255, 255, 255, .5);
}

.tema svg { width: 20px; height: 20px; }
.tema__sol { display: none; }
html.tema-oscuro .tema__sol { display: block; }
html.tema-oscuro .tema__luna { display: none; }
html:not(.js) .tema { display: none; }

.cinta {
  color: var(--tinta-suave);
  background: var(--superficie-2);
  border-bottom: 1px solid var(--linea);
  font-size: 12.5px;
}

.cinta__lista {
  display: flex;
  flex-wrap: wrap;
  gap: 3px 24px;
  padding-top: 7px;
  padding-bottom: 7px;
}

.cinta span { white-space: nowrap; }

.cinta span::before {
  content: "✓";
  margin-right: 6px;
  color: var(--verde);
  font-weight: 850;
}

/* ------------------------------------------------------------- Secciones */

.seccion {
  padding-top: clamp(46px, 6vw, 76px);
  padding-bottom: clamp(46px, 6vw, 76px);
  scroll-margin-top: 92px;
}

.seccion--blanca {
  background: var(--superficie);
  border-top: 1px solid var(--linea);
  border-bottom: 1px solid var(--linea);
}

.seccion--calida {
  background:
    radial-gradient(700px 280px at 100% 0%, var(--mostaza-suave), transparent 64%),
    var(--superficie-2);
  border-top: 1px solid var(--linea);
  border-bottom: 1px solid var(--linea);
}

.seccion__encabezado { max-width: 820px; margin-bottom: 30px; }

.rotulo {
  display: inline-block;
  margin: 0 0 9px;
  color: var(--mostaza-texto);
  font-size: 11.5px;
  font-weight: 850;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.seccion__titulo { margin-bottom: 10px; }

.seccion__texto {
  max-width: 76ch;
  margin: 0;
  color: var(--tinta-suave);
  font-size: 16.5px;
}

/* --------------------------------------------------------------- Botones */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 44px;
  padding: 11px 20px;
  border: 1px solid transparent;
  border-radius: 10px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 750;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
}

.btn:hover { text-decoration: none; }
.btn:active { transform: translateY(1px); }
.btn svg { width: 19px; height: 19px; flex: none; }

.btn--mostaza {
  background: var(--mostaza);
  color: #241A17;
  box-shadow: 0 4px 0 rgba(36, 26, 23, .16);
}

.btn--mostaza:hover { background: var(--mostaza-honda); }

.btn--chile {
  background: var(--chile);
  color: #fff;
}

.btn--chile:hover { background: var(--chile-hondo); }

.btn--fantasma {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, .55);
}

.btn--fantasma:hover {
  background: rgba(255, 255, 255, .13);
  border-color: #fff;
}

.btn--linea {
  background: var(--superficie);
  color: var(--chile-texto);
  border-color: var(--linea-fuerte);
}

.btn--linea:hover {
  border-color: var(--chile);
  background: var(--chile-suave);
}

.btn--grande {
  min-height: 50px;
  padding: 14px 25px;
  font-size: 16px;
}

.btn--bloque { width: 100%; }

/* --------------------------------------------------------------- Avisos */

.nota {
  color: var(--tinta-suave);
  font-size: 13.5px;
  line-height: 1.5;
}

.nota--ok,
.nota--aviso {
  padding: 13px 16px;
  border-radius: 10px;
  font-size: 14px;
  line-height: 1.55;
}

.nota--ok {
  background: var(--verde-fondo);
  border: 1px solid color-mix(in srgb, var(--verde) 34%, transparent);
  color: var(--verde);
}

.nota--aviso {
  background: var(--ambar-fondo);
  border: 1px solid color-mix(in srgb, var(--ambar) 34%, transparent);
  color: var(--ambar);
}

.nota--roja {
  background: var(--rojo-fondo);
  border: 1px solid color-mix(in srgb, var(--rojo) 30%, transparent);
  color: var(--rojo);
  padding: 13px 16px;
  border-radius: 10px;
  font-size: 14px;
  line-height: 1.55;
}

/* --------------------------------------------------------------- Rejilla */

.rejilla {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(248px, 1fr));
  gap: 16px;
}

.tarjeta {
  display: flex;
  flex-direction: column;
  gap: 9px;
  padding: 18px;
  background: var(--superficie);
  border: 1px solid var(--linea);
  border-radius: var(--radio);
  box-shadow: var(--sombra);
  transition: transform .16s ease, border-color .16s ease;
}

.tarjeta:hover {
  transform: translateY(-2px);
  border-color: var(--linea-fuerte);
}

.tarjeta__icono {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: var(--chile-suave);
  color: var(--chile-texto);
  border: 1px solid color-mix(in srgb, var(--chile) 16%, transparent);
}

.tarjeta__icono svg { width: 25px; height: 25px; }

.tarjeta:nth-child(4n + 2) .tarjeta__icono {
  background: var(--mostaza-suave);
  color: var(--mostaza-texto);
  border-color: color-mix(in srgb, var(--mostaza) 26%, transparent);
}

.tarjeta:nth-child(4n + 3) .tarjeta__icono {
  background: var(--verde-fondo);
  color: var(--verde);
  border-color: color-mix(in srgb, var(--verde) 20%, transparent);
}

.tarjeta:nth-child(4n + 4) .tarjeta__icono {
  background: var(--superficie-2);
  color: var(--tinta);
  border-color: var(--linea);
}

.tarjeta__nombre {
  margin: 2px 0 0;
  font-size: 16.5px;
  font-weight: 820;
  line-height: 1.25;
}

.tarjeta__texto {
  margin: 0;
  color: var(--tinta-suave);
  font-size: 14px;
  line-height: 1.5;
}

/* ------------------------------------------------------------- Listas */

.lista-check {
  display: grid;
  gap: 10px;
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
}

.lista-check li {
  position: relative;
  padding-left: 29px;
  color: var(--tinta-suave);
  font-size: 14.5px;
  line-height: 1.5;
}

.lista-check li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: .08em;
  display: grid;
  place-items: center;
  width: 19px;
  height: 19px;
  border-radius: 50%;
  background: var(--verde);
  color: var(--superficie);
  font-size: 12px;
  font-weight: 850;
  line-height: 1;
}

.lista-check strong { color: var(--tinta); }

.lista-puntos {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.lista-puntos li {
  position: relative;
  padding-left: 18px;
  color: var(--tinta-suave);
  font-size: 14.5px;
}

.lista-puntos li::before {
  content: "";
  position: absolute;
  left: 1px;
  top: .62em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--mostaza);
}

/* --------------------------------------------------------------- Paneles */

.panel {
  padding: 22px;
  background: var(--superficie);
  border: 1px solid var(--linea);
  border-radius: var(--radio);
  box-shadow: var(--sombra);
}

.panel h3 { margin-bottom: 8px; }

.panel__encabezado {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 12px;
}

.panel__icono {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: 10px;
  background: var(--crema);
  color: var(--chile-texto);
  border: 1px solid var(--linea);
}

.panel__icono svg { width: 22px; height: 22px; }

/* --------------------------------------------------------------- Pie */

.pie {
  margin-top: 0;
  color: var(--texto-cabecera-suave);
  background:
    radial-gradient(600px 260px at 87% 0%, rgba(156, 43, 27, .34), transparent 65%),
    var(--pie);
  font-size: 14px;
}

.pie__rejilla {
  display: grid;
  grid-template-columns: 1.35fr .8fr .8fr .8fr;
  gap: 30px;
  padding-top: 42px;
  padding-bottom: 28px;
}

.pie h4 {
  margin: 0 0 10px;
  color: var(--texto-cabecera);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.pie p { margin: 0 0 7px; }

.pie a { color: var(--texto-cabecera-suave); }
.pie a:hover { color: #fff; }

.pie__marca {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  color: var(--texto-cabecera);
  font-size: 17px;
  font-weight: 820;
  text-decoration: none;
}

.pie__marca:hover { text-decoration: none; }
.pie__marca img { width: 38px; height: 38px; border-radius: 10px; }

.pie__base {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  justify-content: space-between;
  padding-top: 16px;
  padding-bottom: 26px;
  border-top: 1px solid rgba(255, 255, 255, .13);
  font-size: 12.5px;
}

/* --------------------------------------------------------- Páginas legales */

.marco {
  max-width: 900px;
  margin: 38px auto;
  padding: clamp(22px, 4.5vw, 46px);
  background: var(--superficie);
  border: 1px solid var(--linea);
  border-radius: 20px;
  box-shadow: var(--sombra);
}

.marco h1 { margin-bottom: 6px; }

.marco h2 {
  margin: 34px 0 10px;
  font-size: 1.28rem;
}

.marco h3 {
  margin: 22px 0 8px;
  font-size: 1.05rem;
}

.marco p,
.marco li { font-size: 15px; line-height: 1.65; }

.marco ul { margin: 0 0 18px; padding-left: 1.35em; }
.marco li { margin-bottom: 7px; }

.marco__fecha {
  margin: 0 0 18px;
  color: var(--tinta-suave);
  font-size: 13.5px;
}

.marco__resumen { margin: 0 0 22px; }

.marco__firma {
  margin-top: 28px;
  padding-top: 16px;
  border-top: 1px solid var(--linea);
  color: var(--tinta-suave);
  font-size: 13.5px;
}

.codigo-404 {
  margin: 0 0 6px;
  color: var(--mostaza-texto);
  font-size: clamp(3.6rem, 12vw, 7rem);
  font-weight: 900;
  letter-spacing: -.06em;
  line-height: .9;
}

/* --------------------------------------------------------------- Móvil */

@media (max-width: 980px) {
  .cabera__barra { gap: 12px; }

  .nav {
    order: 3;
    width: 100%;
    margin-left: 0;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 3px;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, .3) transparent;
  }

  .nav::-webkit-scrollbar { height: 4px; }
  .nav::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, .28);
    border-radius: 99px;
  }

  .tema { margin-left: auto; }

  .pie__rejilla { grid-template-columns: 1fr 1fr; }
}

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

  .envoltura { padding-left: 16px; padding-right: 16px; }

  .marca { font-size: 15.5px; }
  .marca__icono { width: 38px; height: 38px; }
  .marca small { font-size: 9.5px; }

  .nav a { font-size: 14px; padding: 8px 9px; }

  .cinta__lista {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 8px;
    scrollbar-width: none;
  }

  .cinta__lista::-webkit-scrollbar { display: none; }

  .seccion__texto { font-size: 15.5px; }

  .rejilla { grid-template-columns: 1fr; }

  .pie__rejilla { grid-template-columns: 1fr; gap: 22px; }

  .pie__base { flex-direction: column; }

  .btn { width: 100%; }

  .marco { margin: 20px 12px; border-radius: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
