/* =========================================================
   URUALUM — Landing
   Paleta extraída del logo oficial 2024:
     azul de marca  #257CE1
     oscuro de marca #1E1E1C  (negro cálido, no negro puro)
   ========================================================= */

:root{
  /* marca */
  --brand:        #257CE1;
  --brand-dark:   #1A5FB4;
  --brand-darker: #144B8F;
  --brand-tint:   #EAF2FD;
  --ink:          #1E1E1C;

  /* grises neutros */
  --g-900: #1E1E1C;
  --g-800: #2E2E2B;
  --g-700: #4A4F57;
  --g-500: #6E747D;
  --g-400: #8A9099;
  --g-300: #D6DAE0;
  --g-200: #EDEFF2;
  --g-100: #F7F8F9;
  --white: #FFFFFF;

  /* tipografía */
  --font-display: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body:    "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* layout */
  --wrap: 1180px;
  --pad: 24px;
  --header-h: 76px;
  --topbar-h: 40px;

  --radius: 14px;
  --radius-sm: 8px;

  --shadow-sm: 0 1px 2px rgba(30,30,28,.06), 0 2px 8px rgba(30,30,28,.05);
  --shadow-md: 0 6px 16px rgba(30,30,28,.08), 0 12px 32px rgba(30,30,28,.07);
  --shadow-lg: 0 12px 28px rgba(30,30,28,.12), 0 24px 60px rgba(30,30,28,.10);

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top: calc(var(--header-h) + 12px); }
body{
  margin:0;
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.7;
  color:var(--g-700);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
}
img,svg{ max-width:100%; display:block; }
a{ color:inherit; }

h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--ink);
  line-height:1.12;
  letter-spacing:-.02em;
  margin:0 0 .5em;
  font-weight:800;
}

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad); }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:999;
  background:var(--ink); color:#fff; padding:12px 18px; border-radius:0 0 var(--radius-sm) 0;
}
.skip-link:focus{ left:0; }

:where(a,button,[tabindex]):focus-visible{
  outline:3px solid var(--brand);
  outline-offset:3px;
  border-radius:4px;
}

/* ---------- tipografía utilitaria ---------- */
.h2{ font-size:clamp(2rem, 1.3rem + 2.6vw, 3.1rem); }
.h2--sm{ font-size:clamp(1.5rem, 1.1rem + 1.4vw, 2.1rem); }
.eyebrow{
  font-family:var(--font-display);
  font-weight:700; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--brand); margin:0 0 .9rem;
}
.lead{ font-size:1.13rem; color:var(--g-700); }
.note{
  font-size:.85rem; color:var(--g-500); font-style:italic;
  border-left:3px solid var(--g-300); padding-left:12px; margin-top:1.4rem;
}
.note--center{
  border:0; border-top:1px solid var(--g-200); padding:1.4rem 0 0;
  text-align:center; margin-top:2.6rem;
}
.accent{ color:var(--brand); }

/* ---------- barra Grupo RSV ---------- */
.topbar{
  position:fixed; top:0; left:0; right:0; z-index:95;
  height:var(--topbar-h);
  display:flex; align-items:center;
  background:var(--white); border-bottom:1px solid var(--g-200);
  transition:transform .35s var(--ease);
}
.topbar__inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; }
.topbar__group,.topbar__region{ display:flex; align-items:center; gap:9px; }
.topbar__label,.topbar__text{
  font-family:var(--font-display); font-weight:600;
  font-size:.74rem; letter-spacing:.02em; color:var(--g-500);
}
.topbar__logo{ height:17px; width:auto; }
.topbar__flags{ height:16px; width:auto; border-radius:2px; }
.topbar.is-hidden{ transform:translateY(-100%); }

