
/* =========================================================
   PRESTIGIO RENOVA — sistema de diseño
   Principio rector: nada aparece. Todo se construye.
   ========================================================= */

/* ---------- 1. Fichas de marca ---------- */
:root{
  --plomo:    #111315;   /* negro de marca */
  --plomo-2:  #1A1D21;
  --plomo-3:  #33373D;
  --laton:    #7E93BA;   /* acento: azul acero (derivado del marino) */
  --laton-cl: #AFC0DD;
  --minio:    #1B2A4A;   /* ACCIÓN: azul marino del botón Contactar */
  --minio-cl: #2A3E68;
  --blanco:   #FFFFFF;
  --gris:     #F6F6F4;
  --cemento:  #9A9DA2;
  --cemento-d:#6B6F75;

  --f-tit: 'Jost', system-ui, sans-serif;
  --f-txt: 'Inter', system-ui, sans-serif;
  --f-tec: 'Jost', ui-monospace, monospace;
  --f-ac:  'Instrument Serif', Georgia, serif;
  --f-logo:'Libre Caslon Text', Georgia, serif;

  --max: 1280px;
  --gut: clamp(20px, 5vw, 64px);

  --t-rap: 160ms cubic-bezier(.2,.6,.3,1);
  --t-med: 260ms cubic-bezier(.2,.6,.3,1);
  --t-obra: 620ms cubic-bezier(.16,.84,.29,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--blanco);color:var(--plomo);
  font-family:var(--f-txt);font-size:16.5px;line-height:1.62;
  font-feature-settings:"kern","liga";-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,video,svg{display:block;max-width:100%}
figure{margin:0}
a{color:inherit}
button{font:inherit;cursor:pointer}

/* ---------- 2. Tipografía ---------- */
h1,h2,h3,h4{font-family:var(--f-tit);font-weight:400;margin:0;line-height:1.04;letter-spacing:-.022em}
h1{font-size:clamp(2.6rem,5.8vw,4.7rem);font-weight:300}
h2{font-size:clamp(2rem,4.1vw,3.35rem);font-weight:300}
h3{font-size:clamp(1.28rem,2.1vw,1.75rem);letter-spacing:-.012em}
h4{font-size:1.06rem;letter-spacing:0}
p{margin:0 0 1.05em}
.lead{font-size:clamp(1.06rem,1.6vw,1.26rem);line-height:1.55;color:var(--plomo)}
.dim{color:var(--cemento-d)}
.ac{font-family:var(--f-ac);font-style:italic;font-weight:400;letter-spacing:-.004em}
.sec--oscura .ac{color:var(--laton-cl)}

.rot{
  font-family:var(--f-tec);font-size:.705rem;font-weight:500;
  letter-spacing:.19em;text-transform:uppercase;color:var(--cemento-d);
  display:flex;align-items:center;gap:.7em;
}
.rot::before{content:"";width:24px;height:1px;background:var(--minio);flex:none}
.sec--oscura .rot::before,.hero .rot::before,.puerta .rot::before,.pie .rot::before{background:var(--laton)}
.rot--sola::before{display:none}
.sec--oscura .rot,.hero .rot,.pie .rot,.puerta .rot{color:var(--cemento)}

/* ---------- 3. Retícula ---------- */
.env{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.sec{padding-block:clamp(72px,9vw,140px);position:relative;scroll-margin-top:60px}
.sec--oscura{background:var(--plomo);color:var(--gris)}
.sec--gris{background:var(--gris)}
.sec--oscura h1,.sec--oscura h2,.sec--oscura h3{color:var(--blanco)}
.cab{max-width:56ch;margin-bottom:clamp(34px,4.4vw,64px)}
.cab h2{margin:.42em 0 .38em}

.trama{
  background-image:
    linear-gradient(to right, rgba(154,157,162,.16) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(154,157,162,.16) 1px, transparent 1px);
  background-size:56px 56px;
}
.sec--oscura.trama{
  background-image:
    linear-gradient(to right, rgba(154,157,162,.08) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(154,157,162,.08) 1px, transparent 1px);
}

/* ---------- 4. Botones. El MARINO es la acción. ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.7em;
  font-family:var(--f-tit);font-size:.94rem;font-weight:500;letter-spacing:.045em;
  text-transform:uppercase;text-decoration:none;
  padding:.98em 1.65em;border:1px solid currentColor;color:var(--minio);
  background:transparent;position:relative;overflow:hidden;
  transition:color var(--t-rap),border-color var(--t-rap);
}
.btn::before{
  content:"";position:absolute;inset:0;background:var(--minio);
  transform:scaleY(0);transform-origin:bottom;transition:transform var(--t-rap);z-index:0;
}
.btn>*{position:relative;z-index:1}
.btn:hover{color:var(--blanco)}
.btn:hover::before{transform:scaleY(1)}
.btn--llena{background:var(--minio);color:var(--blanco);border-color:var(--minio)}
.btn--llena::before{background:var(--minio-cl)}
.btn .fl{transition:transform var(--t-rap)}
.btn:hover .fl{transform:translateX(4px)}

/* En fondo negro: secundario en gris, principal en blanco con texto marino */
.sec--oscura .btn,.hero .btn,.puerta .btn{color:var(--gris)}
.sec--oscura .btn::before,.hero .btn::before,.puerta .btn::before{background:var(--blanco)}
.sec--oscura .btn:hover,.hero .btn:hover,.puerta .btn:hover{color:var(--minio)}
.sec--oscura .btn--llena,.hero .btn--llena,.puerta .btn--llena{background:var(--blanco);color:var(--minio);border-color:var(--blanco)}
.sec--oscura .btn--llena::before,.hero .btn--llena::before,.puerta .btn--llena::before{background:var(--minio)}
.sec--oscura .btn--llena:hover,.hero .btn--llena:hover,.puerta .btn--llena:hover{color:var(--blanco);border-color:var(--minio)}

/* ---------- 5. Barra de obra + cabecera ---------- */
.obra{position:fixed;inset:0 0 auto 0;height:2px;background:transparent;z-index:120}
.obra i{display:block;height:100%;width:0;background:var(--minio)}

.hd{
  position:fixed;inset:2px 0 auto 0;z-index:110;
  background:rgba(248,248,246,0);backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);
  transition:background var(--t-med),backdrop-filter var(--t-med),border-color var(--t-med);
  border-bottom:1px solid transparent;
}
.hd.pegada{background:rgba(248,248,246,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom-color:rgba(17,19,21,.08)}
.hd__in{max-width:var(--max);margin-inline:auto;padding:14px var(--gut);
  display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{display:flex;align-items:baseline;gap:.55em;text-decoration:none;color:var(--blanco);transition:color var(--t-med)}
.logo b{font-family:var(--f-logo);font-weight:700;font-size:1.28rem;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}
.nav{display:flex;align-items:center;gap:clamp(14px,2vw,30px)}
.nav a{
  font-family:var(--f-tit);font-size:.87rem;letter-spacing:.08em;
  text-decoration:none;color:var(--gris);padding:6px 0;position:relative;transition:color var(--t-med)
}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--laton);
  transform:scaleX(0);transform-origin:left;transition:transform var(--t-rap)}
.nav a:hover::after,.nav a[aria-current]::after{transform:scaleX(1)}
.nav a[aria-current]{color:var(--cemento)}
.hd .btn{padding:.7em 1.2em;font-size:.8rem;text-transform:none;letter-spacing:.02em;border-radius:6px;
  background:var(--blanco);color:var(--minio);border-color:var(--blanco)}
.hd .btn::before{background:var(--minio)}
.hd .btn:hover{color:var(--blanco)}
.hd.pegada .logo{color:var(--plomo)}
.hd.pegada .nav a{color:var(--plomo)}
.hd.pegada .nav a[aria-current]{color:var(--cemento-d)}
.hd.pegada .nav a::after{background:var(--minio)}
.hd.pegada .btn{background:var(--minio);color:var(--blanco);border-color:var(--minio)}
.hd.pegada .btn::before{background:var(--minio-cl)}
.burger{display:none;background:none;border:0;padding:8px;width:42px}
.burger i{display:block;height:1px;background:var(--gris);margin:6px 0;transition:background var(--t-med)}
.hd.pegada .burger i{background:var(--plomo)}

/* ---------- 6. HERO: tres franjas verticales ---------- */
.hero{position:relative;min-height:100svh;background:var(--plomo);color:var(--gris);
  display:flex;align-items:center;overflow:hidden;padding-block:120px 60px}
.hero__bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(.35)}
.hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,19,21,.92) 0%,rgba(17,19,21,.78) 45%,rgba(17,19,21,.55) 100%),linear-gradient(0deg,rgba(17,19,21,.6),transparent 40%)}
.hero__in{position:relative;z-index:1;max-width:var(--max);margin-inline:auto;padding-inline:var(--gut);width:100%;
  display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(30px,4vw,64px);align-items:center}
