/* =============================================================================
   styles.css — Tienda · Caja de Resistencia (Huelga Airbus 2026)
   Estética alineada con enfadadosconairbus.vercel.app: base crema, tinta,
   acento rojo, tipografía Archivo (títulos) + Source Sans 3 (texto) + IBM Plex
   Mono (código). Industrial/editorial, mayúsculas contundentes.

   Tipografías AUTOALOJADAS (OFL) desde ./assets/fonts/ — subconjunto latino.
   No se llama a Google Fonts: la página no hace ninguna petición a terceros al
   cargarse. Archivo y Source Sans 3 son variables (un fichero por familia);
   IBM Plex Mono es estático (un fichero por peso).
   ========================================================================== */

@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 600 900;
  font-display: swap;
  src: url("assets/fonts/archivo-var.woff2") format("woff2");
}
@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("assets/fonts/sourcesans3-var.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/plexmono-500.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/fonts/plexmono-600.woff2") format("woff2");
}

:root {
  --paper:   #f7f4ee;
  --paper-2: #fffdf9;
  --ink:     #1a1d21;
  --ink-2:   #33383e;
  --red:     #c0392b;
  --red-dark:#9c2c20;
  --red-lite:#ef6a58;
  --navy:    #16233b;
  --navy-2:  #1f3152;
  --muted:   #6f6a60;
  --line:    #e4ddce;
  --line-2:  #d8cfbc;
  --logochip:#ffffff;
  --ok:      #2e7d52;
  --err:     #c0392b;
  --radius:  16px;
  --wrap:    1080px;
  --fh: "Archivo", "Arial Narrow", system-ui, sans-serif;
  --fb: "Source Sans 3", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --fm: "IBM Plex Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font-family: var(--fb); font-size: 17px; line-height: 1.55; -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: var(--red-dark); }
h1, h2, h3 { font-family: var(--fh); line-height: 1.02; letter-spacing: -0.015em; margin: 0 0 .4em; }
h1 { font-size: clamp(2.7rem, 8vw, 5.2rem); font-weight: 900; text-transform: uppercase; }
h2 { font-size: clamp(1.8rem, 4.6vw, 2.8rem); font-weight: 800; text-transform: uppercase; }
h3 { font-size: 1.15rem; font-weight: 700; }

.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: 20px; }
.section { padding-block: clamp(40px, 8vw, 84px); }
.muted { color: var(--muted); }
.small { font-size: .92rem; color: var(--muted); }
.micro { font-size: .8rem; color: var(--muted); }
.eyebrow { text-transform: uppercase; letter-spacing: .18em; font-size: .76rem; font-weight: 700; color: var(--muted); margin: 0 0 .5rem; }
.eyebrow.orange { color: var(--red); }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.skip-link { position: absolute; left: -999px; top: 0; background: var(--red); color: #fff; padding: 10px 16px; font-weight: 800; z-index: 100; }
.skip-link:focus { left: 8px; top: 8px; }

/* ---- barra superior tipo señalización ---- */
.topbar { background: var(--navy); color: #f3ede1; font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; }
.topbar .wrap { display: flex; align-items: center; justify-content: center; gap: 10px; padding-block: 8px; text-align: center; font-weight: 600; }
.topbar .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--red-lite); flex: 0 0 auto; box-shadow: 0 0 0 4px rgba(239,106,88,.2); }

