/* Páginas de servicio y de zona de Rajola Reformas (generadas con seo/generar.mjs).
   Mismo sistema visual que la portada: noche, piedra y latón; Cormorant para titulares y Manrope para el texto. */
:root{
  --noche:#151B1A;
  --noche-2:#1C2423;
  --noche-3:#232C2A;
  --piedra:#E9E6DF;
  --piedra-2:#DCD7CD;
  --papel:#F4F2EC;
  --laton:#C9A86A;
  --laton-claro:#E2C893;
  --laton-osc:#7A6436;
  --texto-claro:#ECEAE4;
  --gris-claro:#A9B0AB;
  --gris-osc:#59605C;
  --wa:#12823F;
  --radio:16px;
  --ancho:1240px;
  --serif:"Cormorant", "Cormorant reserva", "Times New Roman", serif;
  --sans:"Manrope", "Manrope reserva", system-ui, sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --baldosa:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='132' height='132' viewBox='0 0 132 132'%3E%3Cg fill='none' stroke='%23C9A86A' stroke-opacity='.24' stroke-width='1'%3E%3Cpath d='M0 33a33 33 0 0 0 33-33M99 0a33 33 0 0 0 33 33M132 99a33 33 0 0 0-33 33M33 132a33 33 0 0 0-33-33'/%3E%3Cpath d='M66 24 108 66 66 108 24 66Z'/%3E%3Ccircle cx='66' cy='66' r='14'/%3E%3C/g%3E%3Ccircle cx='66' cy='66' r='3' fill='%23C9A86A' fill-opacity='.35'/%3E%3C/svg%3E");
  --baldosa-osc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='132' height='132' viewBox='0 0 132 132'%3E%3Cg fill='none' stroke='%238C7442' stroke-opacity='.3' stroke-width='1'%3E%3Cpath d='M0 33a33 33 0 0 0 33-33M99 0a33 33 0 0 0 33 33M132 99a33 33 0 0 0-33 33M33 132a33 33 0 0 0-33-33'/%3E%3Cpath d='M66 24 108 66 66 108 24 66Z'/%3E%3Ccircle cx='66' cy='66' r='14'/%3E%3C/g%3E%3Ccircle cx='66' cy='66' r='3' fill='%238C7442' fill-opacity='.35'/%3E%3C/svg%3E");
  --grano:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--noche);color:var(--texto-claro);font-family:var(--sans);font-size:17px;line-height:1.65;overflow-x:hidden;font-variant-numeric:lining-nums}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--laton);outline-offset:3px;border-radius:3px}