.hero h1{color:var(--blanco);max-width:13ch}
.hero h1 em{font-family:var(--f-ac);font-style:italic;font-weight:400;color:var(--laton-cl);letter-spacing:-.004em}
.hero__txt{max-width:46ch;margin:1.5em 0 2.1em;color:var(--cemento);font-size:1.09rem}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px}
.hero__datos{display:grid;grid-template-columns:repeat(4,auto);gap:clamp(14px,2vw,34px);
  justify-content:start;margin-top:clamp(30px,4vw,54px);
  padding-top:24px;border-top:1px solid rgba(154,157,162,.24)}
.dato b{display:block;font-family:var(--f-tit);font-variant-numeric:tabular-nums;font-size:clamp(1.35rem,2.2vw,1.9rem);
  font-weight:400;color:var(--blanco);line-height:1;margin-bottom:.3em}
.dato span{font-family:var(--f-tec);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--cemento-d);display:block;max-width:11ch;line-height:1.4}

.franjas{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;height:clamp(400px,72svh,660px)}
.franja{position:relative;overflow:hidden;background:var(--plomo-2);
  transition:clip-path 760ms cubic-bezier(.16,.84,.29,1)}
.franja.oculto{clip-path:inset(100% 0 0 0)}
.franja:nth-child(2){transition-delay:110ms}
.franja:nth-child(3){transition-delay:220ms}
.franja video,.franja img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover}
.franja::after{content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,rgba(17,19,21,.18),transparent 30%,rgba(17,19,21,.28))}
.franja__et{position:absolute;inset:0;z-index:0;display:grid;place-content:center;text-align:center;
  font-family:var(--f-tec);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cemento-d);
  background:repeating-linear-gradient(45deg,transparent,transparent 9px,rgba(154,157,162,.07) 9px,rgba(154,157,162,.07) 10px)}
.franja--b{margin-top:34px}
.franja--c{margin-top:-24px}

/* ---------- 7. Motor de construcción (aditivo) ---------- */
[data-obra]{transition:opacity var(--t-obra),transform var(--t-obra),clip-path var(--t-obra)}
[data-obra].oculto{opacity:0}
[data-obra="alza"].oculto{transform:translateY(22px)}
[data-obra="cortina"].oculto{opacity:1;clip-path:inset(100% 0 0 0)}
[data-retardo="1"]{transition-delay:90ms}
[data-retardo="2"]{transition-delay:180ms}
[data-retardo="3"]{transition-delay:270ms}

.traza path,.traza line,.traza rect,.traza polyline,.traza circle{
  transition:stroke-dashoffset 900ms cubic-bezier(.3,.7,.3,1);
}
.traza.oculto path,.traza.oculto line,.traza.oculto rect,.traza.oculto polyline,.traza.oculto circle{
  stroke-dasharray:var(--l,1200);stroke-dashoffset:var(--l,1200);
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:1ms !important;animation-duration:1ms !important}
  [data-obra]{opacity:1 !important;transform:none !important;clip-path:none !important}
  .traza *{stroke-dashoffset:0 !important;stroke-dasharray:none !important}
  html{scroll-behavior:auto}
}

/* ---------- 8. LA CASA QUE SE CONSTRUYE (proceso) ---------- */
.proceso__g{display:grid;grid-template-columns:1fr 1.02fr;gap:clamp(30px,5vw,80px);align-items:start}
.proceso__casa{position:sticky;top:110px;align-self:start}
.casa-marco{background:var(--plomo-2);border:1px solid rgba(154,157,162,.2);padding:22px;position:relative}
.casa-marco::before{content:"SECCIÓN · A-01";position:absolute;top:10px;left:22px;
  font-family:var(--f-tec);font-size:.6rem;letter-spacing:.2em;color:var(--cemento-d)}
.casa-svg{width:100%;height:auto;margin-top:12px}
.casa-svg .cp{opacity:0;transition:opacity 460ms ease}
.casa-svg .cp.on{opacity:1}
.casa-svg .cotas line,.casa-svg .cotas path{stroke:var(--cemento);stroke-width:.8}
.casa-svg .cotas text{fill:var(--cemento);font-family:'Jost',sans-serif;font-size:8px;letter-spacing:.08em}
.casa-svg .cerr{fill:none;stroke:var(--cemento);stroke-width:1.1;transition:stroke-width 420ms ease,stroke 420ms ease}
.casa-svg.firme .cerr{stroke:var(--blanco);stroke-width:2.4}
.casa-svg .part{fill:none;stroke:rgba(154,157,162,.55);stroke-width:.7;stroke-dasharray:3 3}
.casa-svg .etq{fill:var(--cemento-d);font-family:'Jost',sans-serif;font-size:7px;letter-spacing:.12em}
.casa-svg .inst{fill:none;stroke:var(--laton);stroke-width:1.3;stroke-linecap:round}
.casa-svg .acab rect{opacity:.9}
.casa-svg .luz{opacity:0;transition:opacity 700ms ease}
.casa-svg .luz.on{opacity:1}
.casa-svg .llave{stroke:var(--laton-cl);fill:none;stroke-width:1.6}
.casa-halo{position:absolute;inset:auto 0 0 0;height:38%;pointer-events:none;opacity:0;
  background:radial-gradient(60% 100% at 50% 100%, rgba(175,192,221,.18), transparent 70%);
  transition:opacity 800ms ease}
.casa-halo.on{opacity:1}