/* ---- aviso pre-lanzamiento (sticky) ---- */
.sticky-top { position: sticky; top: 0; z-index: 50; }
.aviso { background: #f4c542; color: #1a1d21; border-bottom: 1px solid #d9a92a; }
.aviso .wrap { max-width: 900px; padding-block: 10px; font-size: .84rem; line-height: 1.4; text-align: center; text-wrap: balance; }
.aviso strong { font-weight: 800; }
.aviso .nb { white-space: nowrap; }

/* ---- cabecera ---- */
.site-header { background: rgba(247,244,238,.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.header-inner { display: flex; align-items: center; gap: 14px; padding-block: 10px; }
.mark { width: 52px; height: 52px; flex: 0 0 auto; border-radius: 12px; background: var(--logochip); border: 1px solid var(--line-2); display: grid; place-items: center; overflow: hidden; }
.mark img { width: 100%; height: 100%; object-fit: contain; padding: 3px; }
.site-header .eyebrow { margin: 0; font-size: .66rem; color: var(--muted); }
.brand { font-family: var(--fh); font-weight: 900; text-transform: uppercase; letter-spacing: .02em; font-size: 1.08rem; color: var(--ink); }

/* ---- botones ---- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: var(--fh); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; text-decoration: none; border: 2px solid transparent; border-radius: 12px; padding: 14px 24px; cursor: pointer; font-size: .95rem; transition: transform .08s ease, background .15s ease, color .15s ease; }
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--red); color: #fff; }
.btn-primary:hover { background: var(--red-dark); }
.btn-ghost { background: transparent; color: var(--ink); border-color: var(--line-2); }
.btn-ghost:hover { border-color: var(--ink); }
.btn-submit { width: 100%; background: var(--red); color: #fff; font-size: 1.15rem; padding: 18px; margin-top: 18px; border-radius: 14px; }
.btn-submit:hover { background: var(--red-dark); }
.btn:disabled { opacity: .6; cursor: progress; }

/* ---- hero (bloque oscuro sobre crema) ---- */
.hero { margin-top: 26px; background: var(--navy); color: #f3ede1; border-radius: 22px; padding: clamp(30px, 6vw, 64px); position: relative; overflow: hidden; }
.hero::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(45deg, rgba(239,106,88,.06) 0 26px, transparent 26px 52px); pointer-events: none; }
.hero .eyebrow.orange { color: var(--red-lite); }
.hero h1 { color: #f7f2e8; }
.hero h1 span { color: var(--red-lite); }
.lead { font-size: clamp(1.05rem, 2.4vw, 1.3rem); max-width: 44ch; color: #e7ded0; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; position: relative; z-index: 1; }
.hero .btn-ghost { color: #f3ede1; border-color: rgba(243,237,225,.35); }
.hero .btn-ghost:hover { border-color: #f3ede1; }
.btn-cream { background: #f3ede1; color: var(--ink); border-color: transparent; text-transform: none; letter-spacing: 0; font-weight: 700; }
.btn-cream:hover { background: #fff; }
.btn-cream .arrow { color: var(--red); font-weight: 800; }
.hero-context { position: relative; z-index: 1; margin-top: 14px; }

/* ---- separador ---- */
.hazard { height: 8px; margin-block: 6px; background: repeating-linear-gradient(45deg, var(--red) 0 20px, var(--ink) 20px 40px); opacity: .85; border-radius: 4px; }

/* ---- producto ---- */
.product-section { display: grid; gap: 30px; align-items: center; }
.card-dark, .card-light { background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: 0 8px 30px rgba(26,29,33,.06); }
.product-media img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.price-block { display: flex; align-items: baseline; gap: 18px; margin: 14px 0; flex-wrap: wrap; }
.price { font-family: var(--fh); font-size: clamp(2.6rem, 7vw, 3.6rem); font-weight: 900; color: var(--red); line-height: 1; }
.price-split { display: flex; flex-direction: column; font-size: .9rem; }
.price-split strong { color: var(--ink); }
.price-split span { color: var(--muted); }
.plazo { margin-top: 14px; padding: 12px 14px; background: #faf3e2; border: 1px solid var(--line); border-left: 4px solid #e0a92e; border-radius: 10px; font-size: .92rem; line-height: 1.5; color: var(--ink); text-align: justify; }
.orden-cerrada { margin-top: 16px; padding: 16px 18px; background: #fff7de; border: 1px solid #e6c766; border-radius: 12px; color: #6a5410; font-size: .98rem; line-height: 1.5; }
.orden-cerrada strong { color: #4a3a09; }
.aviso-entrega { margin-top: 16px; padding: 14px 16px; background: #fff7de; border: 1px solid #e6c766; border-radius: 12px; color: #6a5410; font-size: .95rem; line-height: 1.5; text-align: justify; }
.aviso-entrega strong { font-weight: 800; }
.aviso-entrega.urgente { background: #fdece9; border-color: #e0a99e; color: #7a2c1e; }

/* ---- pasos ---- */
.steps { list-style: none; margin: 20px 0 0; padding: 0; display: grid; gap: 14px; }
.steps li { display: flex; gap: 16px; align-items: flex-start; background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 20px; }
.steps li span { flex: 0 0 auto; width: 38px; height: 38px; display: grid; place-items: center; background: var(--red); color: #fff; font-family: var(--fh); font-weight: 900; border-radius: 50%; }
.steps li strong { display: block; font-family: var(--fh); }
.steps li p { margin: 4px 0 0; color: var(--muted); font-size: .92rem; text-align: justify; }
.steps li p strong { display: inline; font-family: inherit; }

/* ---- tallas ---- */
.size-image { max-width: 640px; margin: 22px auto 4px; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); }
.size-note { max-width: 640px; margin: 10px auto 0; text-align: center; color: var(--muted); font-size: .92rem; }
.size-note strong { color: var(--ink); }
.size-table-wrap { overflow-x: auto; margin-top: 16px; border: 1px solid var(--line); border-radius: var(--radius); }
.size-table { width: 100%; border-collapse: collapse; min-width: 320px; background: var(--paper-2); }
.size-table th, .size-table td { padding: 12px 16px; text-align: left; border-bottom: 1px solid var(--line); }
.size-table th { background: var(--navy); color: #f3ede1; text-transform: uppercase; letter-spacing: .08em; font-size: .76rem; }
.size-table tbody tr:nth-child(even) { background: #faf7f0; }
.size-table tr:last-child td { border-bottom: 0; }
.size-image img { width: 100%; }

/* ---- pedido ---- */
.order-grid { display: grid; gap: 20px; margin-top: 22px; }
.panel { background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; }
.field-group { margin-bottom: 18px; }
.field-group > label { display: block; text-transform: uppercase; letter-spacing: .06em; font-size: .76rem; font-weight: 700; color: var(--muted); margin-bottom: 10px; }

.size-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.size-chip { min-width: 52px; padding: 12px 14px; background: #fff; border: 2px solid var(--line-2); color: var(--ink); border-radius: 10px; font-family: var(--fh); font-weight: 800; cursor: pointer; font-size: .95rem; }
.size-chip:hover { border-color: var(--red); }
.size-chip.active { background: var(--red); color: #fff; border-color: var(--red); }

.qty-row { display: flex; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 8px; }
.qty-control { display: inline-flex; align-items: center; border: 2px solid var(--line-2); border-radius: 10px; overflow: hidden; background: #fff; }
.qty-control button { width: 48px; height: 48px; background: transparent; color: var(--ink); border: 0; font-size: 1.4rem; cursor: pointer; }
.qty-control button:hover { background: var(--red); color: #fff; }
.qty-control output { min-width: 48px; text-align: center; font-weight: 800; font-size: 1.1rem; font-family: var(--fh); }
.add-btn { flex: 1 1 auto; }

/* ---- carrito ---- */
.cart-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.badge { background: var(--red); color: #fff; font-weight: 800; padding: 4px 12px; border-radius: 999px; font-size: .82rem; }
.cart-empty { color: var(--muted); padding: 8px 0 4px; }
.cart-lines { display: grid; gap: 10px; }
.cart-line { display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.cl-main strong { display: block; font-size: .98rem; font-family: var(--fh); }
.cl-sub { color: var(--muted); font-size: .8rem; }
.cl-qty { display: inline-flex; align-items: center; gap: 8px; }
.cl-qty button { width: 30px; height: 30px; border-radius: 8px; border: 1px solid var(--line-2); background: #fff; color: var(--ink); cursor: pointer; font-size: 1rem; }
.cl-qty button:hover { border-color: var(--red); color: var(--red); }
.cl-sum { font-weight: 800; min-width: 64px; text-align: right; font-family: var(--fh); }
.cl-del { background: transparent; border: 0; color: var(--muted); cursor: pointer; font-size: 1rem; }
.cl-del:hover { color: var(--err); }

.donation { margin-top: 18px; }
.donation-title { text-transform: uppercase; letter-spacing: .06em; font-size: .76rem; font-weight: 700; color: var(--muted); margin-bottom: 10px; }
.donation-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.donation-buttons button { padding: 10px 16px; background: #fff; border: 2px solid var(--line-2); color: var(--ink); border-radius: 10px; font-family: var(--fh); font-weight: 800; cursor: pointer; }
.donation-buttons button:hover { border-color: var(--red); }
.donation-buttons button.active { background: var(--red); color: #fff; border-color: var(--red); }
.donation-custom { margin-top: 12px; }
.donation-custom label { display: block; text-transform: uppercase; letter-spacing: .06em; font-size: .72rem; font-weight: 700; color: var(--muted); margin-bottom: 6px; }
.custom-input { display: inline-flex; align-items: center; gap: 6px; border: 2px solid var(--line-2); border-radius: 10px; background: #fff; padding: 0 14px; }
.custom-input:focus-within { border-color: var(--red); }
.custom-input span { font-family: var(--fh); font-weight: 800; color: var(--muted); }
.custom-input input { width: 96px; border: 0; outline: none; padding: 11px 0; font-family: var(--fb); font-weight: 700; font-size: 1.05rem; color: var(--ink); background: transparent; }
.custom-input input::-webkit-outer-spin-button, .custom-input input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.custom-input input { -moz-appearance: textfield; appearance: textfield; }

.totals { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 14px; display: grid; gap: 8px; }
.totals > div { display: flex; justify-content: space-between; align-items: baseline; color: var(--muted); }
.totals > div strong { color: var(--ink); font-family: var(--fh); }
.totals .grand { border-top: 1px dashed var(--line-2); margin-top: 6px; padding-top: 12px; }
.totals .grand span { color: var(--ink); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.totals .grand strong { color: var(--red); font-size: 1.8rem; }

/* ---- formulario ---- */
#checkoutForm { margin-top: 20px; display: grid; gap: 18px; }
.section-label { display: flex; align-items: center; gap: 10px; text-transform: uppercase; letter-spacing: .06em; font-family: var(--fh); font-weight: 800; margin-bottom: 16px; }
.section-label span { width: 30px; height: 30px; display: grid; place-items: center; background: var(--red); color: #fff; border-radius: 7px; font-size: .85rem; }
.fields-grid { display: grid; gap: 14px; }
.fields-grid label { display: grid; gap: 6px; text-transform: uppercase; letter-spacing: .05em; font-size: .74rem; font-weight: 700; color: var(--muted); }
.fields-grid input, .fields-grid select { padding: 14px; background: #fff; border: 2px solid var(--line-2); border-radius: 10px; color: var(--ink); font-size: 1rem; font-family: var(--fb); }
.fields-grid input:focus, .fields-grid select:focus { outline: none; border-color: var(--red); }
.fields-grid .field-full { grid-column: 1 / -1; }
.req { color: var(--red); font-weight: 800; font-style: normal; }
.req-note { margin: 0 0 14px; font-size: .82rem; color: var(--muted); text-transform: none; letter-spacing: 0; font-weight: 600; }
.honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.pickup-card { background: #faf6ee; border: 1px solid var(--line); border-left: 4px solid var(--red); border-radius: 10px; padding: 16px 18px; }
.pickup-kicker { color: var(--red); font-size: .74rem; letter-spacing: .12em; font-weight: 800; margin-bottom: 6px; }
.pickup-card strong { font-family: var(--fh); }
.recogida-nota { margin-top: 14px; padding: 14px 16px; background: #faf6ec; border: 1px solid var(--line); border-left: 4px solid #e0a92e; border-radius: 10px; font-size: .92rem; line-height: 1.55; color: var(--ink); text-align: justify; }
.recogida-nota strong { font-weight: 700; }

.check-row { display: flex; gap: 12px; align-items: flex-start; font-size: .92rem; color: var(--ink); }
.check-row input { margin-top: 3px; width: 20px; height: 20px; accent-color: var(--red); flex: 0 0 auto; }

.form-error { background: #fbe9e7; border: 1px solid var(--red); color: #7a231a; padding: 14px 16px; border-radius: 10px; font-weight: 600; }

/* ---- éxito ---- */
.success-section { padding-block: clamp(48px, 9vw, 92px); background: var(--navy); color: #f3ede1; border-top: 5px solid var(--red); }
.success-inner .eyebrow.orange { color: var(--red-lite); }
.success-inner h2 { color: #f7f2e8; }
.success-inner p { color: #d9d1c3; }
.order-code-label { text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; color: #b7ad9c; margin-top: 10px; }
.order-code { font-family: var(--fm); font-size: clamp(2rem, 7vw, 3rem); font-weight: 600; color: var(--red-lite); letter-spacing: .02em; }
.bank-card { margin-top: 22px; background: rgba(255,253,249,.06); border: 1px solid rgba(243,237,225,.18); border-radius: var(--radius); padding: 8px 20px; }
.bank-card > div { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 14px 0; border-bottom: 1px solid rgba(243,237,225,.14); }
.bank-card > div:last-child { border-bottom: 0; }
.bank-card span { text-transform: uppercase; letter-spacing: .08em; font-size: .72rem; color: #b7ad9c; flex: 0 0 100%; }
.bank-card strong { font-size: 1.1rem; }
.mono { font-family: var(--fm); letter-spacing: .02em; }
.big-money { font-family: var(--fh); font-size: 1.7rem !important; color: var(--red-lite); }
.bank-card .concept { background: rgba(239,106,88,.1); margin: 6px -20px 0; padding: 16px 20px; border-radius: 0 0 var(--radius) var(--radius); }
.bank-card .concept strong { color: var(--red-lite); font-size: 1.35rem; }
.copy-btn { margin-left: auto; padding: 8px 14px; background: transparent; border: 1px solid rgba(243,237,225,.3); color: #f3ede1; border-radius: 8px; font-family: var(--fh); font-weight: 800; font-size: .78rem; letter-spacing: .06em; cursor: pointer; }
.copy-btn:hover { border-color: #f3ede1; }
.copy-btn.inverse { background: var(--red); color: #fff; border-color: var(--red); }
.notice { margin-top: 20px; padding: 16px 18px; border-radius: 10px; font-size: .95rem; }
.notice.ok { background: rgba(46,125,82,.14); border: 1px solid rgba(46,125,82,.4); color: #dcecdf; }
.save-code { margin-top: 16px; padding: 14px 16px; background: rgba(239,106,88,.12); border: 1px solid rgba(239,106,88,.45); border-radius: 12px; color: #f3ede1; font-size: .95rem; line-height: 1.5; }
.save-code strong { color: var(--red-lite); }
.next-steps { margin-top: 22px; }
.steps-title { text-transform: uppercase; letter-spacing: .08em; font-size: .78rem; font-weight: 700; color: #b7ad9c; margin-bottom: 10px; }
.next-steps ol { margin: 0; padding-left: 1.3em; color: #e7ded0; font-size: .96rem; line-height: 1.6; }
.next-steps li { margin-bottom: 8px; }
.next-steps li::marker { color: var(--red-lite); font-family: var(--fh); font-weight: 800; }
.next-steps strong { color: #fff; }

/* ---- barra móvil ---- */
.sticky-cart { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 50; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: var(--paper-2); border: 1px solid var(--red); border-radius: 14px; padding: 12px 16px; box-shadow: 0 12px 34px rgba(26,29,33,.22); }
.sticky-cart > div { display: flex; flex-direction: column; }
.sticky-cart span { color: var(--muted); font-size: .78rem; }
.sticky-cart strong { color: var(--red); font-size: 1.2rem; font-family: var(--fh); }
.sticky-cart button { background: var(--red); color: #fff; border: 0; border-radius: 10px; padding: 12px 18px; font-family: var(--fh); font-weight: 800; cursor: pointer; }

/* ---- gobernanza / transparencia ---- */
/* ---- textos legales (modales nativos) ---- */
.legal-dialog { width: min(92vw, 640px); max-height: 86vh; padding: 0; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper); color: var(--ink); box-shadow: 0 24px 60px rgba(22,35,59,.35); overflow: auto; }
.legal-dialog::backdrop { background: rgba(22,35,59,.55); }
.legal-head { position: sticky; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 20px 22px 12px; background: var(--paper); border-bottom: 1px solid var(--line); }
.legal-head h2 { margin: 0; font-size: 1.4rem; }
.legal-close { flex: 0 0 auto; width: 36px; height: 36px; border: 1px solid var(--line-2); background: #fff; color: var(--ink); border-radius: 9px; cursor: pointer; font-size: .95rem; }
.legal-close:hover { border-color: var(--red); color: var(--red); }
.legal-nota { margin: 14px 22px 0; padding: 10px 14px; background: rgba(192,57,43,.07); border: 1px solid rgba(192,57,43,.35); border-radius: 10px; color: var(--red-dark); font-family: var(--fm); font-size: .78rem; line-height: 1.5; }
.legal-body { padding: 16px 22px 24px; }
.legal-body p { margin: 0 0 12px; font-size: .92rem; line-height: 1.62; color: var(--ink-2); text-align: justify; hyphens: auto; }
.legal-body p:last-child { margin-bottom: 0; }
.legal-body strong { color: var(--ink); }
.legal-body a { color: var(--red-dark); }
.legal-body h3 { font-family: var(--fh); text-transform: uppercase; letter-spacing: .03em; font-size: 1rem; color: var(--ink); margin: 22px 0 10px; }
.legal-body ul, .legal-body ol { margin: 0 0 12px; padding-left: 1.2em; display: grid; gap: 8px; }
.legal-body li { font-size: .92rem; line-height: 1.55; color: var(--ink-2); text-align: justify; }
.legal-body ul li::marker { color: var(--red); }
.legal-body ol li::marker { color: var(--red); font-family: var(--fh); font-weight: 800; }
.legal-body .gov-coda { font-style: italic; color: var(--muted); text-align: left; }

/* ---- pie ---- */
.site-footer { background: var(--navy); color: #cfc7b8; padding-block: 34px; margin-top: 20px; }
.site-footer strong { display: block; font-family: var(--fh); text-transform: uppercase; letter-spacing: .06em; font-size: .9rem; color: #f3ede1; }
.site-footer p { color: #a49b8b; font-size: .82rem; margin: 8px 0 0; }
.site-footer .footer-contact { color: #cfc7b8; }
.site-footer a { color: #ef8a7c; text-decoration: underline; }
.footer-legal { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(243,237,225,.16); }
.footer-legal a, .footer-legal button { padding: 0; background: none; border: 0; font-family: var(--fb); font-size: .84rem; color: #ef8a7c; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.footer-legal a:hover, .footer-legal button:hover { color: #f3ede1; }
.footer-nota { font-family: var(--fm); font-size: .74rem !important; color: #94897a !important; line-height: 1.5; }

/* ---- responsive ---- */
@media (min-width: 720px) {
  .product-section { grid-template-columns: 1fr 1fr; }
  .order-grid { grid-template-columns: 1fr 1fr; }
  .fields-grid { grid-template-columns: 1fr 1fr; }
  .sticky-cart { display: none; }
}
@media (min-width: 980px) { .steps { grid-template-columns: 1fr 1fr; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .btn { transition: none; } }
