/* ==================================================================
   Num3ralia — sistema de diseño del child theme (dirección aprobada)
   Prefijo n3- para no colisionar con Bricks ni WooCommerce.
   Componentes renderizados por los elementos a medida:
     num3ralia-header · num3ralia-hero-videos · num3ralia-home · num3ralia-footer

   NOTA DE ESCALA: Bricks fija el root font-size en 10px (62.5%),
   así que aquí 1rem = 10px. Los tamaños de texto están calibrados a
   esa base (labels ~1.1–1.2rem = 11–12px, cuerpo ~1.45–1.5rem = 14–15px).
   ================================================================== */

/* Fuente de marca para titulares (Calps, Typesketchbook). Solo display;
   cuerpo y números siguen en sus fuentes legibles. */
@font-face{
  font-family:"Calps";
  src:url("../fonts/calps-regular.ttf") format("truetype");
  font-weight:400;font-style:normal;font-display:swap;
}
/* Corte bold real (Calps Bold Italic). Familia aparte para aplicarlo solo donde
   lo pidamos (ahora, el titular del hero) y no arrastrar el resto de titulares. */
@font-face{
  font-family:"Calps Bold";
  src:url("../fonts/calps-bold-italic.ttf") format("truetype");
  font-display:swap;
}
@font-face{
  font-family:"Freestyle Script";
  src:url("../fonts/freestyle-script.ttf") format("truetype");
  font-weight:400 700;
  font-display:swap;
}

:root{
  --n3-ink:#1B1A18; --n3-graphite:#3A3B3C; --n3-paper:#E8E6E1; --n3-surface:#FBFAF8;
  --n3-line:rgba(27,26,24,.14);
  --n3-brass:#A07C46; --n3-brass-deep:#7C5E32; --n3-brass-lite:#C9A86A;
  --n3-orange:#F0801B; /* naranja del logo */
  --n3-mono:ui-monospace,"SF Mono","SFMono-Regular","JetBrains Mono",Menlo,Consolas,monospace;
  /* Titulares/marca: Calps al frente, con caída a serif del sistema.
     El cuerpo (sans por defecto) y los números (--n3-mono) no se tocan. */
  --n3-serif:"Calps","Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;
  --n3-maxw:1180px; --n3-gutter:clamp(1.1rem,4vw,2.5rem);
}

/* ---------- primitivos ---------- */
.n3-wrap{max-width:var(--n3-maxw);margin-inline:auto;padding-inline:var(--n3-gutter)}
.n3-eyebrow{font-family:var(--n3-mono);font-size:1.2rem;letter-spacing:.18em;text-transform:uppercase;color:var(--n3-brass-deep);margin:0}
.n3-btn{display:inline-flex;align-items:center;gap:.55em;font:600 1.45rem/1 inherit;
  padding:.9em 1.5em;border:1px solid var(--n3-ink);cursor:pointer;text-decoration:none;
  transition:transform .18s ease,background .18s ease,color .18s ease}
.n3-btn--solid{background:var(--n3-ink);color:var(--n3-surface)}
.n3-btn--solid:hover{background:var(--n3-brass-deep);border-color:var(--n3-brass-deep)}
.n3-btn--ghost{background:transparent;color:var(--n3-ink)}
.n3-btn--ghost:hover{background:var(--n3-ink);color:var(--n3-surface)}
.n3-btn--brass{background:var(--n3-brass);border-color:var(--n3-brass);color:#fff}
.n3-btn--brass:hover{background:var(--n3-brass-deep);border-color:var(--n3-brass-deep)}
@media (hover:hover){.n3-btn:hover{transform:translateY(-2px)}}
.n3-sec{padding-block:clamp(3.2rem,8vw,5.5rem)}
.n3-sec-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:2.4rem;flex-wrap:wrap}
.n3-sec-head h2{font-family:var(--n3-serif);font-weight:600;line-height:1.05;letter-spacing:-.01em;
  text-wrap:balance;font-size:clamp(2.2rem,4vw,3rem);margin:.5rem 0 0}

/* ==================================================================
   HEADER + MEGAMENÚ  (elemento num3ralia-header)
   ================================================================== */