.pasos{display:flex;flex-direction:column;gap:2px}
.paso{padding:clamp(22px,2.6vw,34px) 0;border-top:1px solid rgba(154,157,162,.22);
  opacity:.32;transition:opacity var(--t-med)}
.paso:last-child{border-bottom:1px solid rgba(154,157,162,.22)}
.paso.viva{opacity:1}
.paso__n{font-family:var(--f-tec);font-size:.68rem;letter-spacing:.2em;color:var(--laton)}
.paso h3{color:var(--blanco);margin:.35em 0 .4em}
.paso p{margin:0;color:var(--cemento);font-size:.98rem;max-width:44ch}

/* ---------- 9. CASA EN PLANTA (servicios) ---------- */
.planta{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,4vw,64px);align-items:center}
.planta-svg{width:100%;height:auto}
.planta-svg .est{fill:rgba(154,157,162,.07);stroke:var(--cemento);stroke-width:1.1;
  transition:fill var(--t-rap),stroke var(--t-rap);cursor:pointer}
.planta-svg .est:hover,.planta-svg .est.sel{fill:rgba(126,147,186,.22);stroke:var(--laton)}
.planta-svg .nm{fill:var(--cemento-d);font-family:'Jost',sans-serif;font-size:8.5px;
  letter-spacing:.14em;text-transform:uppercase;pointer-events:none;transition:fill var(--t-rap)}
.planta-svg g.on .nm{fill:var(--blanco)}
.planta-svg .mur{stroke:var(--blanco);stroke-width:2.2;fill:none}
.planta-svg .vent{stroke:var(--plomo);stroke-width:4}
.planta-svg .vent-l{stroke:var(--cemento);stroke-width:.8;pointer-events:none}
.planta-svg g:focus{outline:none}
.ficha{border-left:2px solid var(--laton);padding-left:clamp(18px,2.4vw,30px);min-height:260px}
.ficha h3{color:var(--blanco);margin:.3em 0 .5em}
.ficha p{color:var(--cemento)}
.ficha ul{margin:0 0 1.3em;padding-left:1.05em;color:var(--cemento);font-size:.96rem}
.ficha li{margin-bottom:.35em}

/* ---------- 10. PRESUPUESTO QUE SE ABRE ---------- */
.pres{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.2vw,30px)}
.pres__c{border:1px solid rgba(154,157,162,.3);background:var(--blanco);display:flex;flex-direction:column}
.pres__c--n{border-color:var(--plomo);box-shadow:0 0 0 1px var(--plomo)}
.pres__h{padding:20px 22px;border-bottom:1px solid rgba(154,157,162,.3)}
.pres__h .rot{margin-bottom:.5em}
.pres__tot{font-family:var(--f-tit);font-variant-numeric:tabular-nums;font-size:clamp(1.6rem,3vw,2.3rem);font-weight:400;line-height:1;margin:0}
.pres__tot small{font-size:.5em;color:var(--cemento-d);letter-spacing:.04em}
.pres__l{list-style:none;margin:0;padding:8px 0;flex:1}
.pres__l li{display:flex;justify-content:space-between;gap:16px;padding:9px 22px;
  font-size:.9rem;border-bottom:1px dotted rgba(154,157,162,.35)}
.pres__l li:last-child{border-bottom:0}
.pres__l li span:last-child{font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap}
.pres__l li.oculta{max-height:0;padding-block:0;overflow:hidden;opacity:0;
  transition:max-height 380ms ease,padding 380ms ease,opacity 260ms ease}
.pres__l li.oculta.sale{max-height:60px;padding-block:9px;opacity:1;
  background:rgba(27,42,74,.07);color:var(--minio);font-weight:500}
.pres__l li.falta{color:var(--plomo);opacity:0;transition:opacity 300ms ease;background:rgba(17,19,21,.04)}
.pres__l li.falta span:last-child{font-style:italic;color:var(--cemento-d)}
.pres__l li.falta.sale{opacity:1}
.pres__pie{padding:16px 22px;border-top:1px solid rgba(154,157,162,.3);
  font-size:.84rem;color:var(--cemento-d);min-height:74px}
.pres__pie strong{color:var(--plomo)}
.pres__c--n .pres__pie strong{color:var(--minio)}
.pres__ctrl{display:flex;align-items:center;gap:16px;margin-top:26px;flex-wrap:wrap}
.aviso{font-size:.78rem;color:var(--cemento-d);max-width:56ch;margin-top:14px}

/* ---------- 11. QUIÉN LLEVA TU OBRA ---------- */
.qll{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(30px,4.6vw,72px);align-items:start}
.qa{border-top:1px solid rgba(154,157,162,.24)}
.qa:last-of-type{border-bottom:1px solid rgba(154,157,162,.24)}
.qa summary{
  list-style:none;cursor:pointer;padding:clamp(17px,2.1vw,24px) 0;
  display:flex;gap:16px;align-items:baseline;color:var(--gris);
  font-family:var(--f-tit);font-size:clamp(1.02rem,1.5vw,1.22rem);
  transition:color var(--t-rap);
}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";margin-left:auto;color:var(--laton);font-size:1.15em;line-height:1;flex:none}
.qa[open] summary::after{content:"–"}
.qa summary:hover,.qa[open] summary{color:var(--blanco)}
.qa summary i{font-family:var(--f-tec);font-size:.66rem;letter-spacing:.16em;color:var(--laton);font-style:normal;flex:none}
.qa p{margin:0 0 1.25em 34px;max-width:48ch;color:var(--cemento);font-size:.97rem}
.qa p:first-of-type{margin-top:-.3em}

.resp{position:sticky;top:104px}
.resp__v{background:var(--plomo-2);padding:13px;border:1px solid rgba(154,157,162,.2)}
.resp__m{position:relative;aspect-ratio:9/16;background:#000;overflow:hidden}
.resp__m video{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;background:#000}
.resp__m .franja__et{color:var(--cemento-d)}
.resp__pie{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:11px;
  font-family:var(--f-tec);font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cemento-d)}
.firma{margin-top:18px;padding-top:16px;border-top:1px solid rgba(154,157,162,.2)}
.firma b{display:block;font-family:var(--f-tit);font-size:1.06rem;color:var(--blanco);font-weight:500}
.firma span{font-family:var(--f-tec);font-size:.64rem;letter-spacing:.15em;text-transform:uppercase;color:var(--cemento-d)}

/* ---------- 12. PROYECTOS: fichas técnicas ---------- */
.proy{display:flex;flex-direction:column;gap:2px}
.pcard{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(20px,3vw,48px);
  padding:clamp(26px,3.4vw,46px) 0;border-top:1px solid rgba(154,157,162,.35);align-items:center}
.proy .pcard:last-child{border-bottom:1px solid rgba(154,157,162,.35)}
.pcard__img{position:relative;aspect-ratio:4/3;background:var(--gris);overflow:hidden}
.pcard__img img,.pcard__img video{position:relative;z-index:1;width:100%;height:100%;object-fit:cover}
.hueco{position:absolute;inset:0;display:grid;place-content:center;gap:8px;text-align:center;
  background:repeating-linear-gradient(45deg,transparent,transparent 9px,rgba(154,157,162,.16) 9px,rgba(154,157,162,.16) 10px);
  border:1px dashed var(--cemento);padding:20px}
.hueco b{font-family:var(--f-tec);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cemento-d)}
.hueco span{font-size:.78rem;color:var(--cemento-d);max-width:26ch}
.pcard h3{margin:.3em 0 .55em}
.tabla{width:100%;border-collapse:collapse;margin-top:1.1em;font-size:.88rem}
.tabla th,.tabla td{text-align:left;padding:.62em 0;border-bottom:1px dotted rgba(154,157,162,.5);vertical-align:top}
.tabla th{font-family:var(--f-tec);font-weight:500;font-size:.66rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--cemento-d);width:38%}
.tabla td{font-variant-numeric:tabular-nums}