/* ---------- header ---------- */
.site-header{
  position:fixed; top:var(--topbar-h); left:0; right:0; z-index:100;
  height:var(--header-h);
  display:flex; align-items:center;
  background:transparent;
  transition:top .35s var(--ease), background .3s var(--ease), box-shadow .3s var(--ease), height .3s var(--ease);
}
.site-header.is-stuck{ top:0; }
.site-header.is-stuck{
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(12px);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  box-shadow:var(--shadow-sm);
  height:64px;
}
.header__inner{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
.header__logo{ display:block; position:relative; flex:none; }
.logo{ height:38px; width:auto; transition:opacity .3s var(--ease); }
.logo--dark{ position:absolute; inset:0; opacity:0; }
.site-header.is-stuck .logo--light{ opacity:0; }
.site-header.is-stuck .logo--dark{ opacity:1; }

.nav{ display:flex; gap:26px; }
.nav a{
  font-family:var(--font-display); font-weight:600; font-size:.97rem;
  text-decoration:none; color:rgba(255,255,255,.9);
  padding:6px 0; position:relative; transition:color .25s var(--ease);
}
.nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--brand); transform:scaleX(0); transform-origin:left;
  transition:transform .3s var(--ease);
}
.nav a:hover::after,.nav a:focus-visible::after{ transform:scaleX(1); }
.site-header.is-stuck .nav a{ color:var(--g-800); }
.nav a:hover{ color:var(--brand); }

.nav-toggle{
  display:none; width:44px; height:44px; border:0; background:none; cursor:pointer;
  flex-direction:column; justify-content:center; gap:5px; padding:0;
}
.nav-toggle span{
  display:block; height:2px; width:24px; margin-inline:auto; background:#fff;
  transition:transform .3s var(--ease), opacity .2s var(--ease), background .3s var(--ease);
}
.site-header.is-stuck .nav-toggle span{ background:var(--ink); }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:min(88vh, 820px);
  display:flex; align-items:center;
  padding:calc(var(--header-h) + 72px) 0 140px;
  background:var(--ink);
  overflow:hidden;
  isolation:isolate;
}
.hero__media{ position:absolute; inset:0; z-index:-2; }
.hero__pattern{ width:100%; height:100%; object-fit:cover; }

/* --- SLOT HERO: descomentá esto cuando exista img/hero.webp ---
.hero__media{
  background-image:linear-gradient(rgba(20,20,19,.72), rgba(20,20,19,.72)), url("../img/hero.webp");
  background-size:cover; background-position:center;
}
.hero__pattern{ display:none; }
--- fin SLOT HERO --- */

.hero__content{ position:relative; z-index:1; max-width:820px; }
.hero__eyebrow{
  font-family:var(--font-display); font-weight:700;
  font-size:.8rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--brand); margin:0 0 1.2rem;
}
.hero__title{
  color:#fff;
  font-size:clamp(2.5rem, 1.4rem + 4.6vw, 4.6rem);
  letter-spacing:-.035em;
  margin-bottom:1.3rem;
}
.hero__lead{
  color:rgba(255,255,255,.78);
  font-size:clamp(1.02rem,.95rem + .4vw,1.22rem);
  max-width:620px; margin:0 0 2.4rem;
}
.hero__cta{ display:flex; flex-wrap:wrap; gap:14px; }

/* ---------- botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-display); font-weight:700; font-size:1rem;
  padding:15px 30px; border-radius:var(--radius-sm);
  text-decoration:none; border:2px solid transparent; cursor:pointer;
  transition:transform .2s var(--ease), background .25s var(--ease),
             border-color .25s var(--ease), color .25s var(--ease), box-shadow .25s var(--ease);
}
.btn:hover{ transform:translateY(-2px); }
.btn--primary{ background:var(--brand); color:#fff; box-shadow:0 6px 18px rgba(37,124,225,.35); }
.btn--primary:hover{ background:var(--brand-dark); box-shadow:0 10px 26px rgba(37,124,225,.42); }
.btn--ghost{ border-color:rgba(255,255,255,.35); color:#fff; }
.btn--ghost:hover{ border-color:#fff; background:rgba(255,255,255,.1); }
.btn--wa{ background:#25D366; color:#0B3D1E; width:100%; box-shadow:0 6px 18px rgba(37,211,102,.32); }
.btn--wa:hover{ background:#1FBE5A; }
.btn--wa svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linejoin:round; }
.btn--wa + .btn--wa{ margin-top:12px; }
.btn--wa-alt{ background:transparent; color:#fff; border-color:rgba(255,255,255,.4); box-shadow:none; }
.btn--wa-alt:hover{ background:rgba(37,211,102,.16); border-color:#25D366; }

/* ---------- divisores orgánicos ---------- */
.divider{ position:absolute; left:0; width:100%; height:clamp(60px,8vw,120px); display:block; }
.divider--hero{ bottom:-1px; }
.break{ position:relative; background:var(--brand); height:clamp(150px,20vw,240px); }
.break .divider{ top:-1px; }
.break .divider--flip{ top:auto; bottom:-1px; }