.n3-topbar{background:#000;color:#fff;font-family:var(--n3-serif);font-size:1.35rem;letter-spacing:.02em;overflow:hidden}
/* Marquesina en bucle (derecha → izquierda), 2 pistas para llenar siempre el ancho */
.n3-mq{display:flex;overflow:hidden;width:100%}
.n3-mq-track{flex-shrink:0;display:flex;align-items:center;justify-content:space-around;min-width:100%;padding-block:.6rem;animation:n3-mq 45s linear infinite;will-change:transform}
.n3-mq:hover .n3-mq-track{animation-play-state:paused}
.n3-mq-item{padding:0 1.4rem;font-weight:600;white-space:nowrap}
.n3-mq-sep{color:var(--n3-brass-lite);opacity:.8}
@keyframes n3-mq{to{transform:translateX(-100%)}}
/* Botón flotante de WhatsApp */
.n3-wa-float{position:fixed;right:22px;bottom:22px;z-index:9999;width:58px;height:58px;border-radius:50%;
  background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;text-decoration:none;
  box-shadow:0 10px 26px -6px rgba(0,0,0,.55);transition:transform .18s ease,box-shadow .18s ease}
.n3-wa-float svg{width:34px;height:34px;display:block}
@media (hover:hover){.n3-wa-float:hover{transform:translateY(-3px) scale(1.06);color:#fff;box-shadow:0 14px 30px -6px rgba(0,0,0,.6)}}
@media (max-width:600px){.n3-wa-float{right:14px;bottom:14px;width:52px;height:52px}.n3-wa-float svg{width:30px;height:30px}}

.n3-site-head{position:sticky;top:0;z-index:100;background:#fff;
  border-bottom:1px solid var(--n3-line)}
.n3-bar{display:flex;align-items:center;gap:1.5rem;padding-block:.85rem}
.n3-topbar .n3-wrap,.n3-site-head .n3-wrap{max-width:1340px}
.n3-logo img{height:56px;width:auto;display:block}
.n3-nav-toggle{display:none}
/* El <nav> es un flex-item de .n3-bar: con margin auto se centra entre logo e
   iconos (y estos quedan a los extremos), como en el mockup. */
.n3-nav-wrap{margin-inline:auto}
.n3-nav{display:flex;gap:1.4rem;margin:0 auto;padding:0;list-style:none;font-family:var(--n3-serif);font-size:1.6rem;font-weight:500}
.n3-nav>li{position:relative}
.n3-nav>li>a{display:inline-flex;align-items:center;gap:.4em;padding-block:.4em;color:var(--n3-ink);
  text-decoration:none;border-bottom:2px solid transparent;transition:border-color .15s}
.n3-nav>li>a:hover{border-color:var(--n3-brass)}
.n3-caret{width:9px;height:9px;stroke:currentColor;stroke-width:2;fill:none;transition:transform .2s}
.n3-site-head:has(.n3-has-mega:hover) .n3-caret{transform:rotate(180deg)}
.n3-icons{display:flex;gap:.35rem}
.n3-icons a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;transition:background .15s;color:var(--n3-ink)}
.n3-icons a:hover{background:rgba(27,26,24,.08)}
.n3-icons svg{width:20px;height:20px;stroke:var(--n3-ink);stroke-width:1.6;fill:none}
.n3-cart{position:relative}
.n3-cart .n3-dot{position:absolute;top:4px;right:4px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;
  background:var(--n3-brass);color:#fff;font:600 10px/15px var(--n3-mono);text-align:center}
.n3-burger{display:none}

.n3-mega{position:absolute;left:0;right:0;top:100%;background:var(--n3-surface);
  border-top:1px solid var(--n3-line);border-bottom:1px solid var(--n3-line);
  box-shadow:0 26px 44px -26px rgba(27,26,24,.45);
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:90}
.n3-site-head:has(.n3-has-mega:hover) .n3-mega,
.n3-site-head:has(.n3-has-mega:focus-within) .n3-mega,
.n3-site-head:has(.n3-mega:hover) .n3-mega{opacity:1;visibility:visible;transform:none}
.n3-mega-in{display:grid;grid-template-columns:repeat(3,1fr) 1.1fr;gap:2rem;padding-block:2rem}
.n3-mega-col h4{font-family:var(--n3-mono);font-size:1.2rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--n3-brass-deep);margin:0 0 .9rem;padding-bottom:.6rem;border-bottom:1px solid var(--n3-line)}
.n3-mega-col ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;font-size:1.45rem}
.n3-mega-col a{color:var(--n3-ink);text-decoration:none}
.n3-mega-col a:hover{color:var(--n3-brass-deep)}
.n3-mega-promo{background:var(--n3-ink);color:var(--n3-paper);padding:1.5rem;display:flex;flex-direction:column;justify-content:space-between;gap:1.2rem}
.n3-mega-promo h4{color:#fff;font-family:var(--n3-serif);font-size:1.6rem;margin:0}
.n3-mega-promo p{font-size:1.35rem;color:#b9b5ad;margin:0}

/* ---------- Buscador (panel desplegable bajo la cabecera) ---------- */
.n3-search-panel{position:absolute;left:0;right:0;top:100%;background:var(--n3-surface);
  border-top:1px solid var(--n3-line);border-bottom:1px solid var(--n3-line);
  box-shadow:0 26px 44px -26px rgba(27,26,24,.45);
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:95}
.n3-site-head.n3-search-open .n3-search-panel{opacity:1;visibility:visible;transform:none}
.n3-search-form{display:flex;gap:.9rem;align-items:center;padding-block:1.4rem}
.n3-search-input{flex:1;min-width:0;font-family:var(--n3-serif);font-size:clamp(1.7rem,2.4vw,2.2rem);
  padding:.4em .1em;border:0;border-bottom:2px solid var(--n3-line);background:transparent;color:var(--n3-ink)}
.n3-search-input::placeholder{color:var(--n3-graphite);opacity:.6}
.n3-search-input:focus{outline:none;border-bottom-color:var(--n3-brass)}
.n3-search-form .n3-btn{flex:none}
/* Resultados en vivo (autocompletar) */
.n3-search-results{display:none;margin:0 0 1.4rem;border:1px solid var(--n3-line);background:var(--n3-surface);max-height:60vh;overflow:auto}
.n3-search-results.is-open{display:block}
.n3-sr-item{display:flex;align-items:center;gap:1rem;padding:.7rem .9rem;border-bottom:1px solid var(--n3-line);color:var(--n3-ink);text-decoration:none}
.n3-sr-item:last-child{border-bottom:0}
.n3-sr-item:hover{background:var(--n3-paper)}
.n3-sr-item img,.n3-sr-noimg{width:46px;height:46px;object-fit:cover;flex:none;background:var(--n3-paper);border:1px solid var(--n3-line)}
.n3-sr-name{flex:1;min-width:0;font-family:var(--n3-serif);font-size:1.5rem;line-height:1.2}
.n3-sr-price{font-family:var(--n3-mono);font-size:1.3rem;color:var(--n3-graphite);white-space:nowrap}
.n3-sr-empty{padding:1.1rem .9rem;font-family:var(--n3-mono);font-size:1.3rem;color:var(--n3-graphite)}

/* ==================================================================
   HERO 3 VÍDEOS  (elemento num3ralia-hero-videos)
   ================================================================== */
.n3-hero{background:var(--n3-paper);border-bottom:1px solid var(--n3-line)}
.n3-hero-intro{text-align:center;padding:clamp(3rem,6vw,4.4rem) 1.2rem clamp(2rem,4vw,3rem)}
.n3-hero-intro h1{font-family:"Calps Bold",var(--n3-serif);font-weight:700;line-height:1.05;
  font-size:clamp(1.7rem,5.2vw,4.8rem);margin:.5rem 0 0;white-space:nowrap;
  text-transform:uppercase;display:inline-block;position:relative}
/* Subrayado animado: barra en gradiente latón que fluye suavemente. */
.n3-hero-intro h1::after{content:"";display:block;height:.075em;margin-top:.16em;border-radius:2px;
  background:linear-gradient(90deg,var(--n3-brass-deep),var(--n3-brass-lite),var(--n3-brass-deep));
  background-size:200% 100%;animation:n3-underflow 5s linear infinite}
@keyframes n3-underflow{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.n3-hero-intro h1::after{animation:none}}
.n3-hero-videos{position:relative;min-height:clamp(340px,42vw,480px);background:var(--n3-paper)}
.n3-vpanel{position:absolute;inset:0;overflow:hidden;color:#fff;text-decoration:none;background:linear-gradient(150deg,#3a3b3c,#1b1a18)}
.n3-vpanel:nth-child(1){clip-path:polygon(0 0,39.5% 0,24.5% 100%,0 100%)}
.n3-vpanel:nth-child(2){clip-path:polygon(40.3% 0,71.5% 0,56.5% 100%,25.3% 100%);background:linear-gradient(150deg,#4a4437,#211d16)}
.n3-vpanel:nth-child(3){clip-path:polygon(72.3% 0,100% 0,100% 100%,57.3% 100%)}
.n3-v-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;opacity:.85}
/* Vídeo del panel del hero: oculto en reposo, se reproduce al pasar el ratón */
.n3-vpanel .n3-v-video{opacity:0;z-index:1;transition:opacity .3s ease}
@media (hover:hover){.n3-vpanel.has-video:hover .n3-v-video{opacity:1}}
/* En escritorio cada panel es full-width y solo se ve su franja diagonal; si la
   imagen cubriera el hero entero saldría gigante (solo verías 1/3 de su ancho).
   La confinamos al recuadro de SU franja para que la foto se vea encuadrada. */
@media (min-width:901px){
  .n3-vpanel:nth-child(1) .n3-v-media{left:0;right:auto;width:42%}
  .n3-vpanel:nth-child(2) .n3-v-media{left:24%;right:auto;width:49%}
  .n3-vpanel:nth-child(3) .n3-v-media{left:auto;right:0;width:44%}
}
/* Barrido dorado desactivado: el cliente no quiere el sombreado naranja en el hero. */
.n3-glow{display:none}
.n3-vpanel:nth-child(2) .n3-glow{animation-delay:-2.3s}
.n3-vpanel:nth-child(3) .n3-glow{animation-delay:-4.6s}
@keyframes n3-sweep{from{transform:translateX(-22%)}to{transform:translateX(22%)}}
.n3-v-inner{position:absolute;top:50%;transform:translate(-50%,-50%);width:26%;text-align:center;z-index:2}
.n3-vpanel:nth-child(1) .n3-v-inner{left:16%}
.n3-vpanel:nth-child(2) .n3-v-inner{left:48%}
.n3-vpanel:nth-child(3) .n3-v-inner{left:80%}
.n3-v-play{display:grid;place-items:center;width:56px;height:56px;margin:0 auto .9rem;border-radius:50%;border:1.5px solid rgba(255,255,255,.7);transition:background .2s,border-color .2s}
.n3-v-play svg{width:20px;height:20px;fill:#fff;margin-left:3px}
.n3-v-idx{font-family:var(--n3-mono);font-size:1.2rem;letter-spacing:.16em;color:var(--n3-brass-lite);text-transform:uppercase}
.n3-v-title{display:block;font-family:var(--n3-serif);font-size:clamp(2.2rem,3.4vw,3rem);line-height:1.08;margin:.15rem 0 .5rem}
.n3-v-cap{font-family:var(--n3-mono);font-size:1.5rem;letter-spacing:.04em;color:rgba(255,255,255,.85);display:block}
.n3-v-go{display:inline-block;margin-top:.9rem;font-family:var(--n3-mono);font-size:1.35rem;letter-spacing:.12em;color:#fff;opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s}
.n3-vpanel:hover .n3-v-go{opacity:1;transform:none}
/* Sin sombreado/naranja al hover: el cursor (mano, por ser <a>) es la única señal. */

/* ==================================================================
   BANNER NOVEDAD / OFERTA  (elemento num3ralia-banner-novedad)
   Franja ancha y clicable pensada para ir ENCIMA del hero.
   ================================================================== */
.n3-banner{position:relative;display:block;overflow:hidden;isolation:isolate;
  color:#fff;text-decoration:none;
  margin:clamp(14px,3vw,30px);
  border-radius:clamp(16px,2.2vw,26px);
  /* Sombra en tres capas: superior (Y negativo) + contacto cercano +
     ambiental amplia = profundidad por arriba y por abajo. */
  box-shadow:0 -10px 28px -12px rgba(27,26,24,.5), 0 4px 12px -4px rgba(27,26,24,.45), 0 30px 60px -22px rgba(27,26,24,.7);
  background:linear-gradient(120deg,#211d16,#3a3b3c)}
/* El alto lo marca la IMAGEN (en flujo, height:auto → no se recorta). Solo si no
   hay imagen se aplica un alto mínimo para que la franja no colapse. */
.n3-banner--noimg{min-height:clamp(200px,28vw,340px)}
.n3-banner-img{display:block;width:100%;height:auto;transition:transform .5s ease}
/* Segunda imagen (hover): superpuesta y cruzada. Cubre el mismo hueco que la
   principal (que es la que marca el alto). Mejor usar dos imágenes del mismo tamaño. */
.n3-banner-img-back{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;z-index:0;transition:opacity .5s ease}
/* Dos banners apilados (banner + banner 2 con vídeo), uno debajo del otro */
.n3-banner-pair{display:flex;flex-direction:column}
.n3-banner-pair .n3-banner{flex:0 0 auto;min-width:0}
/* Vídeo del banner 2: se reproduce al pasar el ratón (foto de póster de fondo) */
.n3-banner--video .n3-banner-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;z-index:1;transition:opacity .3s ease;pointer-events:none}
@media (hover:hover){.n3-banner--video:hover .n3-banner-video{opacity:1}}
.n3-banner-shade{position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(27,26,24,.80) 0%,rgba(27,26,24,.48) 42%,rgba(27,26,24,.10) 100%)}
.n3-banner-in{position:absolute;inset:0;z-index:2;max-width:var(--n3-maxw);margin-inline:auto;
  display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
  gap:1.1rem;padding:clamp(2rem,5vw,3.4rem) var(--n3-gutter)}
.n3-banner-badge{font-family:var(--n3-mono);font-size:1.15rem;letter-spacing:.16em;text-transform:uppercase;
  background:var(--n3-brass);color:#fff;padding:.5em 1em;border-radius:999px}
.n3-banner-title{display:block;font-family:var(--n3-serif);font-weight:600;line-height:1.05;letter-spacing:-.01em;
  font-size:clamp(2.2rem,4.2vw,3.4rem);max-width:20ch;text-wrap:balance;margin:.2rem 0 0}
.n3-banner-sub{display:block;font-family:var(--n3-serif);font-size:clamp(1.45rem,2vw,1.75rem);line-height:1.5;
  color:rgba(255,255,255,.86);max-width:48ch}
.n3-banner-cta{display:inline-flex;align-items:center;gap:.5em;margin-top:1rem;
  font-family:var(--n3-mono);font-weight:600;font-size:1.3rem;letter-spacing:.08em;text-transform:uppercase;
  color:#fff;background:var(--n3-brass);border:1px solid var(--n3-brass);padding:.85em 1.4em;
  transition:background .18s ease,border-color .18s ease}
.n3-banner-cta svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media (hover:hover){
  .n3-banner:hover .n3-banner-img{transform:scale(1.04)}
  .n3-banner:hover .n3-banner-cta{background:var(--n3-brass-deep);border-color:var(--n3-brass-deep)}
  /* Con imagen de hover: cruce entre las dos (sin zoom, la regla va después). */
  .n3-banner--swap:hover .n3-banner-img{transform:none}
  .n3-banner--swap:hover .n3-banner-img-back{opacity:1}
}
@media (max-width:600px){
  .n3-banner--noimg{min-height:clamp(240px,64vw,320px)}
  .n3-banner-shade{background:linear-gradient(180deg,rgba(27,26,24,.30) 0%,rgba(27,26,24,.55) 55%,rgba(27,26,24,.82) 100%)}
}

/* ==================================================================
   HOME  (elemento num3ralia-home): trust · áreas · banda · destacados · proceso · cta
   ================================================================== */
.n3-trust{background:var(--n3-surface);border-bottom:1px solid var(--n3-line)}
.n3-trust-in{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:0}
.n3-trust .n3-cell{padding:1.4rem var(--n3-gutter);text-align:center}
.n3-trust .n3-cell + .n3-cell{box-shadow:-1px 0 0 var(--n3-line)}
.n3-trust b{font-family:var(--n3-serif);font-size:1.7rem;font-variant-numeric:tabular-nums}
.n3-trust span{display:block;font-family:var(--n3-mono);font-size:1.2rem;letter-spacing:.12em;text-transform:uppercase;color:var(--n3-graphite);margin-top:.3rem}

.n3-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.n3-cat{position:relative;display:flex;flex-direction:column;justify-content:flex-end;aspect-ratio:3/4;padding:1.35rem;color:#fff;text-decoration:none;overflow:hidden;isolation:isolate;border:1px solid rgba(0,0,0,.4);transition:transform .25s ease}
.n3-cat::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;background:repeating-linear-gradient(115deg,rgba(255,255,255,.05) 0 2px,transparent 2px 7px)}
.n3-cat:nth-child(1){background:linear-gradient(160deg,var(--n3-brass-lite),var(--n3-brass) 55%,var(--n3-brass-deep))}
.n3-cat:nth-child(2){background:linear-gradient(160deg,#5a5c5f,#3a3b3d 55%,#242526)}
.n3-cat:nth-child(3){background:linear-gradient(160deg,#332e27,#221e18 58%,#141210)}
.n3-cat .n3-c-idx{position:absolute;top:.2rem;right:1rem;z-index:0;font-family:var(--n3-mono);font-weight:600;
  font-size:clamp(5rem,11vw,8.5rem);line-height:1;letter-spacing:-.03em;color:#fff;opacity:.14;font-variant-numeric:tabular-nums}
.n3-cat h3{font-family:var(--n3-serif);color:#fff;font-size:1.8rem;margin:0;position:relative;z-index:1}
.n3-cat .n3-c-desc{margin:.3rem 0 0;font-size:1.35rem;color:rgba(255,255,255,.85);line-height:1.45;position:relative;z-index:1}
.n3-cat .n3-c-soon{position:absolute;top:1.35rem;left:1.35rem;z-index:1;font-family:var(--n3-mono);font-size:1.1rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.4);padding:.32em .6em;border-radius:2px}
@media (hover:hover){.n3-cat:hover{transform:translateY(-6px)}}

.n3-band{background:var(--n3-ink);color:var(--n3-paper)}
/* Resaltado de la columna del color seleccionado en la matriz de pedido. */
.n3-matrix td.is-colsel{background:rgba(160,124,70,.12)}
.n3-matrix thead th.is-colsel{background:var(--n3-brass);color:#fff}
/* Galería "Trabajos realizados" */
.n3-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.n3-gitem{margin:0;position:relative;overflow:hidden;border-radius:14px;aspect-ratio:4/3;background:var(--n3-paper)}
.n3-gitem img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.n3-gitem figcaption{position:absolute;inset:auto 0 0 0;padding:.7em .9em;font-family:var(--n3-mono);font-size:1.15rem;letter-spacing:.04em;color:#fff;background:linear-gradient(transparent,rgba(27,26,24,.72))}
@media (hover:hover){.n3-gitem:hover img{transform:scale(1.05)}}
@media (max-width:600px){.n3-gallery{grid-template-columns:1fr 1fr;gap:.8rem}}
.n3-band .n3-eyebrow{color:var(--n3-brass-lite)}
.n3-band h2{font-family:var(--n3-serif);color:var(--n3-surface);font-size:clamp(2rem,3.6vw,2.6rem);margin:.6rem 0 1.6rem;max-width:22ch;line-height:1.1}
.n3-numrow{display:flex;gap:clamp(.6rem,2vw,1.4rem);flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.16);padding-top:1.4rem}
.n3-numrow span{font-family:var(--n3-mono);font-variant-numeric:tabular-nums;font-size:clamp(2.2rem,5vw,3.4rem);color:var(--n3-brass-lite);font-weight:500}
.n3-numrow span:nth-child(3n){color:var(--n3-surface)}

.n3-prods{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.n3-card{display:block;color:inherit;text-decoration:none;background:var(--n3-surface);border:1px solid var(--n3-line);overflow:hidden;transition:box-shadow .25s ease}
.n3-card .n3-thumb{position:relative;aspect-ratio:1/1;border-bottom:1px solid var(--n3-line);background:linear-gradient(150deg,#e6e2da,#f6f4ef 50%,#ded9d0)}
/* Imágenes de producto reales + swap a la galería al hover */
.n3-thumb .n3-pimg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:7%;box-sizing:border-box;transition:opacity .4s ease}
.n3-thumb .n3-pimg-back{opacity:0}
@media (hover:hover){.n3-card:hover .n3-pimg-back{opacity:1}}
.n3-face{position:absolute;inset:0;display:grid;place-items:center;transition:opacity .4s ease}
.n3-face.n3-front{background:linear-gradient(150deg,#e6e2da,#f6f4ef 50%,#ded9d0)}
.n3-face.n3-back{background:linear-gradient(150deg,#dcd7ce,#eceae4 50%,#d3cdc3);opacity:0}
.n3-card:hover .n3-face.n3-back{opacity:1}
.n3-card:hover .n3-face.n3-front{opacity:0}
.n3-face .n3-mk{font-family:var(--n3-serif);font-size:2.6rem;color:var(--n3-graphite);opacity:.7;font-variant-numeric:tabular-nums}
.n3-face .n3-lbl{position:absolute;bottom:.7rem;left:.7rem;font-family:var(--n3-mono);font-size:1.1rem;letter-spacing:.12em;background:rgba(27,26,24,.72);color:#fff;padding:.28em .6em;border-radius:2px;text-transform:uppercase}
.n3-swap-badge{position:absolute;top:.7rem;right:.7rem;z-index:3;font-family:var(--n3-mono);font-size:1.1rem;letter-spacing:.08em;background:rgba(255,255,255,.85);border:1px solid var(--n3-line);padding:.28em .55em;border-radius:2px;text-transform:uppercase}
.n3-card .n3-body{padding:1.15rem 1.2rem 1.35rem}
.n3-card h3{font-family:var(--n3-serif);font-size:1.6rem;margin:0}
.n3-card .n3-tag{font-family:var(--n3-mono);font-size:1.2rem;letter-spacing:.14em;text-transform:uppercase;color:var(--n3-brass-deep)}
.n3-card .n3-price{margin-top:.7rem;font-family:var(--n3-serif);font-weight:600;font-size:1.6rem}
.n3-card .n3-price em{font-style:normal;color:var(--n3-graphite);font-size:1.3rem}
@media (hover:hover){.n3-card:hover{box-shadow:0 20px 40px -24px rgba(27,26,24,.5)}}

.n3-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem}
.n3-step{border-top:2px solid var(--n3-ink);padding-top:1rem}
.n3-step .n3-n{font-family:var(--n3-mono);font-size:1.2rem;letter-spacing:.08em;color:var(--n3-brass-deep)}
.n3-step h3{font-family:var(--n3-serif);font-size:1.5rem;margin:.5rem 0 .4rem}
.n3-step p{color:var(--n3-graphite);font-size:1.45rem;margin:0;line-height:1.5}

.n3-quote{background:var(--n3-surface);border-block:1px solid var(--n3-line)}
.n3-quote-in{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:clamp(2.6rem,6vw,4rem);flex-wrap:wrap}
.n3-quote h2{font-family:var(--n3-serif);font-size:clamp(2rem,3.6vw,2.6rem);max-width:18ch;margin:0}
.n3-quote p{color:var(--n3-graphite);margin:.6rem 0 0;max-width:42ch;font-size:1.5rem;line-height:1.5}

/* ==================================================================
   FOOTER  (elemento num3ralia-footer)
   ================================================================== */
.n3-foot{background:var(--n3-ink);color:#b9b5ad;font-size:1.45rem;margin-top:clamp(3.5rem,7vw,6rem)}
.n3-foot-in{padding-block:clamp(2.8rem,6vw,4rem)}
.n3-foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:2rem}
.n3-foot-top>div:first-child{max-width:34ch}
.n3-foot-top p{margin:0;line-height:1.55}
.n3-foot .n3-flogo{height:34px;filter:brightness(0) invert(1);margin-bottom:1rem}
.n3-foot h4{font-family:var(--n3-mono);font-size:1.2rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;margin:0 0 1rem}
.n3-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.n3-foot a{color:inherit;text-decoration:none}
.n3-foot a:hover{color:var(--n3-brass-lite)}
.n3-social{display:flex;gap:.6rem;margin-top:1.1rem}
.n3-social a{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.2);border-radius:50%}
.n3-social a:hover{border-color:var(--n3-brass-lite);background:rgba(255,255,255,.05)}
.n3-social svg{width:18px;height:18px;fill:#e6e2da}
.n3-pays{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:1rem}
.n3-pays span{font-family:var(--n3-mono);font-size:1.1rem;letter-spacing:.08em;border:1px solid rgba(255,255,255,.2);padding:.35em .6em;color:#cfcbc3;border-radius:3px}
.n3-foot-bot{margin-top:2.6rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.14);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-family:var(--n3-mono);font-size:1.2rem;letter-spacing:.04em;color:#8f8b83}

/* ==================================================================
   WOOCOMMERCE — Tienda/categoría y ficha de producto (sistema n3)
   ================================================================== */

/* ---------- Cabecera de archivo ---------- */
body.tax-product_cat h1.title,
body.post-type-archive-product h1.title,
.woocommerce-products-header__title{
  font-family:var(--n3-serif);font-weight:600;letter-spacing:-.01em;line-height:1.03;
  font-size:clamp(3.4rem,6vw,5.2rem);text-align:left;margin:0 0 1.6rem}

/* ---------- Barra: nº de resultados + orden ---------- */
.woocommerce-result-count{font-family:var(--n3-mono);font-size:1.2rem;letter-spacing:.08em;text-transform:uppercase;color:var(--n3-graphite);margin:0}
/* Barra superior del listado: el selector de orden, compacto y a la derecha. */
.bricks-before-shop-loop{display:flex;justify-content:flex-end;align-items:center;gap:1rem;margin:0 0 1rem}
.woocommerce-ordering{margin:0 0 0 auto}
select.orderby,.woocommerce-ordering select{font-family:var(--n3-mono);font-size:1.1rem;color:var(--n3-graphite);
  padding:.4em 1.9em .4em .7em;border:1px solid var(--n3-line);background:var(--n3-surface);border-radius:0;cursor:pointer}

/* ---------- Rejilla de productos ---------- */
ul.products{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;margin:0;padding:0;list-style:none}
ul.products.columns-3{grid-template-columns:repeat(3,1fr)}
/* Categorías de PACKS: tarjetas más grandes que llenan SIEMPRE el ancho.
   auto-fit hace que, con pocos productos, se estiren en vez de alinearse a la izq. */
/* Flex centrado: hasta 3 por fila, un poco más grandes que las normales, y las
   filas incompletas (y un solo producto) quedan CENTRADAS, no a la izquierda. */
body.n3-packs-archive ul.products{display:flex;flex-wrap:wrap;justify-content:center;gap:1.6rem}
body.n3-packs-archive ul.products li.product{flex:0 1 330px;max-width:330px}
@media (max-width:560px){body.n3-packs-archive ul.products li.product{flex-basis:100%;max-width:100%}}
body.n3-packs-archive ul.products li.product .woocommerce-loop-product__title{font-size:1.65rem;padding:1.2rem 1.3rem .3rem}
body.n3-packs-archive ul.products li.product .price{font-size:1.8rem;padding:0 1.3rem 1.2rem}
ul.products li.product{float:none;width:auto;margin:0;padding:0;position:relative;
  background:var(--n3-surface);border:1px solid var(--n3-line);overflow:hidden;
  display:flex;flex-direction:column;transition:box-shadow .25s ease,transform .25s ease}
@media (hover:hover){ul.products li.product:hover{box-shadow:0 20px 40px -24px rgba(27,26,24,.5);transform:translateY(-4px)}}
ul.products li.product .onsale{position:absolute;top:.7rem;left:.7rem;z-index:3;margin:0;min-height:0;min-width:0;line-height:1;
  font-family:var(--n3-mono);font-size:1.1rem;letter-spacing:.08em;text-transform:uppercase;
  background:var(--n3-brass);color:#fff;border:0;border-radius:2px;padding:.3em .6em}

ul.products li.product a.woocommerce-LoopProduct-link{position:relative;display:flex;flex-direction:column;flex:1 1 auto;color:inherit;text-decoration:none}
ul.products li.product a.woocommerce-LoopProduct-link img,
ul.products li.product img.attachment-woocommerce_thumbnail{width:100%;aspect-ratio:1/1;height:auto;object-fit:cover;display:block;margin:0;border-bottom:1px solid var(--n3-line)}
ul.products li.product img.n3-swap-back{position:absolute;top:0;left:0;width:100%;aspect-ratio:1/1;height:auto;object-fit:cover;opacity:0;transition:opacity .45s ease;pointer-events:none;border-bottom:1px solid var(--n3-line)}
@media (hover:hover){ul.products li.product:hover img.n3-swap-back{opacity:1}}
/* Vídeo en la tarjeta del listado (se reproduce al pasar el ratón) */
ul.products li.product .n3-card-video{position:absolute;top:0;left:0;width:100%;aspect-ratio:1/1;height:auto;object-fit:cover;opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:2;border-bottom:1px solid var(--n3-line)}
@media (hover:hover){ul.products li.product:hover .n3-card-video{opacity:1}}
ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--n3-serif);font-weight:600;font-size:1.55rem;line-height:1.22;color:var(--n3-ink);
  padding:1.1rem 1.2rem .3rem;margin:0;text-align:center}
/* Precio oculto en las tarjetas del listado/categorías: solo se ve dentro del producto. */
ul.products li.product .price{display:none}
ul.products li.product .price del{color:var(--n3-graphite);opacity:.55;margin-right:.4em;font-weight:400}
ul.products li.product .price ins{text-decoration:none;color:var(--n3-brass-deep)}

/* Botón de la tarjeta */
ul.products li.product a.button{margin:0 1.2rem 1.2rem;align-self:flex-start;
  display:inline-flex;align-items:center;gap:.5em;font:600 1.35rem/1 inherit;letter-spacing:.01em;text-transform:none;
  padding:.9em 1.4em;background:var(--n3-ink);color:var(--n3-surface);border:1px solid var(--n3-ink);
  border-radius:0;text-decoration:none;transition:background .18s,border-color .18s}
ul.products li.product a.button:hover{background:var(--n3-brass-deep);border-color:var(--n3-brass-deep)}
ul.products li.product a.added_to_cart{margin:0 1.2rem 1.2rem;font-family:var(--n3-mono);font-size:1.2rem;color:var(--n3-brass-deep)}

/* Paginación */
.woocommerce-pagination ul{display:inline-flex;gap:.4rem;border:0!important;margin-top:2.4rem}
.woocommerce-pagination ul li{border:0;margin:0}
.woocommerce-pagination ul li a,.woocommerce-pagination ul li span{font-family:var(--n3-mono);font-size:1.3rem;
  min-width:2.6em;padding:.6em;border:1px solid var(--n3-line);background:var(--n3-surface);color:var(--n3-ink)}
.woocommerce-pagination ul li span.current{background:var(--n3-ink);color:var(--n3-surface);border-color:var(--n3-ink)}

/* ---------- Ficha de producto ---------- */
.single-product h1.product_title{font-family:var(--n3-serif);font-weight:600;letter-spacing:-.01em;line-height:1.08;
  font-size:clamp(2.4rem,3.5vw,3.2rem);margin:0 0 .6rem}
.single-product div.product .summary .price,
.single-product div.product p.price{font-family:var(--n3-serif);font-weight:600;font-size:2.2rem;color:var(--n3-ink);margin:.2rem 0 1.2rem;text-align:left}
.single-product .price del{color:var(--n3-graphite);opacity:.55;margin-right:.5em}
.single-product .price ins{text-decoration:none;color:var(--n3-brass-deep)}
.single-product .woocommerce-product-details__short-description{color:var(--n3-graphite);font-size:1.55rem;line-height:1.6;margin:0 0 1.4rem}

.single-product form.cart select{font-family:var(--n3-mono);font-size:1.4rem;color:var(--n3-ink);line-height:1.3;
  padding:.7em 2.4em .7em 1em;border:1px solid var(--n3-line);background:var(--n3-surface);border-radius:0;min-height:0}
.single-product table.variations th.label{font-family:var(--n3-mono);font-size:1.2rem;letter-spacing:.1em;text-transform:uppercase;color:var(--n3-graphite);vertical-align:middle}
.single-product .quantity input.qty{font-family:var(--n3-mono);font-size:1.5rem;color:var(--n3-ink);
  padding:.55em;border:1px solid var(--n3-line);background:var(--n3-surface);border-radius:0;width:4.5em;text-align:center}

.single-product .single_add_to_cart_button{font-family:inherit;font-weight:600;font-size:1.5rem;letter-spacing:.01em;text-transform:none;
  padding:1em 2.2em;background:var(--n3-ink);color:var(--n3-surface);border:1px solid var(--n3-ink);border-radius:0;
  transition:background .18s,border-color .18s,transform .18s}
.single-product .single_add_to_cart_button:hover{background:var(--n3-brass-deep);border-color:var(--n3-brass-deep)}
@media (hover:hover){.single-product .single_add_to_cart_button:hover{transform:translateY(-2px)}}

.single-product .product_meta{font-family:var(--n3-mono);font-size:1.2rem;letter-spacing:.04em;color:var(--n3-graphite);
  border-top:1px solid var(--n3-line);margin-top:1.6rem;padding-top:1.2rem;line-height:1.9}
.single-product .product_meta a{color:var(--n3-brass-deep);text-decoration:none}
.single-product .product_meta a:hover{text-decoration:underline}

/* Pestañas */
.woocommerce-tabs ul.tabs{list-style:none;display:flex;flex-wrap:wrap;gap:1.8rem;margin:0 0 1.8rem;padding:0;border-bottom:1px solid var(--n3-line)}
.woocommerce-tabs ul.tabs::before{display:none}
.woocommerce-tabs ul.tabs li{background:none;border:0;border-radius:0;margin:0;padding:0}
.woocommerce-tabs ul.tabs li::before,.woocommerce-tabs ul.tabs li::after{display:none}
.woocommerce-tabs ul.tabs li a{font-family:var(--n3-mono);font-size:1.3rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--n3-graphite);text-decoration:none;padding:0 0 .9rem;display:inline-block;border-bottom:2px solid transparent}
.woocommerce-tabs ul.tabs li.active a{color:var(--n3-ink);border-bottom-color:var(--n3-brass)}
.woocommerce-tabs .panel{font-size:1.55rem;line-height:1.65;color:var(--n3-ink)}
.woocommerce-tabs .panel h2{font-family:var(--n3-serif);font-weight:600;font-size:clamp(1.8rem,3vw,2.3rem);margin:0 0 1rem}

/* Relacionados / upsells */
.related.products>h2,.upsells.products>h2{font-family:var(--n3-serif);font-weight:600;letter-spacing:-.01em;
  font-size:clamp(1.9rem,3vw,2.5rem);margin:0 0 1.6rem}

/* Tabla de descuentos por cantidad (Flycart) con la estética de la marca */
.awdr-bulk-customizable-table table{border-collapse:collapse;width:100%;font-family:var(--n3-mono);font-size:1.3rem;margin:0 0 1.4rem}
.awdr-bulk-customizable-table th,.awdr-bulk-customizable-table td{border:1px solid var(--n3-line);padding:.55em .8em;text-align:left}
.awdr-bulk-customizable-table th{background:var(--n3-paper);text-transform:uppercase;letter-spacing:.06em;font-size:1.15rem;font-weight:600;color:var(--n3-ink)}

/* ---------- Matriz de pedido talla × color ---------- */
.n3-matrix-form{margin:1.4rem 0 0}
.n3-matrix-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.n3-matrix{border-collapse:collapse;width:100%;font-family:var(--n3-mono);font-size:1.35rem;margin:0 0 1.2rem}
.n3-matrix th,.n3-matrix td{border:1px solid var(--n3-line);padding:.5em;text-align:center}
.n3-matrix thead th{background:var(--n3-paper);text-transform:uppercase;letter-spacing:.05em;font-size:1.15rem;font-weight:600;color:var(--n3-ink);white-space:nowrap}
.n3-matrix .n3-matrix-corner{background:var(--n3-ink);color:var(--n3-surface);font-size:1.05rem;text-align:left;white-space:nowrap}
.n3-matrix th.n3-matrix-row{background:var(--n3-paper);text-align:left;font-weight:600;white-space:nowrap}
.n3-matrix-qty{width:4.2em;font-family:var(--n3-mono);font-size:1.4rem;text-align:center;padding:.4em;border:1px solid var(--n3-line);background:var(--n3-surface);color:var(--n3-ink);border-radius:0}
.n3-matrix-qty:focus{outline:2px solid var(--n3-brass);outline-offset:-1px}
.n3-matrix-na{color:var(--n3-graphite);opacity:.4}
.n3-matrix-summary{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;border-top:1px solid var(--n3-line);padding-top:1.3rem}
.n3-matrix-totals{font-family:var(--n3-mono);display:flex;gap:1.1rem;align-items:baseline;flex-wrap:wrap;font-size:1.5rem;color:var(--n3-graphite)}
.n3-matrix-totals .n3-m-units{font-size:1.7rem;color:var(--n3-ink)}
.n3-matrix-totals .n3-m-total{font-size:2rem;color:var(--n3-ink)}
.n3-matrix-totals .n3-m-disc{font-size:1.3rem;color:var(--n3-brass-deep)}
.n3-matrix-totals .n3-m-disc s{opacity:.6;margin-right:.3em}
.n3-matrix-add[disabled]{opacity:.4;cursor:not-allowed}
.n3-matrix-add[disabled]:hover{background:var(--n3-ink);border-color:var(--n3-ink);transform:none}
/* Sección de la matriz: fila completa bajo galería + resumen */
.single-product div.product .n3-matrix-section{flex:1 0 100%;width:100%;margin-top:clamp(2rem,4vw,3rem)}
.n3-matrix-title{font-family:var(--n3-serif);font-weight:600;letter-spacing:-.01em;font-size:clamp(1.9rem,3vw,2.5rem);margin:0 0 1.2rem}
.n3-matrix-hint{font-family:var(--n3-mono);font-size:1.25rem;letter-spacing:.03em;color:var(--n3-brass-deep);margin:1.1rem 0 0}
/* El resumen vuelve a caber a la derecha de la galería (ya no lleva la rejilla) */
.single-product div.product .summary{flex:1 1 320px;width:auto;min-width:0}

/* ==================================================================
   WOOCOMMERCE BLOCKS — Carrito y Checkout (sistema n3)
   ================================================================== */
/* Título de página */
body.woocommerce-cart h1,body.woocommerce-checkout h1{
  font-family:var(--n3-serif);font-weight:600;letter-spacing:-.01em;line-height:1.05;
  font-size:clamp(2.6rem,4.5vw,3.6rem);margin:0 0 1.8rem}

/* Títulos de sección / pasos / resumen del pedido */
.wc-block-components-title{font-family:var(--n3-serif);letter-spacing:-.01em}
.wc-block-components-checkout-step__title,
.wc-block-components-checkout-order-summary__title{
  font-family:var(--n3-serif);font-weight:600;font-size:clamp(1.8rem,2.6vw,2.2rem);color:var(--n3-ink)}

/* Nombre de producto */
.wc-block-components-product-name{font-family:var(--n3-serif);font-weight:600;font-size:1.5rem;color:var(--n3-ink)}
.wc-block-components-product-name:hover{color:var(--n3-brass-deep)}

/* Importes y totales en mono */
.wc-block-components-formatted-money-amount{font-family:var(--n3-mono)}
.wc-block-components-totals-item__label{font-family:var(--n3-mono);font-size:1.35rem;letter-spacing:.03em;color:var(--n3-graphite)}
.wc-block-components-totals-item__value{font-family:var(--n3-mono);color:var(--n3-ink)}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{color:var(--n3-ink);font-size:1.8rem}

/* Botones primarios (Finalizar compra / Realizar pedido) */
.wc-block-components-button.contained,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button{
  background:var(--n3-ink)!important;color:var(--n3-surface)!important;border:1px solid var(--n3-ink)!important;
  border-radius:0!important;font-family:inherit;font-weight:600;font-size:1.5rem;letter-spacing:.01em;
  transition:background .18s,border-color .18s}
.wc-block-components-button.contained:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover{
  background:var(--n3-brass-deep)!important;border-color:var(--n3-brass-deep)!important}

/* Campos de formulario del checkout */
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-textarea,
select.wc-blocks-components-select__select{
  border-radius:0!important;border:1px solid var(--n3-line)!important;background:var(--n3-surface)!important;
  font-family:inherit;color:var(--n3-ink)}
.wc-block-components-text-input input:focus,
select.wc-blocks-components-select__select:focus{
  outline:none;border-color:var(--n3-brass)!important;box-shadow:0 0 0 1px var(--n3-brass)!important}
.wc-block-components-text-input label,
.wc-block-components-checkout-step__description{color:var(--n3-graphite)}

/* Selector de cantidad (carrito) */
.wc-block-components-quantity-selector{border-radius:0!important;border:1px solid var(--n3-line)}
.wc-block-components-quantity-selector__input{font-family:var(--n3-mono);color:var(--n3-ink)}

/* Cupones y paneles desplegables */
.wc-block-components-panel__button{font-family:var(--n3-mono);font-size:1.3rem;color:var(--n3-ink)}

/* ==================================================================
   PÁGINAS DE CONTENIDO / LEGALES (plantilla WP por defecto, no la home)
   Estilo "prosa": columna de lectura cómoda con la tipografía de la marca.
   ================================================================== */
body.page-template-default:not(.home) article{
  max-width:74ch;margin-inline:auto;
  padding:clamp(2.5rem,6vw,4.5rem) var(--n3-gutter) clamp(3.5rem,8vw,6rem);
  font-size:1.6rem;line-height:1.75;color:var(--n3-ink)}
body.page-template-default:not(.home) article h1{font-family:var(--n3-serif);font-weight:600;letter-spacing:-.01em;line-height:1.08;font-size:clamp(2.6rem,5vw,3.6rem);margin:0 0 1.8rem}
body.page-template-default:not(.home) article h2{font-family:var(--n3-serif);font-weight:600;letter-spacing:-.01em;font-size:clamp(1.9rem,3vw,2.4rem);margin:2.6rem 0 .8rem}
body.page-template-default:not(.home) article h3{font-family:var(--n3-serif);font-weight:600;font-size:1.7rem;margin:2rem 0 .6rem}
body.page-template-default:not(.home) article p{margin:0 0 1.1rem}
body.page-template-default:not(.home) article ul,
body.page-template-default:not(.home) article ol{margin:0 0 1.2rem;padding-left:1.4rem;display:grid;gap:.45rem}
body.page-template-default:not(.home) article li{padding-left:.2rem}
body.page-template-default:not(.home) article a{color:var(--n3-brass-deep);text-decoration:underline;text-underline-offset:.15em}
body.page-template-default:not(.home) article a:hover{color:var(--n3-ink)}
body.page-template-default:not(.home) article strong{font-weight:600}
body.page-template-default:not(.home) article hr{border:0;border-top:1px solid var(--n3-line);margin:2.4rem 0}
body.page-template-default:not(.home) article table{width:100%;border-collapse:collapse;margin:0 0 1.4rem;font-size:1.45rem}
body.page-template-default:not(.home) article th,
body.page-template-default:not(.home) article td{border:1px solid var(--n3-line);padding:.55em .7em;text-align:left}

/* ==================================================================
   CONTACTO  (elemento num3ralia-contacto)
   ================================================================== */
.n3-contact-intro{max-width:56ch;margin:-1rem 0 2.4rem;font-size:1.6rem;line-height:1.6;color:var(--n3-graphite)}
.n3-contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}
.n3-contact-col{min-width:0}

/* Formulario */
.n3-contact-form{display:grid;gap:1.3rem}
.n3-field{display:grid;gap:.5rem}
.n3-field-row{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}
.n3-field label{font-family:var(--n3-mono);font-size:1.2rem;letter-spacing:.04em;color:var(--n3-graphite)}
.n3-contact-form input,.n3-contact-form textarea{
  width:100%;font:inherit;font-size:1.5rem;color:var(--n3-ink);background:var(--n3-surface);
  border:1px solid var(--n3-line);border-radius:0;padding:.85em 1em;transition:border-color .18s ease}
.n3-contact-form input:focus,.n3-contact-form textarea:focus{outline:none;border-color:var(--n3-brass)}
.n3-contact-form textarea{resize:vertical;min-height:140px}
.n3-contact-form .n3-btn{justify-self:start;margin-top:.3rem}
.n3-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.n3-contact-legal{font-family:var(--n3-mono);font-size:1.15rem;color:var(--n3-graphite);margin:.2rem 0 0}
.n3-contact-legal a{color:var(--n3-brass-deep)}

/* Avisos tras enviar */
.n3-notice{font-size:1.5rem;line-height:1.5;padding:1em 1.2em;margin:0 0 1.6rem;border:1px solid var(--n3-line)}
.n3-notice--ok{background:rgba(160,124,70,.10);border-color:var(--n3-brass)}
.n3-notice--err{background:rgba(180,40,40,.08);border-color:rgba(180,40,40,.5);color:#7a1f1f}

/* Datos + mapa */
.n3-contact-info{list-style:none;margin:0 0 1.8rem;padding:0;display:grid;gap:1.2rem}
.n3-contact-info li{display:grid;gap:.25rem}
.n3-ci-k{font-family:var(--n3-mono);font-size:1.15rem;letter-spacing:.14em;text-transform:uppercase;color:var(--n3-brass-deep)}
.n3-ci-v{font-size:1.55rem;line-height:1.45;color:var(--n3-ink)}
.n3-ci-v a{color:var(--n3-ink);text-decoration:none;border-bottom:1px solid var(--n3-line)}
.n3-ci-v a:hover{border-color:var(--n3-brass)}
.n3-contact-map{width:100%;height:clamp(260px,34vw,360px);border:1px solid var(--n3-line);display:block;filter:grayscale(.15)}

@media (max-width:820px){
  .n3-contact-grid{grid-template-columns:1fr}
}
@media (max-width:480px){
  .n3-field-row{grid-template-columns:1fr}
}

/* ==================================================================
   Responsive
   ================================================================== */

/* Hero: apila los 3 paneles antes (tablet portrait incluida) para que la
   diagonal no quede comprimida en el rango 720–900px. */
@media (max-width:900px){
  .n3-hero-videos{position:static;min-height:0;display:flex;flex-direction:column}
  .n3-vpanel{position:relative;inset:auto;clip-path:none!important;min-height:160px}
  .n3-v-inner{position:static;transform:none;left:auto!important;width:auto;padding:1.8rem 1.2rem;
    display:flex;flex-direction:column;align-items:center;text-align:center}
  .n3-v-go{opacity:1;transform:none}
}

@media (max-width:920px){
  .n3-nav-wrap{display:none;position:absolute;left:0;right:0;top:100%;background:var(--n3-surface);border-bottom:1px solid var(--n3-line);box-shadow:0 20px 30px -24px rgba(0,0,0,.4)}
  .n3-nav-toggle:checked ~ .n3-nav-wrap{display:block}
  .n3-nav{flex-direction:column;gap:0;padding:.5rem var(--n3-gutter)}
  .n3-nav>li>a{padding-block:.8rem;border-bottom:1px solid var(--n3-line)}
  .n3-mega{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;background:transparent}
  .n3-mega-in{grid-template-columns:1fr;gap:1rem;padding-block:1rem}
  .n3-mega-promo{display:none}
  .n3-burger{display:grid;place-items:center;width:40px;height:40px;background:none;border:0;cursor:pointer;margin-left:auto}
  .n3-burger svg{width:24px;height:24px;stroke:var(--n3-ink);stroke-width:1.7;fill:none}
  .n3-trust-in{grid-template-columns:repeat(2,1fr)}
  .n3-trust .n3-cell:nth-child(3){box-shadow:none}
  .n3-prods{grid-template-columns:1fr}
  /* Con una columna, el thumb 1:1 sería enorme: lo limitamos en altura. */
  .n3-card .n3-thumb{aspect-ratio:auto;height:clamp(220px,52vw,360px)}
  /* Rejilla WooCommerce: 2 columnas en tablet/móvil */
  ul.products,ul.products.columns-4,ul.products.columns-3{grid-template-columns:repeat(2,1fr)}
  .n3-foot-top{grid-template-columns:1fr 1fr}
  .n3-steps{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .n3-cats{grid-template-columns:1fr}
  .n3-cat{aspect-ratio:16/9}
  .n3-foot-top{grid-template-columns:1fr}
  .n3-steps{grid-template-columns:1fr}
}
@media (max-width:520px){
  .n3-trust-in{grid-template-columns:1fr;gap:0}
  .n3-trust .n3-cell{box-shadow:none!important;border-bottom:1px solid var(--n3-line)}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ==================================================================
   PÁGINA DE PACK (producto de packs-polos) — layout del boceto
   ================================================================== */
.n3-pack-single div.product .woocommerce-product-gallery,
.n3-pack-single .woocommerce-product-gallery,
.n3-pack-single .flex-control-thumbs,
.n3-pack-single figure.woocommerce-product-gallery__wrapper{display:none!important}
.n3-pack-single div.product div.summary{width:100%;max-width:none;float:none;margin:0;text-align:left}
/* El resumen de la ficha (precio + añadir al carrito) alineado a la izquierda, no centrado. */
.n3-pack-single div.product div.summary > *{margin-left:0;margin-right:0}
.n3-pack-single div.product div.summary .price{text-align:left}
.n3-pack{max-width:var(--n3-maxw);margin:0 auto 2rem;padding-inline:var(--n3-gutter)}
.n3-pack-title{font-family:var(--n3-serif);font-weight:600;font-size:clamp(2rem,3.4vw,2.8rem);margin:0 0 1.4rem;text-transform:uppercase}
.n3-pack-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;background:#fff;border:1px solid var(--n3-line);
  border-radius:20px;box-shadow:0 20px 50px -28px rgba(27,26,24,.4);padding:clamp(1rem,2.5vw,1.8rem)}
.n3-pack-main{border:1px solid var(--n3-line);border-radius:14px;overflow:hidden;background:var(--n3-surface);
  position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1/1}
.n3-pack-main img{width:100%;height:100%;object-fit:contain;padding:6%;box-sizing:border-box}
/* Vídeo con hover: superpuesto a la foto, aparece al pasar el ratón */
.n3-hover-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--n3-surface);opacity:0;transition:opacity .25s ease;pointer-events:none}
.n3-pack-main.is-playing .n3-hover-video{opacity:1}
@media (hover:hover){.n3-pack-main .n3-hover-video{cursor:pointer}}
.n3-pack-swatches{border:1px solid var(--n3-line);border-radius:14px;background:var(--n3-surface);padding:1rem;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:.55rem;align-content:start;overflow:auto;max-height:520px}
.n3-swatch{border:2px solid transparent;border-radius:10px;background:#fff;padding:0;cursor:pointer;overflow:hidden;
  aspect-ratio:1/1;transition:border-color .15s,transform .15s}
.n3-swatch img{width:100%;height:100%;object-fit:contain;display:block}
@media (hover:hover){.n3-swatch:hover{border-color:var(--n3-brass-lite);transform:translateY(-2px)}}
.n3-swatch.is-active{border-color:var(--n3-brass)}
.n3-pack-tallaje{margin-top:2rem}
.n3-pack-tallaje h2{font-family:var(--n3-serif);font-size:clamp(1.6rem,2.4vw,2rem);margin:0 0 1rem}
.n3-tallaje-scroll{overflow-x:auto;margin-bottom:1rem}
.n3-tallaje-table{border-collapse:collapse;width:100%;font-family:var(--n3-mono);font-size:1.2rem}
.n3-tallaje-table th,.n3-tallaje-table td{border:1px solid var(--n3-line);padding:.5em .7em;text-align:center;white-space:nowrap}
.n3-tallaje-table thead th{background:var(--n3-ink);color:var(--n3-surface);text-transform:uppercase;letter-spacing:.04em}
.n3-tallaje-table tbody th{background:var(--n3-paper);text-align:left}
@media (max-width:720px){.n3-pack-grid{grid-template-columns:1fr}}

/* Aviso de la matriz (packs en múltiplos de N) */
.n3-matrix-msg{margin:.6rem 0 0;font-family:var(--n3-mono);font-size:1.2rem;color:var(--n3-graphite);min-height:1.2em}
.n3-matrix-msg.is-warn{color:var(--n3-brass-deep);font-weight:600}

/* Ficha sin rejilla de colores (producto simple / sin variaciones de color) */
.n3-pack-grid--single{grid-template-columns:1fr;max-width:560px;margin-inline:auto}

/* Banner con zonas clicables (columnas iguales sobre una sola imagen) */
.n3-banner--hotspots .n3-banner-zones{position:absolute;left:0;right:0;top:26%;height:66%;display:flex;z-index:2}
.n3-zone{flex:1;display:block;text-decoration:none;border-radius:10px;transition:background .18s ease}
/* Banner con zonas: sin tinte naranja ni zoom al hover; solo el cursor. */
@media (hover:hover){.n3-banner--hotspots:hover .n3-banner-img{transform:none}}
.n3-zone-lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Nombre del producto + "bolitas" de productos relacionados */
.n3-pack-head{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin:0 0 1.4rem}
.n3-pack-head .n3-pack-title{margin:0}
/* Sello "Serigrafía incluida" (imagen): a la derecha del título, en todos los textiles. */
.n3-serig-badge{margin-left:auto;flex:0 0 auto;width:min(320px,42%)}
.n3-serig-badge img{display:block;width:100%;height:auto}
@media (max-width:640px){.n3-serig-badge{margin-left:0;width:min(280px,70%)}}
.n3-pack-rel{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.n3-rel-dot{width:46px;height:46px;border-radius:50%;overflow:hidden;flex:none;display:block;
  border:2px solid var(--n3-line);background:var(--n3-surface);transition:transform .15s ease,border-color .15s ease}
.n3-rel-dot img{width:100%;height:100%;object-fit:cover;display:block}
@media (hover:hover){.n3-rel-dot:hover{transform:translateY(-2px);border-color:var(--n3-brass)}}

/* Columna derecha de la ficha: rejilla de colores + selector de pedido por color */
.n3-pack-grid{align-items:start}
.n3-pack-right{display:flex;flex-direction:column;gap:1rem;min-width:0}
.n3-pack-right .n3-pack-swatches{max-height:300px}
.n3-pack-order{border:1px solid var(--n3-line);border-radius:14px;background:var(--n3-surface);padding:1rem}
.n3-pack-order-hint{margin:0;font-family:var(--n3-serif);font-size:1.4rem;color:var(--n3-graphite);font-weight:700}
/* Aviso "NOTA IMPORTANTE": mejor en lotes de 10 (cerca del selector de cantidad). */
.n3-lote-note{margin:.2rem 0 1rem;text-align:center}
.n3-lote-note-tag{display:block;color:#e30613;font-weight:700;font-size:1.25rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.45rem}
.n3-lote-hint{margin:0;font-family:inherit;text-align:center;text-transform:uppercase;background:var(--n3-orange);color:#fff;
  padding:.95rem 1.1rem;border-radius:8px;box-shadow:0 8px 18px -4px rgba(0,0,0,.6);font-size:1.45rem;line-height:1.35;font-weight:600}
.n3-lote-hint strong{color:#fff;font-weight:800}
.n3-pack-buy .n3-lote-note{margin-top:0}
/* Tabla de precios por cantidad (por producto) */
.n3-tier-wrap{margin:.2rem 0 1rem;overflow-x:auto}
.n3-tier-table{border-collapse:collapse;width:100%;font-family:var(--n3-serif);font-size:1.5rem}
.n3-tier-table th,.n3-tier-table td{border:1px solid var(--n3-line);padding:.5em .7em;text-align:left}
.n3-tier-table thead th{background:var(--n3-ink);color:var(--n3-surface);font-size:1.15rem;letter-spacing:.04em;text-transform:uppercase}
.n3-tier-table tbody td{font-weight:700}
.n3-tier-table tbody td:last-child{font-weight:700;color:var(--n3-ink);white-space:nowrap}
.n3-tier-ud{color:var(--n3-graphite);font-weight:400;font-size:.85em}
/* Select "Estampación" (textil): cuadrado, estilo de marca, tipo botón contorno. */
.n3-estampacion{margin:.2rem 0 1rem}
.n3-estampacion-lbl{display:block;font-family:var(--n3-mono);font-size:1.2rem;letter-spacing:.14em;text-transform:uppercase;color:var(--n3-graphite);margin-bottom:.45rem}
.n3-select-wrap{position:relative}
.n3-select-wrap::after{content:"";position:absolute;top:50%;right:1.1em;width:.6em;height:.6em;pointer-events:none;
  border-right:2px solid var(--n3-ink);border-bottom:2px solid var(--n3-ink);transform:translateY(-65%) rotate(45deg)}
.n3-select{width:100%;font-family:var(--n3-serif);font-weight:600;font-size:1.5rem;color:var(--n3-ink);line-height:1.2;
  padding:.85em 2.6em .85em 1em;border:2px solid var(--n3-ink);border-radius:0;background:var(--n3-surface);cursor:pointer;
  -webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color .18s,box-shadow .18s}
@media (hover:hover){.n3-select:hover{border-color:var(--n3-brass-deep)}}
.n3-select:focus{outline:none;border-color:var(--n3-orange);box-shadow:0 0 0 3px rgba(240,128,27,.25)}
/* Campos del cliente (texto a grabar / subir imagen) */
.n3-ofield{margin:.2rem 0 1rem}
.n3-ofield-lbl{display:block;font-family:var(--n3-mono);font-size:1.2rem;letter-spacing:.14em;text-transform:uppercase;color:var(--n3-graphite);margin-bottom:.45rem}
.n3-ofield-hint{text-transform:none;letter-spacing:0;font-size:.85em;opacity:.8}
.n3-ofield-input{width:100%;font-family:var(--n3-serif);font-size:1.4rem;font-weight:600;color:var(--n3-ink);padding:.75em 1em;border:2px solid var(--n3-ink);border-radius:0;background:var(--n3-surface)}
.n3-ofield-input:focus{outline:none;border-color:var(--n3-orange);box-shadow:0 0 0 3px rgba(240,128,27,.25)}
.n3-ofield-file{width:100%;font-family:var(--n3-mono);font-size:1.2rem;padding:.7em;border:2px dashed var(--n3-line);border-radius:0;background:var(--n3-surface);cursor:pointer}
/* Bloque "Tallaje / Medidas" debajo de la imagen grande */
.n3-pack-col-main{min-width:0}
.n3-medidas{margin-top:1.3rem;max-width:240px}
.n3-medidas-title{font-family:var(--n3-serif);font-weight:600;font-size:clamp(1.4rem,1.7vw,1.7rem);margin:0 0 .5rem}
.n3-medidas-link{display:block;border:1px solid var(--n3-line);border-radius:12px;overflow:hidden;background:#fff}
.n3-medidas-link img{width:100%;height:auto;display:block}
.n3-pack-order-sizes{display:grid;gap:.5rem}
.n3-order-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.n3-order-size{font-family:var(--n3-serif);font-size:1.5rem;font-weight:700}
.n3-order-stepper{display:inline-flex;align-items:center;border:1px solid var(--n3-line);border-radius:8px;overflow:hidden;background:#fff}
.n3-order-stepper button{width:34px;height:34px;border:0;background:#fff;cursor:pointer;font-size:1.7rem;line-height:1;color:var(--n3-ink);padding:0}
@media (hover:hover){.n3-order-stepper button:hover{background:var(--n3-paper)}}
.n3-order-qty{width:44px;height:34px;border:0;border-inline:1px solid var(--n3-line);text-align:center;font-family:var(--n3-serif);font-size:1.5rem;font-weight:700;-moz-appearance:textfield;background:#fff;color:var(--n3-ink)}
.n3-order-qty::-webkit-outer-spin-button,.n3-order-qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.n3-pack-order-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--n3-line)}
.n3-pack-order-total{font-family:var(--n3-mono);font-size:1.35rem;font-weight:600}
.n3-pack-order-warn{margin:.6rem 0 0;font-family:var(--n3-mono);font-size:1.25rem;line-height:1.35;color:#e30613;font-weight:600}
.n3-pack-order-add:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}

/* Producto simple (regalos): caja de compra a la derecha (precio + añadir al carrito) */
.n3-pack-buy{border:1px solid var(--n3-line);border-radius:14px;background:var(--n3-surface);padding:1.2rem;margin-top:auto}
.n3-pack-buy .price{margin:0 0 1rem}
.n3-pack-buy form.cart{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin:0}
.n3-pack-buy .quantity{margin:0}
.n3-pack-buy .single_add_to_cart_button{flex:1 1 auto;margin:0}
.n3-pack-buy .stock,.n3-pack-buy .woocommerce-variation-price{margin:.4rem 0 0}
