/* ============================================================
   FUENTES AUTOALOJADAS (sin peticiones a terceros)
   ============================================================ */
@font-face{ font-family:'Barlow Condensed'; font-style:normal; font-weight:400; font-display:swap; src:url(fonts/barlow-condensed-latin-400-normal.woff2) format('woff2'); }
@font-face{ font-family:'Barlow Condensed'; font-style:normal; font-weight:500; font-display:swap; src:url(fonts/barlow-condensed-latin-500-normal.woff2) format('woff2'); }
@font-face{ font-family:'Barlow Condensed'; font-style:normal; font-weight:600; font-display:swap; src:url(fonts/barlow-condensed-latin-600-normal.woff2) format('woff2'); }
@font-face{ font-family:'Inter'; font-style:normal; font-weight:400; font-display:swap; src:url(fonts/inter-latin-400-normal.woff2) format('woff2'); }
@font-face{ font-family:'Inter'; font-style:normal; font-weight:500; font-display:swap; src:url(fonts/inter-latin-500-normal.woff2) format('woff2'); }
@font-face{ font-family:'Inter'; font-style:normal; font-weight:600; font-display:swap; src:url(fonts/inter-latin-600-normal.woff2) format('woff2'); }

/* ============================================================
   TOKENS. Disciplina Cálida
   Carbón + Hueso = base · Ocre = carácter · Rojo óxido = activación
   ============================================================ */
:root{
  --carbon:      #201E1C;
  --carbon-2:    #2B2825;
  --hueso:       #E8DFCC;
  --hueso-hi:    #F3EEE1;
  --hueso-dim:   #DED2B4;
  --ocre:        #C89532;
  --ocre-dim:    #A87C28;
  --ocre-text:   #6B4D18;
  --oxido:       #C94335;
  --oxido-dim:   #A5362A;
  --oxido-bright:#DD6355;
  --grey:        #8B8579;

  --f-display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  --f-body:    'Inter', -apple-system, sans-serif;

  --ease: cubic-bezier(.22,.8,.32,1);
  --edge-dark:  1px solid rgba(232,223,204,0.14);
  --edge-light: 1px solid rgba(32,30,28,0.14);

  --scroll-pct: 0;
  --header-h: 108px;
}
@media (max-width:640px){ :root{ --header-h: 84px; } }

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:72px; }
[hidden]{ display:none !important; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}

body{
  margin:0;
  background:var(--hueso);
  color:var(--carbon);
  font-family:var(--f-body);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font:inherit; cursor:pointer; background:none; border:none; color:inherit; }

h2,h3{
  font-family:var(--f-display); font-weight:500; text-transform:uppercase;
  letter-spacing:0.01em; line-height:1.03; margin:0;
}
h2{ font-weight:600; }
.claim{ font-family:var(--f-body); font-weight:500; letter-spacing:-0.01em; text-transform:none; }

.eyebrow{
  font-family:var(--f-body); font-weight:500; font-size:0.72rem;
  letter-spacing:0.14em; text-transform:uppercase; color:var(--carbon); opacity:0.85;
  display:flex; align-items:center; gap:0.6em; margin-bottom:1.1em;
}
.eyebrow::before{ content:""; width:20px; height:1px; background:var(--ocre); display:inline-block; }
.section--dark .eyebrow{ color:var(--hueso); opacity:0.85; }