/* ---------- secciones ---------- */
.section{ padding:clamp(72px,9vw,130px) 0; }
.section--alt{ background:var(--g-100); }
.section--tight{ padding-top:0; }
.section__head{ max-width:680px; margin:0 auto clamp(40px,5vw,64px); text-align:center; }
.section__head .eyebrow{ margin-bottom:.7rem; }

.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,88px); align-items:start; }
.grid-2--contact{ align-items:start; }

/* ---------- feature list ---------- */
.feature-list{ display:grid; gap:8px; }
.feature{
  display:flex; gap:18px; align-items:flex-start;
  padding:20px; border-radius:var(--radius);
  transition:background .25s var(--ease);
}
.feature:hover{ background:var(--g-100); }
.feature__icon{
  flex:none; width:28px; height:28px; margin-top:4px;
  fill:none; stroke:var(--brand); stroke-width:1.7;
  stroke-linecap:round; stroke-linejoin:round;
}
.feature h3{ font-size:1.05rem; margin:0 0 .25rem; font-weight:700; }
.feature p{ margin:0; font-size:.96rem; color:var(--g-500); }

/* ---------- stats ---------- */
.stats{ background:var(--ink); color:#fff; padding:clamp(48px,6vw,76px) 0; }
.stats__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:32px; text-align:center; }
.stat__num{
  display:block; font-family:var(--font-display); font-weight:800;
  font-size:clamp(2.2rem,1.6rem + 2vw,3.2rem); color:var(--brand);
  line-height:1; letter-spacing:-.03em; margin-bottom:.5rem;
}
.stat__label{ font-size:.92rem; color:rgba(255,255,255,.7); }
.stat__label em{ font-style:normal; color:rgba(255,255,255,.4); font-size:.85em; }
.stat__plus{ color:var(--brand); }

/* ---------- cards de producto ---------- */
.cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(258px,1fr));
  gap:26px;
}
.cards--2{ grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); }

