/* ============================================================
   Recetario Creami — styles.css
   Estética: heladería artesanal moderna. Crema cálida, acento
   frambuesa + pistacho, display Fraunces, toldo + festón.
   Mobile-first · dark mode automático · modo cocina.
   ============================================================ */

/* ---------- Paleta ---------- */
:root {
  color-scheme: light dark;

  --bg: #faf1e4;            /* crema cálida */
  --card: #fffaf1;          /* nata */
  --head: #f7e6d6;          /* barquillo claro (cabecera) */
  --ink: #2e1b12;           /* chocolate profundo */
  --ink-soft: #5f4a3a;      /* cacao con leche */
  --line: rgba(46, 27, 18, .16);

  --fram: #c2205a;          /* frambuesa */
  --fram-bright: #d92e6b;
  --fram-soft: #f9dbe6;
  --fram-ink: #8f1442;

  --pist: #47703a;          /* pistacho */
  --pist-soft: #e0edd2;
  --pist-ink: #33552a;

  --limon: #8a6100;         /* limón/ámbar (sorbetes) */
  --limon-soft: #f7e9c3;
  --limon-ink: #6d4c00;

  --choc-soft: #eeddca;     /* tinte neutro barquillo */

  --on-fram: #fff6f9;
  --shadow: 0 10px 30px -14px rgba(70, 32, 12, .35);
  --shadow-lift: 0 18px 40px -16px rgba(70, 32, 12, .4);
  --radius: 22px;

  --stripe-a: var(--fram);
  --stripe-b: #f3e2cf;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #191009;          /* chocolate negro */
    --card: #261911;
    --head: #211409;
    --ink: #f7ecdc;
    --ink-soft: #cbb49f;
    --line: rgba(247, 236, 220, .17);

    --fram: #ff8fb1;
    --fram-bright: #ff9fbd;
    --fram-soft: #45202e;
    --fram-ink: #ffc2d4;

    --pist: #a8cf90;
    --pist-soft: #29361d;
    --pist-ink: #c6e2b2;

    --limon: #e8c56d;
    --limon-soft: #3c2f13;
    --limon-ink: #f2d996;

    --choc-soft: #33241a;

    --on-fram: #33101d;
    --shadow: 0 10px 30px -14px rgba(0, 0, 0, .6);
    --shadow-lift: 0 18px 40px -16px rgba(0, 0, 0, .65);

    --stripe-a: #b64a71;
    --stripe-b: #241509;
  }
}

/* ---------- Modo cocina: letra grande + contraste alto ---------- */
html { font-size: 103%; }
html[data-cocina="on"] { font-size: 132%; }

html[data-cocina="on"] {
  --ink: #1c0d04;
  --ink-soft: #43301f;
  --line: rgba(28, 13, 4, .32);
  --bg: #fdf6e7;
  --card: #fffdf6;
}
@media (prefers-color-scheme: dark) {
  html[data-cocina="on"] {
    --ink: #fff8ea;
    --ink-soft: #e2cfb8;
    --line: rgba(255, 248, 234, .3);
    --bg: #120a04;
    --card: #2b1c11;
  }
}

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

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  min-height: 100dvh;
}

.display, h1, h2, h3, .qty, .stat-sat b, .num, .regla-num, .brand {
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
}

a { color: var(--fram); }
a:hover { color: var(--fram-bright); }

