/* ============================================================
   Ahumados Pavón — theme.css
   DUEÑO: FRONTEND. Construir TODO el CSS del tema aquí encima.
   El arquitecto deja SÓLO los tokens (:root) y un reset base.

   Paleta tierra/humo, tema OSCURO cálido. Títulos serif display
   (Playfair Display, con italic para acentos tipo "fuego lento").
   Body sans (Work Sans). Labels pequeñas en MAYÚSCULAS espaciadas,
   color acento.
   ============================================================ */

/* ---------- Tokens de diseño ---------- */
:root {
  /* Fondos y superficies */
  --bg:      #17120f;   /* fondo base (casi negro cálido) */
  --bg-2:    #1f1815;   /* fondo alterno de secciones */
  --panel:   #241c17;   /* tarjetas / paneles */

  /* Texto */
  --text:    #f3ece3;   /* texto principal (marfil cálido) */
  --muted:   #a89a8c;   /* texto secundario / labels */

  /* Acento brasa */
  --accent:   #c85a2c;  /* ámbar brasa — botones CTA, labels */
  --accent-2: #e0863f;  /* ámbar claro — hovers, degradados */

  /* Líneas y separadores */
  --line: rgba(255, 255, 255, .08);

  /* Radios */
  --radius:    14px;   /* radio general de tarjetas/paneles */
  --radius-sm: 8px;    /* botones, inputs */
  --radius-lg: 22px;   /* bloques grandes / media */
  --radius-pill: 999px;

  /* Layout */
  --header-h:  76px;   /* alto del header fijo */
  --container: 1200px; /* ancho máximo de contenido */
  --gutter:    24px;   /* padding lateral del contenedor */

  /* Tipografía */
  --font-display: "Playfair Display", Georgia, "Times New Roman", serif;
  --font-body:    "Work Sans", "Inter", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  /* Sombras */
  --shadow-1: 0 4px 24px rgba(0, 0, 0, .35);
  --shadow-2: 0 12px 48px rgba(0, 0, 0, .5);

  /* Transiciones */
  --ease: cubic-bezier(.22, .61, .36, 1);
  --dur:  .35s;
}

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.15;
  margin: 0 0 .5em;
}

p { margin: 0 0 1em; }

a { color: inherit; text-decoration: none; }

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

button { font-family: inherit; cursor: pointer; }

ul, ol { margin: 0; padding: 0; list-style: none; }

/* Accesibilidad: contenido para lectores de pantalla. */
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}

/* Progressive enhancement: el reveal on-scroll sólo se aplica con JS activo. */
.js .ap-reveal { opacity: 0; transform: translateY(16px); }

/* Líneas derivadas (más marcadas para el hover). */
:root{ --line-2: rgba(255,255,255,.15); }

h1,h2,h3,h4{ font-weight:600; }
p{ margin:0; }
a{ transition:color .18s var(--ease); }
button{ font-family:inherit; }
:focus-visible{ outline:2px solid var(--accent-2); outline-offset:3px; border-radius:4px; }

/* body sin overflow-x (header sticky NO debe usar overflow en html). */
body{ overflow-x:hidden; }