/* ---------- 13. GUÍA (lista tipo cuaderno) ---------- */
.parte{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(18px,3vw,44px);align-items:baseline;
  padding:clamp(22px,2.8vw,34px) 0;border-top:1px solid rgba(154,157,162,.35);
  text-decoration:none;transition:background var(--t-rap)}
.parte:last-of-type{border-bottom:1px solid rgba(154,157,162,.35)}
.parte:hover{background:rgba(154,157,162,.07)}
.parte__n{font-family:var(--f-tec);font-size:.7rem;letter-spacing:.18em;color:var(--minio)}
.parte h3{margin:0 0 .3em;transition:color var(--t-rap)}
.parte:hover h3{color:var(--minio)}
.parte__m{font-family:var(--f-tec);font-size:.66rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--cemento-d);white-space:nowrap}

/* ---------- 14. Puerta + pie ---------- */
.puerta{background:var(--plomo);padding-bottom:clamp(60px,8vw,110px);scroll-margin-top:60px}
.puerta__m{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut);
  display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end;
  border-top:1px solid rgba(154,157,162,.22);padding-top:clamp(44px,5vw,70px)}
.puerta__b{display:flex;flex-wrap:wrap;gap:14px}

.pie{background:var(--plomo);color:var(--cemento);padding-block:clamp(56px,7vw,90px) 30px}
.pie .logo{color:var(--blanco)}
.pie__g{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(28px,4vw,60px);
  padding-bottom:44px;border-bottom:1px solid rgba(154,157,162,.22)}
.pie a{text-decoration:none;color:var(--cemento);transition:color var(--t-rap)}
.pie a:hover{color:var(--blanco)}
.pie ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6em;font-size:.94rem}
.pie__b{display:flex;justify-content:space-between;gap:20px;padding-top:24px;flex-wrap:wrap;
  font-family:var(--f-tec);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--cemento-d)}

/* WhatsApp fijo */
.wa{position:fixed;right:20px;bottom:20px;z-index:100;display:flex;align-items:center;gap:10px;
  background:var(--minio);color:var(--blanco);text-decoration:none;padding:.85em 1.2em;border-radius:6px;
  font-family:var(--f-tit);font-size:.86rem;letter-spacing:.06em;text-transform:uppercase;
  box-shadow:0 8px 26px rgba(17,19,21,.3),0 0 0 1px rgba(255,255,255,.22);transition:background var(--t-rap),transform var(--t-rap)}
.wa:hover{background:var(--minio-cl);transform:translateY(-2px)}
.wa svg{flex:none}

/* Plano sobre fondo claro */
.clara .planta-svg .mur{stroke:var(--plomo)}
.clara .planta-svg .est{fill:rgba(255,255,255,.6)}
.clara .planta-svg .est:hover,.clara .planta-svg .est.sel{fill:rgba(27,42,74,.12);stroke:var(--minio)}
.clara .planta-svg g.on .nm{fill:var(--minio)}
.clara .planta-svg .vent{stroke:var(--gris)}
.clara .ficha{border-left-color:var(--minio)}
.clara .ficha h3{color:var(--plomo)}
.clara .ficha p,.clara .ficha ul{color:var(--cemento-d)}
/* Fotos en los servicios */
.serv__m img{width:100%;height:100%;object-fit:cover;transition:transform 900ms cubic-bezier(.16,.84,.29,1)}
.serv:hover .serv__m img{transform:scale(1.04)}

/* Hero: rótulo y zoom lento en las franjas */
.franja__cap{position:absolute;z-index:3;left:12px;bottom:12px;font-family:var(--f-tec);font-size:.6rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--blanco);background:rgba(17,19,21,.55);padding:.45em .7em;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.franja img{animation:lento 18s ease-in-out infinite alternate}
.franja--b img{animation-delay:-6s}.franja--c img{animation-delay:-12s}
@keyframes lento{from{transform:scale(1)}to{transform:scale(1.12)}}
.franja{transition:clip-path 760ms cubic-bezier(.16,.84,.29,1),transform var(--t-med)}
.franja:hover{transform:translateY(-6px)}

/* Test de la guía */
.chk{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(28px,4vw,64px);align-items:start}
.chk__l{display:flex;flex-direction:column}
.chk__i{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(14px,2vw,28px);align-items:center;
  padding:clamp(18px,2.2vw,26px) clamp(14px,1.6vw,20px);border-top:1px solid rgba(154,157,162,.35);background:transparent;
  transition:background var(--t-med)}
.chk__i:last-child{border-bottom:1px solid rgba(154,157,162,.35)}
.chk__n{font-family:var(--f-tec);font-size:.7rem;letter-spacing:.18em;color:var(--minio)}
.chk__t h3{font-size:clamp(1.08rem,1.6vw,1.3rem);margin:0 0 .3em}
.chk__t p{margin:0;font-size:.92rem;color:var(--cemento-d);max-width:48ch}
.chk__b{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.chk__b button{font-family:var(--f-tit);font-size:.78rem;letter-spacing:.04em;padding:.6em 1em;border:1px solid rgba(17,19,21,.25);
  background:var(--blanco);color:var(--plomo);border-radius:999px;transition:all var(--t-rap);white-space:nowrap}
.chk__b button:hover{border-color:var(--minio)}
.chk__i[data-r="si"]{background:rgba(27,42,74,.06)}
.chk__i[data-r="si"] button[data-v="si"]{background:var(--minio);border-color:var(--minio);color:var(--blanco)}
.chk__i[data-r="no"] button[data-v="no"]{background:var(--plomo);border-color:var(--plomo);color:var(--blanco)}
.chk__r{position:sticky;top:100px;display:flex;flex-direction:column;gap:26px}
.chk .portada{background:var(--blanco);box-shadow:20px 20px 0 -1px var(--plomo),20px 20px 0 0 var(--plomo);max-width:300px;transform:rotate(-2deg);
  transition:transform 300ms ease}
.medidor{background:var(--blanco);border:1px solid rgba(17,19,21,.12);padding:20px 22px;display:flex;flex-direction:column;gap:12px}
.medidor__cab{display:flex;align-items:baseline;gap:10px}
.medidor__cab span:first-child{font-family:var(--f-tit);font-size:2rem;font-weight:300;font-variant-numeric:tabular-nums;color:var(--minio)}
.medidor__cab span:last-child{font-family:var(--f-tec);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cemento-d)}
.medidor__barra{height:4px;background:rgba(17,19,21,.08)}
.medidor__barra i{display:block;height:100%;width:0;background:var(--minio);transition:width 500ms cubic-bezier(.16,.84,.29,1)}
.medidor__msg{margin:0;font-size:.92rem;color:var(--plomo);min-height:3em}
.medidor .btn{justify-content:center}
@media(max-width:1000px){.chk{grid-template-columns:1fr}.chk__r{position:static}.chk .portada{margin-inline:0}}
@media(max-width:620px){.chk .portada{max-width:230px;margin-left:8px}.chk__i{grid-template-columns:auto 1fr}.chk__b{grid-column:1/-1;justify-content:flex-start}}