button {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

:focus-visible {
  outline: 3px solid var(--fram);
  outline-offset: 3px;
  border-radius: 6px;
}
/* el contenedor scrollable de la ficha es focusable (teclado):
   ring hacia dentro para respetar las esquinas redondeadas */
.sheet:focus-visible {
  outline-offset: -3px;
  border-radius: 26px 26px 0 0;
}

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

.skip {
  position: absolute; left: 1rem; top: -4rem; z-index: 100;
  background: var(--fram); color: var(--on-fram);
  padding: .6rem 1rem; border-radius: 0 0 12px 12px;
  transition: top .2s;
}
.skip:focus-visible { top: 0; color: var(--on-fram); }

/* ---------- Toldo + cabecera ---------- */
.awning {
  height: 10px;
  background: repeating-linear-gradient(
    90deg,
    var(--stripe-a) 0 26px,
    var(--stripe-b) 26px 52px
  );
}

.site-head {
  background: var(--head);
  position: relative;
}
/* sprinkles (fideos de colores, muy sutiles) */
.site-head::before {
  content: "";
  position: absolute; inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(3px 3px at 12% 28%, var(--fram) 55%, transparent 56%),
    radial-gradient(3px 3px at 34% 72%, var(--pist) 55%, transparent 56%),
    radial-gradient(3px 3px at 56% 24%, var(--limon) 55%, transparent 56%),
    radial-gradient(3px 3px at 74% 66%, var(--fram) 55%, transparent 56%),
    radial-gradient(3px 3px at 90% 32%, var(--pist) 55%, transparent 56%),
    radial-gradient(3px 3px at 22% 88%, var(--limon) 55%, transparent 56%);
  background-size: 340px 190px;
  opacity: .35;
}
html[data-cocina="on"] .site-head::before { display: none; }

/* festón: semicírculos colgando del color de cabecera */
.scallop {
  height: 13px;
  background: radial-gradient(circle at 50% -3px, var(--head) 11.5px, transparent 12.5px);
  background-size: 25px 13px;
  background-position: 50% 0;
}

.head-inner {
  position: relative;
  max-width: 1060px;
  margin: 0 auto;
  padding: 1.1rem 1.1rem 1.25rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem .9rem;
}

.brand {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 650;
  font-variation-settings: "opsz" 40;
  letter-spacing: -.01em;
  line-height: 1.1;
  flex: 1 1 auto;
}
.brand a { color: inherit; text-decoration: none; }
.brand .cone { display: inline-block; transform: rotate(-8deg); margin-right: .15em; }

.tagline {
  flex-basis: 100%;
  margin: .1rem 0 0;
  color: var(--ink-soft);
  font-size: .95rem;
}

.head-actions {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin-left: auto;
}

.btn-cocina, .btn-fund {
  display: inline-flex;
  align-items: center;
  gap: .45em;
  min-height: 44px;
  padding: .35em .95em;
  border-radius: 999px;
  border: 2px solid var(--ink);
  font-weight: 600;
  font-size: .95rem;
  background: var(--card);
  color: var(--ink);
  text-decoration: none;
  transition: transform .12s, background .15s, color .15s;
}
.btn-cocina:active, .btn-fund:active { transform: scale(.96); }

.btn-cocina[aria-pressed="true"] {
  background: var(--ink);
  color: var(--bg);
  border-color: var(--ink);
}

/* ---------- Toolbar: buscador + filtros ---------- */
.toolbar {
  position: sticky;
  top: 0;
  z-index: 30;
  background: color-mix(in srgb, var(--bg) 86%, transparent);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
  padding: .75rem 0 .6rem;
}
@supports not (backdrop-filter: blur(1px)) {
  .toolbar { background: var(--bg); }
}

.toolbar-inner {
  max-width: 1060px;
  margin: 0 auto;
  padding: 0 1.1rem;
}

.search-wrap {
  position: relative;
  display: flex;
  align-items: center;
}
.search-wrap svg {
  position: absolute; left: 1rem;
  width: 1.15em; height: 1.15em;
  color: var(--ink-soft);
  pointer-events: none;
}
#buscador {
  width: 100%;
  min-height: 50px;
  padding: .6rem 3rem .6rem 2.9rem;
  font: inherit;
  font-size: 1.05rem;
  color: var(--ink);
  background: var(--card);
  border: 2px solid var(--line);
  border-radius: 999px;
  transition: border-color .15s;
}
#buscador::placeholder { color: var(--ink-soft); opacity: .85; }
#buscador:focus { outline: none; border-color: var(--fram); }

