/* =============================================================
   FIDES LABORIS · Design System
   Paleta tierra suave · Serif + Sans · Formal cálido
   ============================================================= */

@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Inter:ital,opsz,wght@0,14..32,300..700;1,14..32,300..700&display=swap');

/* ─── Variables ─── */
:root {
  --lino:         #FAF7F2;
  --arena-claro:  #F1E9DE;
  --arena:        #E3D9CB;
  --greda:        #C9B79C;
  --tierra:       #8A6A47;
  --tierra-osc:   #6B4F33;
  --tierra-muyosc:#4A3A28;
  --oliva:        #5E6B52;
  --oliva-claro:  #ABB89F;
  --tinta:        #2E2A25;
  --tinta-suave:  #6E655B;
  --blanco:       #FFFFFF;
  --error:        #9A3B3B;

  --serif: 'Lora', 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, serif;
  --sans:  'Inter', 'Segoe UI', -apple-system, Helvetica, Arial, sans-serif;

  --max-w: 1120px;
  --radius: 6px;
  --radius-sm: 3px;
  --transition: 0.25s ease;
  --shadow-card: 0 1px 3px rgba(0,0,0,.04);
}

/* ─── Reset ─── */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--lino);
  color:var(--tinta);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img{max-width:100%;display:block}
a{
  color:var(--tierra);
  text-decoration:none;
  transition:color var(--transition);
  border-bottom:1px solid var(--arena);
}
a:hover{color:var(--tierra-osc);border-color:var(--greda)}
a.no-border{border-bottom:0}

::selection{background:var(--greda);color:var(--tinta)}

/* ─── Utilities ─── */
.wrap{max-width:var(--max-w);margin:0 auto;padding:0 28px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* ─── Header ─── */
header.top{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:var(--blanco);
  border-bottom:1px solid var(--arena);
  transition:box-shadow var(--transition);
}
header.top.scrolled{box-shadow:0 1px 6px rgba(0,0,0,.05)}
header.top .wrap{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:14px;padding-bottom:14px;gap:16px;
}

.marca{
  font-family:var(--serif);
  font-size:20px;
  letter-spacing:.28em;
  color:var(--tierra);
  font-weight:600;
  white-space:nowrap;
  border:0;
  display:flex;align-items:center;gap:10px;
}
.marca .logo-icon{width:30px;height:30px;flex:0 0 auto;display:block}
.marca:hover{color:var(--tierra-osc)}

.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:4px;color:var(--tinta-suave)}
.nav-toggle svg{display:block}

nav{display:flex;align-items:center;gap:4px}
nav a{
  font-size:14px;
  letter-spacing:.04em;
  padding:6px 14px;
  border-radius:var(--radius-sm);
  border:0;
  color:var(--tinta-suave);
  transition:color var(--transition), background var(--transition);
  white-space:nowrap;
}
nav a:hover{color:var(--tierra);background:var(--arena-claro)}
nav a.active{color:var(--tierra-osc);font-weight:600}

@media(max-width:820px){
  .nav-toggle{display:block}
  nav{
    display:none;
    position:absolute;top:100%;left:0;right:0;
    background:var(--lino);
    border-bottom:1px solid var(--arena);
    flex-direction:column;
    padding:8px 28px 16px;
    gap:2px;
  }
  nav.open{display:flex}
  nav a{width:100%;padding:10px 14px;font-size:15px}
}

/* ─── Hero ─── */
.hero{
  position:relative;
  min-height:92vh;
  display:flex;align-items:center;
  overflow:hidden;
  background:var(--lino);
  padding:120px 0 80px;
}
.hero-bg{
  position:absolute;inset:0;
  overflow:hidden;
  pointer-events:none;
}

