/* Fuentes alojadas en el sitio (subset latino, SIL Open Font License — ver fonts/).
   Evitan la conexión a Google Fonts, que bloqueaba el primer dibujado de la página. */
@font-face{font-family:'Bebas Neue';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/bebas-neue-400.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/archivo-400.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/archivo-500.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/archivo-600.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/archivo-700.woff2') format('woff2');}

:root{
  --clay:#BF531E; /* ajustado desde #C2551F: contraste AA (4,6:1) con texto claro */
  --clay-dark:#9c4318;
  --moss:#3E4A3C;
  --graphite:#2B2A26;
  --plaster:#EFE7DA;
  --paper:#FFFDF9;
  --line:#DDD5C4;

  /* Type scale (base brand manual) — every secondary text size in the
     site pulls from one of these five steps. Headings (h1/h2/h3) use
     their own clamp()s set contextually (hero vs section vs card),
     but nothing below body-copy size should introduce a new value. */
  --fs-lead:16px;      /* section intros, page-hero descriptions */
  --fs-body-sm:14.5px; /* card copy, catalog copy, FAQ answers */
  --fs-meta:13px;      /* chips, pills, links, footer nav, notes */
  --fs-label:12.5px;   /* uppercase kickers, stat labels, badges */
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--graphite);
  font-family:'Archivo',sans-serif;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;}

/* Type scale (base brand manual):
   Display headings use Bebas Neue, body copy uses Archivo.
   Headings intentionally do NOT set their own color — they inherit
   from whichever section wraps them (graphite on light sections,
   paper on dark/photo sections). This is what keeps contrast correct
   everywhere without per-page overrides. */
h1,h2,h3,.display{
  font-family:'Bebas Neue',sans-serif;
  font-weight:400;
  letter-spacing:0.5px;
  line-height:1;
}
.teaser-title{font-size:clamp(28px,4vw,40px);margin-bottom:18px;}

a{color:inherit;text-decoration:none;}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 20px;} body{font-size:16px;} }

a:focus-visible, button:focus-visible{outline:3px solid var(--clay);outline-offset:2px;}
@media (prefers-reduced-motion: reduce){ *{animation:none !important; transition:none !important;} }

/* ---------- HEADER ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,253,249,0.96);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px;gap:20px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand-mark{width:32px;height:32px;flex-shrink:0;display:block;}
.brand-name{font-family:'Bebas Neue',sans-serif;font-size:28px;line-height:1;letter-spacing:1.5px;}
nav ul{display:flex;list-style:none;gap:30px;align-items:center;}
nav li{display:flex;align-items:center;}
nav a{font-size:var(--fs-meta);font-weight:600;letter-spacing:0.3px;padding:6px 2px;border-bottom:2px solid transparent;transition:border-color .15s ease,color .15s ease;color:#454540;}
nav a:hover{border-color:var(--clay);color:var(--graphite);}
nav a.active{color:var(--graphite);border-color:var(--clay);}
.cart-link{display:inline-flex;align-items:center;gap:6px;}
.cart-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;padding:0 5px;
  background:var(--clay);color:var(--paper);
  border-radius:9px;font-size:11px;font-weight:700;line-height:1;
}
.nav-cta{background:var(--graphite);color:var(--paper) !important;padding:9px 18px;font-weight:700;border:none !important;}
.nav-cta:hover{background:var(--clay);color:var(--paper) !important;border-color:transparent !important;}
.nav-toggle{display:none;}
@media (max-width:840px){
  /* el botón del menú va pegado a la derecha; el <nav> no ocupa espacio en la fila */
  .nav-toggle{order:2;margin-left:auto;flex-shrink:0;}
  .header-inner{column-gap:0;}
  .header-inner nav{order:3;flex:0 0 0;width:0;}
  /* panel desplegable: ancho completo bajo el encabezado, alineado con el margen del sitio */
  header nav ul{position:absolute;top:calc(100% + 1px);left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 14px 28px rgba(20,19,17,0.14);flex-direction:column;gap:0;align-items:stretch;padding:4px 32px 24px;display:none;max-height:calc(100vh - 64px);max-height:calc(100dvh - 64px);overflow-y:auto;}
  header nav ul.open{display:flex;}
  header nav li{display:block;border-top:1px solid var(--line);}
  header nav li:first-child{border-top:none;}
  header nav a{display:block;width:100%;padding:15px 0;font-size:15px;border-bottom:none;}
  header nav a:hover,header nav a.active{border-color:transparent;color:var(--clay-dark);}
  header nav a.active{font-weight:700;}
  header nav li:has(.nav-cta){border-top:none;padding-top:8px;}
  .nav-cta{display:block;text-align:center;padding:14px 18px;}
  .cart-link{display:flex;}
  /* Botón del menú: mismo cuadrado que el logo. La imagen del logo mide 32 px y su marco
     visible ocupa 28,45 px centrados (1,78 px de margen por lado) con un trazo de 1,8 px. */
  .nav-toggle{display:block;box-sizing:border-box;width:28.45px;height:28.45px;margin:1.78px 1.78px 1.78px auto;padding:0;background:none;border:none;box-shadow:inset 0 0 0 1.8px var(--graphite);border-radius:0;cursor:pointer;position:relative;}
  .nav-toggle::before,.nav-toggle span,.nav-toggle::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.8px;margin:-0.9px 0 0 -7px;background:var(--graphite);transition:transform .2s ease,opacity .2s ease;}
  .nav-toggle::before{transform:translateY(-5px);}
  .nav-toggle::after{transform:translateY(5px);}
  .nav-toggle[aria-expanded="true"]::before{transform:rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span{opacity:0;}
  .nav-toggle[aria-expanded="true"]::after{transform:rotate(-45deg);}
}
@media (max-width:640px){ header nav ul{padding:4px 20px 20px;} }