.btn-clear {
  position: absolute; right: .5rem;
  width: 40px; height: 40px;
  border-radius: 50%;
  font-size: 1.2rem;
  line-height: 1;
  color: var(--ink-soft);
  display: none;
  align-items: center;
  justify-content: center;
}
.btn-clear:hover { background: var(--choc-soft); color: var(--ink); }
.search-wrap.has-text .btn-clear { display: inline-flex; }

.chips {
  display: flex;
  gap: .5rem;
  margin-top: .65rem;
  overflow-x: auto;
  scrollbar-width: none;
  padding-bottom: 2px;
}
.chips::-webkit-scrollbar { display: none; }

.chip {
  flex: 0 0 auto;
  min-height: 44px;
  padding: .3em 1.05em;
  border-radius: 999px;
  border: 2px solid var(--line);
  background: var(--card);
  color: var(--ink);
  font-weight: 600;
  font-size: .95rem;
  transition: transform .12s, border-color .15s, background .15s;
}
.chip:active { transform: scale(.95); }
.chip[aria-pressed="true"] {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--bg);
}

.result-line {
  max-width: 1060px;
  margin: .9rem auto 0;
  padding: 0 1.1rem;
  color: var(--ink-soft);
  font-size: .9rem;
  min-height: 1.4em; /* se rellena por JS: reservar el hueco evita layout shift */
}

/* ---------- Grid de recetas ---------- */
main {
  max-width: 1060px;
  margin: 0 auto;
  padding: .4rem 1.1rem 3rem;
}

.grid {
  list-style: none;
  margin: .6rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: .8rem;
}
@media (min-width: 640px)  { .grid { grid-template-columns: 1fr 1fr; gap: 1rem; } }
@media (min-width: 980px)  { .grid { grid-template-columns: 1fr 1fr 1fr; } }

.card { animation: pop-in .45s both; animation-delay: calc(var(--i, 0) * 45ms); }
@keyframes pop-in {
  from { opacity: 0; transform: translateY(14px) scale(.985); }
}

.card-btn {
  width: 100%;
  min-height: 96px;
  display: flex;
  align-items: center;
  gap: .9rem;
  text-align: left;
  padding: 1rem 1.05rem;
  background: var(--card);
  border: 1.5px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  transition: transform .16s, box-shadow .16s, border-color .16s;
}
.card-btn:hover {
  transform: translateY(-3px) rotate(-.3deg);
  box-shadow: var(--shadow-lift);
  border-color: color-mix(in srgb, var(--fram) 45%, var(--line));
}
.card-btn:active { transform: scale(.98); }

.scoop {
  flex: 0 0 auto;
  width: 3.3rem; height: 3.3rem;
  display: grid;
  place-items: center;
  font-size: 1.7rem;
  border-radius: 50% 50% 46% 54% / 58% 54% 46% 42%; /* bola de helado, no círculo perfecto */
  background: var(--choc-soft);
  transform: rotate(-6deg);
}
.cat-proteico .scoop { background: var(--pist-soft); }
.cat-sorbete  .scoop { background: var(--limon-soft); }
.cat-capricho .scoop { background: var(--fram-soft); }

.card-main { flex: 1 1 auto; min-width: 0; }

.card-title {
  display: block;
  font-family: "Fraunces", Georgia, serif;
  font-size: 1.16rem;
  font-weight: 620;
  font-variation-settings: "opsz" 30;
  line-height: 1.22;
  margin-bottom: .35rem;
}

.card-tags { display: flex; flex-wrap: wrap; gap: .35rem; }

.pill {
  display: inline-flex;
  align-items: center;
  gap: .3em;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .02em;
  padding: .18em .7em;
  border-radius: 999px;
  white-space: nowrap;
}
.pill.prog::before { content: ""; width: .5em; height: .5em; border-radius: 50%; background: currentColor; }
.prog-creamifit { background: var(--pist-soft);  color: var(--pist-ink); }
.prog-icecream  { background: var(--fram-soft);  color: var(--fram-ink); }
.prog-sorbet    { background: var(--limon-soft); color: var(--limon-ink); }
.pill.cat { border: 1.5px solid var(--line); color: var(--ink-soft); background: transparent; }