/* ===== Ritmo y azul ===== */
/* Cinta de servicios */
.cinta{background:var(--minio);color:var(--blanco);overflow:hidden;border-block:1px solid rgba(255,255,255,.08)}
.cinta__in{display:flex;width:max-content;gap:28px;padding:18px 0;animation:cinta 48s linear infinite;
  font-family:var(--f-tit);font-weight:300;font-size:clamp(1.1rem,2vw,1.5rem);letter-spacing:.02em;white-space:nowrap}
.cinta__in i{font-style:normal;color:var(--laton-cl)}
.cinta:hover .cinta__in{animation-play-state:paused}
@keyframes cinta{to{transform:translateX(-50%)}}

/* Cabecera en dos columnas */
.cab--fila{max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,64px);align-items:end}
.cab--fila .lead{margin:0;max-width:46ch}

/* Paneles que se expanden */
.split{display:flex;gap:12px;height:clamp(460px,64vh,620px)}
.split__p{position:relative;flex:1;overflow:hidden;text-decoration:none;color:var(--blanco);background:var(--plomo);
  transition:flex 700ms cubic-bezier(.16,.84,.29,1)}
.split:hover .split__p{flex:.75}
.split .split__p:hover,.split .split__p:focus-visible{flex:1.5}
.split__p img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1200ms cubic-bezier(.16,.84,.29,1)}
.split__p:hover img{transform:scale(1.05)}
.split__p::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,19,21,.05) 30%,rgba(17,19,21,.82));transition:background 500ms ease}
.split__p:hover::after{background:linear-gradient(180deg,rgba(27,42,74,.15) 20%,rgba(27,42,74,.92))}
.split__c{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:clamp(22px,3vw,40px);display:flex;flex-direction:column;gap:10px}
.split__n{margin:0;font-family:var(--f-tec);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--laton-cl)}
.split__c h3{color:var(--blanco);font-size:clamp(1.5rem,2.6vw,2.2rem);font-weight:300;max-width:16ch}
.split__x{max-height:0;opacity:0;overflow:hidden;transition:max-height 600ms ease,opacity 400ms ease}
.split__p:hover .split__x,.split__p:focus-visible .split__x{max-height:220px;opacity:1}
.split__x p{margin:0 0 .8em;font-size:.95rem;color:rgba(255,255,255,.85);max-width:44ch}
.split__x ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.split__x li{font-size:.78rem;padding:.35em .8em;border:1px solid rgba(255,255,255,.35);border-radius:999px}
.split__cta{font-family:var(--f-tit);font-size:.86rem;letter-spacing:.06em;text-transform:uppercase;margin-top:6px}

/* Selector de obras */
.obras{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,4vw,64px);align-items:start}
.obras__l{list-style:none;margin:0;padding:0;counter-reset:o}
.obras__l li{border-top:1px solid rgba(154,157,162,.35)}
.obras__l li:last-child{border-bottom:1px solid rgba(154,157,162,.35)}
.obras__b{width:100%;display:flex;gap:18px;align-items:baseline;text-align:left;background:none;border:0;padding:20px 12px;
  color:var(--cemento-d);position:relative;transition:color var(--t-rap),background var(--t-rap)}
.obras__b::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--minio);transform:scaleY(0);transition:transform var(--t-med)}
.obras__b:hover{color:var(--plomo)}
.obras__b.on{color:var(--plomo);background:rgba(27,42,74,.05)}
.obras__b.on::before{transform:scaleY(1)}
.obras__n{font-family:var(--f-tec);font-size:.68rem;letter-spacing:.18em;color:var(--minio)}
.obras__t{font-family:var(--f-tit);font-size:clamp(1.1rem,1.7vw,1.4rem);display:flex;flex-direction:column;gap:4px}
.obras__t small{font-family:var(--f-tec);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cemento-d)}
.obras__v{position:relative;display:grid}
.obras__f{grid-area:1/1;margin:0;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity 500ms ease,transform 500ms ease,visibility 0s 500ms}
.obras__f.on{opacity:1;visibility:visible;transform:none;transition:opacity 500ms ease,transform 500ms ease}
.obras__f img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.obras__f figcaption{background:var(--minio);color:var(--blanco);padding:6px 22px 10px}
.tabla--clara{margin-top:0}
.tabla--clara th{color:var(--laton-cl)}
.tabla--clara th,.tabla--clara td{border-bottom-color:rgba(255,255,255,.18)}
.tabla--clara tr:last-child th,.tabla--clara tr:last-child td{border-bottom:0}
.obras__prog{height:2px;background:rgba(255,255,255,.2);margin-top:2px}

/* Banda de foto */
.banda{position:relative;overflow:hidden;min-height:clamp(380px,62vh,600px);display:flex;align-items:center;background:var(--plomo)}
.banda__bg{position:absolute;inset:-12% 0;background-size:cover;background-position:center;will-change:transform}
.banda__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,19,21,.85),rgba(17,19,21,.35))}
.banda__in{position:relative;z-index:1;width:100%}
.banda__t{font-family:var(--f-tit);font-weight:300;color:var(--blanco);font-size:clamp(1.6rem,4.1vw,3.9rem);line-height:1.12;letter-spacing:-.02em;margin:.4em 0 0}
.banda__t span,.banda__t em{display:block;white-space:nowrap}
@media(max-width:760px){.banda__t span,.banda__t em{white-space:normal;text-wrap:balance}}
.banda__t em{font-family:var(--f-ac);font-style:italic;font-weight:400;color:var(--laton-cl)}
.banda .rot{color:var(--cemento)}
.banda .rot::before{background:var(--laton)}

/* Sección azul */
.sec--azul{background:var(--minio);color:var(--blanco)}
.sec--azul .rot{color:var(--laton-cl)}
.sec--azul .rot::before{background:var(--laton-cl)}
.sec--azul .cita{color:var(--blanco)}
.sec--azul .cita em{color:var(--laton-cl)}
.sec--azul .val{border-color:rgba(255,255,255,.22)}
.sec--azul .val--on{border-top-color:var(--blanco)}
.sec--azul .val__n{color:var(--laton-cl)}
.sec--azul .val h3{color:var(--blanco)}
.sec--azul .val p{color:rgba(255,255,255,.72)}
.sec--azul .btn{color:var(--blanco)}
.sec--azul .btn::before{background:var(--blanco)}
.sec--azul .btn:hover{color:var(--minio)}