.card{
  background:#fff; border:1px solid var(--g-200); border-radius:var(--radius);
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--g-300); }
.card--new{ border-top:3px solid var(--brand); }
.card--premium{ border-top:3px solid #B8860B; }
.card__media{
  background:var(--g-100); padding:26px;
  display:flex; align-items:center; justify-content:center;
  border-bottom:1px solid var(--g-200);
  overflow:hidden;
}
.card__media img{ width:170px; height:170px; transition:transform .45s var(--ease); }
/* miniaturas de corte real (no cuadradas): mantener proporción */
.card__media img.profile-thumb{ width:auto; height:auto; max-width:100%; max-height:150px; }
.card:hover .card__media img{ transform:scale(1.07); }
.card__body{ padding:24px; display:flex; flex-direction:column; flex:1; }
.card__title{ font-size:1.22rem; margin:.35rem 0 .55rem; }
.card__desc{ margin:0 0 1rem; font-size:.95rem; color:var(--g-500); flex:1; }
.card--wide .card__media{ padding:20px; }
.card--wide .card__media img{ width:130px; height:130px; }

/* ---------- grilla compacta de accesorios ---------- */
.acc-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:16px;
}
.acc{
  background:#fff; border:1px solid var(--g-200); border-radius:var(--radius-sm);
  overflow:hidden; text-align:center;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.acc[hidden]{ display:none; }
.acc:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--g-300); }
.acc__media{
  background:#fff; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center;
  padding:14px; overflow:hidden;
}
.acc__media img{ width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; transition:transform .4s var(--ease); }
.acc:hover .acc__media img{ transform:scale(1.06); }
.acc__name{
  font-size:.82rem; font-weight:600; color:var(--g-800);
  margin:0; padding:10px 12px 14px; line-height:1.3;
  border-top:1px solid var(--g-200);
}
.acc-actions{
  display:flex; flex-wrap:wrap; gap:14px; justify-content:center;
  margin-top:36px;
}
.btn--dark{ border-color:var(--g-300); color:var(--g-800); }
.btn--dark:hover{ border-color:var(--brand); color:var(--brand); background:var(--brand-tint); }
.btn--outline{ border-color:var(--brand); color:var(--brand); }
.btn--outline:hover{ background:var(--brand); color:#fff; }

.chip{
  display:inline-block; align-self:flex-start;
  font-family:var(--font-display); font-weight:700;
  font-size:.68rem; letter-spacing:.09em; text-transform:uppercase;
  padding:5px 11px; border-radius:99px;
  background:var(--brand-tint); color:var(--brand-darker);
}
.chip--todo{
  background:#FFF3D6; color:#8A6212; margin-left:6px;
  vertical-align:middle; letter-spacing:.05em;
}
.chip--nueva{ background:var(--brand); color:#fff; }
.chip--premium{
  margin-left:6px; color:#fff; letter-spacing:.05em;
  background:linear-gradient(135deg,#B8860B,#8A6212);
}
.chip-row{ display:flex; flex-wrap:wrap; gap:0; align-items:center; }
.chip-row .chip{ margin-left:0; }
.chip-row .chip + .chip{ margin-left:6px; }

/* ---------- CTA en card de línea (abre el catálogo) ---------- */
.card__cta{
  margin-top:14px; align-self:flex-start;
  display:inline-flex; align-items:center; gap:4px;
  font-family:var(--font-display); font-weight:600; font-size:.82rem; line-height:1;
  letter-spacing:-.01em;
  color:var(--brand); background:none; border:0; padding:0; cursor:pointer;
}
.card__cta svg{ width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s var(--ease); }
.card__cta span{ border-bottom:1px solid transparent; transition:border-color .2s var(--ease); padding-bottom:1px; }
.card__cta:hover span{ border-color:currentColor; }
.card__cta[aria-expanded="true"] svg{ transform:rotate(180deg); }

/* ---------- panel de catálogo por línea ---------- */
.line-panels{ margin:0; }
.line-panels:empty{ display:none; }
.line-panel{
  grid-column:1 / -1;   /* ocupa toda la fila de la grilla, sale bajo su card */
  border:1px solid var(--g-200); border-top:3px solid var(--brand);
  border-radius:var(--radius); overflow:hidden;
  background:#fff; box-shadow:var(--shadow-md);
}
/* card cuyo catálogo está abierto: resalta el vínculo */
.card.is-panel-open{ border-color:var(--brand); box-shadow:var(--shadow-md); }
.card.is-panel-open .card__cta{ color:var(--brand-dark); }
.line-panel__head{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:16px 22px; border-bottom:1px solid var(--g-200); background:var(--g-100);
}
.line-panel__title{ font-size:1rem; margin:0; font-family:var(--font-display); font-weight:700; color:var(--ink); }
.line-panel__title em{ font-style:normal; color:var(--brand); }
.line-panel__close{
  flex:none; width:36px; height:36px; border:0; border-radius:50%;
  background:#fff; color:var(--ink); cursor:pointer; font-size:1.3rem; line-height:1;
  display:grid; place-items:center; border:1px solid var(--g-200); transition:background .2s var(--ease);
}
.line-panel__close:hover{ background:var(--g-200); }
.profiles__panel{ padding:20px 22px 26px; }
.profiles__grid{
  display:grid; gap:14px;
  grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
}
.pcard{
  border:1px solid var(--g-200); border-radius:var(--radius-sm);
  background:#fff; padding:0; cursor:pointer; overflow:hidden;
  display:flex; flex-direction:column; text-align:center; font:inherit;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease);
}
.pcard:hover{ border-color:var(--brand); box-shadow:var(--shadow-md); transform:translateY(-2px); }
.pcard__title{
  font-family:var(--font-display); font-weight:700; font-size:.82rem;
  color:var(--ink); letter-spacing:-.01em; line-height:1.25;
  padding:11px 10px; border-bottom:1px solid var(--g-200); background:var(--g-100);
}
.pcard:hover .pcard__title{ color:var(--brand); }
.pcard__fig{
  flex:1; display:flex; align-items:center; justify-content:center;
  padding:16px 14px; min-height:132px;
}
.pcard__fig img{ width:100%; height:auto; max-height:130px; object-fit:contain; display:block; pointer-events:none; }

/* ---------- lightbox de perfil ---------- */
.lightbox{
  position:fixed; inset:0; z-index:200; display:none;
  align-items:center; justify-content:center; padding:24px;
  background:rgba(20,20,19,.82); backdrop-filter:blur(4px);
}
.lightbox.is-open{ display:flex; }
.lightbox__inner{
  background:#fff; border-radius:var(--radius); overflow:hidden;
  max-width:min(760px, 94vw); max-height:92vh; width:100%;
  display:flex; flex-direction:column; box-shadow:var(--shadow-lg);
}
.lightbox__head{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 18px; border-bottom:1px solid var(--g-200);
}
.lightbox__name{ font-family:var(--font-display); font-weight:700; color:var(--ink); font-size:1rem; }
.lightbox__close{
  flex:none; width:38px; height:38px; border:0; border-radius:50%;
  background:var(--g-100); color:var(--ink); cursor:pointer; font-size:1.3rem; line-height:1;
  display:grid; place-items:center; transition:background .2s var(--ease);
}
.lightbox__close:hover{ background:var(--g-200); }
.lightbox__body{ padding:24px; overflow:auto; display:flex; align-items:center; justify-content:center; }
.lightbox__body img{ width:100%; max-width:640px; height:auto; }

/* sub-encabezado dentro de una sección (agrupa grillas) */
.cat-subhead{
  display:flex; align-items:center; gap:16px;
  font-family:var(--font-display); font-weight:700;
  font-size:.82rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--g-500); margin:0 0 22px;
}
.cat-subhead:not(:first-of-type){ margin-top:48px; }
.cat-subhead::after{
  content:""; flex:1; height:1px; background:var(--g-200);
}
.cat-subhead .accent{ color:var(--brand); }

.spec{
  display:flex; gap:8px; align-items:baseline; margin:0;
  border-top:1px solid var(--g-200); padding-top:12px;
  font-size:.86rem;
}
.spec dt{ color:var(--g-400); text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; font-weight:600; }
.spec dd{ margin:0; color:var(--g-800); font-weight:600; }

/* ---------- contacto ---------- */
.contact-list{ list-style:none; padding:0; margin:2.2rem 0; display:grid; gap:20px; }
.contact-list li{ display:flex; gap:16px; align-items:flex-start; }
.contact-list svg{
  flex:none; width:22px; height:22px; margin-top:5px;
  fill:none; stroke:var(--brand); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;
}
.contact-list__label{
  display:block; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--g-400); font-weight:600; margin-bottom:2px;
}
.contact-list a{ color:var(--g-800); text-decoration:none; font-weight:500; border-bottom:1px solid var(--g-300); }
.contact-list a:hover{ color:var(--brand); border-color:var(--brand); }
.contact-list li span span{ line-height:2; }
.contact-list__tag{
  display:inline-block; font-style:normal;
  font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; font-weight:700;
  color:var(--brand-darker); background:var(--brand-tint);
  padding:2px 8px; border-radius:99px; margin-left:6px; vertical-align:middle;
}