.card-stats {
  flex: 0 0 auto;
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .1rem;
}
.stat-sat {
  display: flex;
  align-items: baseline;
  gap: .28em;
  color: var(--fram);
}
html[data-cocina="on"] .stat-sat { color: var(--fram-ink); }
.stat-sat b {
  font-size: 1.85rem;
  font-weight: 680;
  line-height: 1;
  letter-spacing: -.02em;
}
.stat-sat small {
  font-size: .68rem;
  font-weight: 700;
  line-height: 1.12;
  text-align: left;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.stat-prot { font-size: .78rem; color: var(--ink-soft); font-weight: 600; }

/* estado vacío */
.empty {
  text-align: center;
  padding: 3.2rem 1rem;
  color: var(--ink-soft);
}
.empty .big { font-size: 3rem; display: block; margin-bottom: .4rem; }
.empty button {
  margin-top: 1rem;
  min-height: 44px;
  padding: .4em 1.2em;
  border-radius: 999px;
  background: var(--fram);
  color: var(--on-fram);
  font-weight: 700;
}

/* banner fundamentos al pie del grid */
.fund-banner {
  margin-top: 1.6rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.15rem 1.25rem;
  border-radius: var(--radius);
  background: var(--head);
  border: 1.5px dashed color-mix(in srgb, var(--ink) 35%, transparent);
  color: inherit;
  text-decoration: none;
  transition: transform .15s;
}
.fund-banner:hover { transform: translateY(-2px); color: inherit; }
.fund-banner .icon { font-size: 1.9rem; }
.fund-banner b { font-family: "Fraunces", Georgia, serif; font-size: 1.1rem; display: block; }
.fund-banner span { color: var(--ink-soft); font-size: .92rem; }
.fund-banner .arrow { margin-left: auto; font-size: 1.4rem; color: var(--fram); }

/* ---------- Ficha de receta (dialog bottom-sheet) ---------- */
dialog#ficha {
  border: none;
  padding: 0;
  background: transparent;
  max-width: none;
  max-height: none;
  width: 100%;
  height: 100dvh;
  margin: 0;
  display: none;
  align-items: flex-end;
  justify-content: center;
}
dialog#ficha[open] { display: flex; }
dialog#ficha::backdrop {
  background: rgba(24, 10, 4, .5);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}
body:has(dialog[open]) { overflow: hidden; }

.sheet {
  background: var(--card);
  width: 100%;
  max-height: 93dvh;
  border-radius: 26px 26px 0 0;
  box-shadow: 0 -12px 50px rgba(0, 0, 0, .35);
  overflow-y: auto;
  overscroll-behavior: contain;
  animation: sheet-up .32s cubic-bezier(.32, .9, .35, 1) both;
  padding: 0 1.15rem 2.2rem;
}
@keyframes sheet-up { from { transform: translateY(60px); opacity: .4; } }

@media (min-width: 700px) {
  dialog#ficha { align-items: center; padding: 2rem; width: 100%; }
  .sheet {
    max-width: 640px;
    border-radius: 26px;
    max-height: 88dvh;
    animation-name: sheet-pop;
  }
  @keyframes sheet-pop { from { transform: translateY(18px) scale(.98); opacity: 0; } }
}

.sheet-grab {
  position: sticky;
  top: 0;
  z-index: 5;
  background: linear-gradient(var(--card) 70%, transparent);
  padding: .55rem 0 .4rem;
  display: flex;
  justify-content: center;
}
.sheet-grab::before {
  content: "";
  width: 44px; height: 5px;
  border-radius: 99px;
  background: var(--line);
}

.btn-close {
  position: absolute;
  top: .55rem; right: 0;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--choc-soft);
  font-size: 1.25rem;
  display: grid;
  place-items: center;
  color: var(--ink);
}
.btn-close:hover { background: var(--fram-soft); color: var(--fram-ink); }