.section{ position:relative; padding:clamp(4.5rem,9vw,7.5rem) 0; }
.section--tight{ padding-top:clamp(1rem,3vw,2rem); }
.section--dark{ background:var(--carbon); color:var(--hueso); }
.section--dark .muted{ color:var(--grey); }
.muted{ color:#6B6558; }

.wrap{ width:100%; max-width:1200px; margin:0 auto; padding:0 clamp(1.25rem,4vw,2.5rem); }

.reveal{ opacity:0; transform:translateY(20px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; } }

.btn{
  display:inline-flex; align-items:center; gap:0.6em; padding:0.9em 1.6em;
  font-family:var(--f-body); font-weight:500; font-size:0.85rem; letter-spacing:0.03em;
  border-radius:2px; border:1px solid transparent;
  transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .2s var(--ease);
  white-space:nowrap;
}
.btn-primary{ background:var(--oxido); color:var(--hueso-hi); }
.btn-primary:hover{ background:var(--oxido-dim); transform:translateY(-1px); }
.btn-ghost-dark{ border-color:rgba(32,30,28,0.3); color:var(--carbon); }
.btn-ghost-dark:hover{ border-color:var(--carbon); background:rgba(32,30,28,0.05); }
.btn-ghost-light{ border-color:rgba(232,223,204,0.35); color:var(--hueso); }
.btn-ghost-light:hover{ border-color:var(--hueso); background:rgba(232,223,204,0.08); }
:focus-visible{ outline:2px solid var(--oxido); outline-offset:2px; }

.skip-link{ position:absolute; left:-999px; top:0; z-index:999; background:var(--oxido); color:#fff; padding:0.8em 1.2em; font-size:0.85rem; }
.skip-link:focus{ left:1rem; top:1rem; }

/* ---- planos elevados: usar con cuenta gotas ---- */
.plane{
  background:var(--hueso-hi);
  border:var(--edge-light);
  box-shadow:0 14px 34px -18px rgba(32,30,28,0.28);
  border-radius:3px;
}
.section--dark .plane{
  background:var(--carbon-2);
  border:var(--edge-dark);
  box-shadow:0 14px 34px -16px rgba(0,0,0,0.45);
}

/* ============================================================
   INDICADOR VERTICAL DE RECORRIDO
   ============================================================ */
.road-rail{ position:fixed; left:0; top:0; bottom:0; width:30px; z-index:60; display:flex; justify-content:center; pointer-events:none; }
.road-rail::before{
  content:""; position:absolute; top:0; bottom:0; left:50%; width:1.5px; transform:translateX(-50%);
  background-image:repeating-linear-gradient(to bottom, var(--ocre) 0 12px, transparent 12px 24px);
  opacity:0.55;
}
.road-marker{
  position:absolute; left:50%; top:0; width:10px; height:10px; border-radius:50%;
  background:var(--oxido); transform:translate(-50%,-50%);
  box-shadow:0 0 9px 2px rgba(201,67,53,0.5);
}
.road-bar{ display:none; position:fixed; top:0; left:0; right:0; height:2.5px; z-index:91; background:rgba(32,30,28,0.12); }
.road-bar-fill{ height:100%; background:var(--oxido); width:calc(var(--scroll-pct) * 100%); }
@media (max-width:860px){ .road-rail{ display:none; } .road-bar{ display:block; } }

/* ============================================================
   HEADER EN DOS ESTADOS
   ============================================================ */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:80;
  transition:padding .35s var(--ease), background .35s var(--ease), backdrop-filter .35s var(--ease);
  padding:1.9rem 0;
  background:linear-gradient(180deg, rgba(32,30,28,0.75) 0%, rgba(32,30,28,0) 100%);
}
.site-header.is-scrolled{
  padding:0.6rem 0;
  background:rgba(32,30,28,0.94);
  backdrop-filter:blur(6px);
  border-bottom:var(--edge-dark);
  box-shadow:0 8px 24px -14px rgba(0,0,0,0.4);
}
.nav{ max-width:1200px; margin:0 auto; padding:0 clamp(1.25rem,4vw,2.5rem); display:flex; align-items:center; justify-content:space-between; gap:1.25rem; }
.brand{ display:flex; align-items:center; gap:0.7rem; color:var(--hueso); }
.brand-mark{ width:54px; height:54px; flex:none; object-fit:contain; transition:width .35s var(--ease), height .35s var(--ease); }
.site-header.is-scrolled .brand-mark{ width:32px; height:32px; }
.brand-word{ font-family:var(--f-display); font-weight:400; font-size:1.2rem; letter-spacing:0.06em; text-transform:uppercase; line-height:1; transition:font-size .35s var(--ease); }
.site-header.is-scrolled .brand-word{ font-size:1rem; }
.brand-word .amp{ color:var(--oxido-bright); }

.nav-links{ display:none; align-items:center; gap:clamp(1rem,1.8vw,1.6rem); }
.nav-links a{
  font-family:var(--f-body); font-weight:500; font-size:0.78rem; letter-spacing:0.03em;
  color:var(--hueso); opacity:0.72; position:relative; padding:0.4em 0; transition:opacity .2s;
}
.nav-links a::after{ content:""; position:absolute; left:0; right:100%; bottom:-2px; height:1px; background:var(--oxido); transition:right .25s var(--ease); }
.nav-links a:hover{ opacity:1; }
.nav-links a:hover::after{ right:0; }
.nav-links a.is-active{ opacity:1; color:var(--oxido-bright); }
.nav-links a.is-active::after{ right:0; }

.nav-social{ display:none; align-items:center; gap:0.7rem; }
.nav-social a{ color:var(--hueso); opacity:0.65; transition:opacity .2s, color .2s; }
.nav-social a:hover{ opacity:1; color:var(--oxido-bright); }
.nav-social svg{ width:16px; height:16px; }

.nav-cta{ display:none; }
@media (min-width:900px){ .nav-cta{ display:inline-flex; } .nav-links{ display:flex; } .nav-social{ display:flex; } }

.menu-toggle{ display:flex; flex-direction:column; gap:5px; padding:0.4rem; z-index:90; }
@media (min-width:900px){ .menu-toggle{ display:none; } }
.menu-toggle span{ width:22px; height:2px; background:var(--hueso); transition:transform .3s var(--ease), opacity .3s; }
.menu-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-menu{
  position:fixed; inset:0; background:var(--carbon); z-index:75;
  display:flex; flex-direction:column; align-items:flex-start; justify-content:center;
  gap:1.15rem; padding:2rem clamp(1.5rem,8vw,3rem);
  transform:translateX(100%); transition:transform .4s var(--ease);
  overflow-y:auto;
}
.mobile-menu.is-open{ transform:translateX(0); }
.mobile-menu a.menu-link{ font-family:var(--f-display); font-weight:500; font-size:clamp(1.5rem,7vw,2rem); text-transform:uppercase; color:var(--hueso); }
.mobile-menu .btn{ margin-top:0.6rem; }
.mobile-menu-wa{ display:flex; align-items:center; gap:0.5em; font-family:var(--f-body); font-size:0.85rem; color:var(--grey); margin-top:0.3rem; }
.mobile-menu-wa svg{ width:16px; height:16px; color:#3CBB6B; }
.mobile-menu .nav-social{ display:flex; margin-top:1rem; gap:1.2rem; }
.mobile-menu .nav-social svg{ width:20px; height:20px; }

/* ============================================================
   01 · HEADER + HERO como apertura única
   ============================================================ */
.hero{ position:relative; min-height:clamp(620px,50vw,100svh); display:flex; align-items:flex-end; overflow:hidden; }
.hero{ background:var(--carbon); }
.hero-bg{ position:absolute; inset:0; overflow:hidden; }
.hero-bg img.hero-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:30% 100%; }
@media (max-width:860px){
  .hero{ display:block; min-height:0; }
  .hero-bg{ position:relative; inset:auto; height:clamp(360px,58svh,560px); }
  .hero-bg img.hero-photo{ object-position:50% 50%; }
  .hero-overlay{ bottom:auto; height:clamp(360px,58svh,560px); background:linear-gradient(180deg, rgba(32,30,28,0.5) 0%, rgba(32,30,28,0) 24%, rgba(32,30,28,0) 52%, var(--carbon) 100%); }
  .hero-content{ padding-top:0; margin-top:-5.5rem; padding-bottom:2.8rem; }
}
.hero-road{ position:absolute; left:0; right:0; bottom:0; height:2px; background-image:repeating-linear-gradient(to right, var(--ocre) 0 28px, transparent 28px 56px); opacity:0.55; }
.hero-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(32,30,28,0.42) 0%, rgba(32,30,28,0) 22%, rgba(32,30,28,0.08) 48%, rgba(32,30,28,0.62) 76%, rgba(32,30,28,0.92) 100%), linear-gradient(90deg, rgba(32,30,28,0.45) 0%, rgba(32,30,28,0) 55%); }
.hero-content{ position:relative; z-index:2; width:100%; padding-bottom:clamp(3rem,7vw,5rem); padding-top:var(--header-h); }
.hero-inner{ max-width:1200px; margin:0 auto; padding:0 clamp(1.25rem,4vw,2.5rem); }
.hero h1{
  font-family:var(--f-body); font-weight:500; color:var(--hueso-hi); text-transform:uppercase;
  letter-spacing:-0.01em; line-height:1.02; font-size:clamp(2rem,7.6vw,5.4rem); margin:0;
}
.hero .lede{ font-size:clamp(0.98rem,1.5vw,1.1rem); color:var(--hueso); opacity:0.8; max-width:42ch; margin:1.3rem 0 2rem; }
.hero-actions{ display:flex; gap:1rem; flex-wrap:wrap; align-items:center; }

