/* ============================================================
   TIPOGRAFÍA — Excon (display) · Ranade (texto) · Instrument Serif (acento)
   Fuentes autoalojadas en /fonts, cargadas como ficheros locales.
   ============================================================ */
@font-face{font-family:'Excon'; font-weight:500; font-style:normal; font-display:swap;
  src:url('../fonts/excon/Excon-Medium.woff2') format('woff2'),
      url('../fonts/excon/Excon-Medium.woff') format('woff');}
@font-face{font-family:'Excon'; font-weight:900; font-style:normal; font-display:swap;
  src:url('../fonts/excon/Excon-Black.woff2') format('woff2'),
      url('../fonts/excon/Excon-Black.woff') format('woff');}
@font-face{font-family:'Ranade'; font-weight:300; font-style:normal; font-display:swap;
  src:url('../fonts/ranade/Ranade-Light.woff2') format('woff2'),
      url('../fonts/ranade/Ranade-Light.woff') format('woff');}
@font-face{font-family:'Ranade'; font-weight:400; font-style:normal; font-display:swap;
  src:url('../fonts/ranade/Ranade-Regular.woff2') format('woff2'),
      url('../fonts/ranade/Ranade-Regular.woff') format('woff');}
@font-face{font-family:'Ranade'; font-weight:700; font-style:normal; font-display:swap;
  src:url('../fonts/ranade/Ranade-Bold.woff2') format('woff2'),
      url('../fonts/ranade/Ranade-Bold.woff') format('woff');}
@font-face{font-family:'Instrument Serif'; font-weight:400; font-style:italic; font-display:swap;
  src:url('../fonts/instrument-serif/InstrumentSerif-Italic.woff2') format('woff2');}

/* ============================================================
   TOKENS — paleta "Verde Obrador"
   Pino · Pino hondo · Bruma verde · Cal · Tinta
   ============================================================ */