.sheet-head { position: relative; padding-right: 3rem; }

.sheet-emoji {
  font-size: 2.6rem;
  display: inline-block;
  transform: rotate(-6deg);
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, .15));
}

.sheet h2 {
  margin: .2rem 0 .5rem;
  font-size: 1.7rem;
  font-weight: 660;
  font-variation-settings: "opsz" 60;
  letter-spacing: -.015em;
  line-height: 1.12;
}

.sheet-tags { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.sheet-tags .pill { font-size: .8rem; }
.pill.sat  { background: var(--fram-soft);  color: var(--fram-ink); }
.pill.prot { background: var(--choc-soft); color: var(--ink); }

.sheet section { margin-top: 1.5rem; }
.sheet h3 {
  font-size: 1.12rem;
  font-weight: 650;
  margin: 0 0 .6rem;
  display: flex;
  align-items: center;
  gap: .45em;
}
.sheet h3 .h-ico { font-size: 1.05em; }

/* escalador */
.escalador {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.seg {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  border-radius: 999px;
  background: var(--choc-soft);
}
.seg button {
  min-height: 42px;
  padding: 0 1.1em;
  border-radius: 999px;
  font-weight: 700;
  color: var(--ink-soft);
  transition: background .15s, color .15s, transform .12s;
}
.seg button:active { transform: scale(.95); }
.seg button[aria-pressed="true"] {
  background: var(--fram);
  color: var(--on-fram);
}
@media (prefers-color-scheme: dark) {
  .seg button[aria-pressed="true"] { color: var(--on-fram); }
}

/* ingredientes: carta de menú con puntitos */
.ings { list-style: none; margin: 0; padding: 0; }
.ing {
  display: flex;
  align-items: baseline;
  gap: .6ch;
  padding: .5rem 0;
  font-size: 1.02rem;
}
.ing + .ing { border-top: 1px solid color-mix(in srgb, var(--line) 55%, transparent); }
.ing .dots {
  flex: 1;
  min-width: 1.5ch;
  border-bottom: 2px dotted var(--line);
  transform: translateY(-.28em);
}
.ing .qty {
  font-weight: 640;
  font-size: 1.08rem;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.ing .qty.bump { animation: bump .35s; }
@keyframes bump {
  45% { transform: scale(1.22); color: var(--fram); }
}
.tag-gusto {
  font-size: .72rem;
  font-style: italic;
  font-weight: 600;
  color: var(--ink-soft);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: .05em .55em;
  white-space: nowrap;
}

/* pasos: checklist táctil */
.pasos { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.paso {
  width: 100%;
  display: flex;
  gap: .8rem;
  align-items: flex-start;
  text-align: left;
  padding: .8rem .9rem;
  border: 1.5px solid var(--line);
  border-radius: 16px;
  background: var(--bg);
  line-height: 1.45;
  transition: background .18s, border-color .18s, transform .1s;
}
.paso:active { transform: scale(.985); }
.paso .num {
  flex: 0 0 auto;
  width: 1.75rem; height: 1.75rem;
  margin-top: .05rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 2px solid var(--ink-soft);
  color: var(--ink-soft);
  font-weight: 700;
  font-size: .95rem;
  transition: background .18s, border-color .18s, color .18s;
}
.paso .num::before { content: attr(data-n); }
.paso[aria-pressed="true"] {
  background: var(--pist-soft);
  border-color: var(--pist);
}
.paso[aria-pressed="true"] .num {
  background: var(--pist);
  border-color: var(--pist);
  color: var(--pist-soft);
}
.paso[aria-pressed="true"] .num::before { content: "✓"; }
.paso[aria-pressed="true"] .txt {
  text-decoration: line-through;
  text-decoration-thickness: 1.5px;
  color: var(--ink-soft);
}

/* congelación */
.congela {
  border: 2px dashed color-mix(in srgb, var(--ink) 38%, transparent);
  border-radius: 18px;
  padding: 1rem 1.05rem 1.15rem;
  background: color-mix(in srgb, var(--card) 60%, var(--bg));
}
.btn-congelar {
  display: inline-flex;
  align-items: center;
  gap: .5em;
  min-height: 48px;
  padding: .45em 1.3em;
  border-radius: 999px;
  background: var(--fram);
  color: var(--on-fram);
  font-weight: 750;
  font-size: 1.02rem;
  box-shadow: var(--shadow);
  transition: transform .12s, background .15s;
}
.btn-congelar:hover { background: var(--fram-bright); }
.btn-congelar:active { transform: scale(.96); }
.congela-out {
  margin: .8rem 0 0;
  font-size: 1.05rem;
}
.congela-out strong {
  font-family: "Fraunces", Georgia, serif;
  font-size: 1.15em;
  color: var(--fram);
}
html[data-cocina="on"] .congela-out strong { color: var(--fram-ink); }
.congela-nota { margin: .25rem 0 0; font-size: .85rem; color: var(--ink-soft); }

/* trucos / variantes */
.nota {
  border-radius: 16px;
  padding: .9rem 1rem;
  font-size: .98rem;
}
.nota.truco    { background: var(--limon-soft); color: var(--ink); }
.nota.variante { background: var(--choc-soft);  color: var(--ink); }
.nota b { display: block; margin-bottom: .2rem; }

/* ---------- Fundamentos ---------- */
.hero-fund {
  max-width: 760px;
  margin: 0 auto;
  padding: 2.2rem 1.1rem .4rem;
}
.hero-fund h1 {
  margin: 0;
  font-size: clamp(2.1rem, 7vw, 3.1rem);
  font-weight: 680;
  font-variation-settings: "opsz" 110;
  letter-spacing: -.02em;
  line-height: 1.05;
}
.hero-fund h1 em {
  font-style: italic;
  color: var(--fram);
}
html[data-cocina="on"] .hero-fund h1 em { color: var(--fram-ink); }
.hero-fund p { color: var(--ink-soft); font-size: 1.05rem; margin: .7rem 0 0; }

.reglas {
  list-style: none;
  max-width: 760px;
  margin: 1.4rem auto 0;
  padding: 0 1.1rem 3rem;
  display: grid;
  gap: .9rem;
}
.regla {
  display: flex;
  gap: 1.05rem;
  background: var(--card);
  border: 1.5px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 1.15rem 1.2rem 1.25rem;
  animation: pop-in .45s both;
  animation-delay: calc(var(--i, 0) * 50ms);
}
.regla-num {
  flex: 0 0 auto;
  font-size: 2.3rem;
  font-weight: 560;
  font-style: italic;
  font-variation-settings: "opsz" 110;
  line-height: 1;
  color: var(--fram);
  min-width: 1.6em;
  text-align: right;
}
html[data-cocina="on"] .regla-num { color: var(--fram-ink); }
.regla:nth-child(3n) .regla-num   { color: var(--pist); }
.regla:nth-child(3n+2) .regla-num { color: var(--limon); }
html[data-cocina="on"] .regla:nth-child(3n) .regla-num   { color: var(--pist-ink); }
html[data-cocina="on"] .regla:nth-child(3n+2) .regla-num { color: var(--limon-ink); }
.regla h2 {
  margin: .1rem 0 .35rem;
  font-size: 1.18rem;
  font-weight: 650;
  line-height: 1.25;
}
.regla p { margin: 0; color: var(--ink-soft); font-size: .98rem; }
.regla p strong { color: var(--ink); }
.regla p + p { margin-top: .5rem; }

/* ---------- Footer ---------- */
footer {
  border-top: 1px solid var(--line);
  padding: 1.6rem 1.1rem 2.4rem;
  text-align: center;
  color: var(--ink-soft);
  font-size: .88rem;
}
footer .foot-cone { font-size: 1.3rem; display: block; margin-bottom: .35rem; }

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-delay: 0ms !important;
    transition-duration: .01ms !important;
  }
}