/* ============================================================
   02 · MARQUEE + GUIÑO DE GIRA
   ============================================================ */
.marquee-band{ background:var(--carbon); color:var(--hueso); border-top:var(--edge-dark); display:flex; align-items:stretch; overflow:hidden; }
.marquee-scroll{ flex:1; overflow:hidden; padding:1rem 0; }
.marquee-track{ display:flex; width:max-content; animation:scrollmarquee 40s linear infinite; }
@media (prefers-reduced-motion: reduce){ .marquee-track{ animation:none; } .marquee-scroll{ overflow-x:auto; } }
.marquee-track span{
  font-family:var(--f-body); font-weight:500; font-size:clamp(0.85rem,1.8vw,1.1rem);
  letter-spacing:0.06em; text-transform:uppercase; padding:0 1.3rem; white-space:nowrap;
  display:flex; align-items:center; gap:1.3rem;
}
.marquee-track span::after{ content:"·"; color:var(--ocre); }
@keyframes scrollmarquee{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

/* ============================================================
   FRASE LIGERA ENTRE BLOQUES
   ============================================================ */
.frase-ligera{ padding:clamp(2.5rem,6vw,4rem) 0; }
.frase-ligera .wrap{ display:flex; align-items:flex-start; gap:1rem; max-width:640px; }
.frase-ligera .dot{ flex:none; width:8px; height:8px; border-radius:50%; background:var(--oxido); margin-top:0.5em; }
.frase-ligera p{ font-family:var(--f-display); font-weight:500; font-size:clamp(1.05rem,2.3vw,1.4rem); text-transform:none; letter-spacing:0; color:var(--carbon); opacity:0.85; margin:0; }

/* ============================================================
   03 · SERVICIOS (accordion editorial)
   ============================================================ */
.servicios-head{ max-width:680px; margin-bottom:2.8rem; }
.servicios-kicker{ font-family:var(--f-body); font-weight:500; font-size:0.78rem; letter-spacing:0.1em; color:var(--oxido-dim); text-transform:uppercase; margin-bottom:0.6rem; }
.servicios-head h2{ font-size:clamp(2.2rem,6vw,3.6rem); }

.acc{ border-top:var(--edge-light); }
.acc-item{ border-bottom:var(--edge-light); }
.acc-header{
  width:100%; display:flex; align-items:center; gap:1.2rem;
  padding:1.6rem 0; text-align:left; min-height:64px; transition:padding-left .25s var(--ease);
}
.acc-header:hover{ padding-left:0.4rem; }
.acc-header:hover .acc-toggle{ border-color:var(--oxido-dim); }
.acc-num{ font-family:var(--f-body); font-weight:500; font-size:0.85rem; letter-spacing:0.08em; color:var(--ocre-text); flex:none; width:2.2rem; transition:color .2s; }
.acc-header[aria-expanded="true"] .acc-num{ color:var(--oxido-dim); }
.acc-titles{ flex:1; min-width:0; }
.acc-h{ margin:0; font:inherit; text-transform:none; letter-spacing:0; line-height:inherit; }
.acc-title{ display:block; font-family:var(--f-display); font-weight:500; text-transform:uppercase; letter-spacing:0.01em; line-height:1.03; font-size:clamp(1.35rem,3vw,1.9rem); }
.acc-teaser{ display:block; font-size:0.9rem; color:var(--carbon); opacity:0.74; margin-top:0.25rem; }
.acc-toggle{
  flex:none; width:34px; height:34px; border-radius:50%; border:1px solid var(--oxido); color:var(--oxido);
  display:flex; align-items:center; justify-content:center; transition:transform .3s var(--ease), background .2s, color .2s;
}
.acc-toggle svg{ width:14px; height:14px; transition:transform .3s var(--ease); }
.acc-header[aria-expanded="true"] .acc-toggle{ background:var(--oxido); color:var(--hueso-hi); }
.acc-header[aria-expanded="true"] .acc-toggle svg{ transform:rotate(45deg); }

.acc-panel-wrap{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .45s var(--ease); }
.acc-panel-wrap.is-open{ grid-template-rows:1fr; }
.acc-panel{ overflow:hidden; }
.acc-panel-inner{ padding:1.8rem clamp(1.2rem,3vw,2rem) 2.2rem; margin-bottom:1.6rem; }

.acc-text{ max-width:64ch; color:var(--carbon); opacity:0.78; font-size:0.98rem; margin-bottom:1.4rem; }
/* ---- utilidades de bloque ---- */
.acc-text{ max-width:64ch; }
.btn-gap{ margin-top:1.4rem; }
.sector-tags{ display:flex; flex-wrap:wrap; gap:0.5rem; margin:0 0 1.4rem; }
.sector-tags span{ font-family:var(--f-body); font-size:0.7rem; letter-spacing:0.03em; color:var(--ocre-text); }
.sector-tags span:not(:last-child)::after{ content:"·"; margin-left:0.5rem; color:var(--ocre); }

/* ============================================================
   04 · POR QUÉ CONFIAR (continuación del mismo capítulo)
   ============================================================ */
.porque-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:start; }
@media (max-width:900px){ .porque-grid{ grid-template-columns:1fr; } }
.perfiles{ display:flex; flex-direction:column; }
.perfil{ display:grid; grid-template-columns:9rem 1fr; gap:1.2rem; padding:1.3rem 0; border-top:var(--edge-light); }
.perfil:last-child{ border-bottom:var(--edge-light); }
.perfil-role{ font-family:var(--f-display); font-weight:500; font-size:1.05rem; text-transform:uppercase; color:var(--carbon); }
.perfil p{ margin:0; color:var(--carbon); opacity:0.72; font-size:0.95rem; }
.porque-statement{ line-height:1.05; margin-top:0; font-family:var(--f-display); font-weight:500; text-transform:uppercase; font-size:clamp(1.7rem,4.2vw,2.6rem); letter-spacing:0.005em; max-width:13ch; margin-bottom:1.6rem; }
.porque-statement em{ font-style:normal; color:var(--oxido-dim); }
.drivers-note{ margin-top:2rem; padding-top:1.6rem; border-top:var(--edge-light); font-size:0.92rem; color:var(--carbon); opacity:0.78; max-width:60ch; }
.drivers-note strong{ opacity:1; font-weight:600; }