.ap-skip{ position:absolute; left:-9999px; }
.ap-skip:focus{ position:fixed; left:1rem; top:1rem; z-index:200; background:var(--accent);
  color:#fff; padding:.7rem 1.1rem; border-radius:var(--radius-sm); width:auto; height:auto; clip:auto; }

/* ============================================================
   LAYOUT
   ============================================================ */
.ap-wrap{ width:min(100% - var(--gutter)*2, var(--container)); margin-inline:auto; }
.ap-main{ min-height:50vh; }
.ap-section{ padding-block:clamp(56px,9vw,120px); }
.ap-section--tight{ padding-block:clamp(40px,6vw,72px); }
.ap-section--alt{ background:var(--bg-2); border-block:1px solid var(--line); }

.ap-section__head{ display:flex; justify-content:space-between; align-items:flex-end; gap:1.5rem;
  flex-wrap:wrap; margin-bottom:clamp(2rem,4vw,3.2rem); }

/* Eyebrow (label pequeña MAYÚSCULA espaciada en acento) */
.ap-eyebrow{ display:inline-flex; align-items:center; gap:.7rem; color:var(--accent-2);
  font-family:var(--font-body); font-weight:600; font-size:.74rem; letter-spacing:.22em;
  text-transform:uppercase; margin-bottom:1rem; }
.ap-eyebrow::before{ content:""; width:26px; height:1px; background:var(--accent); }

/* Títulos serif */
.ap-h1{ font-family:var(--font-display); font-weight:600; line-height:1.02;
  font-size:clamp(2.6rem,7vw,5.2rem); letter-spacing:-.01em; }
.ap-h2{ font-family:var(--font-display); font-weight:600; line-height:1.06;
  font-size:clamp(2rem,4.6vw,3.4rem); }
.ap-h3{ font-family:var(--font-display); font-weight:600; line-height:1.1;
  font-size:clamp(1.4rem,2.8vw,2rem); }
.ap-h1 i,.ap-h2 i,.ap-h3 i{ font-style:italic; color:var(--accent-2); }
.ap-lead{ color:var(--muted); font-size:clamp(1rem,1.4vw,1.15rem); line-height:1.65; max-width:58ch; }
.ap-lead em{ color:var(--text); font-style:italic; }

/* ============================================================
   BOTONES
   ============================================================ */
.ap-btn{ display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:.85rem 1.6rem; border-radius:var(--radius-pill); font-weight:600; font-size:.92rem;
  letter-spacing:.02em; border:1px solid transparent; text-align:center;
  transition:transform .28s var(--ease), background .28s var(--ease),
    border-color .28s var(--ease), color .28s var(--ease), box-shadow .28s var(--ease); }
.ap-btn svg{ width:18px; height:18px; }
.ap-btn--accent{ background:var(--accent); color:#fff; box-shadow:0 10px 32px -14px rgba(200,90,44,.8); }
.ap-btn--accent:hover{ background:var(--accent-2); transform:translateY(-2px); box-shadow:0 16px 42px -14px rgba(224,134,63,.85); }
.ap-btn--ghost{ background:transparent; color:var(--text); border-color:var(--line-2); }
.ap-btn--ghost:hover{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.34); transform:translateY(-2px); }
.ap-btn--wa{ background:#25d366; color:#0a2e18; box-shadow:0 10px 32px -14px rgba(37,211,102,.7); }
.ap-btn--wa:hover{ background:#31e574; transform:translateY(-2px); }
.ap-btn--lg{ padding:1.05rem 2rem; font-size:1rem; }
.ap-btn--block{ width:100%; }
.ap-btn:active{ transform:translateY(0); }

.ap-link-arrow{ display:inline-flex; align-items:center; gap:.5rem; font-weight:600; color:var(--text); }
.ap-link-arrow svg{ width:18px; height:18px; transition:transform .28s var(--ease); }
.ap-link-arrow:hover{ color:var(--accent-2); }
.ap-link-arrow:hover svg{ transform:translateX(4px); }

.ap-empty,.ap-empty-state{ color:var(--muted); text-align:center; padding:3rem 1rem; }

/* ============================================================
   REVEAL ON SCROLL (progresivo: visible por defecto)
   ============================================================ */
.ap-reveal{ opacity:1; transform:none; }
@media (prefers-reduced-motion:no-preference){
  .js .ap-reveal{ opacity:0; transform:translateY(24px);
    transition:opacity .7s var(--ease), transform .7s var(--ease); }
  .js .ap-reveal.is-in{ opacity:1; transform:none; }
  .js .ap-reveal[data-delay="1"]{ transition-delay:.09s; }
  .js .ap-reveal[data-delay="2"]{ transition-delay:.18s; }
  .js .ap-reveal[data-delay="3"]{ transition-delay:.27s; }
}

/* Tratamiento común de fotos (scrim + zoom suave al hover del contenedor). */
.ap-media-scrim{ position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(0deg, rgba(15,11,9,.6) 0%, rgba(15,11,9,.05) 45%, rgba(15,11,9,.2) 100%); }

/* ============================================================
   HEADER
   ============================================================ */
.ap-topbar{ background:#0f0b09; color:var(--muted); font-size:.8rem; border-bottom:1px solid var(--line); }
.ap-topbar__inner{ display:flex; align-items:center; justify-content:center; min-height:38px;
  text-align:center; padding-block:.4rem; letter-spacing:.02em; }

.ap-header{ position:sticky; top:0; z-index:60; background:rgba(23,18,15,.78);
  backdrop-filter:blur(14px); border-bottom:1px solid var(--line);
  transition:background .28s var(--ease), border-color .28s var(--ease); }
.ap-header.is-scrolled{ background:rgba(23,18,15,.96); box-shadow:0 10px 30px -20px rgba(0,0,0,.9); }
.ap-header__inner{ display:flex; align-items:center; gap:1.4rem; min-height:var(--header-h);
  width:min(100% - var(--gutter)*2, var(--container)); margin-inline:auto; }

.ap-logo{ display:flex; align-items:center; gap:.65rem; flex-shrink:0; }
.ap-logo__mark{ display:block; width:40px; height:40px; }
.ap-logo__mark svg{ width:100%; height:100%; }
.ap-logo__word{ font-family:var(--font-display); font-size:1.28rem; font-weight:600; line-height:1; letter-spacing:.01em; }
.ap-logo__word b{ color:var(--accent-2); font-weight:600; }

.ap-nav{ margin-inline:auto; }
.ap-nav ul{ display:flex; gap:.3rem; }
.ap-nav a{ display:inline-block; padding:.55rem .9rem; font-size:.82rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text); border-radius:var(--radius-pill); position:relative; }
.ap-nav a::after{ content:""; position:absolute; left:.9rem; right:.9rem; bottom:.3rem; height:2px;
  background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .28s var(--ease); }
.ap-nav a:hover,.ap-nav a:focus-visible{ color:var(--accent-2); }
.ap-nav a:hover::after,.ap-nav a:focus-visible::after{ transform:scaleX(1); }

.ap-actions{ display:flex; align-items:center; gap:.5rem; flex-shrink:0; }
.ap-actions__cta{ text-transform:uppercase; font-size:.78rem; letter-spacing:.08em; padding:.7rem 1.2rem; }
.ap-icon-btn{ display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px;
  border-radius:var(--radius-pill); background:transparent; border:1px solid transparent; color:var(--text);
  position:relative; transition:background .28s var(--ease), border-color .28s var(--ease); }
.ap-icon-btn svg{ width:22px; height:22px; }
.ap-icon-btn:hover{ background:rgba(255,255,255,.07); border-color:var(--line-2); }
.ap-cart-count{ position:absolute; top:3px; right:3px; min-width:18px; height:18px; padding:0 4px;
  background:var(--accent); color:#fff; font-size:.66rem; font-weight:700; border-radius:var(--radius-pill);
  display:flex; align-items:center; justify-content:center; line-height:1; }
.ap-cart-count[data-empty="1"]{ display:none; }
.ap-cart-count.is-bump{ animation:ap-bump .45s var(--ease); }
@keyframes ap-bump{ 0%{transform:scale(1)} 35%{transform:scale(1.5)} 100%{transform:scale(1)} }

.ap-burger{ display:none; }

/* ---- Drawer móvil ---- */
.ap-drawer{ position:fixed; inset:0 0 0 auto; width:min(86vw,360px); background:var(--bg-2); z-index:90;
  transform:translateX(100%); transition:transform .4s var(--ease); display:flex; flex-direction:column;
  border-left:1px solid var(--line); padding:1.2rem; }
.ap-drawer.is-open{ transform:none; }
.ap-drawer__head{ display:flex; align-items:center; justify-content:space-between; padding-bottom:1rem;
  border-bottom:1px solid var(--line); }
.ap-drawer__head .ap-logo__word{ font-size:1.1rem; }
.ap-drawer nav{ margin-top:1rem; }
.ap-drawer nav a{ display:block; padding:.9rem .3rem; font-family:var(--font-display); font-size:1.4rem;
  border-bottom:1px solid var(--line); color:var(--text); transition:color .2s var(--ease), padding-left .2s var(--ease); }
.ap-drawer nav a:hover{ color:var(--accent-2); padding-left:.8rem; }
.ap-drawer__foot{ margin-top:auto; padding-top:1.2rem; }
.ap-drawer__note{ color:var(--muted); font-size:.82rem; margin-top:.9rem; }
.ap-scrim{ position:fixed; inset:0; background:rgba(0,0,0,.6); backdrop-filter:blur(2px); z-index:80;
  opacity:0; pointer-events:none; transition:opacity .28s var(--ease); }
.ap-scrim.is-open{ opacity:1; pointer-events:auto; }

/* ============================================================
   HERO
   ============================================================ */
.ap-hero{ position:relative; overflow:hidden; border-bottom:1px solid var(--line);
  background:radial-gradient(120% 90% at 82% 8%, rgba(200,90,44,.18), transparent 58%), var(--bg); }
.ap-hero--photo{ background:var(--bg); }
.ap-hero__bg{ position:absolute; inset:0; z-index:0; background-size:cover; background-position:center;
  transform:scale(1.04); }
.ap-hero__scrim{ position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(90deg, rgba(15,11,9,.95) 0%, rgba(15,11,9,.8) 40%, rgba(15,11,9,.35) 72%, rgba(15,11,9,.55) 100%),
    linear-gradient(0deg, rgba(15,11,9,.85) 0%, rgba(15,11,9,0) 46%),
    radial-gradient(120% 90% at 84% 12%, rgba(224,134,63,.18), transparent 56%); }
.ap-hero__inner{ position:relative; z-index:2; display:grid; align-content:center;
  min-height:clamp(560px,82vh,760px); padding-block:clamp(48px,8vw,96px); }
.ap-hero:not(.ap-hero--photo) .ap-hero__inner{ min-height:auto; }
.ap-hero__text{ max-width:min(100%,700px); }
.ap-hero__title{ text-shadow:0 4px 34px rgba(0,0,0,.55); }
.ap-hero__sub{ margin-top:1.4rem; color:#f0e7dc; max-width:48ch; text-shadow:0 2px 14px rgba(0,0,0,.55); }
.ap-hero__cta{ margin-top:2.2rem; display:flex; flex-wrap:wrap; gap:.9rem; align-items:center; }
.ap-hero__stats{ margin-top:2.6rem; display:flex; gap:2.4rem; flex-wrap:wrap; }
.ap-hero__stat b{ font-family:var(--font-display); font-size:1.9rem; display:block; line-height:1; color:var(--accent-2); }
.ap-hero__stat span{ color:#cbbdac; font-size:.82rem; letter-spacing:.03em; }

/* ============================================================
   HISTORIA
   ============================================================ */
.ap-historia__inner{ display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(1.6rem,4vw,3.6rem); align-items:center; }
.ap-historia__media{ position:relative; aspect-ratio:4/5; border-radius:var(--radius-lg); overflow:hidden;
  border:1px solid var(--line-2); box-shadow:var(--shadow-2), 0 0 70px -34px rgba(200,90,44,.5); }
.ap-historia__photo{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.ap-historia__media:hover .ap-historia__photo{ transform:scale(1.04); }
.ap-historia__art{ display:flex; align-items:center; justify-content:center; height:100%; background:var(--panel); padding:2rem; color:var(--accent-2); }
.ap-historia__art svg{ width:min(70%,240px); }
.ap-historia__text .ap-lead{ margin-bottom:1rem; }
.ap-historia__points{ margin-top:1.6rem; display:flex; flex-direction:column; gap:.7rem; }
.ap-historia__points li{ display:flex; align-items:center; gap:.7rem; color:var(--text); font-weight:500; }
.ap-historia__points svg{ width:20px; height:20px; color:var(--accent-2); flex-shrink:0; }

/* ============================================================
   PRODUCTOS / TARJETAS
   ============================================================ */
.ap-grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
.ap-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.ap-grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem; }

.ap-card{ position:relative; display:flex; flex-direction:column; height:100%; background:var(--bg-2);
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; min-width:0;
  transition:transform .28s var(--ease), border-color .28s var(--ease), box-shadow .28s var(--ease); }
.ap-card:hover{ transform:translateY(-6px); border-color:var(--line-2); box-shadow:0 30px 60px -30px rgba(0,0,0,.85); }
.ap-card__media{ position:relative; aspect-ratio:4/5; display:flex; align-items:center; justify-content:center;
  overflow:hidden; background:radial-gradient(90% 90% at 50% 30%, rgba(200,90,44,.12), transparent 65%), var(--panel); }
.ap-card__photo{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.ap-card:hover .ap-card__photo{ transform:scale(1.06); }
.ap-card__art{ display:flex; align-items:center; justify-content:center; width:74%; color:var(--accent-2); }
.ap-badge{ position:absolute; top:1rem; left:1rem; z-index:3; background:var(--accent); color:#fff;
  font-size:.66rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:.35rem .7rem; border-radius:var(--radius-pill); }
.ap-card__body{ padding:1.3rem; display:flex; flex-direction:column; gap:.4rem; flex:1 1 auto; }
.ap-card__name{ font-family:var(--font-display); font-size:1.3rem; line-height:1.15; }
.ap-card__name a:hover{ color:var(--accent-2); }
.ap-card__meta{ color:var(--muted); font-size:.86rem; }
.ap-card__price{ font-size:.82rem; color:var(--muted); margin-top:auto; }
.ap-card__price b{ color:var(--text); font-family:var(--font-display); font-size:1.3rem; margin-left:.25rem; }
.ap-card__foot{ margin-top:1rem; }

/* ============================================================
   MÉTODO (pasos)
   ============================================================ */
.ap-metodo__head{ text-align:center; max-width:60ch; margin-inline:auto; margin-bottom:clamp(2.4rem,5vw,3.6rem); }
.ap-metodo__head .ap-lead{ margin-inline:auto; }
.ap-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; counter-reset:step; }
.ap-step{ position:relative; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.8rem 1.4rem 1.5rem; min-width:0;
  transition:transform .28s var(--ease), border-color .28s var(--ease); }
.ap-step:hover{ transform:translateY(-5px); border-color:var(--line-2); }
.ap-step__num{ position:absolute; top:1.2rem; right:1.3rem; font-family:var(--font-display); font-size:2.2rem;
  color:var(--accent); opacity:.35; line-height:1; }
.ap-step__ic{ display:flex; width:56px; height:56px; border-radius:14px; align-items:center; justify-content:center;
  background:rgba(200,90,44,.12); border:1px solid rgba(200,90,44,.28); color:var(--accent-2); margin-bottom:1.2rem; }
.ap-step__ic svg{ width:30px; height:30px; }
.ap-step__t{ font-size:1.1rem; margin-bottom:.4rem; }
.ap-step__d{ color:var(--muted); font-size:.9rem; line-height:1.55; }

/* Conector entre pasos (desktop). */
.ap-steps .ap-step:not(:last-child)::after{ content:""; position:absolute; top:2.6rem; right:-.7rem; width:1.4rem; height:2px;
  background:linear-gradient(90deg, var(--accent), transparent); z-index:1; }

/* ============================================================
   GALERÍA MOSAICO
   ============================================================ */
.ap-mosaic{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:220px; gap:1rem; }
.ap-tile{ position:relative; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); min-width:0; margin:0; }
.ap-tile.is-wide{ grid-column:span 2; }
.ap-tile.is-tall{ grid-row:span 2; }
.ap-tile__link{ display:block; width:100%; height:100%; position:relative; }
.ap-tile__img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.ap-tile:hover .ap-tile__img{ transform:scale(1.06); }
.ap-tile__scrim{ position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(0deg, rgba(15,11,9,.75) 0%, rgba(15,11,9,0) 55%); opacity:.85; transition:opacity .28s var(--ease); }
.ap-tile:hover .ap-tile__scrim{ opacity:1; }
.ap-tile__cap{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:1rem 1.1rem;
  color:#fff; font-weight:600; font-size:.92rem; text-shadow:0 2px 10px rgba(0,0,0,.6); }

/* ============================================================
   ANILLO DE HUMO (infografía)
   ============================================================ */
.ap-anillo__inner{ display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(1.6rem,4vw,3.6rem); align-items:center; }
.ap-anillo__art{ display:flex; justify-content:center; }
.ap-anillo__ring{ position:relative; width:min(100%,360px); color:var(--muted);
  filter:drop-shadow(0 0 60px rgba(224,134,63,.25)); animation:ap-float 7s ease-in-out infinite; }
@keyframes ap-float{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
@media (prefers-reduced-motion:reduce){ .ap-anillo__ring{ animation:none; } }
.ap-anillo__text .ap-lead{ margin-bottom:1rem; }
.ap-anillo__text .ap-btn{ margin-top:.8rem; }

/* ============================================================
   BANNER PULLED PORK
   ============================================================ */
.ap-banner{ position:relative; overflow:hidden; border-block:1px solid var(--line);
  background:linear-gradient(120deg, var(--bg-2), var(--panel)); }
.ap-banner__bg{ position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; transform:scale(1.04); }
.ap-banner__scrim{ position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg, rgba(15,11,9,.94) 0%, rgba(15,11,9,.78) 44%, rgba(15,11,9,.35) 78%, rgba(15,11,9,.6) 100%); }
.ap-banner__inner{ position:relative; z-index:2; display:grid; align-content:center;
  min-height:clamp(420px,52vh,560px); padding-block:clamp(48px,7vw,90px); }
.ap-banner__text{ max-width:min(100%,600px); }
.ap-banner__text .ap-lead{ margin-block:1.2rem 1.8rem; color:#f0e7dc; }

/* ============================================================
   FEATURES STRIP
   ============================================================ */
.ap-strip__list{ gap:1.4rem; }
.ap-strip__item{ display:flex; gap:1.1rem; align-items:flex-start; background:var(--panel);
  border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem; min-width:0;
  transition:transform .28s var(--ease), border-color .28s var(--ease); }
.ap-strip__item:hover{ transform:translateY(-5px); border-color:var(--line-2); }
.ap-strip__ic{ flex-shrink:0; display:flex; width:52px; height:52px; border-radius:13px; align-items:center; justify-content:center;
  background:rgba(200,90,44,.12); border:1px solid rgba(200,90,44,.28); color:var(--accent-2); }
.ap-strip__ic svg{ width:28px; height:28px; }
.ap-strip__t{ font-size:1.12rem; margin-bottom:.4rem; }
.ap-strip__d{ color:var(--muted); font-size:.9rem; line-height:1.55; }

/* ============================================================
   CTA FINAL
   ============================================================ */
.ap-cta-final{ position:relative; text-align:center; overflow:hidden;
  background:
    radial-gradient(90% 120% at 50% 0%, rgba(200,90,44,.22), transparent 58%),
    linear-gradient(180deg, var(--bg-2), var(--bg)); border-block:1px solid var(--line); }
.ap-cta-final__inner{ max-width:60ch; margin-inline:auto; }
.ap-cta-final__inner .ap-lead{ margin-inline:auto; margin-top:1rem; }
.ap-cta-final__btns{ margin-top:2rem; display:flex; gap:.9rem; justify-content:center; flex-wrap:wrap; }

/* ============================================================
   FOOTER
   ============================================================ */
.ap-footer{ background:#0f0b09; border-top:1px solid var(--line); padding-block:clamp(48px,7vw,80px) 2rem; }
.ap-footer__grid{ display:grid; grid-template-columns:1.7fr 1fr 1fr 1.1fr; gap:2.4rem; }
.ap-footer__brand p{ color:var(--muted); margin-top:1rem; max-width:34ch; font-size:.92rem; line-height:1.6; }
.ap-footer__brand em{ color:var(--text); font-style:italic; }
.ap-footer__logo{ display:flex; align-items:center; gap:.6rem; }
.ap-footer__logo .ap-logo__mark{ width:36px; height:36px; }
.ap-footer__logo b{ font-family:var(--font-display); font-size:1.24rem; font-weight:600; }
.ap-footer h4{ font-family:var(--font-body); font-size:.76rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted); margin-bottom:1.1rem; font-weight:600; }
.ap-footer li{ margin-bottom:.6rem; }
.ap-footer li a{ color:var(--text); font-size:.92rem; }
.ap-footer li a:hover{ color:var(--accent-2); }
.ap-footer__contact li{ display:flex; align-items:flex-start; gap:.6rem; }
.ap-footer__ic{ flex-shrink:0; color:var(--accent-2); display:flex; }
.ap-footer__ic svg{ width:18px; height:18px; margin-top:2px; }
.ap-footer__muted{ color:var(--muted); font-size:.92rem; }
.ap-social{ display:flex; gap:.6rem; margin-top:1.4rem; }
.ap-social a{ width:42px; height:42px; border-radius:var(--radius-pill); border:1px solid var(--line-2);
  display:flex; align-items:center; justify-content:center; color:var(--text);
  transition:background .28s var(--ease), border-color .28s var(--ease), color .28s var(--ease), transform .28s var(--ease); }
.ap-social a:hover{ background:var(--accent); border-color:var(--accent); color:#fff; transform:translateY(-3px); }
.ap-social a svg{ width:20px; height:20px; }
.ap-footer__bottom{ margin-top:2.6rem; padding-top:1.6rem; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; color:var(--muted); font-size:.84rem; }
.ap-footer__pay{ display:flex; gap:.5rem; align-items:center; }
.ap-footer__pay svg{ height:28px; width:auto; }

/* ---- Botón flotante WhatsApp ---- */
.ap-wa-float{ position:fixed; right:clamp(14px,3vw,26px); bottom:clamp(14px,3vw,26px); z-index:70;
  display:inline-flex; align-items:center; gap:.6rem; background:#25d366; color:#0a2e18;
  padding:.85rem 1.1rem; border-radius:var(--radius-pill); font-weight:700; font-size:.9rem;
  box-shadow:0 12px 34px -10px rgba(37,211,102,.6);
  transition:transform .28s var(--ease), box-shadow .28s var(--ease); }
.ap-wa-float svg{ width:26px; height:26px; }
.ap-wa-float:hover{ transform:translateY(-3px) scale(1.03); box-shadow:0 18px 44px -10px rgba(37,211,102,.7); }
.ap-wa-float__label{ white-space:nowrap; }

/* ============================================================
   WOO — wrappers del backend (contrato de hooks)
   El backend abre <main class="ap-main ap-woo-main"><div class="ap-container">
   ============================================================ */
.ap-woo-main{ padding:0; }
.ap-container{ width:min(100% - var(--gutter)*2, var(--container)); margin-inline:auto; }
.ap-woo-main > .ap-container{ width:100%; max-width:none; margin:0; padding:0; }
/* Vistas Woo sin banner propio: dan ancho contenido al container. */
.single-product .ap-woo-main > .ap-container,
.woocommerce-cart .ap-woo-main > .ap-container,
.woocommerce-checkout .ap-woo-main > .ap-container,
.woocommerce-account .ap-woo-main > .ap-container,
.woocommerce-order-received .ap-woo-main > .ap-container{
  width:min(100% - var(--gutter)*2, var(--container)); margin-inline:auto; padding-block:clamp(28px,4vw,56px); }

/* ============================================================
   TIENDA (archive)
   ============================================================ */
.ap-shop-banner{ position:relative; padding-block:clamp(52px,8vw,100px); text-align:center;
  background:radial-gradient(100% 90% at 50% 0%, rgba(200,90,44,.18), transparent 58%), var(--bg-2);
  border-bottom:1px solid var(--line); }
.ap-shop-banner .ap-h1 i{ color:var(--accent-2); }
.ap-shop-banner__lead{ margin-inline:auto; margin-top:1rem; }

/* Tabs de categoría */
.ap-tabs{ display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin-block:2.2rem .4rem; }
.ap-tab{ padding:.6rem 1.2rem; border-radius:var(--radius-pill); border:1px solid var(--line-2);
  background:transparent; color:var(--muted); font-size:.82rem; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; transition:all .24s var(--ease); }
.ap-tab:hover{ color:var(--text); border-color:rgba(255,255,255,.3); }
.ap-tab.is-active{ background:var(--accent); border-color:var(--accent); color:#fff; }

/* Grilla de la tienda: anula el layout flotante nativo de Woo. */
.woocommerce ul.products.ap-shop-grid,.woocommerce-page ul.products.ap-shop-grid,
ul.products.ap-shop-grid,ul.ap-shop-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin:0; padding:0; list-style:none; align-items:stretch; }
.woocommerce ul.products.ap-shop-grid li.product,
.woocommerce-page ul.products.ap-shop-grid li.product,
.woocommerce ul.products[class*="columns-"].ap-shop-grid li.product,
ul.ap-shop-grid li.product{ float:none; clear:none; width:auto; margin:0; padding:0; display:flex; min-width:0; }
ul.products.ap-shop-grid::before,ul.products.ap-shop-grid::after{ content:none; display:none; }
.ap-card.is-hidden{ display:none !important; }
.ap-card .added_to_cart{ display:none; }
.ap-card__foot .button.add_to_cart_button,.ap-card__foot .button{ margin:0; }

/* Barra de resultados / ordenamiento nativa */
.woocommerce .woocommerce-result-count{ color:var(--muted); font-size:.88rem; }
.woocommerce .woocommerce-ordering select{ background:var(--panel); border:1px solid var(--line-2);
  color:var(--text); border-radius:var(--radius-sm); padding:.6rem .9rem; }

/* Notices Woo oscuros */
.woocommerce-message,.woocommerce-info,.woocommerce-error,.wc-block-components-notice-banner{
  background:var(--panel)!important; border:1px solid var(--line-2)!important; border-left:3px solid var(--accent)!important;
  color:var(--text)!important; border-radius:var(--radius-sm)!important; }
.woocommerce-message,.woocommerce-info,.woocommerce-error{ padding:1rem 1.2rem 1rem 3.2rem!important; }
.wc-block-components-notice-banner{ padding:1rem 1.2rem!important; }
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{ color:var(--accent)!important; }
.woocommerce-message a,.woocommerce-info a{ color:var(--accent-2)!important; }

/* ============================================================
   FICHA DE PRODUCTO (single)
   ============================================================ */
.single-product .ap-main{ padding-top:clamp(24px,4vw,48px); }
.single-product div.product{ display:grid; grid-template-columns:1fr 1fr;
  column-gap:clamp(1.6rem,4vw,3.4rem); row-gap:0; align-items:start; }
.single-product div.product .woocommerce-product-gallery{ margin:0; float:none; width:auto; min-width:0; overflow:hidden; }
.single-product.woocommerce div.product div.images.woocommerce-product-gallery{
  position:sticky; top:calc(var(--header-h) + 40px); align-self:start; z-index:1; width:100%!important; }
.single-product div.product .summary{ min-width:0; margin:0; }
.single-product .woocommerce-product-gallery__wrapper{ margin:0; width:100%; }
.single-product .woocommerce-product-gallery__image{ width:100%; border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden;
  background:radial-gradient(80% 80% at 50% 30%, rgba(200,90,44,.1), transparent 60%), var(--panel); }
.single-product .woocommerce-product-gallery__image a{ display:block; width:100%; }
.single-product .woocommerce-product-gallery__image img{ display:block; width:100%!important; height:auto; object-fit:cover; }
/* Placeholder sin imagen integrado al oscuro */
.single-product .woocommerce-product-gallery--without-images .woocommerce-product-gallery__image{
  position:relative; aspect-ratio:1; min-height:340px; display:flex; align-items:center; justify-content:center; }
.single-product .woocommerce-product-gallery__image--placeholder img{ opacity:.16; filter:grayscale(1) brightness(3); width:46%; height:auto; }
.single-product .woocommerce-product-gallery__image--placeholder::after{ content:"Ahumados Pavón"; position:absolute;
  left:0; right:0; bottom:1.4rem; text-align:center; font-family:var(--font-display); letter-spacing:.16em;
  font-size:.9rem; color:var(--muted); opacity:.55; }
.single-product .flex-control-thumbs{ display:flex; gap:.6rem; margin-top:.8rem; padding:0; list-style:none; }
.single-product .flex-control-thumbs li{ width:72px; margin:0; }
.single-product .flex-control-thumbs img{ border:1px solid var(--line); border-radius:10px; opacity:.5; cursor:pointer;
  transition:opacity .24s var(--ease), border-color .24s var(--ease); background:var(--panel); }
.single-product .flex-control-thumbs img.flex-active,.single-product .flex-control-thumbs img:hover{ opacity:1; border-color:var(--accent); }

.single-product .product_title{ font-family:var(--font-display); font-size:clamp(2rem,4.5vw,3.2rem);
  line-height:1.02; margin-bottom:1rem; }
.single-product .woocommerce-product-rating{ margin-bottom:1rem; }
.single-product .price{ color:var(--text)!important; font-size:1rem; margin-bottom:1.2rem; }
.single-product .price .amount{ font-family:var(--font-display); font-size:2rem; color:var(--accent-2); }
.single-product .price del{ color:var(--muted)!important; opacity:.6; font-family:var(--font-body); font-size:1.1rem; }
.single-product .price ins{ text-decoration:none; }
.single-product .woocommerce-product-details__short-description{ color:var(--muted); margin-bottom:1.4rem; }
.single-product .woocommerce-product-details__short-description p{ margin-bottom:.6rem; }

.single-product form.cart{ margin-bottom:1.2rem; }
.single-product form.cart .quantity{ margin-right:.8rem; }
.single-product .quantity input.qty{ width:72px; background:var(--panel); border:1px solid var(--line-2); color:var(--text);
  border-radius:var(--radius-pill); padding:.85rem .6rem; text-align:center; font-size:1rem; -moz-appearance:textfield; }
.single-product form.cart .button,.single-product .single_add_to_cart_button{
  background:var(--accent)!important; color:#fff!important; border:none!important; border-radius:var(--radius-pill)!important;
  padding:1rem 2rem!important; font-weight:600!important; font-size:1rem!important; text-transform:none!important;
  box-shadow:0 10px 32px -14px rgba(200,90,44,.8); transition:transform .28s var(--ease), background .28s var(--ease)!important; }
.single-product .single_add_to_cart_button:hover{ background:var(--accent-2)!important; transform:translateY(-2px); }

.single-product .variations{ margin-bottom:1rem; border:0; }
.single-product .variations td,.single-product .variations th{ padding:.4rem 0; border:0; }
.single-product .variations td.label,.single-product .variations th.label{ vertical-align:middle; }
.single-product .variations .reset_variations[style*="hidden"]{ position:absolute; height:0; overflow:hidden; }
.single-product .variations label{ color:var(--muted); font-weight:600; }
.single-product .variations select{ background:var(--panel); border:1px solid var(--line-2); color:var(--text);
  border-radius:var(--radius-pill); padding:.8rem 1rem; font-size:.95rem; }
.single-product .reset_variations{ color:var(--muted); font-size:.85rem; }
.single-product .product_meta{ margin-top:1.4rem; color:var(--muted); font-size:.85rem; }
.single-product .product_meta a{ color:var(--text); }

/* Botón "Pedir por WhatsApp" en la ficha */
.ap-wa-order{ display:flex; align-items:center; justify-content:center; gap:.55rem; width:100%; margin-top:.7rem;
  background:#25d366; color:#0a2e18; border-radius:var(--radius-pill); padding:1rem 2rem; font-weight:700; font-size:1rem;
  transition:transform .28s var(--ease), background .28s var(--ease); }
.ap-wa-order svg{ width:22px; height:22px; }
.ap-wa-order:hover{ background:#31e574; transform:translateY(-2px); }

/* Botón "Pedir todo por WhatsApp" en carrito/checkout (inyectado por whatsapp.js) */
.ap-wa-cart{ display:flex; align-items:center; justify-content:center; gap:.55rem; width:100%;
  margin-top:.8rem; background:#25d366; color:#0a2e18; border-radius:var(--radius-pill);
  padding:.95rem 1.6rem; font-weight:700; font-size:1rem; text-decoration:none;
  transition:transform .28s var(--ease), background .28s var(--ease); }
.ap-wa-cart svg{ width:22px; height:22px; }
.ap-wa-cart:hover{ background:#31e574; transform:translateY(-2px); color:#0a2e18; }
.ap-wa-cart-wrap{ max-width:480px; margin:1.2rem 0 0 auto; }
@media (max-width:860px){ .ap-wa-cart-wrap{ max-width:none; margin-top:1rem; } }

/* Ficha extra (leña/tiempo/regeneración/conservación) */
.ap-ficha-extra{ list-style:none; margin:1.2rem 0; padding:1.2rem 0; border-top:1px solid var(--line);
  border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.ap-ficha-extra__row{ display:flex; gap:.7rem; align-items:flex-start; }
.ap-ficha-extra__ic{ flex-shrink:0; display:flex; width:38px; height:38px; border-radius:10px; align-items:center; justify-content:center;
  background:rgba(200,90,44,.12); border:1px solid rgba(200,90,44,.26); color:var(--accent-2); }
.ap-ficha-extra__ic svg{ width:20px; height:20px; }
.ap-ficha-extra__txt{ display:flex; flex-direction:column; }
.ap-ficha-extra__txt b{ color:var(--muted); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; font-weight:600; }
.ap-ficha-extra__txt span{ color:var(--text); font-size:.94rem; }

/* Tabs nativos woo */
.single-product .woocommerce-tabs{ margin-top:clamp(2.4rem,5vw,4rem); grid-column:1/-1; }
.single-product .woocommerce-tabs ul.tabs{ padding:0; margin:0 0 1.4rem; display:flex; gap:.4rem; flex-wrap:wrap; border-bottom:1px solid var(--line); }
.single-product .woocommerce-tabs ul.tabs::before,.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after{ display:none!important; border:0!important; }
.single-product .woocommerce-tabs ul.tabs li{ background:transparent; border:0; margin:0; padding:0; border-radius:0; }
.single-product .woocommerce-tabs ul.tabs li a{ padding:.9rem 1.2rem; color:var(--muted); font-weight:600; display:block; border-bottom:2px solid transparent; }
.single-product .woocommerce-tabs ul.tabs li a:hover{ color:var(--text); }
.single-product .woocommerce-tabs ul.tabs li.active a{ color:var(--text); border-bottom-color:var(--accent); }
.single-product .woocommerce-Tabs-panel{ color:var(--muted); }
.single-product .woocommerce-Tabs-panel h2{ font-family:var(--font-display); color:var(--text); font-size:1.6rem; margin-bottom:1rem; }
.single-product table.shop_attributes{ border:0; color:var(--muted); }
.single-product table.shop_attributes th{ color:var(--text); border-top:1px solid var(--line); }
.single-product table.shop_attributes td{ border-top:1px solid var(--line); font-style:normal; }
.single-product .related.products,.single-product .upsells.products{ grid-column:1/-1; margin-top:clamp(2.4rem,5vw,4rem); }
.single-product .related h2,.single-product .upsells h2{ font-family:var(--font-display); font-size:2rem; margin-bottom:1.4rem; }
.single-product .related ul.products,.single-product .upsells ul.products{
  display:grid!important; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
.single-product .related ul.products li.product,.single-product .upsells ul.products li.product{ float:none; width:auto; margin:0; }

/* Secciones ricas inyectadas por hooks (cubren la galería sticky). */
.ap-rich{ position:relative; z-index:2; background:var(--bg); border-top:1px solid var(--line);
  grid-column:1/-1; width:100vw; max-width:100vw; min-width:0; left:50%; right:50%; margin-left:-50vw; margin-right:-50vw; }
.ap-rich--alt{ background:var(--bg-2); }
.ap-rich__wrap{ width:min(100% - var(--gutter)*2, var(--container)); margin-inline:auto; padding-block:clamp(40px,6vw,80px); }

/* Zoom nativo de Woo (si el backend lo activara): integrado al oscuro. */
.woocommerce-product-gallery__trigger{ background:rgba(15,11,9,.66)!important; backdrop-filter:blur(6px);
  border:1px solid var(--line-2)!important; border-radius:var(--radius-pill)!important; width:44px!important; height:44px!important;
  top:1rem!important; right:1rem!important; color:var(--text); }

/* ============================================================
   CARRITO / CHECKOUT (bloques Gutenberg + clásico)
   ============================================================ */
.woocommerce-cart .ap-main,.woocommerce-checkout .ap-main,.woocommerce-account .ap-main{ padding-block:clamp(32px,5vw,64px); }
.woocommerce-cart .entry-title,.woocommerce-checkout .entry-title,.ap-page-title{
  font-family:var(--font-display); font-size:clamp(2rem,5vw,3.2rem); margin-bottom:1.6rem; }

.woocommerce table.shop_table{ background:var(--bg-2); border:1px solid var(--line)!important; border-radius:var(--radius)!important;
  border-collapse:separate; overflow:hidden; color:var(--text); }
.woocommerce table.shop_table th{ color:var(--muted); text-transform:uppercase; font-size:.78rem; letter-spacing:.08em;
  border-bottom:1px solid var(--line); padding:1rem; }
.woocommerce table.shop_table td{ border-top:1px solid var(--line); padding:1rem; color:var(--text); }
.woocommerce table.shop_table td.product-name a{ color:var(--text); }
.woocommerce table.shop_table td.product-name a:hover{ color:var(--accent-2); }
.woocommerce a.remove{ color:var(--accent)!important; border:1px solid var(--line-2); background:transparent!important; }
.woocommerce a.remove:hover{ background:var(--accent)!important; color:#fff!important; }
.woocommerce .cart_totals{ background:var(--bg-2); border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem; }
.woocommerce .cart_totals h2{ font-family:var(--font-display); margin-bottom:1rem; }
.woocommerce .cart_totals table th,.woocommerce .cart_totals table td{ border-top:1px solid var(--line); padding:.8rem 0; color:var(--text); }
.woocommerce .cart_totals .order-total .amount{ color:var(--accent-2); font-family:var(--font-display); font-size:1.4rem; }

.woocommerce .coupon input,.woocommerce input.input-text,.woocommerce textarea,.woocommerce select,
.woocommerce-checkout input[type="text"],.woocommerce-checkout input[type="email"],.woocommerce-checkout input[type="tel"],
.woocommerce-checkout textarea,.woocommerce-checkout select,.select2-container .select2-selection{
  background:var(--panel)!important; border:1px solid var(--line-2)!important; color:var(--text)!important;
  border-radius:var(--radius-sm)!important; padding:.85rem 1rem!important; }
.select2-container--default .select2-selection--single .select2-selection__rendered{ color:var(--text)!important; line-height:1.6; }
.select2-dropdown{ background:var(--panel)!important; border-color:var(--line-2)!important; color:var(--text); }
.select2-results__option--highlighted{ background:var(--accent)!important; }
.woocommerce label{ color:var(--muted); }
.woocommerce .button,.woocommerce button.button,.woocommerce input.button,.woocommerce a.button,
.woocommerce #respond input#submit,.woocommerce button.button.alt,.woocommerce #place_order{
  background:var(--panel); color:var(--text); border:1px solid var(--line-2); border-radius:var(--radius-pill)!important;
  padding:.9rem 1.6rem!important; font-weight:600; text-transform:none; transition:all .28s var(--ease); }
.woocommerce .button:hover,.woocommerce button.button:hover,.woocommerce a.button:hover{ background:#2e241d; transform:translateY(-2px); }
.woocommerce button.button.alt,.woocommerce #place_order,.woocommerce .checkout-button,.woocommerce a.checkout-button{
  background:var(--accent)!important; color:#fff!important; border-color:var(--accent)!important;
  box-shadow:0 10px 32px -14px rgba(200,90,44,.8); }
.woocommerce button.button.alt:hover,.woocommerce #place_order:hover,.woocommerce a.checkout-button:hover{ background:var(--accent-2)!important; transform:translateY(-2px); }

.woocommerce-checkout #order_review,.woocommerce-checkout .woocommerce-checkout-review-order{
  background:var(--bg-2); border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem; margin-top:1rem; }
.woocommerce-checkout h3{ font-family:var(--font-display); font-size:1.4rem; margin-bottom:1rem; }
.woocommerce-checkout #payment{ background:transparent!important; }
.woocommerce-checkout #payment ul.payment_methods{ border-bottom:1px solid var(--line)!important; padding:0 0 1rem; }
.woocommerce-checkout #payment .payment_box{ background:var(--panel)!important; color:var(--muted); border-radius:var(--radius-sm); }
.woocommerce-checkout #payment .payment_box::before{ border-bottom-color:var(--panel)!important; }

/* --- Bloques Gutenberg (cart/checkout) --- */
.woocommerce-cart .ap-page .ap-entry,.woocommerce-checkout .ap-page .ap-entry{ max-width:none; }
.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout{ max-width:none!important; width:100%; }
.wc-block-cart.wc-block-components-sidebar-layout{ display:grid; grid-template-columns:1.6fr 1fr; gap:clamp(1.4rem,3vw,2.6rem); align-items:start; }
.wc-block-cart .wc-block-cart__main{ max-width:none; padding:0; float:none; width:auto; }
.wc-block-cart .wc-block-cart__sidebar{ max-width:none; float:none; width:auto; background:var(--bg-2); border:1px solid var(--line);
  border-radius:var(--radius); padding:1.6rem; position:sticky; top:calc(var(--header-h) + 16px); }
.wc-block-cart .wc-block-cart__totals-title,.wc-block-cart .wc-block-components-totals-item__label{ color:var(--muted); }
.wc-block-cart .wc-block-cart__totals-title{ text-transform:uppercase; letter-spacing:.08em; font-size:.82rem; }
.wc-block-cart .wc-block-components-totals-item{ color:var(--text); }
.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-cart .wc-block-components-totals-footer-item .wc-block-formatted-money-amount{ color:var(--accent-2); font-family:var(--font-display); font-size:1.5rem; }
.wc-block-cart .wc-block-components-totals-wrapper::after,.wc-block-cart .wc-block-components-panel{ border-color:var(--line)!important; }
.wc-block-cart__empty-cart__title.with-empty-cart-icon::before,
.wp-block-woocommerce-empty-cart-block .with-empty-cart-icon::before{ background-color:var(--muted)!important; }
.wp-block-woocommerce-empty-cart-block .wp-block-button__link,
.wp-block-woocommerce-product-collection .wp-block-button__link,
.wp-block-woocommerce-product-template .wp-block-button__link,
.wc-block-grid__products .wp-block-button__link{ background-color:var(--accent)!important; color:#fff!important; border-color:var(--accent)!important; }
.wp-block-woocommerce-empty-cart-block .wp-block-button__link:hover,
.wp-block-woocommerce-product-collection .wp-block-button__link:hover,
.wp-block-woocommerce-product-template .wp-block-button__link:hover,
.wc-block-grid__products .wp-block-button__link:hover{ background-color:var(--accent-2)!important; border-color:var(--accent-2)!important; }
.wp-block-woocommerce-empty-cart-block .wp-block-post-title,.wp-block-woocommerce-empty-cart-block .wp-block-post-title a,
.wp-block-woocommerce-product-collection .wp-block-post-title,.wp-block-woocommerce-product-collection .wp-block-post-title a,
.wc-block-grid__products .wc-block-grid__product-title{ color:var(--text)!important; }
.wc-block-cart .wc-block-cart-items{ background:var(--bg-2); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.wc-block-cart table.wc-block-cart-items th{ color:var(--muted); text-transform:uppercase; font-size:.76rem; letter-spacing:.08em;
  border-bottom:1px solid var(--line); padding:1.1rem 1.2rem; }
.wc-block-cart table.wc-block-cart-items td{ border-top:1px solid var(--line); padding:1.2rem; vertical-align:top; }
.wc-block-cart .wc-block-cart-item__product .wc-block-components-product-name{ color:var(--text); font-weight:600; }
.wc-block-cart .wc-block-cart-item__product .wc-block-components-product-name:hover{ color:var(--accent-2); }
.wc-block-cart .wc-block-cart-item__image img{ border-radius:var(--radius-sm); border:1px solid var(--line); background:var(--panel); }
.wc-block-cart .wc-block-components-quantity-selector{ border:1px solid var(--line-2); border-radius:var(--radius-pill);
  background:var(--panel); overflow:hidden; max-width:120px; }
.wc-block-cart .wc-block-components-quantity-selector__input{ color:var(--text); background:transparent; }
.wc-block-cart .wc-block-components-quantity-selector__button{ color:var(--text); background:transparent; transition:background .2s var(--ease); }
.wc-block-cart .wc-block-components-quantity-selector__button:hover{ background:var(--accent); color:#fff; }
.wc-block-cart .wc-block-cart-item__remove-link{ color:var(--muted); }
.wc-block-cart .wc-block-cart-item__remove-link:hover{ color:var(--accent-2); }
.wc-block-cart .wc-block-cart__submit-button,
.wc-block-cart .wc-block-cart__submit-container .wc-block-components-button,
.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button{
  width:100%; background:var(--accent)!important; color:#fff!important; border:0!important; border-radius:var(--radius-pill)!important;
  padding:1rem 1.4rem!important; font-weight:600; box-shadow:0 10px 32px -14px rgba(200,90,44,.8); transition:background .28s var(--ease), transform .28s var(--ease); }
.wc-block-cart .wc-block-cart__submit-button:hover,
.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button:hover{ background:var(--accent-2)!important; transform:translateY(-2px); }
.wp-block-woocommerce-checkout .wc-block-components-radio-control__input:checked,
.wc-block-checkout__payment-method .wc-block-components-radio-control__input:checked{ accent-color:var(--accent); }
.wp-block-woocommerce-cart .wc-block-components-text-input input,
.wp-block-woocommerce-checkout .wc-block-components-text-input input,
.wp-block-woocommerce-checkout .wc-block-components-address-form input,
.wp-block-woocommerce-checkout .wc-blocks-components-select select,
.wp-block-woocommerce-cart .wc-blocks-components-select select{
  background:var(--panel)!important; border:1px solid var(--line-2)!important; color:var(--text)!important; border-radius:var(--radius-sm)!important; }
/* Etiquetas estáticas ARRIBA (nunca pisan el valor). */
.wp-block-woocommerce-checkout .wc-block-components-text-input,
.wp-block-woocommerce-cart .wc-block-components-text-input,
.wp-block-woocommerce-checkout .wc-blocks-components-select,
.wp-block-woocommerce-cart .wc-blocks-components-select,
.wc-block-checkout .wc-blocks-components-select,.wc-block-cart .wc-blocks-components-select{ display:flex!important; flex-direction:column; margin-top:.6rem!important; margin-bottom:.35rem!important; }
.wp-block-woocommerce-checkout .wc-block-components-text-input > label,
.wp-block-woocommerce-cart .wc-block-components-text-input > label,
.wp-block-woocommerce-checkout .wc-blocks-components-select__label,
.wp-block-woocommerce-cart .wc-blocks-components-select__label,
.wc-block-checkout .wc-blocks-components-select__label,.wc-block-cart .wc-blocks-components-select__label{
  position:static!important; transform:none!important; order:-1; font-size:.78rem!important; line-height:1.3!important;
  margin:0 0 .6rem 2px!important; padding:0!important; left:auto!important; top:auto!important; color:var(--muted)!important;
  max-width:none!important; white-space:normal!important; }
.wp-block-woocommerce-checkout .wc-block-components-text-input input,
.wp-block-woocommerce-cart .wc-block-components-text-input input,
.wp-block-woocommerce-checkout .wc-blocks-components-select select,
.wp-block-woocommerce-cart .wc-blocks-components-select select,
.wc-block-checkout .wc-blocks-components-select select,.wc-block-cart .wc-blocks-components-select select{
  padding:.85rem 1.1rem!important; min-height:auto!important; height:auto!important; }
.wp-block-woocommerce-checkout .wc-blocks-components-select__container,
.wp-block-woocommerce-cart .wc-blocks-components-select__container,
.wc-block-checkout .wc-blocks-components-select__container,.wc-block-cart .wc-blocks-components-select__container{
  background:transparent!important; border:0!important; box-shadow:none!important; display:flex!important; flex-direction:column!important; }
.wp-block-woocommerce-checkout .wc-blocks-components-select__expand,
.wp-block-woocommerce-cart .wc-blocks-components-select__expand,
.wc-block-checkout .wc-blocks-components-select__expand,.wc-block-cart .wc-blocks-components-select__expand{
  top:auto!important; bottom:15px!important; transform:none!important; }
.wp-block-woocommerce-cart .wc-block-components-text-input label,
.wp-block-woocommerce-checkout .wc-block-components-text-input label{ color:var(--muted)!important; }

.woocommerce-order,.woocommerce-thankyou-order-received{ color:var(--text); }
.woocommerce ul.order_details{ background:var(--bg-2); border:1px solid var(--line); border-radius:var(--radius); padding:1.4rem; }
.woocommerce ul.order_details li{ border-right:1px solid var(--line); color:var(--muted); }
.woocommerce ul.order_details li strong{ color:var(--text); }

/* Cuenta / login */
.woocommerce-account .woocommerce{ color:var(--text); }
.woocommerce-MyAccount-navigation ul li a{ color:var(--text); }
.woocommerce-MyAccount-navigation ul li.is-active a{ color:var(--accent-2); }
.woocommerce form.login,.woocommerce form.register,.woocommerce-account .u-column1,.woocommerce-account .u-column2{
  background:var(--bg-2); border:1px solid var(--line)!important; border-radius:var(--radius); padding:1.6rem; }
.woocommerce-account:not(.logged-in) .ap-page .ap-entry{ max-width:none; }
.woocommerce-account:not(.logged-in) .ap-page-title{ text-align:center; }
.woocommerce-account:not(.logged-in) .woocommerce{ max-width:480px; margin-inline:auto; }
.woocommerce-account:not(.logged-in) form.login .form-row{ display:flex; flex-direction:column; gap:.4rem; }
.woocommerce-account:not(.logged-in) form.login label{ margin:0; }
.woocommerce-account:not(.logged-in) form.login .woocommerce-form__label-for-checkbox{ display:flex; flex-direction:row; align-items:center; gap:.5rem; color:var(--muted); }
.woocommerce-account:not(.logged-in) form.login .button{ width:100%; justify-content:center; text-align:center; }
.woocommerce-account:not(.logged-in) form.login input[type="checkbox"]{ accent-color:var(--accent); width:16px; height:16px; flex:0 0 auto; }
.woocommerce-lost-password .woocommerce-ResetPassword .form-row{ float:none!important; width:100%!important; margin-right:0!important; }
.woocommerce-lost-password .woocommerce-ResetPassword .woocommerce-Input,
.woocommerce-lost-password .woocommerce-ResetPassword input[type="text"],
.woocommerce-lost-password .woocommerce-ResetPassword .button,
.woocommerce-lost-password .woocommerce-ResetPassword input[type="submit"]{ width:100%; box-sizing:border-box; justify-content:center; text-align:center; }

/* ============================================================
   PÁGINAS / 404 / CATERING
   ============================================================ */
.ap-page{ padding-block:clamp(48px,7vw,90px); }
.ap-page__head{ margin-bottom:2rem; }
.ap-page-title{ font-family:var(--font-display); font-size:clamp(2rem,5vw,3.2rem); }
.ap-entry{ color:var(--muted); max-width:72ch; line-height:1.75; }
.ap-entry h2,.ap-entry h3{ color:var(--text); margin:1.8rem 0 .8rem; }
.ap-entry h2{ font-size:clamp(1.5rem,3vw,2rem); }
.ap-entry p{ margin-bottom:1em; }
.ap-entry a{ color:var(--accent-2); text-decoration:underline; text-underline-offset:3px; }
.ap-entry ul{ list-style:disc; padding-left:1.3rem; margin-bottom:1.2em; }
.ap-entry li{ margin-bottom:.4rem; }
.ap-entry img{ border-radius:var(--radius); margin:1.4rem 0; }
.ap-entry blockquote{ border-left:3px solid var(--accent); padding-left:1.2rem; margin:1.6rem 0; color:var(--text); font-style:italic; }
.ap-post-list{ display:flex; flex-direction:column; gap:1.6rem; max-width:none; }
.ap-post-item{ border-bottom:1px solid var(--line); padding-bottom:1.6rem; }

.ap-404{ text-align:center; padding-block:clamp(70px,12vw,150px); }
.ap-404__code{ font-family:var(--font-display); font-size:clamp(6rem,22vw,15rem); line-height:.8; color:var(--accent);
  filter:drop-shadow(0 0 60px rgba(200,90,44,.4)); }
.ap-404 p{ color:var(--muted); margin:1.2rem auto 2rem; font-size:1.1rem; max-width:52ch; }
.ap-404__btns{ display:flex; gap:.9rem; justify-content:center; flex-wrap:wrap; }

/* Catering */
.ap-catering__hero{ position:relative; text-align:center; padding-block:clamp(56px,9vw,110px);
  background:radial-gradient(100% 80% at 50% 0%, rgba(200,90,44,.2), transparent 58%), var(--bg-2); border-bottom:1px solid var(--line); }
.ap-catering__lead{ margin-inline:auto; margin-top:1.2rem; }
.ap-catering__body{ padding-block:clamp(48px,7vw,90px); }
.ap-catering__grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(1.6rem,4vw,3.4rem); align-items:start; }
.ap-catering__info .ap-h3{ margin-bottom:1.2rem; }
.ap-catering__points{ display:flex; flex-direction:column; gap:.8rem; margin-bottom:2rem; }
.ap-catering__points li{ display:flex; gap:.7rem; align-items:flex-start; color:var(--text); }
.ap-catering__points svg{ width:20px; height:20px; color:var(--accent-2); flex-shrink:0; margin-top:3px; }
.ap-catering__contact{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:1.4rem; }
.ap-catering__contact p{ color:var(--muted); margin-bottom:.9rem; }
.ap-catering__form-wrap{ background:var(--bg-2); border:1px solid var(--line); border-radius:var(--radius-lg); padding:clamp(1.4rem,3vw,2.4rem); }

/* Formulario */
.ap-form{ display:flex; flex-direction:column; gap:1.1rem; }
.ap-form__row{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.ap-field{ display:flex; flex-direction:column; gap:.4rem; min-width:0; }
.ap-field__label{ color:var(--muted); font-size:.8rem; font-weight:600; letter-spacing:.02em; }
.ap-field input,.ap-field textarea{ background:var(--panel); border:1px solid var(--line-2); color:var(--text);
  border-radius:var(--radius-sm); padding:.85rem 1rem; font-size:.98rem; font-family:inherit; width:100%;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease); }
.ap-field input::placeholder,.ap-field textarea::placeholder{ color:var(--muted); opacity:.7; }
.ap-field input:focus,.ap-field textarea:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(200,90,44,.18); }
.ap-field input[aria-invalid="true"],.ap-field textarea[aria-invalid="true"]{ border-color:#e0574a; box-shadow:0 0 0 3px rgba(224,87,74,.18); }
.ap-field__error{ color:#ef8378; font-size:.78rem; }
.ap-form__note{ color:var(--muted); font-size:.8rem; text-align:center; }
.ap-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.ap-notice{ border-radius:var(--radius-sm); padding:1rem 1.2rem; margin-bottom:1.4rem; border:1px solid var(--line-2); }
.ap-notice b{ display:block; margin-bottom:.2rem; }
.ap-notice--ok{ background:rgba(37,211,102,.12); border-color:rgba(37,211,102,.4); color:#c7f5da; }
.ap-notice--error{ background:rgba(224,87,74,.12); border-color:rgba(224,87,74,.4); color:#f6c9c3; }

/* ============================================================
   LIGHTBOX
   ============================================================ */
.ap-lb{ position:fixed; inset:0; z-index:120; display:none; align-items:center; justify-content:center; padding:clamp(16px,4vw,48px); }
.ap-lb.is-open{ display:flex; }
.ap-lb__scrim{ position:absolute; inset:0; background:rgba(8,6,5,.9); backdrop-filter:blur(6px); }
.ap-lb__stage{ position:relative; z-index:1; max-width:min(94vw,1100px); max-height:88vh; }
.ap-lb__img{ max-width:100%; max-height:82vh; width:auto; height:auto; border-radius:var(--radius); box-shadow:0 40px 120px -40px rgba(0,0,0,.9); }
.ap-lb__cap{ text-align:center; color:var(--text); margin-top:.9rem; font-size:.95rem; }
.ap-lb__btn{ position:absolute; z-index:2; width:48px; height:48px; border-radius:var(--radius-pill);
  background:rgba(15,11,9,.6); border:1px solid var(--line-2); color:#fff; display:flex; align-items:center; justify-content:center;
  transition:background .2s var(--ease); }
.ap-lb__btn:hover{ background:var(--accent); border-color:var(--accent); }
.ap-lb__btn svg{ width:24px; height:24px; }
.ap-lb__close{ top:calc(-56px); right:0; }
.ap-lb__prev{ left:clamp(4px,2vw,-64px); top:50%; transform:translateY(-50%); }
.ap-lb__next{ right:clamp(4px,2vw,-64px); top:50%; transform:translateY(-50%); }
.ap-lb__next svg{ transform:rotate(180deg); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .ap-nav{ display:none; }
  .ap-burger{ display:inline-flex; }
  .ap-actions__cta{ display:none; }
  .ap-grid-4{ grid-template-columns:repeat(2,1fr); }
  .ap-steps{ grid-template-columns:repeat(2,1fr); }
  .ap-steps .ap-step::after{ display:none; }
  .ap-footer__grid{ grid-template-columns:1fr 1fr; }
  .ap-footer__brand{ grid-column:1/-1; }
  .single-product .related ul.products,.single-product .upsells ul.products{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:860px){
  .ap-historia__inner,.ap-anillo__inner{ grid-template-columns:1fr; }
  .ap-historia__media{ order:-1; aspect-ratio:16/11; max-height:420px; }
  .ap-anillo__art{ order:-1; }
  .ap-anillo__ring{ width:min(70%,300px); }
  .ap-grid-3,.ap-strip__list{ grid-template-columns:1fr; }
  .ap-mosaic{ grid-template-columns:repeat(2,1fr); grid-auto-rows:180px; }
  .ap-tile.is-wide{ grid-column:span 2; }
  .ap-tile.is-tall{ grid-row:span 1; }
  .woocommerce ul.products.ap-shop-grid,ul.products.ap-shop-grid,ul.ap-shop-grid{ grid-template-columns:repeat(2,1fr); }
  .single-product div.product{ grid-template-columns:1fr; }
  .single-product.woocommerce div.product div.images.woocommerce-product-gallery{ position:static; top:auto; }
  .ap-catering__grid{ grid-template-columns:1fr; }
  .ap-catering__form-wrap{ order:-1; }
  .wc-block-cart.wc-block-components-sidebar-layout{ grid-template-columns:1fr; }
  .wc-block-cart .wc-block-cart__sidebar{ position:static; }
}
@media (max-width:600px){
  .ap-grid-4,.ap-grid-2{ grid-template-columns:1fr; }
  .ap-steps{ grid-template-columns:1fr; }
  .ap-mosaic{ grid-template-columns:1fr; grid-auto-rows:200px; }
  .ap-tile.is-wide{ grid-column:span 1; }
  .woocommerce ul.products.ap-shop-grid,ul.products.ap-shop-grid,ul.ap-shop-grid{ grid-template-columns:1fr; }
  .single-product .related ul.products,.single-product .upsells ul.products{ grid-template-columns:1fr; }
  .ap-footer__grid{ grid-template-columns:1fr; }
  .ap-form__row{ grid-template-columns:1fr; }
  .ap-ficha-extra{ grid-template-columns:1fr; }
  .ap-hero__stats{ gap:1.4rem; }
  .ap-wa-float__label{ display:none; }
  .ap-wa-float{ padding:.9rem; }
  .ap-wa-float svg{ width:28px; height:28px; }
  /* full-bleed 100vw a 100% para no provocar overflow. */
  .ap-rich{ width:100%; left:auto; right:auto; margin-left:0; margin-right:0; }
  .woocommerce-cart .ap-woo-main > .ap-container{ padding-inline:0; }
}
@media (max-width:380px){
  .ap-h1,.ap-hero__title{ font-size:clamp(2.3rem,12.5vw,3.2rem); word-break:break-word; }
  .ap-logo__word{ font-size:1.1rem; }
}