:root{
  --pino:    #0C4A33;   /* fondo a sangre */
  --pinoh:   #063223;   /* superficies elevadas, hover, sombras */
  --bruma:   #A9CDBB;   /* texto secundario, menús, bordes */
  --cal:     #F1F5EC;   /* texto principal y secciones claras */
  --tinta:   #04140E;   /* bloque de cierre y pie */

  --cal-alta:#F8FAF4;   /* tarjeta sobre sección clara */
  --cal-linea:#DDE7DC;  /* línea sobre Cal */
  --mint:    #7FD3AC;   /* conforme / ok / latido */
  --alarma:  #D98A5B;   /* aviso de caducidad (contraste funcional) */
  --grano:   rgba(169,205,187,.18); /* pauta del albarán sobre verde */

  --display:'Excon','Archivo',sans-serif;
  --texto:'Ranade','Helvetica Neue',Arial,sans-serif;
  --serif:'Instrument Serif',Georgia,serif;
  --mono:'IBM Plex Mono','SF Mono',Consolas,monospace;

  --ancho:1180px;
  --radio:5px;
  --sombra:0 20px 44px rgba(4,20,14,.35);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
html.lenis{height:auto; scroll-behavior:auto;}
.lenis.lenis-smooth{scroll-behavior:auto;}
body{
  margin:0; overflow-x:hidden; background:var(--pino); color:var(--cal);
  font-family:var(--texto); font-size:17.5px; font-weight:400; line-height:1.6; -webkit-font-smoothing:antialiased;
}
body::after{
  content:''; position:fixed; inset:-50%; z-index:99; pointer-events:none; opacity:.05;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='140' height='140' filter='url(%23n)'/></svg>");
}
::selection{background:var(--mint); color:var(--tinta);}
img,svg{display:block; max-width:100%;}
.logo-mark{display:inline-block; flex:none; aspect-ratio:1139/1060; background-color:currentColor;
  -webkit-mask:url('../images/logo-mark.png') center / contain no-repeat;
  mask:url('../images/logo-mark.png') center / contain no-repeat;}
a{color:inherit;}
:focus-visible{outline:3px solid var(--mint); outline-offset:3px; border-radius:2px;}

h1,h2,h3{font-family:var(--display); font-weight:900; letter-spacing:-.02em; line-height:1.02; margin:0; text-wrap:balance;}
h1{font-size:clamp(2.8rem,6.6vw,5.4rem);}
h2{font-size:clamp(2.05rem,4.5vw,3.5rem);}
h3{font-family:var(--display); font-size:1.18rem; font-weight:500; letter-spacing:-.005em; line-height:1.24;}
p{margin:0 0 1rem;}
em.serif{font-family:var(--serif); font-style:italic; font-weight:400; letter-spacing:.005em;}

.wrap{max-width:var(--ancho); margin:0 auto; padding:0 24px;}
.seccion{padding:clamp(78px,10vw,138px) 0;}
.seccion--tinta{background:var(--tinta); color:var(--cal);}
.seccion--papel{background:var(--cal); color:var(--tinta);}
.centrado{text-align:center;}
.centrado .plomo{margin-left:auto; margin-right:auto;}

/* cabecera de sección */
.cab-seccion{display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-bottom:22px;}
.etiqueta{font-family:var(--mono); font-size:.72rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--bruma); display:inline-block;}
.hoja{font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; color:var(--bruma); opacity:.7; white-space:nowrap;}
.seccion--papel .etiqueta{color:var(--pino);}
.seccion--papel .hoja{color:var(--pino); opacity:.55;}
.centrado .cab-seccion{justify-content:center; position:relative;}
.centrado .hoja{position:absolute; right:0;}
@media(max-width:640px){.centrado .hoja{display:none;}}
.apunte{color:var(--bruma);}
.seccion--papel .apunte{color:#4C6357;}
.plomo{max-width:60ch; font-size:1.14rem; font-weight:300;}

/* ---------- botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family:var(--mono); font-size:.82rem; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; text-decoration:none; text-align:center;
  padding:16px 28px; border-radius:var(--radio); border:1.5px solid var(--cal);
  background:var(--cal); color:var(--tinta); cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease, color .16s ease;
}
.btn i{font-style:normal; display:inline-block; transition:transform .18s ease;}
.btn:hover{transform:translateY(-2px); box-shadow:0 6px 0 rgba(241,245,236,.22);}
.btn:hover i{transform:translateX(4px);}
.btn:active{transform:translateY(0); box-shadow:none;}
.btn--linea{background:transparent; color:var(--cal); border-color:rgba(241,245,236,.5);}
.btn--linea:hover{background:rgba(241,245,236,.1); box-shadow:none;}
/* sobre secciones claras (Cal) */
.seccion--papel .btn{background:var(--pino); color:var(--cal); border-color:var(--pino);}
.seccion--papel .btn:hover{box-shadow:0 6px 0 rgba(12,74,51,.22);}
.seccion--papel .btn--linea{background:transparent; color:var(--pino); border-color:rgba(12,74,51,.4);}
.seccion--papel .btn--linea:hover{background:rgba(12,74,51,.07); box-shadow:none;}
.acciones{display:flex; flex-wrap:wrap; gap:14px;}
.centrado .acciones{justify-content:center;}
.microcopia{font-family:var(--mono); font-size:.74rem; letter-spacing:.07em; text-transform:uppercase; color:var(--bruma); margin:18px 0 0;}

/* ============================================================
   BARRA
   ============================================================ */
.barra{position:sticky; top:0; z-index:60; background:rgba(12,74,51,.82); backdrop-filter:blur(12px); border-bottom:1px solid rgba(169,205,187,.18); transition:box-shadow .25s ease, background .25s ease;}
.barra.con-sombra{box-shadow:0 6px 24px rgba(4,20,14,.32); background:rgba(12,74,51,.95);}
.barra .wrap{display:flex; align-items:center; justify-content:space-between; height:72px; gap:24px;}
.logo{display:flex; align-items:center; gap:11px; text-decoration:none; color:var(--cal);}
.logo .logo-mark{width:30px; color:var(--bruma); transition:transform .5s cubic-bezier(.2,.8,.2,1);}
.logo:hover .logo-mark{transform:rotate(180deg);}
.logo b{font-family:var(--display); font-weight:900; font-size:1.12rem; letter-spacing:-.01em; line-height:1; display:block; color:var(--cal);}
.logo span{font-family:var(--mono); font-size:.62rem; letter-spacing:.24em; color:var(--bruma); display:block; margin-top:3px;}
.menu{display:flex; align-items:center; gap:28px;}
.menu a{font-size:.95rem; text-decoration:none; color:var(--cal);}
.menu a:not(.btn){position:relative;}
.menu a:not(.btn)::after{content:''; position:absolute; left:0; right:100%; bottom:-4px; height:2px; background:var(--mint); transition:right .22s ease;}
.menu a:not(.btn):hover::after{right:0;}
.menu a.btn{padding:12px 20px; color:var(--tinta);}
@media(max-width:900px){.menu a:not(.btn){display:none;}}

/* ============================================================
   PORTADA
   ============================================================ */
.portada{padding:clamp(54px,7vw,98px) 0 clamp(66px,8vw,112px); position:relative; overflow:hidden;}
.portada .wrap{display:grid; grid-template-columns:1.04fr .96fr; gap:clamp(40px,6vw,76px); align-items:center; position:relative;}
@media(max-width:960px){.portada .wrap{grid-template-columns:1fr;}}
.portada .wrap > *{position:relative; z-index:1;}
.palabra{display:inline-block; overflow:hidden; vertical-align:top; padding-bottom:.09em; margin-bottom:-.09em;}
.palabra i{font-style:normal; display:inline-block; will-change:transform;}
.palabra em{font-family:var(--serif); font-style:italic; font-weight:400; color:var(--mint); letter-spacing:.01em;}
.portada .plomo{margin:28px 0 32px;}
.avales{display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:28px; padding-top:24px; border-top:1px solid rgba(169,205,187,.22);}
.aval{display:flex; align-items:center; gap:8px; font-size:.9rem; color:var(--bruma);}
.aval::before{content:''; width:8px; height:8px; border-radius:50%; background:var(--mint); flex:none;}

.pila{position:relative; min-height:448px; padding:6px 0; perspective:1100px;}
@media(max-width:960px){.pila{min-height:0; margin-top:16px;}}
.pila__giro{position:relative; height:100%; transform-style:preserve-3d; will-change:transform;}
.copia{position:absolute; inset:0; border-radius:var(--radio); box-shadow:0 12px 30px rgba(4,20,14,.3);}
.copia--3{background:var(--pinoh); border:1px solid rgba(169,205,187,.25); transform:rotate(-5deg) translate(-15px,17px);}
.copia--2{background:#0E5A3F; border:1px solid rgba(169,205,187,.3); transform:rotate(3.2deg) translate(15px,9px);}
.copia--3::after,.copia--2::after{content:''; position:absolute; left:22px; right:22px; top:34px; bottom:34px;
  background:repeating-linear-gradient(to bottom, var(--grano) 0 1px, transparent 1px 26px);}
.ficha{position:relative; background:var(--cal); color:var(--tinta); border-radius:var(--radio);
  box-shadow:0 28px 54px rgba(4,20,14,.4); padding:26px 26px 22px; min-height:100%; display:flex; flex-direction:column;}
.ficha__cab{display:flex; justify-content:space-between; align-items:baseline; gap:12px; border-bottom:1px solid var(--cal-linea); padding-bottom:14px;}
.ficha__cab b{font-family:var(--mono); font-size:1rem; font-weight:600; letter-spacing:.03em; color:var(--pino);}
.ficha__cab span{font-family:var(--mono); font-size:.67rem; letter-spacing:.13em; color:#6E8578;}
.ficha__cuerpo{padding-top:16px; display:flex; flex-direction:column; gap:14px; flex:1; margin:0;}
.eslabon{display:grid; grid-template-columns:78px 1fr; gap:14px; align-items:start;}
.eslabon dt{font-family:var(--mono); font-size:.64rem; letter-spacing:.13em; text-transform:uppercase; color:var(--pino); opacity:.75; padding-top:4px;}
.eslabon dd{margin:0; font-size:.95rem; line-height:1.4; color:var(--tinta);}
.eslabon dd small{display:block; font-family:var(--mono); font-size:.71rem; color:#6E8578; margin-top:2px;}
.marca-ok{display:flex; align-items:center; gap:8px; font-family:var(--mono); font-size:.69rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--pino); margin:16px 0 0; border-top:1px solid var(--cal-linea); padding-top:14px;}
.punto{width:7px; height:7px; border-radius:50%; background:var(--mint); flex:none; box-shadow:0 0 0 0 var(--mint); animation:latido 2.4s ease-in-out infinite;}
@keyframes latido{0%,100%{opacity:1; box-shadow:0 0 0 0 rgba(127,211,172,.5)}50%{opacity:.55; box-shadow:0 0 0 6px rgba(127,211,172,0)}}

/* ============================================================
   CINTA
   ============================================================ */
.cinta{background:var(--tinta); color:var(--bruma); overflow:hidden; border-top:1px solid rgba(169,205,187,.14); border-bottom:1px solid rgba(169,205,187,.14);}
.cinta__tira{display:flex; width:max-content; animation:marquesina 32s linear infinite;}
.cinta:hover .cinta__tira{animation-play-state:paused;}
.cinta__bloque{display:flex; align-items:center; gap:34px; padding:17px 17px 17px 34px; white-space:nowrap;
  font-family:var(--mono); font-size:.74rem; letter-spacing:.13em; text-transform:uppercase;}
.cinta__bloque i{font-style:normal; color:var(--mint); opacity:.7;}
@keyframes marquesina{to{transform:translateX(-50%);}}

/* ============================================================
   TARJETAS
   ============================================================ */
.rejilla-3{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:54px;}
@media(max-width:900px){.rejilla-3{grid-template-columns:1fr; gap:18px;}}
.pega{background:var(--cal-alta); border:1px solid var(--cal-linea); border-top:5px solid var(--pino); border-radius:var(--radio); padding:28px 26px;
  transition:transform .22s ease, box-shadow .22s ease;}
.pega:hover{transform:translateY(-5px); box-shadow:0 18px 40px rgba(4,20,14,.14);}
.pega b{font-family:var(--mono); font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; color:var(--alarma); display:block; margin-bottom:14px;}
.pega h3{margin-bottom:10px; color:var(--tinta);}
.pega p{margin:0; color:#4C6357; font-size:.98rem;}
.remate{margin-top:46px; padding:28px 30px; background:var(--pino); color:var(--cal); border-radius:var(--radio);
  display:flex; flex-wrap:wrap; gap:18px 28px; align-items:center; justify-content:space-between;}
.remate p{margin:0; font-family:var(--display); font-weight:500; font-size:1.28rem; letter-spacing:-.01em; max-width:52ch;}
.remate .btn{background:var(--cal); color:var(--tinta); border-color:var(--cal);}
.remate .btn:hover{box-shadow:0 6px 0 rgba(241,245,236,.22);}

/* pasos */
.pasos{display:grid; grid-template-columns:repeat(3,1fr); margin-top:56px; border-top:1px solid rgba(169,205,187,.25);}
@media(max-width:900px){.pasos{grid-template-columns:1fr;}}
.paso{padding:32px 30px 36px; border-right:1px solid rgba(169,205,187,.25); border-bottom:1px solid rgba(169,205,187,.25); position:relative; transition:background .2s ease;}
.paso:hover{background:var(--pinoh);}
.paso:last-child{border-right:none;}
@media(max-width:900px){.paso{border-right:none;}}
.paso b{font-family:var(--mono); font-size:.78rem; letter-spacing:.14em; color:var(--mint); display:block; margin-bottom:16px;}
.paso h3{margin-bottom:10px; color:var(--cal);}
.paso p{margin:0; color:var(--bruma); font-size:.97rem;}
.paso em{font-style:normal; display:block; margin-top:12px; font-family:var(--serif); font-size:1.05rem; letter-spacing:0; color:var(--mint);}

/* ============================================================
   BUSCADOR
   ============================================================ */
.buscador{display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(28px,4vw,52px); align-items:start; margin-top:46px;}
@media(max-width:960px){.buscador{grid-template-columns:1fr;}}
.campo-busca{position:relative;}
.campo-busca input{width:100%; font-family:var(--mono); font-size:.95rem; color:var(--cal); background:rgba(169,205,187,.08);
  border:1px solid rgba(169,205,187,.3); border-radius:var(--radio); padding:16px 16px 16px 44px;}
.campo-busca input::placeholder{color:var(--bruma); opacity:.65;}
.campo-busca input:focus{border-color:var(--mint); outline:none; background:rgba(169,205,187,.12);}
.campo-busca svg{position:absolute; left:15px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--bruma);}
.pistas{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px;}
.pista{font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; background:transparent; color:var(--bruma);
  border:1px solid rgba(169,205,187,.4); border-radius:20px; padding:7px 13px; cursor:pointer; transition:background .15s ease, color .15s ease;}
.pista:hover{background:var(--mint); color:var(--tinta); border-color:var(--mint);}
.contador{font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--mint); margin:22px 0 10px;}
.lotes{display:flex; flex-direction:column; gap:10px;}
.lote{display:flex; justify-content:space-between; align-items:center; gap:14px; text-align:left; width:100%;
  background:transparent; color:var(--cal); border:1px solid rgba(169,205,187,.28); border-radius:var(--radio);
  padding:14px 16px; cursor:pointer; font-family:var(--texto); font-size:.96rem; transition:background .15s ease, transform .15s ease;}
.lote code{font-family:var(--mono); font-size:.79rem; color:var(--bruma);}
.lote span code{display:block; margin-top:3px;}
.lote:hover{background:rgba(169,205,187,.08); transform:translateX(4px);}
.lote[aria-pressed="true"]{background:var(--cal); color:var(--tinta); border-color:var(--cal);}
.lote[aria-pressed="true"] code{color:var(--pino);}
.lote mark, .rama mark{background:var(--mint); color:var(--tinta); padding:0 2px; border-radius:2px;}
.vacio{font-size:.92rem; color:var(--bruma); font-family:var(--mono);}
.oculto-visual{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

.resultado{background:var(--cal); color:var(--tinta); border-radius:var(--radio); padding:28px; box-shadow:var(--sombra);}
.resultado__cab{display:flex; flex-wrap:wrap; gap:6px 16px; justify-content:space-between; align-items:baseline; border-bottom:1px solid var(--cal-linea); padding-bottom:16px; margin-bottom:20px;}
.resultado__cab strong{font-family:var(--display); font-weight:900; font-size:1.4rem; letter-spacing:-.02em; color:var(--tinta);}
.resultado__cab span{font-family:var(--mono); font-size:.73rem; letter-spacing:.1em; text-transform:uppercase; color:#6E8578;}
.rama{margin-bottom:20px;}
.rama > b{font-family:var(--mono); font-size:.69rem; letter-spacing:.13em; text-transform:uppercase; color:#6E8578; display:block; margin-bottom:11px;}
.rama ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;}
.rama li{display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 18px; font-size:.94rem; padding:9px 12px; border-radius:var(--radio); background:#EEF3EA;}
.rama li em{font-style:normal; font-family:var(--mono); font-size:.79rem; color:#6E8578;}
.rama--entra li{border-left:4px solid var(--pino);}
.rama--sale li{border-left:4px solid var(--mint);}
.aviso-cad{margin:12px 0 0; font-family:var(--mono); font-size:.76rem; line-height:1.5; color:#8A4A2A; background:#F6E7DB; border-radius:var(--radio); padding:10px 12px;}
.resultado__pie{display:flex; flex-wrap:wrap; gap:12px 20px; align-items:center; justify-content:space-between; border-top:1px dashed var(--cal-linea); padding-top:16px;}
.resultado__pie span{font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; color:var(--pino);}
.falso-btn{font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:#6E8578;
  border:1px solid var(--cal-linea); border-radius:var(--radio); padding:9px 14px; background:transparent;}

/* ============================================================
   FUNCIONES
   ============================================================ */
.rejilla-fn{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--cal-linea); border:1px solid var(--cal-linea); border-radius:var(--radio); overflow:hidden; margin-top:54px;}
@media(max-width:960px){.rejilla-fn{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.rejilla-fn{grid-template-columns:1fr;}}
.fn{background:var(--cal-alta); padding:30px 26px 32px; transition:background .2s ease;}
.fn:hover{background:#EAF1E7;}
.fn b{font-family:var(--mono); font-size:.67rem; letter-spacing:.14em; color:var(--pino); display:block; margin-bottom:14px;}
.fn h3{margin-bottom:9px; font-size:1.08rem; color:var(--tinta);}
.fn p{margin:0; color:#4C6357; font-size:.95rem;}

/* ============================================================
   CITA
   ============================================================ */
.cita{display:grid; grid-template-columns:auto 1fr; gap:clamp(24px,4vw,44px); align-items:start; background:var(--pinoh); border:1px solid rgba(169,205,187,.2); border-radius:var(--radio); padding:clamp(30px,4vw,48px);}
@media(max-width:760px){.cita{grid-template-columns:1fr;}}
.cita > .logo-mark{width:56px; color:var(--mint);}
.cita blockquote{margin:0; font-family:var(--serif); font-style:italic; font-weight:400; font-size:clamp(1.5rem,3vw,2.1rem); letter-spacing:.005em; line-height:1.3; color:var(--cal);}
.cita figcaption{margin-top:20px; font-family:var(--mono); font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color:var(--bruma);}

/* ============================================================
   COMPARATIVA — Papel · Excel · PRISMA
   ============================================================ */
.tabla-envoltura{overflow-x:auto; margin-top:50px; border:1px solid var(--cal-linea); border-radius:var(--radio); background:var(--cal-alta);}
table{border-collapse:collapse; width:100%; min-width:760px;}
th,td{text-align:left; padding:17px 20px; border-bottom:1px solid var(--cal-linea); font-size:.95rem; vertical-align:top; color:var(--tinta);}
thead th{font-family:var(--mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:#6E8578; background:#EAF1E7;}
tbody th{font-family:var(--display); font-weight:500; font-size:1rem; width:23%; color:var(--tinta);}
td:nth-child(2),td:nth-child(3){color:#4C6357;}
td:nth-child(2){background:rgba(169,205,187,.1);}
td:nth-child(3){background:rgba(169,205,187,.05);}
td:last-child{background:rgba(12,74,51,.08); font-weight:400; color:var(--tinta);}
thead th:nth-child(2){border-top:4px solid var(--bruma);}
thead th:nth-child(3){border-top:4px solid rgba(169,205,187,.55);}
thead th:last-child{color:var(--pino); background:rgba(12,74,51,.12); border-top:4px solid var(--pino);}
thead th:last-child .th-logo{display:inline-flex; align-items:center; gap:7px;}
thead th:last-child .logo-mark{width:13px; color:var(--pino);}
tr:last-child th,tr:last-child td{border-bottom:none;}

/* ============================================================
   PRECIO
   ============================================================ */
.albaran{background:var(--cal); color:var(--tinta); border-radius:var(--radio); max-width:580px; margin:54px auto 0;
  padding:36px 36px 32px; position:relative; box-shadow:0 30px 60px rgba(4,20,14,.45); text-align:left;}
.albaran::after{content:''; position:absolute; left:0; right:0; bottom:-11px; height:11px;
  background:radial-gradient(circle at 6px -1px, transparent 6px, var(--cal) 6.5px); background-size:12px 11px;}
.albaran__cab{display:flex; justify-content:space-between; align-items:baseline; gap:12px; border-bottom:2px solid var(--tinta); padding-bottom:14px;}
.albaran__cab b{font-family:var(--display); font-weight:900; font-size:1.08rem;}
.albaran__cab span{font-family:var(--mono); font-size:.68rem; letter-spacing:.12em; color:#6E8578;}
.cifra{font-family:var(--display); font-weight:900; font-size:clamp(3.4rem,8vw,4.6rem); letter-spacing:-.04em; line-height:1; margin:26px 0 6px; color:var(--pino);}
.cifra small{font-family:var(--texto); font-size:1.02rem; font-weight:400; letter-spacing:0; color:#6E8578;}
.albaran > .apunte{color:#4C6357;}
.albaran ul{list-style:none; margin:24px 0 0; padding:22px 0 0; border-top:1px dashed var(--cal-linea); display:flex; flex-direction:column; gap:11px;}
.albaran li{display:flex; gap:12px; align-items:flex-start; font-size:.96rem;}
.albaran li::before{content:'✓'; color:var(--pino); font-weight:700; flex:none;}
.albaran .btn{width:100%; margin-top:26px; background:var(--pino); color:var(--cal); border-color:var(--pino);}
.albaran .btn:hover{box-shadow:0 6px 0 rgba(12,74,51,.22);}
.letra-chica{font-family:var(--mono); font-size:.71rem; line-height:1.6; color:#6E8578; margin:14px 0 0; text-align:center;}
.sello-goma{position:absolute; top:-34px; right:-24px; width:110px; height:110px; color:var(--pino);
  transform:rotate(-12deg); animation:girar 26s linear infinite; opacity:.9;}
.sello-goma text{font-family:var(--mono); font-size:9.2px; letter-spacing:1.6px; fill:currentColor; text-transform:uppercase;}
@keyframes girar{to{transform:rotate(348deg);}}
@media(max-width:700px){.sello-goma{top:-28px; right:-10px; width:88px; height:88px;}}

/* ============================================================
   PREGUNTAS
   ============================================================ */
.preguntas{margin-top:48px; border-top:1px solid var(--cal-linea); max-width:900px;}
details{border-bottom:1px solid var(--cal-linea);}
summary{cursor:pointer; list-style:none; padding:22px 44px 22px 0; position:relative;
  font-family:var(--display); font-weight:500; font-size:1.14rem; letter-spacing:-.005em; color:var(--tinta);}
summary::-webkit-details-marker{display:none;}
summary::after{content:'+'; position:absolute; right:8px; top:18px; font-family:var(--mono); font-size:1.5rem; font-weight:400; color:var(--pino); transition:transform .2s ease;}
details[open] summary::after{transform:rotate(45deg);}
details p{margin:0 0 22px; color:#4C6357; max-width:70ch; font-size:.98rem;}

/* ============================================================
   CONTACTO
   ============================================================ */
.contacto{display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(36px,5vw,68px); align-items:start;}
@media(max-width:900px){.contacto{grid-template-columns:1fr;}}
.despues{list-style:none; margin:30px 0 0; padding:0; display:flex; flex-direction:column; gap:16px;}
.despues li{display:grid; grid-template-columns:28px 1fr; gap:14px; font-size:.97rem;}
.despues b{font-family:var(--mono); font-size:.8rem; color:var(--mint);}
.despues span{color:var(--cal);}
.contacto__datos{display:flex; flex-wrap:wrap; gap:12px 22px; margin-top:30px; padding-top:24px; border-top:1px solid rgba(169,205,187,.2);}
.contacto__datos a{font-family:var(--mono); font-size:.92rem; text-decoration:none; color:var(--cal); border-bottom:1px solid rgba(169,205,187,.4); padding-bottom:3px;}
.contacto__datos a:hover{border-color:var(--mint); color:var(--mint);}

.formulario{background:var(--cal); color:var(--tinta); border-radius:var(--radio); padding:32px; box-shadow:var(--sombra);}
.campos{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media(max-width:520px){.campos{grid-template-columns:1fr;}}
.campo{display:flex; flex-direction:column; gap:6px;}
.campo--ancho{grid-column:1/-1;}
label{font-family:var(--mono); font-size:.67rem; letter-spacing:.12em; text-transform:uppercase; color:#6E8578;}
input,textarea{font-family:var(--texto); font-size:.98rem; color:var(--tinta); background:#EEF3EA;
  border:1px solid var(--cal-linea); border-radius:var(--radio); padding:13px; width:100%;}
input:focus,textarea:focus{border-color:var(--pino); outline:none;}
textarea{resize:vertical; min-height:88px;}
.formulario .btn{width:100%; margin-top:20px; background:var(--pino); color:var(--cal); border-color:var(--pino);}
.formulario .btn:hover{box-shadow:0 6px 0 rgba(12,74,51,.22);}

/* ============================================================
   PIE + BARRA MÓVIL
   ============================================================ */
.pie{background:var(--tinta); color:var(--cal); border-top:1px solid rgba(169,205,187,.14); padding:40px 0 48px;}
.pie .wrap{display:flex; flex-wrap:wrap; gap:20px 30px; justify-content:space-between; align-items:center;}
.pie .logo b{color:var(--cal);}
.pie .logo span{color:var(--bruma);}
.pie nav{font-family:var(--mono); font-size:.73rem; letter-spacing:.06em; color:var(--bruma);}
.pie nav a{text-decoration:none;}
.pie nav a:hover{text-decoration:underline; color:var(--mint);}
.pie nav button{font:inherit; letter-spacing:inherit; color:inherit; background:none; border:0; padding:0; margin:0; cursor:pointer;}
.pie nav button:hover{text-decoration:underline; color:var(--mint);}

.barra-movil{position:fixed; left:0; right:0; bottom:0; z-index:70; display:none; gap:10px; padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:rgba(4,20,14,.94); backdrop-filter:blur(10px); border-top:1px solid rgba(169,205,187,.18); transform:translateY(110%); transition:transform .3s ease;}
.barra-movil.visible{transform:none;}
.barra-movil .btn{flex:1; padding:14px 12px; font-size:.76rem;}
.barra-movil .btn--linea{color:var(--cal); border-color:rgba(241,245,236,.45);}
@media(max-width:900px){.barra-movil{display:flex;} body{padding-bottom:78px;}}

/* animación */
.sube{opacity:0; transform:translateY(26px);}
@media(prefers-reduced-motion:reduce){
  .sube{opacity:1 !important; transform:none !important;}
  html{scroll-behavior:auto;}
  *{animation:none !important; transition:none !important;}
}

/* ============================================================
   PÁGINAS LEGALES
   ============================================================ */
.legal{padding:clamp(64px,8vw,110px) 0 clamp(80px,9vw,130px);}
.legal .wrap{max-width:760px;}
.legal h1{font-size:clamp(2rem,4.2vw,2.7rem);}
.legal .actualizado{display:block; font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:#6E8578; margin:14px 0 46px;}
.legal h2{font-family:var(--display); font-weight:900; font-size:1.3rem; letter-spacing:-.01em; margin:42px 0 14px;}
.legal h2:first-of-type{margin-top:0;}
.legal p{max-width:68ch; font-weight:300;}
.legal ul{max-width:68ch; margin:0 0 16px; padding-left:20px;}
.legal li{margin-bottom:8px; font-weight:300;}
.legal a{color:var(--pino); text-underline-offset:3px;}
.legal table{width:100%; border-collapse:collapse; margin:8px 0 26px; font-size:.9rem;}
.legal th,.legal td{text-align:left; padding:10px 12px; border-bottom:1px solid var(--cal-linea); vertical-align:top;}
.legal th{font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:#6E8578;}

/* ============================================================
   BANNER DE COOKIES
   ============================================================ */
.cookies-banner{position:fixed; left:20px; right:20px; bottom:20px; z-index:90; max-width:620px; margin:0 auto;
  display:none; gap:16px; flex-wrap:wrap; align-items:center; justify-content:space-between;
  background:var(--tinta); color:var(--cal); border:1px solid rgba(169,205,187,.25); border-radius:var(--radio);
  box-shadow:var(--sombra); padding:22px 24px;}
.cookies-banner.visible{display:flex;}
.cookies-banner__texto{flex:1 1 300px; margin:0; font-size:.86rem; color:var(--bruma);}
.cookies-banner__texto a{color:var(--mint);}
.cookies-banner__acciones{display:flex; gap:10px; flex:0 0 auto;}
.cookies-banner__acciones .btn{padding:11px 18px; font-size:.7rem;}
@media(max-width:640px){
  .cookies-banner{left:12px; right:12px; padding:18px;}
  .cookies-banner__acciones{width:100%;}
  .cookies-banner__acciones .btn{flex:1;}
}
@media(max-width:900px){.cookies-banner{bottom:calc(78px + 14px);}}