/* ============================================================
   05 · PUENTE DE PROPUESTA DE VALOR
   ============================================================ */
.puente{ background:var(--carbon); color:var(--hueso); padding:clamp(5rem,12vw,8.5rem) 0; position:relative; overflow:hidden; }
.puente::before{
  content:""; position:absolute; top:0; left:0; width:100%; height:2px;
  background:linear-gradient(90deg, transparent, var(--oxido) 20%, var(--oxido) 80%, transparent);
  opacity:0.6;
}
.puente .eyebrow{ color:var(--hueso); opacity:0.85; }
.puente .claim{ font-size:clamp(1.8rem,5.5vw,3.4rem); color:var(--hueso-hi); }
.puente .claim em{ font-style:normal; color:var(--ocre); }
.puente p.sub{ margin-top:1.3rem; color:var(--grey); font-size:1rem; max-width:50ch; }
.puente .hero-actions{ margin-top:2rem; }

/* ============================================================
   06 · NOSOTROS (fotografía solapada)
   ============================================================ */
.nosotros-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(2rem,5vw,4.5rem); align-items:start; }
@media (max-width:900px){ .nosotros-grid{ grid-template-columns:1fr; gap:1.6rem; } }
.nosotros-title h2{ font-size:clamp(2.4rem,6.4vw,4.4rem); max-width:11ch; }
.nosotros-body{ padding:clamp(1.8rem,4vw,3rem); }
.nosotros-body p{ color:var(--carbon); opacity:0.78; font-size:1rem; max-width:52ch; margin:0 0 1rem; }
.nosotros-body p strong{ color:var(--ocre-text); font-weight:600; opacity:1; }
.chips{ display:flex; flex-wrap:wrap; gap:0.5rem 0; margin-top:1.8rem; font-family:var(--f-body); font-weight:500; font-size:0.78rem; letter-spacing:0.05em; text-transform:uppercase; }
.chips span{ color:var(--carbon); opacity:0.7; }
.chips span:not(:last-child)::after{ content:"·"; margin:0 0.6em; color:var(--oxido-dim); opacity:1; }