/* Floating documents */
.doc{
  position:absolute;
  background:#fff;
  border:1px solid var(--arena);
  border-radius:2px;
  opacity:.35;
  will-change:transform;
}
.doc-1{
  width:280px;height:200px;
  top:12%;right:4%;
  transform:rotate(4deg) translateY(0);
  animation:floatDoc1 22s ease-in-out infinite;
  box-shadow:0 6px 24px rgba(0,0,0,.03);
}
.doc-2{
  width:340px;height:220px;
  top:32%;right:-2%;
  transform:rotate(-6deg) translateY(0);
  animation:floatDoc2 26s ease-in-out infinite;
  box-shadow:0 6px 24px rgba(0,0,0,.03);
}
.doc-3{
  width:240px;height:300px;
  top:8%;right:12%;
  transform:rotate(12deg) translateY(0);
  animation:floatDoc3 30s ease-in-out infinite;
  box-shadow:0 6px 24px rgba(0,0,0,.04);
}
.doc-4{
  width:200px;height:260px;
  top:48%;right:6%;
  transform:rotate(-10deg) translateY(0);
  animation:floatDoc1 28s ease-in-out infinite 5s;
  box-shadow:0 6px 24px rgba(0,0,0,.03);
}
.doc-5{
  width:320px;height:180px;
  top:60%;right:20%;
  transform:rotate(3deg) translateY(0);
  animation:floatDoc2 24s ease-in-out infinite 3s;
  box-shadow:0 6px 24px rgba(0,0,0,.03);
}
.doc-6{
  width:260px;height:230px;
  top:20%;left:55%;
  transform:rotate(-3deg) translateY(0);
  animation:floatDoc3 20s ease-in-out infinite 8s;
  box-shadow:0 6px 24px rgba(0,0,0,.03);
}

/* Document "text" lines */
.doc::before{
  content:'';
  position:absolute;
  left:20px;right:20px;
  height:4px;
  border-radius:2px;
  background:var(--arena-claro);
}
.doc-1::before{top:30px}
.doc-1::after{
  content:'';position:absolute;
  left:20px;right:60px;
  top:44px;height:4px;border-radius:2px;
  background:var(--arena-claro);
}
.doc-2::before{top:26px}
.doc-2::after{
  content:'';position:absolute;
  left:20px;right:60px;
  top:40px;height:4px;border-radius:2px;
  background:var(--arena-claro);
}

@keyframes floatDoc1{
  0%,100%{transform:translateY(0) rotate(4deg)}
  33%{transform:translateY(-18px) rotate(5deg)}
  66%{transform:translateY(10px) rotate(3deg)}
}
@keyframes floatDoc2{
  0%,100%{transform:translateY(0) rotate(-6deg)}
  50%{transform:translateY(-22px) rotate(-4deg)}
}
@keyframes floatDoc3{
  0%,100%{transform:translateY(0) rotate(12deg)}
  25%{transform:translateY(16px) rotate(10deg)}
  75%{transform:translateY(-14px) rotate(14deg)}
}

/* Subtle grain overlay */
.hero-bg::after{
  content:'';
  position:absolute;inset:0;
  opacity:.025;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:256px;
}

.hero .wrap{position:relative;z-index:2;width:100%}
.hero .kicker{
  font-size:12px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--greda);
  margin-bottom:20px;
  animation:fadeUp .8s ease both;
}
.hero h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(2rem, 5vw, 3.4rem);
  line-height:1.18;
  margin:0 0 18px;
  max-width:18ch;
  color:var(--tinta);
  animation:fadeUp .8s ease .15s both;
}
.hero p.lead{
  font-size:clamp(1rem, 2vw, 1.2rem);
  line-height:1.7;
  color:var(--tinta-suave);
  max-width:58ch;
  margin:0 0 32px;
  animation:fadeUp .8s ease .3s both;
}
.hero-actions{
  display:flex;flex-wrap:wrap;gap:14px;
  animation:fadeUp .8s ease .45s both;
}

@keyframes fadeUp{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:translateY(0)}
}