/* Presupuesto Prestigio con cabecera azul */
.pres__c--n{border-color:var(--minio);box-shadow:0 0 0 1px var(--minio)}
.pres__c--n .pres__h{background:var(--minio);color:var(--blanco);border-bottom-color:var(--minio)}
.pres__c--n .pres__h .rot{color:var(--laton-cl)}
.pres__c--n .pres__h .rot::before{background:var(--laton-cl)}
.pres__c--n .pres__tot small{color:rgba(255,255,255,.7)}

@media(max-width:1000px){
  .cab--fila{grid-template-columns:1fr}
  .split{flex-direction:column;height:auto}
  .split__p{flex:none !important;height:380px}
  .split__x{max-height:none;opacity:1}
  .obras{grid-template-columns:1fr}
}

/* ===== Blog ===== */
.blog{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,34px)}
.blog--2{grid-template-columns:1fr 1fr}
.post{display:flex;flex-direction:column;text-decoration:none;color:var(--plomo);background:var(--blanco);border:1px solid rgba(17,19,21,.08);
  transition:border-color var(--t-med),transform var(--t-med)}
.post:hover{border-color:var(--minio);transform:translateY(-4px)}
.post__img{aspect-ratio:4/3;overflow:hidden;background:var(--gris)}
.post__img img{width:100%;height:100%;object-fit:cover;transition:transform 900ms cubic-bezier(.16,.84,.29,1)}
.post:hover .post__img img{transform:scale(1.05)}
.post__t{padding:20px 22px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.post__t h3{font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.2;text-wrap:balance}
.post__t .dim{margin:0;font-size:.93rem}
.post__m{display:flex;gap:14px;margin:0;font-family:var(--f-tec);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cemento-d)}
.post__m span:first-child{color:var(--minio)}
.post__cta{margin-top:auto;font-family:var(--f-tit);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--minio)}
.post--grande{grid-column:1/-1;display:grid;grid-template-columns:1.3fr 1fr}
.post--grande .post__img{aspect-ratio:auto;min-height:360px}
.post--grande .post__t{padding:clamp(24px,3.4vw,48px);justify-content:center}
.post--grande h3{font-size:clamp(1.6rem,2.6vw,2.2rem);font-weight:300}
/* Artículo */
.volver{display:inline-block;margin-bottom:28px;font-family:var(--f-tit);font-size:.86rem;letter-spacing:.04em;color:var(--minio);text-decoration:none}
.art__cab{max-width:30ch;max-width:min(860px,100%);display:flex;flex-direction:column;gap:14px}
.art__cab h1{font-size:clamp(2.1rem,4.6vw,3.8rem);text-wrap:balance}
.art__cab .lead{margin:0;max-width:60ch}
.art__img{margin:clamp(30px,4vw,56px) 0;aspect-ratio:2/1;overflow:hidden;background:var(--gris)}
.art__img img{width:100%;height:100%;object-fit:cover}
.art--blog{max-width:68ch;margin-inline:auto}
.art--blog p,.art--blog li{color:var(--plomo);font-size:1.04rem;line-height:1.75}
.art--blog h2{font-size:clamp(1.35rem,2.2vw,1.75rem);font-weight:400;margin:1.8em 0 .5em}
.art--blog blockquote{margin:2em 0;padding:.4em 0 .4em 1.3em;border-left:3px solid var(--minio);
  font-family:var(--f-ac);font-style:italic;font-size:clamp(1.3rem,2.2vw,1.7rem);line-height:1.35;color:var(--minio)}
.art__cta{margin-top:3em;padding:26px 28px;background:var(--minio);color:var(--blanco);display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.art__cta p{color:rgba(255,255,255,.85) !important;margin:0}
.art__cta strong{color:var(--blanco)}
.art__cta .btn--llena{background:var(--blanco);color:var(--minio);border-color:var(--blanco)}
.art__cta .btn--llena::before{background:var(--plomo)}
.art__cta .btn--llena:hover{color:var(--blanco)}
@media(max-width:1000px){.blog{grid-template-columns:1fr 1fr}.post--grande{grid-template-columns:1fr}.post--grande .post__img{min-height:0;aspect-ratio:16/10}}
@media(max-width:620px){.blog,.blog--2{grid-template-columns:1fr}.sec--azul .env[style]{grid-template-columns:1fr !important}}

/* ---------- 15. Responsive ---------- */
@media(max-width:1000px){
  .hero__in,.proceso__g,.planta,.pcard,.qll{grid-template-columns:1fr}
  .proceso__casa{position:sticky;top:64px;z-index:5;margin-bottom:18px}
  .resp{position:static;margin-bottom:22px;max-width:360px}
  .franjas{height:46svh}
  .pie__g{grid-template-columns:1fr 1fr}
  .nav{display:none;position:fixed;inset:58px 0 auto 0;background:var(--gris);
    flex-direction:column;align-items:stretch;padding:14px var(--gut) 26px;gap:0;
    border-bottom:1px solid rgba(17,19,21,.08)}
  .nav.abierta{display:flex}
  .nav a,.hd .nav a{padding:14px 0;border-bottom:1px solid rgba(17,19,21,.08);font-size:1rem;color:var(--plomo)}
  .burger{display:block}
  .hd .btn{display:none}
  .hero__datos{grid-template-columns:repeat(2,auto);row-gap:22px}
}
@media(max-width:620px){
  .pres{grid-template-columns:1fr}
  .franjas{grid-template-columns:repeat(3,1fr);gap:7px;height:38svh}
  .franja--b{margin-top:16px}.franja--c{margin-top:-10px}
  .pie__g{grid-template-columns:1fr}
  .puerta__m{grid-template-columns:1fr}
  .wa span{display:none}
  .wa{padding:.9em}
  .logo b{font-size:1.1rem}
}
@media(max-width:760px){
  .parte{grid-template-columns:1fr;gap:4px}
  .parte__m{white-space:normal;margin-top:.4em}
  .parte h3{font-size:1.14rem;line-height:1.22}
}

/* =========================================================
   PÁGINAS INTERIORES
   ========================================================= */
/* Cabecera sólida (clara) en las páginas sin hero */
body:not(.con-hero) .hd{background:rgba(248,248,246,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom-color:rgba(17,19,21,.08)}
body:not(.con-hero) .hd .logo,body:not(.con-hero) .hd .nav a{color:var(--plomo)}
body:not(.con-hero) .hd .nav a[aria-current]{color:var(--cemento-d)}
body:not(.con-hero) .hd .nav a::after{background:var(--minio)}
body:not(.con-hero) .hd .btn{background:var(--minio);color:var(--blanco);border-color:var(--minio)}
body:not(.con-hero) .hd .btn::before{background:var(--minio-cl)}
body:not(.con-hero) .burger i{background:var(--plomo)}
.sec--tope{padding-top:clamp(130px,13vw,170px)}

.g2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4.4vw,72px)}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.6vw,40px)}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.2vw,32px)}
.ver-mas{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}

/* Catálogo de servicios */
.cat{display:flex;flex-direction:column}
.serv{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(24px,3.6vw,60px);
  align-items:center;padding:clamp(30px,3.6vw,52px) 0;border-top:1px solid rgba(154,157,162,.35);scroll-margin-top:80px}