/* ============================================================
   07 · NUESTRA RED (oscura, solo texto)
   ============================================================ */
.red-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:start; }
@media (max-width:900px){ .red-grid{ grid-template-columns:1fr; } }
.red-head h2{ font-size:clamp(2rem,5vw,3.2rem); }
.red-head p{ margin-top:1.2rem; max-width:52ch; color:var(--hueso); opacity:0.78; font-size:1rem; }
.red-list{ display:flex; flex-direction:column; border-top:var(--edge-dark); }
.red-list li{ display:flex; align-items:baseline; gap:1.1rem; padding:1.15rem 0; border-bottom:var(--edge-dark); font-family:var(--f-display); font-weight:500; font-size:clamp(1.2rem,2.6vw,1.6rem); text-transform:uppercase; letter-spacing:0.01em; color:var(--hueso-hi); }
.red-list li::before{ content:""; flex:none; width:8px; height:8px; border-radius:50%; background:var(--oxido); transform:translateY(-0.1em); }

/* ============================================================
   09 · CONTACTO
   ============================================================ */
.contacto-head{ max-width:640px; margin-bottom:2.6rem; }
.contacto-head h2{ font-size:clamp(2.1rem,5.4vw,3.2rem); }
.contacto-head p{ margin-top:1rem; opacity:0.72; font-size:1rem; max-width:44ch; }
.contacto-inner{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:start; }
@media (max-width:900px){ .contacto-inner{ grid-template-columns:1fr; } }