.envoltura{max-width:var(--ancho);margin:0 auto;padding:0 32px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.saltar{position:absolute;left:16px;top:-60px;z-index:100;background:var(--laton);color:var(--noche);padding:10px 16px;border-radius:8px;font-weight:700;text-decoration:none}
.saltar:focus{top:12px}
section{position:relative;scroll-margin-top:90px}
h1,h2,h3,.cifra{font-variant-numeric:lining-nums}
h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:-.01em;line-height:1}
h2{font-size:clamp(2.4rem,4.4vw,3.9rem);max-width:17ch}
h3{font-size:1.6rem;line-height:1.12}
.entradilla{font-size:1.08rem;max-width:56ch;color:var(--gris-claro)}
.claro{background:var(--piedra);color:var(--noche)}
.claro .entradilla{color:var(--gris-osc)}
.cab-seccion{display:flex;justify-content:space-between;align-items:end;gap:28px 48px;margin-bottom:56px;flex-wrap:wrap}
.cab-seccion .entradilla{max-width:46ch}
.texto a,.entradilla a{color:inherit;text-decoration-color:var(--laton);text-underline-offset:3px}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:999px;font-weight:600;font-size:.97rem;text-decoration:none;border:1px solid transparent;transition:background .25s var(--ease),color .25s,border-color .25s,transform .25s var(--ease);background:none}
.btn svg{width:19px;height:19px;flex:none}
.btn:hover{transform:translateY(-2px)}
.btn-wa{background:var(--wa);color:#fff}
.btn-wa:hover{background:#0E6B33}
.btn-laton{background:var(--laton);color:var(--noche)}
.btn-laton:hover{background:var(--laton-claro)}
.btn-vidrio{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.32);color:#fff}
.btn-vidrio:hover{background:#fff;color:var(--noche)}
.btn-oscuro{background:var(--noche);color:var(--piedra)}
.btn-oscuro:hover{background:#000}
.btn-linea{border-color:#BDB5A6;color:var(--noche)}
.btn-linea:hover{border-color:var(--noche)}

/* ========== CABECERA ========== */
.logo{width:40px;height:40px;flex:none}
.cabecera{position:fixed;inset:0 0 auto;z-index:60;transition:background .35s,box-shadow .35s}
.cabecera.solida{background:rgba(21,27,26,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(255,255,255,.08)}
.cabecera .envoltura{display:flex;align-items:center;justify-content:space-between;height:80px;gap:24px;max-width:none;padding:0 40px}
.marca{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff}
.marca strong{font-family:var(--serif);font-size:1.8rem;font-weight:600;line-height:1}
.marca small{display:block;font-size:.74rem;color:var(--gris-claro);font-weight:500;margin-top:2px}
.nav{display:flex;align-items:center;gap:30px;list-style:none}
.nav > li{position:relative}
.nav a,.nav .abre-menu{text-decoration:none;font-size:.95rem;font-weight:500;color:rgba(255,255,255,.88);position:relative;padding:6px 0;background:none;border:0;display:inline-flex;align-items:center;gap:6px}
.nav > li > a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--laton);transition:right .35s var(--ease)}
.nav > li > a:hover{color:#fff}
.nav > li > a:hover::after{right:0}
.abre-menu svg{width:10px;height:10px;transition:transform .3s var(--ease)}
.abre-menu[aria-expanded="true"] svg{transform:rotate(180deg)}
.abre-menu[aria-current="true"],.nav a[aria-current="page"]{color:var(--laton-claro)}
.menu{position:absolute;top:calc(100% + 14px);left:-22px;min-width:340px;background:#151B1A;border:1px solid rgba(201,168,106,.28);border-radius:18px;padding:10px;list-style:none;display:grid;gap:2px;
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .25s,transform .3s var(--ease),visibility 0s .3s;box-shadow:0 30px 60px -20px rgba(0,0,0,.7)}
.menu::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}
.desplegable.abierto .menu{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .3s var(--ease),visibility 0s}
.menu a{white-space:nowrap;display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:11px 14px;border-radius:12px;color:var(--texto-claro);font-size:.95rem;transition:background .2s}
.menu a small{font-size:.8rem;color:var(--laton-claro);font-weight:600;white-space:nowrap}
.menu a:hover,.menu a:focus-visible{background:rgba(201,168,106,.12)}
.menu a[aria-current="page"]{background:rgba(201,168,106,.18);color:#fff}
.cab-cta{display:flex;align-items:center;gap:9px;text-decoration:none;font-weight:600;font-size:.93rem;color:var(--noche);background:var(--laton);border-radius:999px;padding:11px 20px;transition:background .25s}
.cab-cta:hover{background:var(--laton-claro)}

/* ========== PORTADA DE LA PÁGINA ========== */
.portada{padding:150px 0 150px;overflow:hidden;isolation:isolate;background:
  radial-gradient(55% 70% at 0% 0%,rgba(201,168,106,.18),transparent 62%),
  radial-gradient(45% 60% at 100% 100%,rgba(84,120,108,.26),transparent 66%),
  linear-gradient(160deg,#1C2624 0%,#141A19 55%,#0F1413 100%)}
.portada::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:var(--baldosa);background-size:132px 132px;
  -webkit-mask-image:radial-gradient(70% 80% at 6% 96%,#000 0%,rgba(0,0,0,.3) 40%,transparent 72%);mask-image:radial-gradient(70% 80% at 6% 96%,#000 0%,rgba(0,0,0,.3) 40%,transparent 72%)}
.portada::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.08;mix-blend-mode:overlay;background-image:var(--grano)}
.portada .envoltura{max-width:1400px;padding:0 40px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.migas ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px 0;font-size:.88rem;color:var(--gris-claro)}
.migas li{display:flex;align-items:center}
.migas li + li::before{content:"";width:5px;height:5px;transform:rotate(45deg);border:1px solid var(--laton);margin:0 12px}
.migas a{text-decoration:none}
.migas a:hover{color:#fff;text-decoration:underline;text-decoration-color:var(--laton);text-underline-offset:3px}
.migas [aria-current]{color:var(--laton-claro)}
.portada h1{font-size:clamp(2.8rem,4.7vw,4.9rem);line-height:.95;letter-spacing:-.02em;color:#fff;margin:26px 0 0}
.portada h1 .linea{display:block;overflow:hidden;padding-bottom:.08em}
.portada h1 .linea span{display:block;animation:subir 1.1s var(--ease) both}
.portada h1 .linea + .linea span{animation-delay:.12s}
@keyframes subir{from{transform:translateY(105%)}to{transform:none}}
.respuesta{margin:28px 0 32px;font-size:1.12rem;line-height:1.6;color:rgba(236,234,228,.84);max-width:46ch}
.respuesta b{color:#fff;font-weight:600}
.acciones{display:flex;flex-wrap:wrap;gap:10px}
.sellos{display:flex;flex-wrap:wrap;gap:8px 22px;list-style:none;margin-top:34px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);font-size:.9rem;color:var(--gris-claro)}
.sellos li{display:flex;align-items:center;gap:9px}
.sellos li::before{content:"";width:7px;height:7px;transform:rotate(45deg);background:var(--laton);flex:none}
.sellos b{color:var(--laton-claro);font-weight:700}
.sellos li.google::before{display:none}

/* Foto principal con el rótulo de la obra */
.foto-portada{position:relative;margin:0;height:min(72svh,640px);min-height:440px;border-radius:24px;overflow:hidden;box-shadow:0 50px 90px -40px rgba(0,0,0,.85);animation:aparecer 1.3s .2s var(--ease) both}
@keyframes aparecer{from{opacity:0;transform:translateY(30px) scale(.98)}to{opacity:1;transform:none}}
.foto-portada img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.foto-portada::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,14,13,.78) 0%,rgba(10,14,13,0) 42%)}
.foto-portada figcaption{position:absolute;left:24px;right:24px;bottom:22px;z-index:1;display:flex;justify-content:space-between;align-items:end;gap:16px;color:#fff}
.foto-portada figcaption b{font-family:var(--serif);font-size:1.7rem;font-weight:500;line-height:1.05;display:block}
.foto-portada figcaption span{font-size:.88rem;color:rgba(255,255,255,.78)}
.foto-portada figcaption .chapa{flex:none;font-size:.82rem;font-weight:700;color:var(--noche);background:var(--laton);border-radius:999px;padding:7px 14px}

/* ========== CAJETÍN: los datos clave como el cajetín de un plano ========== */
.cajetin-sec{margin-top:-82px;z-index:3}
.cajetin{position:relative;display:grid;grid-template-columns:repeat(var(--cols,5),minmax(0,1fr));background:var(--papel);color:var(--noche);border-radius:20px;box-shadow:0 40px 80px -40px rgba(0,0,0,.7);overflow:hidden}
.cajetin::before{content:"";position:absolute;inset:8px;border:1px solid rgba(140,116,66,.45);border-radius:14px;pointer-events:none}
.cajetin div{position:relative;padding:28px 26px 26px}
.cajetin div + div{border-left:1px solid rgba(140,116,66,.3)}
.cajetin dt{font-size:.8rem;font-weight:700;color:var(--laton-osc)}
.cajetin dd{font-family:var(--serif);font-size:clamp(1.55rem,2.2vw,2.05rem);font-weight:600;line-height:1.08;margin-top:8px}
.cajetin dd small{display:block;font-family:var(--sans);font-size:.82rem;font-weight:500;color:var(--gris-osc);line-height:1.4;margin-top:8px}

/* ========== PRECIOS ========== */
.precios{padding:130px 0 120px;overflow:hidden;isolation:isolate;background:
  radial-gradient(50% 60% at 100% 0%,rgba(201,168,106,.24),transparent 66%),
  radial-gradient(40% 50% at 0% 100%,rgba(140,116,66,.1),transparent 70%),
  linear-gradient(180deg,#ECE9E2 0%,#E6E2D9 100%)}
.precios::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:var(--baldosa-osc);background-size:132px 132px;
  -webkit-mask-image:radial-gradient(55% 70% at 96% 6%,#000 0%,rgba(0,0,0,.25) 42%,transparent 72%);mask-image:radial-gradient(55% 70% at 96% 6%,#000 0%,rgba(0,0,0,.25) 42%,transparent 72%)}
.precios::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.07;mix-blend-mode:multiply;background-image:var(--grano)}
.niveles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;list-style:none;align-items:stretch}
.nivel{position:relative;display:flex;flex-direction:column;background:rgba(244,242,236,.72);border:1px solid #D4CDBF;border-radius:22px;padding:30px 28px 28px;transition:transform .35s var(--ease),border-color .3s,box-shadow .35s,background .3s}
.nivel:hover{transform:translateY(-6px);background:#fff;border-color:var(--laton);box-shadow:0 40px 70px -40px rgba(140,116,66,.6)}
.nivel.destacado{background:var(--noche);color:var(--texto-claro);border-color:var(--noche)}
.nivel.destacado:hover{background:#0F1413;border-color:var(--laton)}
.nivel .marca-nivel{position:absolute;top:-13px;right:24px;font-size:.78rem;font-weight:700;background:var(--laton);color:var(--noche);border-radius:999px;padding:4px 12px}
.nivel h3{font-size:1.9rem}
.nivel .para{font-size:.92rem;color:var(--gris-osc);margin-top:6px}
.nivel.destacado .para{color:var(--gris-claro)}
.nivel .cifra{font-family:var(--serif);font-size:clamp(2.1rem,3vw,2.7rem);font-weight:600;line-height:1;margin:22px 0 4px;white-space:nowrap}
.nivel .cifra-nota{font-size:.84rem;color:var(--gris-osc)}
.nivel.destacado .cifra{color:var(--laton-claro)}
.nivel.destacado .cifra-nota{color:var(--gris-claro)}
.nivel ul{list-style:none;margin-top:22px;padding-top:20px;border-top:1px solid #D4CDBF;display:grid;gap:9px;font-size:.94rem}
.nivel.destacado ul{border-top-color:rgba(255,255,255,.14)}
.nivel li{display:grid;grid-template-columns:14px 1fr;gap:10px;align-items:baseline}
.nivel li::before{content:"";width:6px;height:6px;transform:translateY(-2px) rotate(45deg);border:1px solid var(--laton-osc)}
.nivel.destacado li::before{border-color:var(--laton)}
.precios-pie{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px;margin-top:52px;align-items:start}
.factores h3{font-size:1.7rem;margin-bottom:16px}
.factores ul{list-style:none;display:grid;gap:12px}
.factores li{display:grid;grid-template-columns:minmax(0,10.5rem) minmax(0,1fr);gap:16px;align-items:baseline;font-size:.97rem;color:var(--gris-osc);padding-bottom:12px;border-bottom:1px solid #D4CDBF}
.factores li:last-child{border-bottom:0}
.factores li b{color:var(--noche);font-weight:700}
.calcula{background:var(--noche);color:var(--texto-claro);border-radius:22px;padding:30px;position:relative;overflow:hidden;isolation:isolate}
.calcula::before{content:"";position:absolute;right:-50px;top:-50px;width:170px;height:170px;border:1px solid rgba(201,168,106,.35);transform:rotate(45deg);z-index:-1}
.calcula b{font-family:var(--serif);font-size:1.9rem;font-weight:600;display:block;line-height:1.08}
.calcula p{color:var(--gris-claro);font-size:.95rem;margin:10px 0 20px;max-width:40ch}
.calcula .acciones .btn{min-height:48px}
.letra-pequena{margin-top:30px;font-size:.84rem;color:var(--gris-osc);max-width:80ch}

/* Tabla de materiales (suelos) */
.materiales{width:100%;border-collapse:collapse;background:rgba(244,242,236,.72);border:1px solid #D4CDBF;border-radius:22px;overflow:hidden;font-size:.96rem}
.materiales th,.materiales td{text-align:left;padding:18px 22px;border-bottom:1px solid #DCD5C8;vertical-align:top}
.materiales thead th{font-size:.82rem;font-weight:700;color:var(--laton-osc);background:rgba(233,230,223,.8)}
.materiales tbody th{font-family:var(--serif);font-size:1.4rem;font-weight:600;line-height:1.1;white-space:nowrap}
.materiales td.precio{font-family:var(--serif);font-size:1.35rem;font-weight:600;white-space:nowrap;font-variant-numeric:lining-nums}
.materiales tbody tr:last-child th,.materiales tbody tr:last-child td{border-bottom:0}
.materiales tbody tr{transition:background .2s}
.materiales tbody tr:hover{background:#fff}
.tabla-scroll{border-radius:22px;overflow-x:auto}

/* ========== PLAN DE OBRA (diagrama de barras) ========== */
.plan{padding:130px 0;overflow:hidden;isolation:isolate;background:
  radial-gradient(48% 62% at 72% 40%,rgba(201,168,106,.15),transparent 70%),
  radial-gradient(45% 55% at 0% 100%,rgba(84,120,108,.26),transparent 70%),
  linear-gradient(180deg,#1A2422 0%,#1D2826 50%,#151C1B 100%)}
.plan::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(201,168,106,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(201,168,106,.1) 1px,transparent 1px),
    linear-gradient(rgba(201,168,106,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(201,168,106,.04) 1px,transparent 1px);
  background-size:160px 160px,160px 160px,32px 32px,32px 32px;background-position:-1px -1px;
  -webkit-mask-image:radial-gradient(85% 85% at 60% 50%,#000 20%,transparent 80%);mask-image:radial-gradient(85% 85% at 60% 50%,#000 20%,transparent 80%)}
.gantt{--n:10;background:rgba(14,19,18,.72);border:1px solid rgba(201,168,106,.22);border-radius:22px;padding:26px 28px 22px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.gantt-cab,.gantt-fila{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:22px;align-items:center}
.gantt-cab{padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.12);font-size:.8rem;font-weight:700;color:var(--gris-claro)}
.escala{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));text-align:center}
.escala span{border-left:1px solid rgba(255,255,255,.08)}
.gantt-filas{list-style:none}
.gantt-fila{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.gantt-fila:last-child{border-bottom:0}
.gantt-fila .tarea b{display:block;font-weight:600;font-size:.95rem;color:#fff;line-height:1.3}
.gantt-fila .tarea small{display:block;font-size:.8rem;color:var(--gris-claro);line-height:1.35;margin-top:2px}
.pista{position:relative;height:30px;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 1px,transparent 1px calc(100% / var(--n)))}
.barra{grid-row:1;grid-column:var(--a) / var(--b);align-self:center;height:16px;border-radius:999px;background:linear-gradient(90deg,var(--laton),var(--laton-claro));transform-origin:left center;transform:scaleX(0);transition:transform 1s var(--ease);transition-delay:calc(var(--i,0) * 110ms)}
.barra.previa{background:repeating-linear-gradient(135deg,rgba(201,168,106,.6) 0 5px,rgba(201,168,106,.18) 5px 10px);border:1px solid rgba(201,168,106,.6)}
.barra.espera{background:repeating-linear-gradient(135deg,rgba(169,176,171,.35) 0 5px,transparent 5px 10px);border:1px dashed rgba(169,176,171,.6)}
.hito{grid-row:1;grid-column:var(--a) / span 1;justify-self:end;align-self:center;width:14px;height:14px;margin-right:-7px;transform:rotate(45deg) scale(0);background:#fff;box-shadow:0 0 0 4px rgba(226,200,147,.25),0 0 16px rgba(226,200,147,.8);transition:transform .5s var(--ease);transition-delay:calc(var(--i,0) * 110ms + .5s);position:relative;z-index:1}
.gantt.visto .barra{transform:scaleX(1)}
.gantt.visto .hito{transform:rotate(45deg) scale(1)}
.gantt-leyenda{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12);font-size:.84rem;color:var(--gris-claro)}
.gantt-leyenda span{display:inline-flex;align-items:center;gap:9px}
.gantt-leyenda i{display:inline-block;width:26px;height:10px;border-radius:999px;background:linear-gradient(90deg,var(--laton),var(--laton-claro))}
.gantt-leyenda i.previa{background:repeating-linear-gradient(135deg,rgba(201,168,106,.6) 0 4px,rgba(201,168,106,.18) 4px 8px);border:1px solid rgba(201,168,106,.6)}
.gantt-leyenda i.espera{background:repeating-linear-gradient(135deg,rgba(169,176,171,.35) 0 4px,transparent 4px 8px);border:1px dashed rgba(169,176,171,.6)}
.gantt-leyenda i.hito-l{width:10px;height:10px;border-radius:0;transform:rotate(45deg);background:#fff}
.plan-notas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:44px;list-style:none}
.plan-notas li{padding-top:18px;border-top:1px solid rgba(201,168,106,.35)}
.plan-notas b{font-family:var(--serif);font-size:1.45rem;font-weight:600;color:#fff;display:block;line-height:1.15}
.plan-notas span{display:block;color:var(--gris-claro);font-size:.93rem;margin-top:6px}

/* ========== LO QUE NO SE VE ========== */
.claves{padding:130px 0;overflow:hidden;isolation:isolate;background:
  radial-gradient(50% 60% at 0% 0%,rgba(201,168,106,.2),transparent 68%),
  linear-gradient(180deg,#E9E6DF 0%,#E4E0D6 100%)}
.claves::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.07;mix-blend-mode:multiply;background-image:var(--grano)}
.claves .envoltura{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;align-items:start}
.claves-lateral{position:sticky;top:120px}
.claves-lateral .entradilla{margin-top:22px}
.claves-foto{margin-top:34px;border-radius:20px;overflow:hidden;aspect-ratio:4/3.2;box-shadow:0 40px 70px -40px rgba(21,27,26,.6)}
.claves-foto img{width:100%;height:100%;object-fit:cover}
.lista-claves{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.clave{background:rgba(244,242,236,.7);border:1px solid #D4CDBF;border-radius:20px;padding:26px 24px 24px;transition:border-color .3s,background .3s,transform .35s var(--ease)}
.clave:hover{background:#fff;border-color:var(--laton);transform:translateY(-4px)}
.clave svg{width:38px;height:38px;color:var(--laton-osc);stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;margin-bottom:16px}
.clave h3{font-size:1.45rem}
.clave p{color:var(--gris-osc);font-size:.95rem;margin-top:8px}

/* ========== OBRA DESTACADA ========== */
.obra{padding:130px 0;overflow:hidden;isolation:isolate;background:linear-gradient(160deg,#1C2624 0%,#141A19 60%,#0F1413 100%)}
.obra::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:var(--baldosa);background-size:132px 132px;
  -webkit-mask-image:radial-gradient(50% 70% at 100% 100%,#000 0%,rgba(0,0,0,.25) 45%,transparent 75%);mask-image:radial-gradient(50% 70% at 100% 100%,#000 0%,rgba(0,0,0,.25) 45%,transparent 75%)}
.obra-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:56px;align-items:center}
.obra-foto{position:relative;margin:0;border-radius:24px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 50px 90px -40px rgba(0,0,0,.85)}
.obra-foto img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 1.6s var(--ease)}
.obra-foto:hover img{transform:scale(1)}
.obra-foto figcaption{position:absolute;left:20px;top:20px;font-size:.82rem;font-weight:700;color:var(--noche);background:var(--laton);border-radius:999px;padding:7px 14px}
.obra-ficha h2{font-size:clamp(2.2rem,3.6vw,3.2rem)}
.obra-lugar{color:var(--gris-claro);margin-top:12px}
.obra-datos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:28px 0;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}
.obra-datos div{padding:16px 0}
.obra-datos div + div{padding-left:18px;border-left:1px solid rgba(255,255,255,.14)}
.obra-datos dt{font-size:.8rem;font-weight:700;color:var(--gris-claro)}
.obra-datos dd{font-family:var(--serif);font-size:1.7rem;font-weight:600;color:var(--laton-claro);white-space:nowrap;font-variant-numeric:lining-nums}
.obra-hecho{list-style:none;display:grid;gap:10px}
.obra-hecho li{display:grid;grid-template-columns:16px 1fr;gap:12px;align-items:baseline;color:rgba(236,234,228,.88);font-size:.97rem}
.obra-hecho li::before{content:"";width:7px;height:7px;transform:translateY(-2px) rotate(45deg);background:var(--laton)}
.cita{margin:34px 0 0;padding:24px 26px;border-radius:20px 20px 20px 6px;background:rgba(255,255,255,.05);border:1px solid rgba(201,168,106,.3);position:relative}
.cita::before{content:"\201C";position:absolute;right:18px;top:0;font-family:var(--serif);font-size:4.6rem;line-height:1;color:var(--laton);opacity:.35}
.cita blockquote{font-family:var(--serif);font-size:1.4rem;line-height:1.25;color:#fff;max-width:34ch}
.cita figcaption{margin-top:14px;font-size:.88rem;color:var(--gris-claro)}
.cita figcaption b{color:var(--laton-claro);font-weight:700}

/* ========== MAPA DE ZONA ========== */
.mapa-zona{position:relative;background:rgba(14,19,18,.75);border:1px solid rgba(201,168,106,.25);border-radius:24px;padding:18px 18px 0;box-shadow:0 50px 90px -40px rgba(0,0,0,.85);animation:aparecer 1.3s .2s var(--ease) both;overflow:hidden}
.mapa-zona::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(201,168,106,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(201,168,106,.09) 1px,transparent 1px);background-size:40px 40px;background-position:-1px -1px}
.mapa-cab{position:relative;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4px 6px 0;font-size:.82rem;color:var(--gris-claro)}
.mapa-cab b{color:#fff;font-weight:600;font-size:.9rem}
.mapa-svg{position:relative;display:block;width:100%;height:auto}
.mapa-svg .mar{fill:rgba(84,120,108,.16)}
.mapa-svg .ola{fill:none;stroke:rgba(169,176,171,.28);stroke-width:1}
.mapa-svg .costa{fill:none;stroke:rgba(201,168,106,.55);stroke-width:1.4}
.mapa-svg .rio{fill:none;stroke:rgba(84,140,110,.38);stroke-width:16;stroke-linecap:round;stroke-linejoin:round}
.mapa-svg .via{fill:none;stroke:rgba(201,168,106,.45);stroke-width:1.4;stroke-dasharray:5 6}
.mapa-svg .via-fuerte{fill:none;stroke:rgba(201,168,106,.7);stroke-width:2.2}
.mapa-svg .lago{fill:rgba(84,120,108,.22);stroke:rgba(169,176,171,.3)}
.mapa-svg .pinar{fill:rgba(84,140,110,.25)}
.mapa-svg .rotulo{fill:rgba(169,176,171,.75);font:italic 500 15px var(--serif);letter-spacing:.02em}
.mapa-svg .rotulo-s{fill:rgba(169,176,171,.7);font:600 10.5px var(--sans)}
.nodo{cursor:pointer;outline:none}
.nodo .halo{fill:rgba(201,168,106,.12);stroke:rgba(201,168,106,.45);stroke-width:1;transform-box:fill-box;transform-origin:center;transition:transform .35s var(--ease),fill .25s}
.nodo .punto{fill:var(--noche);stroke:var(--laton);stroke-width:2;transform-box:fill-box;transform-origin:center;transition:fill .25s,transform .3s var(--ease)}
.nodo text{fill:#fff;font:600 13.5px var(--sans);paint-order:stroke;stroke:rgba(14,19,18,.85);stroke-width:4px;stroke-linejoin:round;transition:fill .2s}
.nodo:hover .halo,.nodo:focus-visible .halo{transform:scale(1.35);fill:rgba(201,168,106,.2)}
.nodo:focus-visible .punto{stroke:#fff}
.nodo[aria-pressed="true"] .punto{fill:var(--laton-claro);transform:scale(1.15)}
.nodo[aria-pressed="true"] .halo{fill:rgba(201,168,106,.24);animation:latido 2.2s ease-in-out infinite}
.nodo[aria-pressed="true"] text{fill:var(--laton-claro)}
@keyframes latido{50%{transform:scale(1.55);opacity:.55}}
.base .punto{fill:var(--laton)}
.mapa-ficha{position:relative;margin:0 -18px;padding:22px 24px 24px;background:var(--papel);color:var(--noche);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 20px;align-items:start;min-height:168px}
.mapa-ficha .mf-t{font-family:var(--serif);font-size:1.75rem;font-weight:500;line-height:1.12}
.mapa-ficha .sub{font-size:.85rem;font-weight:700;color:var(--laton-osc)}
.mapa-ficha p{grid-column:1/-1;color:var(--gris-osc);font-size:.95rem;max-width:62ch}
.mapa-ficha .pide{grid-column:1/-1;font-size:.9rem;color:var(--noche)}
.mapa-ficha .pide b{font-weight:700}
.mapa-ficha .ir-obra{grid-row:1/3;grid-column:2;align-self:start;font-size:.84rem;font-weight:700;text-decoration:none;border:1px solid #C9C2B4;border-radius:999px;padding:8px 14px;white-space:nowrap;transition:border-color .2s,background .2s}
.mapa-ficha .ir-obra:hover{border-color:var(--noche);background:#fff}
.mapa-ficha[hidden]{display:none}
.mapa-ficha.cambia > *{animation:fichaEntra .45s var(--ease) both}
@keyframes fichaEntra{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ========== CASAS DE LA ZONA ========== */
.casas{padding:130px 0 120px;overflow:hidden;isolation:isolate;background:
  radial-gradient(50% 60% at 100% 0%,rgba(201,168,106,.22),transparent 66%),
  linear-gradient(180deg,#ECE9E2 0%,#E6E2D9 100%)}
.casas::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:var(--baldosa-osc);background-size:132px 132px;
  -webkit-mask-image:radial-gradient(55% 70% at 4% 96%,#000 0%,rgba(0,0,0,.25) 42%,transparent 72%);mask-image:radial-gradient(55% 70% at 4% 96%,#000 0%,rgba(0,0,0,.25) 42%,transparent 72%)}
.casas::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.07;mix-blend-mode:multiply;background-image:var(--grano)}
.tipos{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.tipo{display:flex;flex-direction:column;background:rgba(244,242,236,.75);border:1px solid #D4CDBF;border-radius:22px;overflow:hidden;transition:transform .35s var(--ease),border-color .3s,box-shadow .35s,background .3s}
.tipo:hover{transform:translateY(-6px);background:#fff;border-color:var(--laton);box-shadow:0 40px 70px -40px rgba(140,116,66,.6)}
.tipo-foto{position:relative;aspect-ratio:16/10;overflow:hidden}
.tipo-foto img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.tipo:hover .tipo-foto img{transform:scale(1.05)}
.tipo-foto span{position:absolute;left:14px;bottom:12px;font-size:.78rem;font-weight:700;background:rgba(21,27,26,.78);color:var(--laton-claro);border-radius:999px;padding:5px 11px;backdrop-filter:blur(6px)}
.tipo-cuerpo{padding:24px 24px 26px;display:flex;flex-direction:column;gap:14px;flex:1}
.tipo h3{font-size:1.65rem}
.tipo dl{display:grid;gap:12px;font-size:.93rem}
.tipo dt{font-weight:700;font-size:.8rem;color:var(--laton-osc)}
.tipo dd{color:var(--gris-osc)}
.tipo .desde-tipo{margin-top:auto;padding-top:14px;border-top:1px solid #D4CDBF;display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:.88rem;color:var(--gris-osc)}
.tipo .desde-tipo b{font-family:var(--serif);font-size:1.4rem;font-weight:600;color:var(--noche);white-space:nowrap}

/* ========== SERVICIOS EN LA ZONA ========== */
.serv-zona{padding:130px 0;overflow:hidden;isolation:isolate}
.serv-zona-fondo{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center}
.serv-zona::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(12,16,15,.95) 0%,rgba(12,16,15,.86) 55%,rgba(12,16,15,.7) 100%)}
.lista-serv{list-style:none;border-top:1px solid rgba(255,255,255,.18)}
.lista-serv a{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) auto 44px;gap:28px;align-items:center;padding:24px 0;border-bottom:1px solid rgba(255,255,255,.18);text-decoration:none;transition:padding .4s var(--ease)}
.lista-serv h3{font-size:clamp(1.6rem,2.3vw,2.15rem);color:rgba(255,255,255,.8);transition:color .3s}
.lista-serv p{color:var(--gris-claro);font-size:.95rem;max-width:50ch}
.lista-serv .desde{font-family:var(--serif);font-size:1.5rem;font-weight:600;white-space:nowrap;text-align:right;color:var(--laton-claro)}
.lista-serv .desde small{display:block;font-family:var(--sans);font-size:.76rem;font-weight:500;color:var(--gris-claro)}
.lista-serv .ir{width:44px;height:44px;border-radius:50%;border:1px solid rgba(201,168,106,.5);display:grid;place-items:center;color:var(--laton-claro);transition:background .25s,color .25s,transform .3s var(--ease)}
.lista-serv .ir svg{width:18px;height:18px}
.lista-serv a:hover{padding-left:14px}
.lista-serv a:hover h3{color:#fff}
.lista-serv a:hover .ir{background:var(--laton);color:var(--noche);transform:rotate(-45deg)}

/* ========== TRÁMITES ========== */
.tramites{padding:120px 0;background:linear-gradient(180deg,#E6E2D9 0%,#E9E6DF 100%)}
.tramites .envoltura{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:72px;align-items:start}
.tramites .entradilla{margin-top:22px}
.papeles{list-style:none;border-top:1px solid #CFC8BA}
.papeles li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:4px 12px;padding:22px 0;border-bottom:1px solid #CFC8BA}
.papeles li::before{content:"";grid-row:1/3;width:9px;height:9px;margin-top:11px;transform:rotate(45deg);border:1.5px solid var(--laton-osc)}
.papeles b{font-family:var(--serif);font-size:1.45rem;font-weight:600;line-height:1.15}
.papeles span{color:var(--gris-osc);font-size:.95rem}

/* ========== PREGUNTAS FRECUENTES ========== */
.faq-sec{padding:130px 0;overflow:hidden;isolation:isolate;background:
  radial-gradient(50% 60% at 0% 100%,rgba(201,168,106,.2),transparent 68%),
  radial-gradient(40% 45% at 100% 30%,rgba(140,116,66,.07),transparent 70%),
  linear-gradient(180deg,#E9E6DF 0%,#E6E2D9 100%)}
.faq-sec::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:var(--baldosa-osc);background-size:132px 132px;
  -webkit-mask-image:radial-gradient(60% 80% at 4% 96%,#000 0%,rgba(0,0,0,.3) 40%,transparent 72%);mask-image:radial-gradient(60% 80% at 4% 96%,#000 0%,rgba(0,0,0,.3) 40%,transparent 72%)}
.faq-sec::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.07;mix-blend-mode:multiply;background-image:var(--grano)}
.faq-grid{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:72px;align-items:start}
.faq-lateral{position:sticky;top:120px}
.faq-lateral h2{font-size:clamp(2.2rem,3.4vw,3.2rem)}
.faq-ayuda{margin-top:34px;background:var(--noche);color:var(--texto-claro);border-radius:20px;padding:24px;position:relative;overflow:hidden}
.faq-ayuda::before{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border:1px solid rgba(201,168,106,.35);transform:rotate(45deg)}
.faq-ayuda b{font-family:var(--serif);font-size:1.6rem;font-weight:600;display:block;line-height:1.1}
.faq-ayuda p{color:var(--gris-claro);font-size:.92rem;margin:6px 0 16px;max-width:34ch}
.faq-ayuda .acciones .btn{min-height:44px;padding:0 18px;font-size:.88rem}
.faq{display:grid;gap:10px}
.faq details{position:relative;background:rgba(244,242,236,.5);border:1px solid #D4CDBF;border-radius:18px;transition:background .3s,border-color .3s,box-shadow .35s}
.faq details::before{content:"";position:absolute;left:-1px;top:18px;bottom:18px;width:3px;border-radius:3px;background:var(--laton);transform:scaleY(0);transition:transform .45s var(--ease)}
.faq details:hover{background:rgba(255,255,255,.75);border-color:#BFB6A5}
.faq details[open]{background:#fff;border-color:var(--laton);box-shadow:0 30px 60px -40px rgba(140,116,66,.6)}
.faq details[open]::before{transform:scaleY(1)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 22px 22px 26px;font-family:var(--serif);font-weight:600;font-size:1.38rem;line-height:1.2;border-radius:18px}
.faq summary::-webkit-details-marker{display:none}
.faq-icono{position:relative;flex:none;width:38px;height:38px;border-radius:50%;border:1px solid #C9C2B4;transition:transform .45s var(--ease),background .3s,border-color .3s}
.faq-icono::before,.faq-icono::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.6px;margin:-.8px 0 0 -7px;background:var(--noche)}
.faq-icono::after{transform:rotate(90deg)}
.faq summary:hover .faq-icono{border-color:var(--noche)}
.faq details[open] .faq-icono{transform:rotate(135deg);background:var(--laton);border-color:var(--laton)}
.faq-resp{overflow:hidden}
.faq-resp p{padding:0 26px 24px;color:var(--gris-osc);max-width:64ch}
.faq details[open] .faq-resp p{animation:respuesta .5s .1s var(--ease) both}
@keyframes respuesta{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ========== MÁS PÁGINAS (enlaces internos) ========== */
.mas{padding:120px 0;background:var(--noche-2)}
.mas-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:56px}
.mas h2{font-size:clamp(2rem,3.4vw,2.9rem);margin-bottom:30px}
.tarjetas{list-style:none;display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:16px}
.tarjeta{position:relative;display:block;border-radius:20px;overflow:hidden;aspect-ratio:3/3.6;text-decoration:none;color:#fff;isolation:isolate}
.tarjeta img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transform:scale(1.06);filter:brightness(.62) saturate(.85);transition:transform 1.2s var(--ease),filter .5s}
.tarjeta::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(10,14,13,.9) 0%,rgba(10,14,13,0) 60%)}
.tarjeta span{position:absolute;left:20px;right:20px;bottom:18px}
.tarjeta b{display:block;font-family:var(--serif);font-size:1.6rem;font-weight:500;line-height:1.05}
.tarjeta small{display:block;font-size:.85rem;color:var(--laton-claro);font-weight:600;margin-top:6px}
.tarjeta:hover img,.tarjeta:focus-visible img{transform:scale(1);filter:brightness(.8) saturate(1)}
.zonas-lista{list-style:none;border-top:1px solid rgba(255,255,255,.14)}
.zonas-lista a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.14);text-decoration:none;transition:padding .35s var(--ease),color .2s}
.zonas-lista b{font-family:var(--serif);font-size:1.6rem;font-weight:500;line-height:1.1;display:block}
.zonas-lista small{font-size:.85rem;color:var(--gris-claro)}
.zonas-lista svg{width:20px;height:20px;color:var(--laton);flex:none;transition:transform .3s var(--ease)}
.zonas-lista a:hover{padding-left:10px;color:var(--laton-claro)}
.zonas-lista a:hover svg{transform:translateX(4px)}
.zonas-lista a[aria-current="page"]{pointer-events:none;opacity:.5}

/* ========== LLAMADA FINAL ========== */
.portada-404 .zonas-lista{align-self:center}
.portada-404 .zonas-lista small{color:var(--gris-claro)}
.final{padding:140px 0;overflow:hidden;isolation:isolate;text-align:left}
.final-fondo{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center}
.final::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(12,16,15,.94) 0%,rgba(12,16,15,.8) 50%,rgba(12,16,15,.45) 100%)}
.final h2{font-size:clamp(2.6rem,5vw,4.6rem);max-width:14ch;color:#fff}
.final .entradilla{margin:22px 0 32px;color:rgba(236,234,228,.8)}

/* ========== PIE ========== */
.cenefa{height:44px;background-color:var(--noche-3);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 44 44'%3E%3Cg fill='none' stroke='%23C9A86A' stroke-width='1.3'%3E%3Cpath d='M0 11a11 11 0 0 0 11-11M33 0a11 11 0 0 0 11 11M44 33a11 11 0 0 0-11 11M11 44a11 11 0 0 0-11-11'/%3E%3Cpath d='M22 8 36 22 22 36 8 22Z'/%3E%3C/g%3E%3Ccircle cx='22' cy='22' r='3' fill='%23C9A86A'/%3E%3C/svg%3E");background-size:44px 44px}
footer{position:relative;z-index:2;background:var(--noche);padding:64px 0 40px;font-size:.92rem;color:var(--gris-claro)}
footer .envoltura{display:grid;grid-template-columns:1.2fr .85fr .85fr .8fr 1.1fr;gap:36px}
footer .grande{font-family:var(--serif);font-size:clamp(1.8rem,2.4vw,2.3rem);color:#fff;line-height:1.05;margin:18px 0 0;max-width:15ch}
footer h2{font-family:var(--sans);font-size:.9rem;color:#fff;font-weight:600;margin-bottom:14px;letter-spacing:0;line-height:1.4}
footer ul{list-style:none;display:grid;gap:8px}
footer a{text-decoration:none}
footer a:hover{color:#fff}
.empresa{font-style:normal;display:grid;gap:4px;line-height:1.55}
.empresa b{color:#fff;font-weight:600}
.legal-pie{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.1);padding-top:24px;display:flex;justify-content:space-between;align-items:center;gap:14px 24px;flex-wrap:wrap}
.legal-pie nav{display:flex;flex-wrap:wrap;row-gap:6px}
.legal-pie nav a{padding:0 12px;border-left:1px solid rgba(255,255,255,.2);line-height:1.2}
.legal-pie nav a:first-child{padding-left:0;border-left:0}

/* ========== BOTONES FLOTANTES ========== */
/* Siempre por encima del aviso de cookies (--alto-ck) y ocultos sobre la portada, el final y el pie. */
.flotantes{position:fixed;right:24px;bottom:calc(24px + var(--alto-ck,0px));z-index:56;display:flex;flex-direction:column;align-items:flex-end;gap:12px;transition:bottom .45s var(--ease),opacity .3s,transform .35s var(--ease)}
.flotantes.oculto{opacity:0;transform:translateY(18px);pointer-events:none}
.wa-flotante{width:56px;height:56px;border-radius:50%;background:var(--wa);color:#fff;display:grid;place-items:center;box-shadow:0 14px 34px -10px rgba(0,0,0,.55);transition:transform .25s var(--ease),background .25s}
.wa-flotante:hover{transform:translateY(-3px);background:#0E6B33}
.wa-flotante svg{width:27px;height:27px}
.barra-movil{display:none}

.revela{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.revela.visto{opacity:1;transform:none}

/* ========== RESPONSIVE ========== */
@media (max-width:1100px){
  .nav{display:none}
  .portada .envoltura,.obra-grid,.claves .envoltura,.faq-grid,.tramites .envoltura,.mas-grid,.precios-pie{grid-template-columns:minmax(0,1fr);gap:44px}
  .claves-lateral,.faq-lateral{position:static}
  .claves-foto{display:none}
  .cajetin{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cajetin div{border-left:0!important;border-top:1px solid rgba(140,116,66,.3)}
  .cajetin div:nth-child(-n+2){border-top:0}
  .cajetin div:nth-child(even){border-left:1px solid rgba(140,116,66,.3)!important}
  .cajetin div:last-child:nth-child(odd){grid-column:1/-1}
  .niveles,.tipos{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .plan-notas{grid-template-columns:minmax(0,1fr)}
  .lista-serv a{grid-template-columns:minmax(0,1fr) auto 44px}
  .lista-serv p{grid-column:1/-1;grid-row:2}
  footer .envoltura{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  body{font-size:16px}
  .envoltura,.portada .envoltura{padding:0 18px}
  .cabecera .envoltura{padding:0 18px;height:68px}
  .marca small{display:none}
  .cab-cta{padding:10px 16px;font-size:.86rem}
  .portada{padding:112px 0 120px}
  .portada h1{font-size:clamp(2.7rem,12vw,3.8rem)}
  .respuesta{font-size:1.02rem}
  .acciones .btn{flex:1 1 auto}
  .foto-portada{height:auto;min-height:0;aspect-ratio:4/3.6}
  .foto-portada figcaption{left:16px;right:16px;bottom:14px;flex-direction:column;align-items:flex-start;gap:8px}
  .foto-portada figcaption b{font-size:1.35rem}
  .cajetin-sec{margin-top:-70px}
  .cajetin div{padding:20px 18px 18px}
  .cajetin dd{font-size:1.35rem}
  .precios,.plan,.claves,.obra,.casas,.serv-zona,.faq-sec,.final{padding:88px 0}
  .tramites,.mas{padding:80px 0}
  .niveles,.tipos,.lista-claves,.tarjetas{grid-template-columns:minmax(0,1fr)}
  .tarjeta{aspect-ratio:16/10}
  .gantt{padding:18px 16px 16px;margin:0 -8px}
  .gantt-cab,.gantt-fila{grid-template-columns:minmax(0,1fr);gap:8px}
  .gantt-fila{padding:12px 0}
  .obra-datos dd{font-size:1.3rem}
  .obra-datos div + div{padding-left:12px}
  .mapa-zona{padding:12px 12px 0;margin:0 -6px}
  .mapa-ficha{margin:0 -12px;padding:18px 16px 20px;grid-template-columns:minmax(0,1fr)}
  .mapa-ficha .ir-obra{grid-row:auto;grid-column:1;justify-self:start}
  .nodo text{font-size:17px}
  .lista-serv a{gap:12px 16px;padding:20px 0}
  .lista-serv .ir{display:none}
  .lista-serv a{grid-template-columns:minmax(0,1fr) auto}
  .materiales thead{display:none}
  .materiales,.materiales tbody,.materiales tr,.materiales th,.materiales td{display:block}
  .materiales tr{padding:16px 18px;border-bottom:1px solid #DCD5C8}
  .materiales th,.materiales td{padding:3px 0;border:0}
  .materiales td[data-et]::before{content:attr(data-et) ": ";font-weight:700;color:var(--laton-osc);font-size:.82rem}
  .factores li{grid-template-columns:minmax(0,1fr);gap:2px}
  .faq summary{font-size:1.2rem;padding:18px 16px 18px 20px}
  .faq-resp p{padding:0 20px 20px}
  footer{padding-bottom:110px}
  footer .envoltura{grid-template-columns:minmax(0,1fr)}
  .legal-pie nav{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}
  .legal-pie nav a{padding:0;border-left:0}
  .flotantes{display:none}
  .barra-movil{display:grid;grid-template-columns:1fr 1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:55;padding-bottom:env(safe-area-inset-bottom);background:#0E1312}
  .barra-movil a{display:flex;align-items:center;justify-content:center;gap:8px;padding:17px 6px;font-weight:600;font-size:.92rem;text-decoration:none;color:#fff}
  .barra-movil a:first-child{border-top:1px solid rgba(255,255,255,.12)}
  .barra-movil a:nth-child(2){background:var(--laton);color:var(--noche)}
  .barra-movil a:last-child{background:var(--wa)}
  .barra-movil svg{width:20px;height:20px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .revela{opacity:1;transform:none}
  .barra{transform:scaleX(1)}
  .hito{transform:rotate(45deg) scale(1)}
}