.cat .serv:last-child{border-bottom:1px solid rgba(154,157,162,.35)}
.serv--inv .serv__m{order:2}
.serv__m{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--gris)}
.dib__m{position:absolute;inset:0;display:grid;place-items:center;background:var(--plomo);padding:8%}
.dib{width:100%;height:auto}
.dib line,.dib path,.dib circle,.dib rect,.dib polyline{fill:none;stroke:var(--cemento);stroke-width:1.4;stroke-linecap:square}
.dib .oro{stroke:var(--laton);stroke-width:1.6}
.dib text{fill:var(--cemento-d);stroke:none;font-family:'Jost',sans-serif;font-size:9px;letter-spacing:.14em}
.serv__t h3{margin:.3em 0 .5em}
.serv__t ul{list-style:none;margin:1.2em 0 1.4em;padding:0;display:flex;flex-direction:column;gap:.5em}
.serv__t li{position:relative;padding-left:1.5em;font-size:.94rem;color:var(--plomo)}
.serv__t li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:1px;background:var(--minio)}
.sec--oscura .serv{border-color:rgba(154,157,162,.2)}
.sec--oscura .serv__t li{color:var(--gris)}
.sec--oscura .serv__t li::before{background:var(--laton)}
.sec--oscura .serv__m{background:var(--plomo-2)}
.sec--oscura .dib__m{background:var(--plomo-2)}

/* Siempre incluido */
.incl{display:flex;gap:clamp(14px,1.8vw,24px);align-items:baseline;
  padding:clamp(18px,2.2vw,26px) 0;border-top:1px solid rgba(154,157,162,.4)}
.incl:last-child{border-bottom:1px solid rgba(154,157,162,.4)}
.incl b{font-family:var(--f-tec);font-size:.72rem;letter-spacing:.18em;color:var(--minio);flex:none}
.incl h4{margin:0 0 .35em;font-size:1.15rem}
.incl p{margin:0;font-size:.94rem}
.sec--oscura .incl{border-color:rgba(154,157,162,.22)}
.sec--oscura .incl b{color:var(--laton)}
.sec--oscura .incl h4{color:var(--blanco)}
.sec--oscura .incl p{color:var(--cemento)}

/* Valor / compromiso grande */
.val{border-top:1px solid rgba(154,157,162,.4);padding-top:22px}
.val__n{font-family:var(--f-tec);font-size:.7rem;letter-spacing:.2em;color:var(--minio)}
.val h3{margin:.45em 0 .5em}
.val p{color:var(--cemento-d);font-size:.96rem;margin:0}
.sec--oscura .val{border-color:rgba(154,157,162,.22)}
.sec--oscura .val__n{color:var(--laton)}
.sec--oscura .val p{color:var(--cemento)}
.val--on{border-top:2px solid var(--minio)}
.sec--oscura .val--on{border-top-color:var(--laton)}

/* Cita grande */
.cita{font-family:var(--f-tit);font-weight:300;font-size:clamp(1.6rem,3.4vw,2.7rem);line-height:1.18;
  letter-spacing:-.018em;max-width:28ch;margin:0}
.cita em{font-family:var(--f-ac);font-style:italic;font-weight:400}
.sec--oscura .cita{color:var(--blanco)}
.sec--oscura .cita em{color:var(--laton-cl)}

/* Vídeo vertical enmarcado */
.showv{margin:0;max-width:420px;width:100%;margin-inline:auto;background:var(--plomo-2);
  padding:14px;border:1px solid rgba(154,157,162,.28)}
.showv__m{position:relative;aspect-ratio:9/16;background:#000;overflow:hidden}
.showv__m video{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05)}
.showv figcaption{padding-top:12px;font-family:var(--f-tec);font-size:.63rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--cemento-d)}
.diario{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,28px)}
.diario .showv{max-width:none}

/* Antes / después que se pica (con marcadores) */
.pica{position:relative;aspect-ratio:4/3;overflow:hidden;cursor:pointer;background:var(--plomo-2)}
.pica>img,.pica>.pica__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pica__img{display:grid;place-content:center;text-align:center;gap:6px;
  font-family:var(--f-tec);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase}
.pica__img--d{background:#2A2E34;color:var(--gris);
  background-image:repeating-linear-gradient(45deg,transparent,transparent 11px,rgba(255,255,255,.04) 11px,rgba(255,255,255,.04) 12px)}
.pica__img--a{background:#5A5F66;color:var(--blanco);
  background-image:repeating-linear-gradient(-45deg,transparent,transparent 5px,rgba(0,0,0,.12) 5px,rgba(0,0,0,.12) 6px)}
.pica__img small{font-family:var(--f-txt);letter-spacing:0;text-transform:none;font-size:.78rem;opacity:.7}
.pica__a{z-index:2;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
.pica.rota .pica__a{animation:picar 560ms cubic-bezier(.4,.1,.2,1) forwards}
@keyframes picar{
  0%{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
  35%{clip-path:polygon(0 0,100% 0,100% 100%,72% 100%,66% 62%,38% 74%,30% 100%,0 100%)}
  70%{clip-path:polygon(0 0,60% 0,54% 34%,26% 22%,18% 0,0 0,0 46%,12% 52%,0 60%,0 100%,22% 100%,16% 66%,0 74%)}
  100%{clip-path:polygon(0 0,0 0,0 0,0 0)}
}
.pica__et{position:absolute;z-index:4;bottom:12px;left:12px;padding:.45em .8em;background:var(--plomo);
  color:var(--gris);font-family:var(--f-tec);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase}

/* Calendario de obra (Gantt) */
.gantt{border:1px solid rgba(154,157,162,.25);background:var(--plomo-2)}
.gantt__cab,.gantt__f{display:grid;grid-template-columns:minmax(150px,1.1fr) 3fr;align-items:center}
.gantt__cab{border-bottom:1px solid rgba(154,157,162,.2);padding:12px 20px;
  font-family:var(--f-tec);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cemento-d)}
.gantt__sem{display:grid;grid-template-columns:repeat(12,1fr)}
.gantt__sem span{text-align:left}
.gantt__f{padding:0 20px;border-bottom:1px dotted rgba(154,157,162,.18);cursor:default;transition:background var(--t-rap)}
.gantt__f:last-child{border-bottom:0}
.gantt__f:hover,.gantt__f.on{background:rgba(126,147,186,.08)}
.gantt__n{padding:14px 12px 14px 0;font-family:var(--f-tit);font-size:.98rem;color:var(--gris)}
.gantt__n i{font-style:normal;font-family:var(--f-tec);font-size:.62rem;letter-spacing:.16em;color:var(--laton);margin-right:10px}
.gantt__p{position:relative;height:100%;min-height:46px;
  background-image:linear-gradient(to right, rgba(154,157,162,.12) 1px, transparent 1px);background-size:calc(100%/12) 100%}
.gantt__b{position:absolute;top:50%;height:12px;margin-top:-6px;background:var(--laton);
  transform-origin:left;transition:transform 900ms cubic-bezier(.16,.84,.29,1),background var(--t-rap)}
.gantt__b--hito{width:12px !important;height:12px;transform:rotate(45deg);background:var(--blanco)}
.gantt.oculto .gantt__b:not(.gantt__b--hito){transform:scaleX(0)}
.gantt.oculto .gantt__b--hito{transform:rotate(45deg) scale(0)}
.gantt__f:hover .gantt__b:not(.gantt__b--hito),.gantt__f.on .gantt__b:not(.gantt__b--hito){background:var(--laton-cl)}
.gantt__info{margin-top:18px;min-height:3.4em;color:var(--cemento);max-width:70ch;font-size:.98rem}
.gantt__info b{color:var(--blanco);font-weight:500}

/* Hoja de visita (contacto) */
.hoja{background:var(--blanco);border:1.5px solid var(--plomo);position:relative;color:var(--plomo)}
.hoja__h{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;
  padding:20px 24px;border-bottom:1.5px solid var(--plomo)}
.hoja__h b{font-family:var(--f-tit);font-size:1.06rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500}
.hoja__h span{font-family:var(--f-tec);font-size:.62rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--cemento-d);text-align:right;line-height:1.5}
.hoja__c{padding:8px 24px 24px}
.campo{border-bottom:1px solid rgba(154,157,162,.55);padding:16px 0 8px;position:relative}
.campo label{display:block;font-family:var(--f-tec);font-size:.63rem;letter-spacing:.17em;
  text-transform:uppercase;color:var(--cemento-d);margin-bottom:5px}