.channels{ display:flex; flex-direction:column; gap:0.7rem; }
.channel-wa{
  display:flex; align-items:center; gap:1rem; padding:1.1rem 1.2rem;
  background:var(--carbon); color:var(--hueso); border-radius:3px;
  box-shadow:0 14px 30px -16px rgba(32,30,28,0.4);
}
.channel-wa .channel-icon{ background:rgba(232,223,204,0.1); border-color:transparent; color:#3CBB6B; }
.channel-wa .channel-text small{ color:var(--grey); opacity:1; }
.channel-wa .channel-text span{ color:var(--hueso-hi); }
.channel{ display:flex; align-items:center; gap:0.9rem; padding:0.85rem 0; border-top:var(--edge-light); transition:opacity .2s; }
.channel:hover{ opacity:0.7; }
.channel-icon{ flex:none; width:38px; height:38px; border-radius:50%; border:1px solid rgba(32,30,28,0.25); display:flex; align-items:center; justify-content:center; }
.channel-icon svg{ width:17px; height:17px; }
.channel-text small{ display:block; text-transform:uppercase; letter-spacing:0.06em; font-size:0.65rem; opacity:0.74; }
.channel-text span{ font-family:var(--f-body); font-size:0.98rem; }

.form-wrap{ background:var(--carbon); color:var(--hueso); padding:clamp(1.6rem,3vw,2.2rem); border-radius:3px; box-shadow:0 20px 44px -20px rgba(32,30,28,0.45); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:520px){ .form-row{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:0.4rem; margin-bottom:0.95rem; }
.field label{ font-family:var(--f-body); font-size:0.66rem; letter-spacing:0.07em; text-transform:uppercase; color:var(--grey); }
.field input, .field select, .field textarea{
  background:var(--carbon-2); border:1px solid rgba(232,223,204,0.2); color:var(--hueso);
  font-family:var(--f-body); font-size:0.92rem; padding:0.7em 0.8em; border-radius:2px; width:100%;
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:2px solid var(--oxido); outline-offset:1px; border-color:transparent; }
.field textarea{ resize:vertical; min-height:80px; }
.field--check{ flex-direction:row; align-items:flex-start; gap:0.7rem; }
.field--check input{ width:18px; height:18px; flex:none; margin-top:0.15rem; accent-color:var(--oxido); }
.field--check label{ text-transform:none; letter-spacing:0; font-size:0.76rem; line-height:1.5; color:var(--hueso); opacity:0.85; }
.field--check label a{ text-decoration:underline; text-underline-offset:2px; }
.field-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.field input[aria-invalid="true"], .field select[aria-invalid="true"], .field textarea[aria-invalid="true"]{ border-color:var(--oxido-bright); }
.form-status.is-error{ display:block; color:var(--oxido-bright); }
.form-submit{ width:100%; justify-content:center; margin-top:0.3rem; }
.form-note{ font-family:var(--f-body); font-size:0.66rem; color:var(--grey); margin-top:0.85rem; line-height:1.5; }
.form-status{ margin-top:0.85rem; font-size:0.8rem; display:none; }
.form-status.is-success{ display:block; color:#9AC98A; }
.form-status.is-fallback{ display:block; color:var(--hueso); opacity:0.85; }

.wa-float{
  position:fixed; right:clamp(1rem,4vw,1.5rem); bottom:clamp(1rem,4vw,1.5rem); z-index:70;
  display:flex; align-items:center; gap:0.55rem; background:var(--carbon); color:var(--hueso);
  padding:0.8em 1.05em; border-radius:999px; box-shadow:0 10px 26px -10px rgba(0,0,0,0.5);
  border:1px solid var(--oxido);
  font-family:var(--f-body); font-weight:500; font-size:0.8rem;
  opacity:0; transform:translateY(12px); pointer-events:none;
  transition:opacity .35s var(--ease), transform .35s var(--ease), border-color .2s;
}
.wa-float svg{ color:#3CBB6B; }
.wa-float.is-shown{ opacity:1; transform:translateY(0); pointer-events:auto; }
.wa-float:hover{ border-color:var(--oxido-bright); }
.wa-float svg{ width:19px; height:19px; flex:none; }
@media (max-width:480px){ .wa-float span{ display:none; } .wa-float{ padding:0.8em; } }

/* ============================================================
   10 · CIERRE
   ============================================================ */
.cierre{ background:var(--carbon); color:var(--hueso); padding:clamp(5rem,14vw,9rem) 0; text-align:center; }
.cierre h2{ font-family:var(--f-body); font-weight:500; text-transform:uppercase; letter-spacing:-0.01em; font-size:clamp(1.8rem,6vw,3.6rem); max-width:20ch; margin:0 auto; }
.cierre-mark{ margin-top:2.2rem; display:flex; align-items:center; justify-content:center; opacity:0.95; }
.cierre-mark img{ width:clamp(84px,12vw,120px); height:auto; }

.site-footer{ background:var(--carbon); color:var(--grey); border-top:var(--edge-dark); padding:1.8rem 0; }
.footer-links{ display:flex; gap:1.2rem; flex-wrap:wrap; }
.footer-links a{ color:var(--grey); text-decoration:underline; text-decoration-color:rgba(139,133,121,0.4); text-underline-offset:3px; transition:color .2s; }
.footer-links a:hover{ color:var(--hueso); }
.footer-inner{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:0.7rem; letter-spacing:0.02em; }

/* ============================================================
   PÁGINAS INTERIORES (aviso legal, privacidad, 404)
   ============================================================ */
.page-header{ background:var(--carbon); padding:1.2rem 0; border-bottom:var(--edge-dark); }
.page-header .nav{ padding:0 clamp(1.25rem,4vw,2.5rem); }
.page-header .brand-mark{ width:40px; height:40px; }
.page-header .brand-word{ font-size:1.05rem; }
.page-back{ font-family:var(--f-body); font-weight:500; font-size:0.78rem; letter-spacing:0.03em; color:var(--hueso); opacity:0.8; }
.page-back:hover{ opacity:1; }
.legal{ padding:clamp(3rem,7vw,5rem) 0 clamp(4rem,9vw,6.5rem); }
.legal .wrap{ max-width:820px; }
.legal h1{ font-family:var(--f-display); font-weight:600; text-transform:uppercase; letter-spacing:0.01em; line-height:1.03; font-size:clamp(2.2rem,6vw,3.4rem); margin:0 0 0.6rem; }
.legal .updated{ font-size:0.8rem; color:#6B6558; margin:0 0 2.4rem; }
.legal h2{ font-size:clamp(1.25rem,2.6vw,1.6rem); margin:2.2rem 0 0.7rem; }
.legal p, .legal li{ font-size:0.98rem; color:var(--carbon); opacity:0.86; max-width:68ch; }
.legal ul{ list-style:disc; padding-left:1.3rem; margin:0 0 1rem; }
.legal li{ margin-bottom:0.35rem; }
.legal a{ color:var(--oxido-dim); text-decoration:underline; text-underline-offset:3px; }
.legal dl{ margin:0 0 1rem; display:grid; grid-template-columns:minmax(9rem,14rem) 1fr; gap:0.5rem 1.2rem; font-size:0.95rem; }
.legal dt{ font-weight:600; }
.legal dd{ margin:0; }
@media (max-width:560px){ .legal dl{ grid-template-columns:1fr; gap:0.1rem; } .legal dd{ margin-bottom:0.6rem; } }
.notfound{ min-height:70vh; display:flex; align-items:center; }
.notfound h1{ margin-bottom:1rem; }
.notfound .btn{ margin-top:1.2rem; }