/* ---------- PAGE HERO (interior pages) ---------- */
.page-hero{
  position:relative;
  min-height:280px;
  display:flex;
  align-items:center;
  background:#1c1b18;
  overflow:hidden;
}
.page-hero-bg{
  position:absolute;inset:0;
  background-size:cover;
  background-position:center;
}
/* Fondos de encabezado con foto: versión grande y chica definidas en la página (--bg-lg / --bg-sm) */
.page-hero-bg.bg-resp{background-image:linear-gradient(100deg, rgba(20,19,17,0.92) 0%, rgba(20,19,17,0.65) 100%), var(--bg-lg);}
@media (max-width:640px){ .page-hero-bg.bg-resp{background-image:linear-gradient(100deg, rgba(20,19,17,0.92) 0%, rgba(20,19,17,0.65) 100%), var(--bg-sm);} }
.page-hero-content{position:relative;z-index:2;padding-top:64px;padding-bottom:64px;color:var(--paper);}
.page-hero .kicker{color:#e98a52;}
.page-hero h1{font-size:clamp(34px,5vw,54px);max-width:20ch;}
.page-hero p.lead{font-size:var(--fs-lead);max-width:52ch;color:#e7e3d8;margin-top:14px;}
.breadcrumb{font-size:var(--fs-label);color:#c9c7bd;margin-bottom:14px;}
.breadcrumb a{color:#e98a52;font-weight:600;}
.breadcrumb a:hover{text-decoration:underline;}
/* las migas de pan son un <nav>: no deben heredar el estilo del menú principal */
nav.breadcrumb a,nav.breadcrumb a:hover{display:inline;padding:0;border:none;font-size:inherit;letter-spacing:0;color:#e98a52;}

/* ---------- HOME HERO ---------- */
.hero{
  position:relative;
  min-height:660px;
  display:flex;
  align-items:center;
  background:#1c1b18;
  overflow:hidden;
}
.hero-bg{
  position:absolute;inset:0;
  background-image:
    linear-gradient(100deg, rgba(20,19,17,0.94) 0%, rgba(20,19,17,0.78) 45%, rgba(20,19,17,0.5) 100%),
    url('img/hero-obra-1920.jpg');
  background-size:cover;
  background-position:center 65%;
}
/* Foto de fondo más liviana en tablet y celular (Unsplash la redimensiona en su servidor) */
@media (max-width:1100px){ .hero-bg{background-image:linear-gradient(100deg, rgba(20,19,17,0.94) 0%, rgba(20,19,17,0.78) 45%, rgba(20,19,17,0.5) 100%), url('img/hero-obra-1280.jpg');} }
@media (max-width:640px){ .hero-bg{background-image:linear-gradient(100deg, rgba(20,19,17,0.94) 0%, rgba(20,19,17,0.78) 45%, rgba(20,19,17,0.5) 100%), url('img/hero-obra-760.jpg');} }
.hero-content{position:relative;z-index:2;padding-top:88px;padding-bottom:88px;color:var(--paper);}
.hero-mark{
  position:absolute;
  right:-40px;bottom:-60px;
  width:340px;height:340px;
  opacity:0.12;
  z-index:1;
  pointer-events:none;
}
@media (max-width:900px){ .hero-mark{width:220px;height:220px;right:-30px;bottom:-30px;} }
@media (max-width:640px){ .hero-mark{display:none;} }
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,253,249,0.1);
  border:1px solid rgba(255,253,249,0.4);
  color:#f2efe6;
  font-size:12.5px;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;
  padding:8px 16px;margin-bottom:28px;
}
.hero h1{font-size:clamp(40px,6vw,68px);max-width:17ch;margin-bottom:20px;}
.hero p.lead{font-size:18px;max-width:50ch;color:#e7e3d8;margin-bottom:32px;}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;}
.btn{display:inline-block;padding:14px 26px;font-weight:700;font-size:14.5px;letter-spacing:0.2px;border:1px solid transparent;transition:transform .12s ease, background .12s ease, color .12s ease, border-color .12s ease;}
.btn-primary{background:var(--clay);color:var(--paper);}
.btn-primary:hover{background:#a8481a;transform:translateY(-2px);}
.btn-secondary{background:transparent;color:var(--paper);border-color:rgba(255,253,249,0.5);}
.btn-secondary:hover{border-color:var(--paper);transform:translateY(-2px);}
.btn-dark{background:var(--graphite);color:var(--paper);}
.btn-dark:hover{background:var(--clay);transform:translateY(-2px);}

/* stat strip */
.stat-strip{background:var(--graphite);color:var(--paper);}
.stat-strip .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.stat-cell{padding:32px 28px;border-left:1px solid rgba(255,253,249,0.15);}
.stat-cell:first-child{border-left:none;}
@media (max-width:760px){
  .stat-strip .wrap{grid-template-columns:1fr;}
  .stat-cell{padding:22px 20px;border-left:none;}
  .stat-cell + .stat-cell{border-top:1px solid rgba(255,253,249,0.15);}
}
.stat-num{font-family:'Bebas Neue',sans-serif;font-size:38px;color:#e98a52;line-height:1;}
.stat-label{font-size:var(--fs-label);color:#c9c7bd;margin-top:6px;}

/* ---------- SECTION HELPERS ---------- */
section{padding:96px 0;}
.section-tight{padding:72px 0;}
@media (max-width:760px){
  section{padding:64px 0;}
  .section-tight{padding:48px 0;}
}
.section-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:52px;}
@media (max-width:760px){ .section-head{grid-template-columns:1fr;} }
.kicker{font-size:var(--fs-label);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--clay-dark);margin-bottom:10px;display:block;}
.section-head h2{font-size:clamp(30px,4vw,44px);}
.section-head p{color:#5a594f;font-size:var(--fs-lead);max-width:42ch;}

/* ---------- ABOUT / TEXT+PHOTO ---------- */
.about-grid{display:grid;grid-template-columns:1fr 0.85fr;gap:56px;align-items:center;}
@media (max-width:900px){ .about-grid{grid-template-columns:1fr;gap:32px;} }
.about-grid p{margin-bottom:16px;color:#3a3934;}
.highlight-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:28px;}
.highlight-item{background:var(--paper);padding:18px 16px;display:flex;flex-direction:column;gap:4px;}
.highlight-num{font-family:'Bebas Neue',sans-serif;font-size:22px;color:var(--clay);letter-spacing:0.5px;}
.highlight-label{font-size:var(--fs-meta);color:#54534c;font-weight:600;}
@media (max-width:560px){ .highlight-row{grid-template-columns:1fr;} }
.about-photo{position:relative;}
.about-photo img{width:100%;height:420px;object-fit:cover;filter:grayscale(15%) contrast(1.05);}
.about-photo-tag{
  position:absolute;bottom:-1px;left:-1px;
  background:var(--clay);color:var(--paper);
  font-size:var(--fs-label);font-weight:700;
  padding:10px 16px;
}
@media (max-width:900px){ .about-photo img{height:280px;} }

/* ---------- PRODUCT CARDS ---------- */
#productos{background:var(--plaster);}
.section-plaster{background:var(--plaster);}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media (max-width:900px){ .product-grid{grid-template-columns:1fr;} }
.product-card{
  background:var(--paper);
  border:1px solid var(--line);
  display:flex;flex-direction:column;
  transition:transform .15s ease, box-shadow .15s ease;
}
.product-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(43,42,38,0.14);}
.product-photo{position:relative;height:190px;overflow:hidden;}
.product-photo img{width:100%;height:100%;object-fit:cover;}
.product-photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(43,42,38,0) 45%, rgba(43,42,38,0.55) 100%);
}
.product-num{
  position:absolute;top:14px;left:14px;z-index:2;
  font-family:'Bebas Neue',sans-serif;
  font-size:14px;letter-spacing:1px;
  background:var(--clay);color:var(--paper);
  padding:5px 10px;
}
.product-body{padding:26px 26px 28px;flex-grow:1;display:flex;flex-direction:column;}
.product-body h3{font-size:26px;margin-bottom:10px;}
.product-body p{font-size:var(--fs-body-sm);color:#54534c;flex-grow:1;}
.product-link{margin-top:18px;font-size:var(--fs-meta);font-weight:700;color:var(--clay-dark);border-top:1px solid var(--line);padding-top:14px;transition:color .15s ease;}
.product-card:hover .product-link{color:var(--clay);}

.also-row{margin-top:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
@media (max-width:860px){ .also-row{grid-template-columns:1fr;} }
.also-item{background:var(--paper);padding:20px 24px;font-size:var(--fs-body-sm);font-weight:600;}
.also-item .small{display:block;font-weight:400;font-size:var(--fs-meta);color:#6b6a63;margin-top:4px;}

/* ---------- MATERIAL SWATCHES (honest placeholder where no real product photo exists) ---------- */
.swatch{position:relative;height:190px;overflow:hidden;display:flex;align-items:flex-end;}
.swatch::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(43,42,38,0) 45%, rgba(43,42,38,0.55) 100%);}
.swatch-label{position:relative;z-index:2;color:var(--paper);font-size:var(--fs-meta);font-weight:700;padding:14px 16px;}
.swatch-pp{background:
    repeating-linear-gradient(120deg, rgba(255,255,255,0.5) 0px, rgba(255,255,255,0.5) 2px, transparent 2px, transparent 14px),
    linear-gradient(160deg, #efece4 0%, #d9d4c6 100%);}
.swatch-velo{background:
    radial-gradient(rgba(255,255,255,0.06) 1px, transparent 1.4px) 0 0/10px 10px,
    linear-gradient(160deg, #2b2a26 0%, #1a1917 100%);}
.swatch-board{background:
    radial-gradient(rgba(43,42,38,0.18) 1px, transparent 1.4px) 0 0/7px 7px,
    linear-gradient(160deg, #c7c2b4 0%, #aba594 100%);}
.swatch-wool{background:
    repeating-linear-gradient(100deg, rgba(255,255,255,0.35) 0px, rgba(255,255,255,0.35) 3px, transparent 3px, transparent 16px),
    linear-gradient(160deg, #e7c9a3 0%, #d3a86f 100%);}
.swatch-wool-kraft{background:
    repeating-linear-gradient(100deg, rgba(255,255,255,0.28) 0px, rgba(255,255,255,0.28) 3px, transparent 3px, transparent 16px),
    linear-gradient(160deg, #cba672 0%, #9c703f 100%);}
.swatch-wool-panel{background:
    repeating-linear-gradient(0deg, rgba(255,255,255,0.3) 0px, rgba(255,255,255,0.3) 2px, transparent 2px, transparent 18px),
    repeating-linear-gradient(90deg, rgba(43,42,38,0.08) 0px, rgba(43,42,38,0.08) 2px, transparent 2px, transparent 40px),
    linear-gradient(160deg, #ddd0b0 0%, #c2ab7c 100%);}
.swatch-wool-roll{background:
    repeating-radial-gradient(circle at 30% 30%, rgba(255,255,255,0.3) 0px, rgba(255,255,255,0.3) 2px, transparent 2px, transparent 10px),
    linear-gradient(160deg, #e2d3ae 0%, #c7a86a 100%);}
.swatch-wool-blanket{background:
    repeating-linear-gradient(0deg, rgba(255,255,255,0.32) 0px, rgba(255,255,255,0.32) 4px, transparent 4px, transparent 20px),
    linear-gradient(160deg, #ecdcc0 0%, #d1b485 100%);}
.swatch-wool-mat{background:
    radial-gradient(rgba(255,255,255,0.4) 1.5px, transparent 2px) 0 0/12px 12px,
    linear-gradient(160deg, #f0e6d2 0%, #ddc9a0 100%);}
.swatch-board-2{background:
    linear-gradient(100deg, rgba(255,255,255,0.25) 0%, transparent 40%),
    linear-gradient(160deg, #b8c4c2 0%, #8a9997 100%);}
.swatch-board-3{background:
    repeating-linear-gradient(0deg, rgba(43,42,38,0.1) 0px, rgba(43,42,38,0.1) 1px, transparent 1px, transparent 34px),
    repeating-linear-gradient(90deg, rgba(43,42,38,0.1) 0px, rgba(43,42,38,0.1) 1px, transparent 1px, transparent 34px),
    linear-gradient(160deg, #d9d6cd 0%, #bcb7a8 100%);}

.featured-note{font-size:var(--fs-meta);color:#6b6a5d;margin-top:-24px;margin-bottom:44px;max-width:60ch;}
.featured-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
@media (max-width:900px){ .featured-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:520px){ .featured-grid{grid-template-columns:1fr;} }
.featured-card{
  display:block;background:var(--paper);border:1px solid var(--line);
  transition:transform .15s ease, box-shadow .15s ease;
}
.featured-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(43,42,38,0.14);}
.featured-card img{width:100%;height:190px;object-fit:cover;}
.featured-body{padding:16px 18px 20px;}
.featured-body h3,.featured-body h4{font-family:'Archivo',sans-serif;font-size:15px;font-weight:700;color:var(--graphite);margin-bottom:4px;}
.featured-body span{font-size:var(--fs-meta);color:var(--clay-dark);font-weight:600;}

/* ---------- CATALOG (3 categories side by side as columns) ---------- */
.catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:start;}
@media (max-width:900px){ .catalog-grid{grid-template-columns:1fr;gap:24px;} }

.catalog-block{
  display:flex;flex-direction:column;
  border:1px solid var(--line);background:var(--paper);
}

.catalog-media{position:relative;overflow:hidden;height:160px;}
.catalog-media img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
.catalog-media .swatch{height:100%;}
.catalog-media-tag{
  position:absolute;bottom:0;left:0;
  background:var(--clay);color:var(--paper);
  font-size:var(--fs-meta);font-weight:700;
  padding:9px 16px;
  max-width:calc(100% - 32px);
}

.catalog-body{padding:22px 22px 8px;display:flex;flex-direction:column;min-height:212px;}
.catalog-body h2,.catalog-body h3{font-size:23px;margin-bottom:8px;}
.catalog-body .catalog-intro{font-size:var(--fs-body-sm);color:#54534c;margin-bottom:16px;}

.product-list{border-top:1px solid var(--line);padding:0 22px;}
.product-list a{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:13px 2px;border-bottom:1px solid var(--line);
  font-size:14.5px;font-weight:600;color:var(--graphite);text-decoration:none;
  transition:color .15s ease, padding-left .15s ease;
}
.product-list a:hover{color:var(--clay-dark);padding-left:8px;}
.product-list a .arrow{color:var(--clay-dark);font-family:'Bebas Neue',sans-serif;font-size:17px;flex-shrink:0;}

/* light tag pill (for sector lists on light backgrounds, e.g. Empresa page) */
.tag-pill-light{border:1px solid var(--line);padding:9px 16px;font-size:var(--fs-meta);font-weight:600;color:var(--graphite);background:var(--paper);transition:border-color .15s ease;}
.tag-pill-light:hover{border-color:var(--clay);}
.tag-pill-light.hi{border-color:var(--clay);color:var(--clay-dark);}

/* ---------- PRESENCIA / DARK PHOTO SECTION ---------- */
.dark-photo-section{position:relative;color:var(--paper);background:#1c1b18;}
.dark-photo-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
}
.dark-photo-section .wrap{position:relative;z-index:2;}
.dark-photo-section .kicker{color:#e98a52;}
.dark-photo-section .section-head p{color:#c9c7bd;}
.tag-field{display:flex;flex-wrap:wrap;gap:10px;}
.tag-pill{border:1px solid rgba(255,253,249,0.3);padding:9px 16px;font-size:var(--fs-meta);font-weight:600;color:#ece8dd;transition:border-color .15s ease, background .15s ease;}
.tag-pill:hover{border-color:rgba(255,253,249,0.7);background:rgba(255,253,249,0.06);}
.tag-pill.hi{border-color:var(--clay);color:#e98a52;}
.tag-pill.hi:hover{background:rgba(194,85,31,0.12);}

/* ---------- CONTACTO ---------- */
.contact-grid{display:grid;grid-template-columns:1fr;gap:0;border:1px solid var(--line);max-width:560px;}
@media (max-width:800px){ .contact-grid{grid-template-columns:1fr;} }
.contact-cell{padding:44px 40px;}
@media (max-width:800px){ .contact-cell{padding:32px 28px;} }
.contact-cell + .contact-cell{border-left:1px solid var(--line);}
@media (max-width:800px){ .contact-cell + .contact-cell{border-left:none;border-top:1px solid var(--line);} }
.contact-cell h2,.contact-cell h3{font-size:26px;margin-bottom:18px;}
.contact-line{display:block;font-size:16px;font-weight:600;margin-bottom:10px;}
.contact-note{font-size:var(--fs-meta);color:#6b6a5d;margin-top:14px;}
.contact-cell.dark{background:var(--graphite);color:var(--paper);}
.contact-cell.dark h2,.contact-cell.dark h3{color:var(--paper);}
.contact-cell.dark .contact-note{color:#a8a69a;}

/* ---------- PRODUCT DETAIL PAGE ---------- */
.chip{
  display:inline-flex;align-items:center;justify-content:center;text-decoration:none;
  min-width:76px;box-sizing:border-box;text-align:center;
  border:1px solid var(--line);background:var(--plaster);color:var(--graphite);
  font-size:var(--fs-meta);font-weight:600;padding:9px 14px;
  font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.chip:hover{border-color:var(--clay);}
.chip.active{background:var(--clay);border-color:var(--clay);color:var(--paper);}
.detail-grid{display:grid;grid-template-columns:0.9fr 1fr;gap:56px;align-items:start;}
@media (max-width:860px){ .detail-grid{grid-template-columns:1fr;} }
.detail-media{border:1px solid var(--line);}
.detail-media img, .detail-media .swatch{width:100%;height:340px;object-fit:cover;}
.detail-media .swatch{align-items:flex-end;}
.spec-list{list-style:none;margin:22px 0 28px;border-top:1px solid var(--line);}
.spec-list li{padding:13px 0;border-bottom:1px solid var(--line);font-size:var(--fs-body-sm);color:#3a3934;}
.spec-list li b{color:var(--graphite);font-weight:700;margin-right:6px;}
.detail-note{font-size:var(--fs-meta);color:#8f8d81;margin-top:20px;}
.qty-field{display:flex;align-items:center;gap:12px;margin-bottom:18px;}
.qty-field label{font-size:var(--fs-label);font-weight:700;letter-spacing:0.5px;text-transform:uppercase;color:var(--clay-dark);}
.qty-unit-label{font-weight:600;color:#6b6a5d;text-transform:none;}
.qty-field input{
  width:76px;padding:10px 12px;border:1px solid var(--line);background:var(--paper);
  font-family:'Archivo',sans-serif;font-size:15px;font-weight:600;color:var(--graphite);
}
.qty-field input:focus{outline:2px solid var(--clay);outline-offset:1px;}
.thickness-select{margin:22px 0 4px;}
.thickness-select-label{display:block;font-size:var(--fs-label);font-weight:700;letter-spacing:0.5px;text-transform:uppercase;color:var(--clay-dark);margin-bottom:10px;}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;}

/* ---------- FAQ ---------- */
.faq-list{max-width:760px;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 4px;font-weight:600;font-size:var(--fs-lead);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+";font-family:'Bebas Neue',sans-serif;font-size:22px;color:var(--clay-dark);flex-shrink:0;
}
.faq-item[open] summary::after{content:"–";}
.faq-item p{padding:0 4px 20px;color:#54534c;font-size:var(--fs-body-sm);max-width:64ch;}

/* ---------- CTA BANNER ---------- */
.cta-banner{background:var(--graphite);color:var(--paper);text-align:left;}
.cta-banner .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.cta-banner h2{color:var(--paper);font-size:clamp(26px,3.5vw,38px);max-width:20ch;}

/* ---------- FOOTER ---------- */
footer{padding:36px 0;background:var(--graphite);color:#c9c7bd;}
.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
.footer-inner .brand-name{font-size:22px;line-height:1;color:var(--paper);}
.footer-note{font-size:var(--fs-label);color:#a09e92;}
.footer-nav{display:flex;gap:12px 20px;flex-wrap:wrap;align-items:center;}
.footer-nav a{font-size:var(--fs-meta);color:#c9c7bd;}
.footer-nav a:hover{color:var(--paper);}
.social-link{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-meta);color:#c9c7bd;}
.social-link svg{width:15px;height:15px;flex-shrink:0;}
.social-link:hover{color:var(--paper);}

/* ---------- Páginas legales ---------- */
.legal{max-width:760px;}
.legal .legal-date{color:#6b6a5d;font-size:var(--fs-meta);margin-bottom:28px;}
.legal h2{font-size:clamp(24px,3vw,30px);margin:38px 0 12px;}
.legal p,.legal li{color:#3d3c36;margin-bottom:12px;}
.legal ul{padding-left:20px;margin-bottom:12px;}
.legal a{color:var(--clay-dark);text-decoration:underline;}

/* Medida a pedido ("Otro") en el selector de variantes */
.custom-dim{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:var(--fs-body-sm);font-weight:600;color:#54534c;}
.custom-dim input{width:110px;padding:9px 11px;border:1px solid var(--line);background:var(--paper);font-family:'Archivo',sans-serif;font-size:15px;font-weight:600;color:var(--graphite);}
.custom-dim input:focus{outline:2px solid var(--clay);outline-offset:1px;}

/* ---------- BLOG ---------- */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
@media (max-width:980px){ .post-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .post-grid{grid-template-columns:1fr;gap:20px;} }
.post-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);transition:transform .15s ease,border-color .15s ease;}
.post-card:hover{transform:translateY(-3px);border-color:var(--clay);}
.post-card img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;}
.post-card-body{display:flex;flex-direction:column;gap:10px;padding:20px 22px 22px;flex:1;}
.post-card-body .kicker{margin-bottom:0;}
.post-card h2,.post-card h3{font-family:'Archivo',sans-serif;font-size:19px;font-weight:700;line-height:1.3;letter-spacing:0;color:var(--graphite);}
.post-card p{font-size:var(--fs-body-sm);color:#54534c;line-height:1.55;}
.post-meta{font-size:var(--fs-label);color:#6b6a5d;}
.post-read{margin-top:auto;padding-top:6px;font-size:var(--fs-meta);font-weight:700;color:var(--clay-dark);}
.post-meta-hero{color:#c9c7bd;margin-top:16px;}
.article-hero h1{font-size:clamp(32px,4.6vw,52px);max-width:24ch;}

.article-section{padding:64px 0 72px;}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:64px;align-items:start;}
@media (max-width:980px){ .article-layout{grid-template-columns:minmax(0,1fr);gap:40px;} .article-aside{position:static !important;} .toc{display:none;} }
.article-aside{position:sticky;top:96px;display:flex;flex-direction:column;gap:20px;}
.toc{border:1px solid var(--line);background:#fff;padding:20px 22px;}
.toc ol{list-style:none;margin-top:6px;counter-reset:toc;}
.toc li{counter-increment:toc;border-top:1px solid var(--line);}
.toc li:first-child{border-top:none;}
.toc a{display:flex;gap:10px;padding:9px 0;font-size:var(--fs-meta);line-height:1.4;color:#44433d;}
.toc a::before{content:counter(toc, decimal-leading-zero);font-family:'Bebas Neue',sans-serif;font-size:15px;color:var(--clay-dark);}
.toc a:hover{color:var(--clay-dark);}
.aside-cta{background:var(--graphite);color:var(--paper);padding:22px;}
.aside-cta .kicker{color:#e98a52;}
.aside-cta p{font-size:var(--fs-body-sm);color:#e7e3d8;margin-bottom:16px;line-height:1.55;}

.prose{min-width:0;max-width:74ch;color:#33322d;font-size:17px;line-height:1.75;}
.prose .article-cover{margin:0 0 32px;}
.prose .article-cover img{width:100%;height:auto;border:1px solid var(--line);}
.prose .lead-p{font-size:19px;line-height:1.65;color:var(--graphite);}
.prose h2{font-size:clamp(28px,3.4vw,36px);color:var(--graphite);margin:52px 0 16px;scroll-margin-top:96px;}
.prose h3{font-family:'Archivo',sans-serif;font-size:19px;font-weight:700;letter-spacing:0;line-height:1.35;color:var(--graphite);margin:30px 0 8px;}
.prose p{margin-bottom:18px;}
.prose ul,.prose ol{margin:0 0 22px 22px;}
.prose li{margin-bottom:9px;padding-left:4px;}
.prose li::marker{color:var(--clay-dark);font-weight:700;}
.prose a{color:var(--clay-dark);font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.prose strong{color:var(--graphite);}
.prose small{font-size:var(--fs-meta);color:#6b6a5d;}
.prose table{display:block;overflow-x:auto;width:100%;border-collapse:collapse;margin:8px 0 26px;font-size:15px;line-height:1.5;}
.prose th{background:var(--graphite);color:var(--paper);text-align:left;font-size:var(--fs-label);font-weight:700;letter-spacing:0.4px;padding:10px 12px;white-space:nowrap;}
.prose td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top;min-width:140px;}
.prose td:first-child{min-width:170px;}
.prose tbody tr:nth-child(even) td{background:#faf6ee;}
.prose figure{margin:32px 0;}
.prose figure img{width:100%;height:auto;max-height:480px;object-fit:contain;background:#fff;border:1px solid var(--line);}
.prose figcaption{font-size:var(--fs-meta);color:#6b6a5d;margin-top:8px;}
.prose .callout{background:var(--plaster);border-left:4px solid var(--clay);padding:16px 20px;margin:26px 0;font-size:16px;}
.article-faq{margin-top:12px;}
.article-faq .faq-list{max-width:none;}
@media (max-width:640px){ .prose{font-size:16px;} .prose .lead-p{font-size:17px;} .article-section{padding:40px 0 56px;} }
.article-sources{margin-top:40px;padding-top:8px;border-top:1px solid var(--line);}
.article-sources h2{margin-top:28px;}
.article-sources ol{font-size:var(--fs-body-sm);line-height:1.55;}
.article-sources li{margin-bottom:8px;}
.article-sources a{word-break:break-word;}
.article-sources p{font-size:var(--fs-meta);color:#6b6a5d;}

/* ---------- COTIZACIÓN (carrito) ---------- */
.cart-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;}
.cart-clear{display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:6px 0;cursor:pointer;font-family:inherit;font-size:var(--fs-meta);font-weight:600;color:#6b6a5d;text-decoration:underline;text-underline-offset:3px;}
.cart-clear svg{width:15px;height:15px;flex-shrink:0;}
.cart-clear:hover{color:var(--clay-dark);}
.cart-send{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
@media (max-width:640px){ .cart-send .btn{flex:1 1 100%;text-align:center;} }
.cart-clear{white-space:nowrap;}
@media (max-width:640px){
  .cart-head{align-items:flex-start;}
  .cart-row{flex-wrap:wrap;row-gap:10px !important;}
  .cart-row-name{flex:1 1 100% !important;}
  .cart-row-remove{margin-left:auto;padding:8px 0;}
}