/* ─── Buttons ─── */
.cta{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--tierra);color:var(--blanco);
  border:0;border-radius:var(--radius-sm);
  padding:14px 28px;
  font-size:15px;font-family:var(--sans);
  font-weight:500;letter-spacing:.02em;
  cursor:pointer;text-decoration:none;
  transition:background var(--transition), transform var(--transition);
  border:0;
}
.cta:hover{background:var(--tierra-osc);color:var(--blanco);transform:translateY(-1px)}
.cta:active{transform:translateY(0)}
.cta.ghost{
  background:transparent;
  color:var(--tierra);
  border:1px solid var(--greda);
}
.cta.ghost:hover{background:var(--arena-claro);color:var(--tierra-osc);border-color:var(--tierra)}
.cta.sm{padding:10px 20px;font-size:14px}

/* ─── Sections ─── */
section{padding:80px 0}
section.alt{background:var(--arena-claro)}
section+section{border-top:1px solid var(--arena)}

.section-label{
  font-size:11.5px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--greda);
  margin-bottom:16px;
  display:flex;align-items:center;gap:10px;
}
.section-label .sicon{
  width:20px;height:20px;
  color:var(--tierra);
  opacity:.6;
  flex:0 0 auto;
}

h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(1.5rem, 3.5vw, 2.25rem);
  line-height:1.28;
  margin:0 0 10px;
  color:var(--tierra-osc);
}
h2+.sub{
  color:var(--tinta-suave);
  font-size:clamp(1rem, 1.5vw, 1.1rem);
  margin:0 0 40px;
  max-width:62ch;
}

h3{
  font-size:15px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--tierra);
  margin:52px 0 18px;
  font-weight:600;
}

/* ─── Grids ─── */
.grid{display:grid;gap:24px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:820px){.g2,.g3,.g4{grid-template-columns:1fr}}
@media(max-width:1024px){.g4{grid-template-columns:repeat(2,1fr)}}

/* ─── Cards ─── */
.card{
  background:var(--blanco);
  border:1px solid var(--arena);
  border-radius:var(--radius);
  padding:30px 28px 28px;
  transition:border-color var(--transition), box-shadow var(--transition), transform var(--transition);
  position:relative;
}
.card::before{
  content:'';
  position:absolute;
  top:0;left:24px;right:24px;
  height:1px;
  background:linear-gradient(90deg, transparent, var(--greda), transparent);
  opacity:0;
  transition:opacity var(--transition);
}
.card:hover{
  border-color:var(--greda);
  box-shadow:0 1px 8px rgba(0,0,0,.04);
  transform:translateY(-2px);
}
.card:hover::before{opacity:1}
.card .tag{
  display:inline-block;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--oliva);
  border:1px solid var(--arena);
  border-radius:2px;
  padding:3px 9px;
  margin-bottom:14px;
  transition:background var(--transition), color var(--transition), border-color var(--transition);
}
.card:hover .tag{
  background:var(--oliva);
  color:var(--blanco);
  border-color:var(--oliva);
}
.card h4{
  margin:0 0 8px;
  font-size:18px;
  font-family:var(--serif);
  font-weight:600;
  color:var(--tinta);
}
.card .icon{
  width:40px;height:40px;
  margin-bottom:14px;
  color:var(--tierra);
  opacity:.8;
}
.card .num{
  font-size:clamp(1.8rem, 3vw, 2.4rem);
  font-family:var(--serif);
  font-weight:600;
  color:var(--tierra);
  line-height:1;
  margin-bottom:8px;
}
.card.with-hover{cursor:default}
.card p{
  margin:0;
  color:var(--tinta-suave);
  font-size:16px;
  line-height:1.7;
}