.social{ display:flex; gap:12px; flex-wrap:wrap; }
.social a{
  display:inline-flex; align-items:center; gap:9px;
  padding:10px 18px; border:1px solid var(--g-300); border-radius:99px;
  text-decoration:none; font-size:.92rem; font-weight:500; color:var(--g-700);
  transition:border-color .25s var(--ease), color .25s var(--ease), background .25s var(--ease);
}
.social a:hover{ border-color:var(--brand); color:var(--brand); background:var(--brand-tint); }
.social svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.7; }

.cta-card{
  background:var(--ink); color:#fff; border-radius:var(--radius);
  padding:clamp(28px,4vw,40px); box-shadow:var(--shadow-md);
}
.cta-card h3{ color:#fff; font-size:1.35rem; margin-bottom:.5rem; }
.cta-card p{ color:rgba(255,255,255,.72); font-size:.96rem; margin:0 0 1.6rem; }
.cta-card__note{ font-size:.8rem !important; color:rgba(255,255,255,.45) !important; margin:1rem 0 0 !important; text-align:center; }

.map{ margin-top:24px; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); }
.map iframe{ width:100%; height:300px; border:0; display:block; filter:grayscale(1) contrast(1.05); }

/* ---------- footer ---------- */
.site-footer{ background:var(--ink); color:rgba(255,255,255,.66); padding:clamp(56px,7vw,84px) 0 32px; font-size:.94rem; }
.footer__grid{ display:grid; grid-template-columns:1.6fr 1fr 1.2fr 1fr; gap:40px; }
.footer__logo{ height:44px; width:auto; margin-bottom:18px; }
.footer__tag{ max-width:300px; margin:0; color:rgba(255,255,255,.55); }
.site-footer h4{ color:#fff; font-size:.78rem; letter-spacing:.13em; text-transform:uppercase; margin:0 0 16px; font-weight:700; }
.site-footer a{ display:block; text-decoration:none; color:rgba(255,255,255,.66); padding:4px 0; transition:color .2s var(--ease); }
.site-footer a:hover{ color:var(--brand); }
.site-footer p{ margin:0 0 6px; }
.footer__bottom{
  margin-top:48px; padding-top:24px; border-top:1px solid rgba(255,255,255,.12);
  font-size:.85rem; color:rgba(255,255,255,.42);
}
.footer__bottom p{ margin:0; }

/* ---------- WhatsApp flotante ---------- */
.wa-float{
  position:fixed; right:20px; bottom:20px; z-index:90;
  width:58px; height:58px; border-radius:50%;
  background:#25D366; display:grid; place-items:center;
  box-shadow:0 6px 20px rgba(37,211,102,.42);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.wa-float:hover{ transform:scale(1.08); box-shadow:0 10px 28px rgba(37,211,102,.55); }
.wa-float svg{ width:32px; height:32px; fill:#fff; }

/* ---------- animación de entrada ---------- */
/* Solo se ocultan si hay JS (clase .js en <html>). Sin JS, todo visible. */
.js .reveal{
  opacity:0; transform:translateY(26px);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
}
.js .reveal.is-visible{ opacity:1; transform:none; }
.js .reveal:nth-child(2){ transition-delay:.08s; }
.js .reveal:nth-child(3){ transition-delay:.16s; }
.js .reveal:nth-child(4){ transition-delay:.24s; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:940px){
  .grid-2{ grid-template-columns:1fr; }
  .stats__grid{ grid-template-columns:repeat(2,1fr); gap:36px 24px; }
  .footer__grid{ grid-template-columns:1fr 1fr; gap:36px; }
}

/* El menú colapsa antes que el resto del layout: son 6 ítems. */
@media (max-width:900px){
  .nav-toggle{ display:flex; }
  /* El menú se ancla al borde inferior del header (top:100%), así acompaña
     el desplazamiento de la barra RSV al hacer scroll sin cálculos manuales. */
  .nav{
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; gap:0;
    background:rgba(255,255,255,.97);
    backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
    padding:8px 20px 20px;
    box-shadow:var(--shadow-md);
    transform:translateY(-12px); opacity:0; pointer-events:none;
    transition:transform .3s var(--ease), opacity .3s var(--ease);
  }
  .nav.is-open{ transform:none; opacity:1; pointer-events:auto; }
  .nav a{ color:var(--g-800); padding:14px 0; border-bottom:1px solid var(--g-200); font-size:1.05rem; }
  .nav a::after{ display:none; }
}

@media (max-width:560px){
  /* En pantallas chicas la barra RSV muestra solo logo + banderas. */
  .topbar__text{ display:none; }
  .topbar__label{ font-size:.68rem; }
}

@media (max-width:760px){
  :root{ --pad:20px; }
  body{ font-size:16px; }

  .hero{ min-height:auto; padding:calc(var(--header-h) + 56px) 0 110px; }
  .hero__cta{ flex-direction:column; align-items:stretch; }
  .btn{ width:100%; }

  /* productos: scroll horizontal con snap */
  .cards{
    display:flex; gap:16px;
    overflow-x:auto; scroll-snap-type:x mandatory;
    margin-inline:calc(var(--pad) * -1);
    padding:4px var(--pad) 18px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
  }
  .card{ flex:0 0 78%; scroll-snap-align:center; }
  .cards--2{ display:grid; grid-template-columns:1fr; overflow:visible; margin-inline:0; padding:0; }
  .cards--2 .card{ flex:auto; }
  /* grillas de líneas: apiladas en mobile (no carrusel) para que el catálogo caiga bajo su card */
  .cards--lines{ display:grid; grid-template-columns:1fr; overflow:visible; margin-inline:0; padding:0; }
  .cards--lines .card{ flex:auto; }

  .footer__grid{ grid-template-columns:1fr; gap:32px; }
  .wa-float{ width:54px; height:54px; right:16px; bottom:16px; }
  .wa-float svg{ width:29px; height:29px; }
}

@media (max-width:420px){
  .stats__grid{ grid-template-columns:1fr; gap:28px; }
  .card{ flex-basis:86%; }
}

/* ---------- accesibilidad ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important; scroll-behavior:auto !important;
  }
  .js .reveal{ opacity:1 !important; transform:none !important; }
}

@media print{
  .site-header,.wa-float,.hero__media,.divider{ display:none !important; }
  body{ color:#000; }
}