.campo input,.campo select,.campo textarea{
  width:100%;border:0;background:transparent;font-family:var(--f-txt);font-size:1rem;
  color:var(--plomo);padding:2px 0;outline:none;resize:vertical;border-radius:0;-webkit-appearance:none;appearance:none}
.campo select{background-image:linear-gradient(45deg,transparent 50%,var(--cemento-d) 50%),linear-gradient(135deg,var(--cemento-d) 50%,transparent 50%);
  background-position:calc(100% - 10px) 55%,calc(100% - 5px) 55%;background-size:5px 5px;background-repeat:no-repeat}
.campo::after{content:"";position:absolute;left:0;bottom:-1px;height:1.5px;width:0;
  background:var(--minio);transition:width var(--t-med)}
.campo.rell::after{width:100%}
.campo.rell label{color:var(--minio)}
.fila{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(18px,2.4vw,34px)}
.hoja__pie{padding:20px 24px;border-top:1.5px solid var(--plomo);display:flex;
  justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
.hoja .btn--llena{background:var(--minio);color:var(--blanco);border-color:var(--minio)}
.hoja .btn--llena::before{background:var(--minio-cl)}
.hoja .btn--llena:hover{color:var(--blanco)}
.avance{font-family:var(--f-tec);font-size:.65rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--cemento-d)}
.avance b{color:var(--minio)}
.legal-ok{font-size:.78rem;color:var(--cemento-d);display:flex;gap:8px;align-items:flex-start;padding-top:16px}
.legal-ok input{margin-top:3px;accent-color:var(--minio)}

.contacto__d{display:flex;flex-direction:column;gap:26px}
.dcard{border-top:1px solid rgba(154,157,162,.3);padding-top:16px}
.dcard a{font-family:var(--f-tit);font-size:clamp(1.1rem,1.8vw,1.4rem);text-decoration:none;
  color:var(--blanco);transition:color var(--t-rap)}
.dcard a:hover{color:var(--laton-cl)}
.dcard p{color:var(--cemento);margin:0}

/* Portada de la guía */
.portada{position:relative;aspect-ratio:3/4;max-width:380px;width:100%;margin-inline:auto;
  background:var(--gris);color:var(--plomo);padding:34px 30px;display:flex;flex-direction:column;
  box-shadow:24px 24px 0 -1px var(--plomo-2),24px 24px 0 0 rgba(154,157,162,.3);transform:rotate(-1.5deg)}
.portada__logo{font-family:var(--f-logo);font-weight:700;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase}
.sec--oscura .portada h3,.portada h3{color:var(--plomo);font-family:var(--f-tit);font-weight:300;font-size:clamp(1.7rem,3vw,2.3rem);line-height:1.05;margin:auto 0 .5em}
.portada h3 em{font-family:var(--f-ac);font-style:italic;font-weight:400;color:var(--minio)}
.portada p{font-size:.84rem;color:var(--cemento-d);margin:0}
.portada__pie{margin-top:22px;font-family:var(--f-tec);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cemento-d)}

/* Textos legales */
.art{max-width:72ch}
.art h2{font-size:clamp(1.3rem,2vw,1.6rem);font-weight:400;margin:1.8em 0 .5em}
.art p,.art li{color:var(--cemento-d)}
.art ul{padding-left:1.15em}
.art li{margin-bottom:.45em}

/* FAQ en claro */
.faq-g{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(24px,4vw,64px);padding:0 0 clamp(40px,4vw,56px)}
.faq-g h3{padding-top:clamp(17px,2.1vw,24px)}
.faq-g h3{color:var(--blanco);font-size:1.25rem}

@media(max-width:1000px){
  .g2,.serv,.faq-g{grid-template-columns:1fr}
  .serv--inv .serv__m{order:0}
  .g3{grid-template-columns:1fr}
  .g4{grid-template-columns:1fr 1fr}
  .diario{grid-template-columns:1fr 1fr}
  .gantt__cab,.gantt__f{grid-template-columns:1fr 2fr}
  body:not(.con-hero) .hd .nav a{color:var(--plomo)}
}
@media(max-width:620px){
  .fila,.g4{grid-template-columns:1fr}
  .diario{grid-template-columns:1fr}
  .gantt__cab,.gantt__f{grid-template-columns:1fr;padding:0 14px}
  .gantt__cab .gantt__sem{display:none}
  .gantt__cab{padding:12px 14px}
  .gantt__n{padding:12px 0 4px}
  .gantt__p{min-height:26px;margin-bottom:10px}
  .portada{max-width:300px}
}

/* Bloque persona: vídeo a la altura del texto */
.qll--alta{grid-template-columns:1.4fr .6fr;align-items:center}
.qll--alta .cab{margin-bottom:clamp(28px,3vw,44px)}
.qll--alta .resp{position:static}
@media(max-width:1000px){.qll--alta{grid-template-columns:1fr}.qll--alta .resp{max-width:360px}}

/* ===== Ajustes finos de móvil ===== */
@media(max-width:620px){
  .hero{padding-block:100px 48px}
  .hero__datos{grid-template-columns:1fr 1fr;column-gap:18px;row-gap:20px}
  .dato span{max-width:none;font-size:.64rem;letter-spacing:.1em}
  .post__m,.parte__m,.resp__pie,.firma span,.franja__cap{font-size:.66rem}
  .rot{font-size:.68rem;letter-spacing:.16em}
  .franjas{height:34svh}
  .franja__cap{left:6px;bottom:6px;font-size:.52rem;padding:.35em .5em;letter-spacing:.12em}
  .proceso__casa .casa-marco{padding:12px}
  .casa-svg{max-height:34svh;margin-inline:auto}
  .split__p{height:340px}
  .obras__b{padding:16px 8px;gap:12px}
  .banda{min-height:360px}
  .art__img{aspect-ratio:4/3}
  .wa{right:14px;bottom:14px}
}