/* ─── Panels ─── */
.panel{
  background:var(--arena-claro);
  border-left:3px solid var(--tierra);
  border-radius:0 var(--radius) var(--radius) 0;
  padding:30px 32px;
  transition:background var(--transition);
}
.panel:hover{background:color-mix(in srgb, var(--arena-claro), var(--blanco) 50%)}
.panel h4{
  margin:0 0 12px;
  font-family:var(--serif);
  font-size:20px;
  color:var(--tierra-osc);
  font-weight:600;
}
.panel p{margin:0 0 10px;color:var(--tinta);font-size:16.5px;line-height:1.7}
.panel p:last-child{margin-bottom:0}
.panel ul{margin:0;padding-left:20px}
.panel li{margin-bottom:10px;color:var(--tinta)}
.panel li:last-child{margin-bottom:0}
.panel li b{color:var(--tierra-osc)}
.panel.oliva{border-left-color:var(--oliva)}

/* ─── Tables ─── */
.table-wrap{overflow-x:auto;margin-top:4px}
table{width:100%;border-collapse:collapse;min-width:500px}
thead th{
  text-align:left;
  font-size:11.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--tierra);
  font-weight:600;
  padding:0 18px 10px 0;
  border-bottom:1.5px solid var(--tierra);
}
tbody td{
  padding:16px 18px 16px 0;
  border-bottom:1px solid var(--arena);
  vertical-align:top;
  font-size:16px;
  color:var(--tinta-suave);
  line-height:1.6;
}
tbody td:first-child{
  color:var(--tinta);
  font-weight:500;
  width:28%;
}
tbody td b{color:var(--tinta)}
tbody tr:last-child td{border-bottom:0}

/* ─── Numbered Steps ─── */
ol.pasos{
  counter-reset:s;
  list-style:none;
  padding:0;
  margin:0;
}
ol.pasos li{
  counter-increment:s;
  position:relative;
  padding:0 0 20px 52px;
}
ol.pasos li::before{
  content:counter(s);
  position:absolute;
  left:0;top:-1px;
  width:34px;height:34px;
  border:1px solid var(--greda);
  border-radius:50%;
  color:var(--tierra);
  font-size:14px;
  font-weight:600;
  font-family:var(--sans);
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--blanco);
  transition:background var(--transition), color var(--transition);
}
ol.pasos li:hover::before{
  background:var(--tierra);
  color:var(--blanco);
  border-color:var(--tierra);
}
ol.pasos b{
  display:block;
  color:var(--tinta);
  margin-bottom:3px;
  font-size:17px;
}
ol.pasos span{
  color:var(--tinta-suave);
  font-size:16px;
  display:block;
}
ol.pasos p{margin:0;color:var(--tinta-suave);font-size:16px}

/* ─── Quiz / Self-diagnosis ─── */
.quiz{
  background:var(--blanco);
  border:1px solid var(--arena);
  border-radius:var(--radius);
  padding:36px 38px;
}
.quiz ol{
  margin:0;
  padding-left:22px;
  counter-reset:q;
  list-style:none;
}
.quiz li{
  counter-increment:q;
  margin-bottom:20px;
  color:var(--tinta);
  font-size:18px;
  line-height:1.6;
  padding-left:12px;
  position:relative;
}
.quiz li::before{
  content:counter(q)".";
  position:absolute;
  left:-22px;
  color:var(--tierra);
  font-weight:600;
}
.quiz li:last-child{margin-bottom:0}
.quiz .rem{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid var(--arena);
  color:var(--tinta-suave);
  font-style:italic;
  font-size:16px;
}

/* ─── Fuera (out-of-scope) ─── */
.fuera{
  color:var(--tinta-suave);
  font-size:17px;
  line-height:1.75;
  max-width:80ch;
}

/* ─── Nota (footnotes) ─── */
.nota{
  font-size:14px;
  color:var(--tinta-suave);
  margin-top:28px;
  padding-top:18px;
  border-top:1px solid var(--arena);
  line-height:1.7;
}
.nota b{color:var(--tierra-osc)}

/* ─── Stat bars / highlight numbers ─── */
.stat-row{
  display:flex;flex-wrap:wrap;
  gap:32px;
  margin:32px 0;
}
.stat{
  flex:1;min-width:140px;
}
.stat .val{
  font-size:clamp(1.6rem, 3vw, 2.6rem);
  font-family:var(--serif);
  font-weight:600;
  color:var(--tierra);
  line-height:1.1;
}
.stat .label{
  font-size:13px;
  color:var(--tinta-suave);
  margin-top:4px;
}

/* ─── Contact form ─── */
form.envio{
  background:var(--blanco);
  border:1px solid var(--arena);
  border-radius:var(--radius);
  padding:34px 36px;
}
.bloque-tit{
  font-size:12px;
  letter-spacing:.20em;
  text-transform:uppercase;
  color:var(--tierra-osc);
  font-weight:700;
  margin:36px 0 16px;
  padding-bottom:8px;
  border-bottom:1px solid var(--greda);
}
.bloque-tit:first-of-type{margin-top:6px}

.fila{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:720px){.fila{grid-template-columns:1fr}}

label{
  display:block;
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--tierra);
  font-weight:600;
  margin:0 0 6px;
}
input[type=text],
input[type=email],
input[type=tel],
input[type=number],
input[type=file],
textarea,
select{
  width:100%;
  padding:11px 14px;
  border:1px solid var(--arena);
  border-radius:var(--radius-sm);
  background:var(--lino);
  font-family:var(--sans);
  font-size:16px;
  color:var(--tinta);
  margin-bottom:18px;
  transition:border-color var(--transition), box-shadow var(--transition);
}
input:focus,textarea:focus,select:focus{
  outline:0;
  border-color:var(--greda);
  box-shadow:0 0 0 3px rgba(201,183,156,.15);
}
textarea{min-height:90px;resize:vertical}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238A6A47' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}

.ayuda{
  display:block;
  font-size:13px;
  line-height:1.5;
  color:var(--tinta-suave);
  margin-top:-12px;
  margin-bottom:18px;
  font-style:italic;
}
.aviso-cal{
  font-size:14px;
  color:var(--tinta-suave);
  font-style:italic;
  margin:4px 0 18px;
  padding:12px 16px;
  border-left:2px solid var(--greda);
  background:var(--arena-claro);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}

/* Fieldset tipo empresa */
.tipoemp{
  border:1px solid var(--greda);
  background:var(--arena-claro);
  padding:22px 20px 16px;
  margin:20px 0 22px;
  border-radius:var(--radius-sm);
  position:relative;
}
.tipoemp legend{
  position:absolute;
  top:-10px;
  left:14px;
  background:var(--arena-claro);
  padding:0 10px;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--tierra-osc);
  font-weight:700;
  width:auto;
  float:none;
}
.tipoemp label{
  display:flex;gap:12px;
  align-items:flex-start;
  margin-bottom:10px;
  cursor:pointer;
  font-size:14.5px;
  line-height:1.55;
  text-transform:none;
  letter-spacing:0;
  color:var(--tinta);
  font-weight:400;
}
.tipoemp label:last-child{margin-bottom:0}
.tipoemp input[type=radio]{margin-top:4px;width:17px;height:17px;flex:0 0 auto;accent-color:var(--tierra)}
.tipoemp b{color:var(--tierra-osc)}
.tipoemp span{display:block;color:var(--tinta-suave);font-size:13.5px}

/* Formatos */
.formatos{
  border:1px solid var(--arena);
  border-radius:var(--radius-sm);
  padding:22px 24px;
  margin:-4px 0 24px;
  background:var(--lino);
}
.formatos .tit{
  margin:0 0 16px;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--tierra);
  font-weight:600;
}
.formatos .niv{display:flex;gap:14px;align-items:flex-start;margin-bottom:14px}
.formatos .niv p{margin:0;font-size:15px;line-height:1.65;color:var(--tinta-suave)}
.formatos .niv b{color:var(--tinta)}
.formatos .niv span{
  flex:0 0 auto;
  width:24px;height:24px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:12.5px;font-weight:600;color:#fff;
  margin-top:2px;
}
.formatos .n1{background:var(--oliva)}
.formatos .n2{background:var(--tierra)}
.formatos .n3{background:var(--greda)}
.formatos .tip{
  margin:16px 0 0;
  padding-top:14px;
  border-top:1px solid var(--arena);
  font-size:14.5px;
  line-height:1.6;
  color:var(--tinta-suave);
}
.formatos .tip b{color:var(--tierra-osc)}

.limites{
  background:var(--arena-claro);
  border-left:3px solid var(--greda);
  padding:16px 18px;
  margin:12px 0 8px;
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}
.limites p{margin:0 0 10px;font-size:14.5px;line-height:1.6}
.limites p:last-child{margin-bottom:0}
.limites .ojo{color:var(--error)}
.limites kbd{
  background:var(--blanco);
  border:1px solid var(--greda);
  border-bottom-width:2px;
  border-radius:3px;
  padding:1px 6px;
  font-size:12.5px;
  font-family:inherit;
}
.limites code{
  background:var(--blanco);
  padding:1px 5px;
  border-radius:2px;
  font-size:13px;
}

/* Consent */
.consent{
  background:var(--arena-claro);
  border-left:3px solid var(--oliva);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  padding:22px 24px;
  margin:10px 0 24px;
}
.consent .item{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}
.consent .item:last-child{margin-bottom:0}
.consent input[type=checkbox]{width:19px;height:19px;margin:3px 0 0;flex:0 0 auto;accent-color:var(--oliva)}
.consent p{margin:0;font-size:15px;line-height:1.6;color:var(--tinta)}
.consent .oblig{
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--oliva);
  font-weight:600;
  display:block;
  margin-bottom:4px;
}
.consent .opt{color:var(--tinta-suave)}

/* Resumen */
.resumen{border-top:2px solid var(--tierra);margin-bottom:18px}
.resumen .r{
  display:flex;gap:18px;
  padding:12px 0;
  border-bottom:1px solid var(--greda);
  align-items:flex-start;
}
.resumen .r:last-child{border-bottom:0}
.resumen .r span{
  flex:0 0 150px;
  font-size:12.5px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--tierra-osc);
  font-weight:700;
  padding-top:2px;
}
.resumen .r p{margin:0;font-size:15px;line-height:1.6;color:var(--tinta-suave)}
.resumen .destaca{background:#F6EFE3;margin:0 -2px;padding:12px 2px}
.resumen .destaca span{color:var(--error)}

.link-terminos{font-size:13.5px;color:var(--tinta-suave);margin:14px 0 0}
.post-envio{
  font-size:14px;
  color:var(--tinta-suave);
  margin:16px 0 0;
  text-align:center;
  font-style:italic;
}
.obligatorio{color:var(--error);font-size:14px}

/* ─── Footer ─── */
footer{
  background:var(--arena-claro);
  padding:56px 0 48px;
  border-top:1px solid var(--arena);
  margin-top:80px;
}
footer .wrap{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:40px;
}
footer .marca{
  font-size:18px;
  display:inline-flex;
  align-items:center;gap:8px;
}
footer .marca .logo-icon{width:24px;height:24px}
footer .desc{
  margin:8px 0 0;
  color:var(--tinta-suave);
  font-size:14.5px;
  line-height:1.7;
}
footer nav a{
  display:block;
  margin:0 0 6px;
  font-size:14.5px;
  padding:4px 0;
  border:0;
}
footer nav a:hover{color:var(--tierra-osc);background:transparent}
footer h5{
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--tierra);
  font-weight:600;
  margin:0 0 14px;
}
footer .bottom{
  grid-column:1/-1;
  padding-top:24px;
  border-top:1px solid var(--arena);
  font-size:13px;
  color:var(--tinta-suave);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
}
@media(max-width:820px){
  footer .wrap{grid-template-columns:1fr;gap:32px}
}

/* ─── Scroll-triggered reveals ─── */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

