/* Estilos de todo el sitio ferrycom.mx */
:root{
  --tinta:#161514;
  --tinta-2:#5E5852;
  --crema:#F4F1EC;
  --papel:#FBFAF7;
  --linea:rgba(22,21,20,.14);
  --noche:#121110;
  --marca:#2665A2;
  --muebles:#8CB43C; --mep:#2EA9DF; --obra:#F2A22B; --escuelas:#E5533F; --puconcursos:#2665A2; --pu-acento:#FFC21A;
  --logo-gris:#4B4B4B;
  --ease:cubic-bezier(.16,1,.3,1);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--tinta:#EEEAE4;--tinta-2:#ABA49C;--crema:#1B1A18;--papel:#141312;--linea:rgba(238,234,228,.14);--logo-gris:#D5D0C9}
}
:root[data-theme="dark"]{--tinta:#EEEAE4;--tinta-2:#ABA49C;--crema:#1B1A18;--papel:#141312;--linea:rgba(238,234,228,.14);--logo-gris:#D5D0C9}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--papel);color:var(--tinta);font-family:"Archivo",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;font-size:17px;line-height:1.55;font-variation-settings:"wdth" 100}
img{display:block;max-width:100%}
a{color:inherit}
::selection{background:var(--marca);color:#fff}
:focus-visible{outline:2px solid var(--marca);outline-offset:3px}
.ancho{width:min(1320px,100% - 64px);margin-inline:auto}
.oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Logotipo (mismo recurso que el sitio actual) */
.simbolo{position:relative;width:var(--sw,24px);aspect-ratio:262/427;display:block}
.simbolo::before,/* La parte gris del símbolo y la palabra FERRYCOM van incrustadas como máscara para poder cambiarles el color (modo oscuro). Originales vectoriales en img/ (logo-simbolo-gris.svg, logo-palabra.svg). */
.simbolo::after{content:"";position:absolute;inset:0}
.simbolo::before{background:url("../img/logo-simbolo.svg") center/contain no-repeat}
.simbolo::after{background:var(--logo-gris);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 262 427'%3E%3Cpath d='M174.5 23.5 234 69v131l25 16v187.5h3V0z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 262 427'%3E%3Cpath d='M174.5 23.5 234 69v131l25 16v187.5h3V0z'/%3E%3C/svg%3E") center/contain no-repeat}
.palabra{display:block;height:var(--ph,17px);aspect-ratio:824/132;background:var(--logo-gris);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 824 132'%3E%3Cpath d='M7.57 11.75H62.43V22.55H18.44V56.79H62.43V67.58H18.44V121.25H7.57ZM83.13 11.75H145.87V22.55H94.07V56.79H145.43V67.5H94.07V110.45H145.43V121.25H83.13ZM162.98 11.75H184.79Q203.02 11.75 209.5 13.24Q219.25 15.48 225.35 22.81Q231.46 30.14 231.46 40.86Q231.46 49.79 227.25 56.56Q223.05 63.34 215.23 66.8Q207.42 70.26 193.65 70.33L233.02 121.25H219.47L180.17 70.33H173.92V121.25H162.98ZM173.92 22.47V59.69L192.75 59.84Q203.69 59.84 208.94 57.75Q214.19 55.67 217.13 51.09Q220.07 46.51 220.07 40.86Q220.07 35.35 217.09 30.85Q214.11 26.34 209.28 24.41Q204.44 22.47 193.2 22.47ZM255.98 11.75H277.79Q296.02 11.75 302.5 13.24Q312.25 15.48 318.35 22.81Q324.46 30.14 324.46 40.86Q324.46 49.79 320.25 56.56Q316.05 63.34 308.23 66.8Q300.42 70.26 286.65 70.33L326.02 121.25H312.47L273.17 70.33H266.92V121.25H255.98ZM266.92 22.47V59.69L285.75 59.84Q296.69 59.84 301.94 57.75Q307.19 55.67 310.13 51.09Q313.07 46.51 313.07 40.86Q313.07 35.35 310.09 30.85Q307.11 26.34 302.28 24.41Q297.44 22.47 286.2 22.47ZM341.08 11.75H353.74L381.72 56.86L409.26 11.75H421.92L387.23 68.92V121.25H376.44V68.92ZM541.52 32.07 532.88 38.7Q525.74 29.39 515.73 24.59Q505.72 19.79 493.73 19.79Q480.63 19.79 469.47 26.08Q458.3 32.37 452.16 42.98Q446.02 53.59 446.02 66.83Q446.02 86.86 459.75 100.26Q473.49 113.65 494.4 113.65Q517.4 113.65 532.88 95.64L541.52 102.19Q533.33 112.61 521.09 118.31Q508.84 124 493.73 124Q465 124 448.4 104.87Q434.48 88.72 434.48 65.87Q434.48 41.83 451.34 25.41Q468.2 9 493.58 9Q508.92 9 521.27 15.07Q533.63 21.13 541.52 32.07ZM617.29 9Q642.15 9 658.9 25.6Q675.65 42.2 675.65 66.46Q675.65 90.5 658.94 107.25Q642.23 124 618.19 124Q593.85 124 577.1 107.33Q560.35 90.65 560.35 66.98Q560.35 51.2 567.98 37.73Q575.61 24.26 588.78 16.63Q601.96 9 617.29 9ZM617.81 19.72Q605.68 19.72 594.81 26.05Q583.95 32.37 577.84 43.09Q571.74 53.81 571.74 66.98Q571.74 86.49 585.25 99.92Q598.76 113.36 617.81 113.36Q630.54 113.36 641.37 107.18Q652.2 101 658.27 90.28Q664.33 79.56 664.33 66.46Q664.33 53.44 658.27 42.9Q652.2 32.37 641.19 26.05Q630.17 19.72 617.81 19.72ZM691.79 121.25 707.35 11.75H709.14L753.65 101.6L797.71 11.75H799.5L815.21 121.25H804.41L793.69 42.94L754.99 121.25H752.23L713.01 42.35L702.36 121.25Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 824 132'%3E%3Cpath d='M7.57 11.75H62.43V22.55H18.44V56.79H62.43V67.58H18.44V121.25H7.57ZM83.13 11.75H145.87V22.55H94.07V56.79H145.43V67.5H94.07V110.45H145.43V121.25H83.13ZM162.98 11.75H184.79Q203.02 11.75 209.5 13.24Q219.25 15.48 225.35 22.81Q231.46 30.14 231.46 40.86Q231.46 49.79 227.25 56.56Q223.05 63.34 215.23 66.8Q207.42 70.26 193.65 70.33L233.02 121.25H219.47L180.17 70.33H173.92V121.25H162.98ZM173.92 22.47V59.69L192.75 59.84Q203.69 59.84 208.94 57.75Q214.19 55.67 217.13 51.09Q220.07 46.51 220.07 40.86Q220.07 35.35 217.09 30.85Q214.11 26.34 209.28 24.41Q204.44 22.47 193.2 22.47ZM255.98 11.75H277.79Q296.02 11.75 302.5 13.24Q312.25 15.48 318.35 22.81Q324.46 30.14 324.46 40.86Q324.46 49.79 320.25 56.56Q316.05 63.34 308.23 66.8Q300.42 70.26 286.65 70.33L326.02 121.25H312.47L273.17 70.33H266.92V121.25H255.98ZM266.92 22.47V59.69L285.75 59.84Q296.69 59.84 301.94 57.75Q307.19 55.67 310.13 51.09Q313.07 46.51 313.07 40.86Q313.07 35.35 310.09 30.85Q307.11 26.34 302.28 24.41Q297.44 22.47 286.2 22.47ZM341.08 11.75H353.74L381.72 56.86L409.26 11.75H421.92L387.23 68.92V121.25H376.44V68.92ZM541.52 32.07 532.88 38.7Q525.74 29.39 515.73 24.59Q505.72 19.79 493.73 19.79Q480.63 19.79 469.47 26.08Q458.3 32.37 452.16 42.98Q446.02 53.59 446.02 66.83Q446.02 86.86 459.75 100.26Q473.49 113.65 494.4 113.65Q517.4 113.65 532.88 95.64L541.52 102.19Q533.33 112.61 521.09 118.31Q508.84 124 493.73 124Q465 124 448.4 104.87Q434.48 88.72 434.48 65.87Q434.48 41.83 451.34 25.41Q468.2 9 493.58 9Q508.92 9 521.27 15.07Q533.63 21.13 541.52 32.07ZM617.29 9Q642.15 9 658.9 25.6Q675.65 42.2 675.65 66.46Q675.65 90.5 658.94 107.25Q642.23 124 618.19 124Q593.85 124 577.1 107.33Q560.35 90.65 560.35 66.98Q560.35 51.2 567.98 37.73Q575.61 24.26 588.78 16.63Q601.96 9 617.29 9ZM617.81 19.72Q605.68 19.72 594.81 26.05Q583.95 32.37 577.84 43.09Q571.74 53.81 571.74 66.98Q571.74 86.49 585.25 99.92Q598.76 113.36 617.81 113.36Q630.54 113.36 641.37 107.18Q652.2 101 658.27 90.28Q664.33 79.56 664.33 66.46Q664.33 53.44 658.27 42.9Q652.2 32.37 641.19 26.05Q630.17 19.72 617.81 19.72ZM691.79 121.25 707.35 11.75H709.14L753.65 101.6L797.71 11.75H799.5L815.21 121.25H804.41L793.69 42.94L754.99 121.25H752.23L713.01 42.35L702.36 121.25Z'/%3E%3C/svg%3E") center/contain no-repeat}

/* Cabecera: transparente sobre la foto, sólida al bajar */
.cabecera{position:fixed;inset:0 0 auto;z-index:30;color:var(--tinta);background:color-mix(in srgb,var(--papel) 94%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);box-shadow:0 1px 0 var(--linea);transition:background-color .4s var(--ease),color .4s var(--ease),box-shadow .4s var(--ease);padding-top:env(safe-area-inset-top,0px)}
.cabecera[data-sobre-foto]{background:transparent;color:#fff;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;--logo-gris:#fff}
/* En las páginas de unidad el encabezado de color es claro: la cabecera va sólida desde el inicio */
body:has(.portada.dividida) .cabecera[data-sobre-foto]{background:color-mix(in srgb,var(--papel) 94%,transparent);color:var(--tinta);box-shadow:0 1px 0 var(--linea);--logo-gris:inherit}
.hilo{display:flex;height:4px}
.hilo span{flex:1}
.hilo .m{background:var(--muebles)}.hilo .p{background:var(--mep)}.hilo .o{background:var(--obra)}.hilo .e{background:var(--escuelas)}.hilo .pu{background:var(--puconcursos)}
.barra{display:flex;align-items:center;gap:32px;min-height:72px}
.logo{display:flex;align-items:center;gap:12px;min-height:44px;text-decoration:none;--sw:20px;--ph:13px}
.menu{display:flex;gap:4px;margin-left:auto}
.menu a{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;text-decoration:none;font-size:15px;font-weight:500;opacity:.86;transition:opacity .2s}
.menu a::before{content:"";width:7px;height:7px;background:var(--c)}
.menu a:hover,.menu a[aria-current="page"]{opacity:1}
.menu a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--c)}
.m{--c:var(--muebles)}.p{--c:var(--mep)}.o{--c:var(--obra)}.e{--c:var(--escuelas)}.pu{--c:var(--puconcursos)}

/* Botones en forma de pastilla, como en las plantillas de referencia */
.pastilla{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 24px;border-radius:999px;background:var(--marca);color:#fff;font-size:15px;font-weight:600;text-decoration:none;transition:background-color .25s var(--ease),color .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease)}
.pastilla:hover{background:#1D5287}
.pastilla:active{transform:scale(.97)}
.pastilla.clara{background:#fff;color:#161514}
.pastilla.clara:hover{background:#E9E5DE}
.pastilla.linea{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.7)}
.pastilla.linea:hover{box-shadow:inset 0 0 0 1.5px #fff;background:rgba(255,255,255,.08)}

/* Portada a pantalla completa */
.portada{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;background:var(--noche);color:#fff;overflow:hidden;isolation:isolate}
.portada-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.portada::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(18,17,16,.55) 0%,rgba(18,17,16,.1) 26%,rgba(18,17,16,.45) 55%,rgba(18,17,16,.9) 100%),linear-gradient(90deg,rgba(18,17,16,.45) 0%,rgba(18,17,16,0) 60%)}
.portada-texto{padding:160px 0 clamp(48px,9vh,96px)}
.portada h1{margin:0 0 24px;max-width:12ch;font-weight:300;font-size:clamp(48px,8.4vw,128px);line-height:.95;letter-spacing:-.035em;font-variation-settings:"wdth" 100;text-wrap:balance}
.portada p{margin:0 0 32px;max-width:46ch;font-size:clamp(17px,1.4vw,20px);line-height:1.5;color:rgba(255,255,255,.88)}
.acciones{display:flex;flex-wrap:wrap;gap:12px}

/* Entrada: el texto ya es legible desde el primer cuadro; solo se asienta */
@media (prefers-reduced-motion:no-preference){
  .portada-foto{animation:asentar 1.6s var(--ease) both}
  .portada-texto > *{animation:subir .9s var(--ease) both}
  .portada-texto > :nth-child(2){animation-delay:.08s}
  .portada-texto > :nth-child(3){animation-delay:.16s}
}
@keyframes asentar{from{transform:scale(1.06)}to{transform:none}}
@keyframes subir{from{transform:translateY(14px)}to{transform:none}}

/* Portada animada: una diapositiva por unidad, cada una con su color */
.intro{position:relative;height:100vh;height:100svh;min-height:560px;background:var(--c,#2A2826);color:#141414;overflow:hidden;isolation:isolate}
.diapos,.diapo{position:absolute;inset:0}
.diapo[hidden]{display:block;visibility:hidden}
.diapo-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;will-change:transform,opacity}
.diapo::after{content:"";position:absolute;inset:0 0 auto;height:200px;background:linear-gradient(rgba(20,19,18,.55),rgba(20,19,18,0));pointer-events:none}
.diapo.sin-foto .diapo-foto{background:radial-gradient(120% 90% at 85% 15%,#3A7BC0 0%,var(--puconcursos) 45%,#1C4E80 100%)}
.diapo.sin-foto::after{content:none}
.g{--c:var(--papel)}
.panel{position:absolute;left:max(32px,calc((100vw - 1320px) / 2));bottom:112px;width:min(600px,calc(100% - 64px));padding:clamp(28px,3.4vw,48px);background:var(--c);color:#141414;clip-path:inset(0 0 0 0)}
.g .panel{color:var(--tinta)}
.pu .panel{color:#fff;background:#1C4E80}
.panel .titular{margin:0 0 18px;font-weight:300;font-size:clamp(34px,4.4vw,64px);line-height:1;letter-spacing:-.035em;text-wrap:balance}
.panel .titular .w{display:inline-block;padding-bottom:.08em;margin-bottom:-.08em;vertical-align:top}
.panel .titular .w > span{display:inline-block}
.panel.recorta .titular .w{overflow:hidden}
.pu .panel .titular{color:var(--pu-acento)}
.panel p{margin:0 0 22px;max-width:40ch;font-size:clamp(16px,1.3vw,19px);line-height:1.5;opacity:.86}
.panel .enlace{color:inherit}
.controles{position:absolute;left:0;right:0;bottom:28px;margin-inline:auto;display:flex;align-items:center;gap:20px;z-index:2}
.puntos{flex:1;display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.puntos button,.pausa{appearance:none;border:0;background:none;font:inherit;color:#fff;cursor:pointer}
.puntos button{display:flex;flex-direction:column;gap:8px;min-height:44px;justify-content:flex-end;padding:0;text-align:left;font-size:13px;font-weight:600;letter-spacing:.01em;text-shadow:0 1px 8px rgba(0,0,0,.45);opacity:.72;transition:opacity .2s}
.puntos button[aria-current="true"],.puntos button:hover{opacity:1}
.puntos i{display:block;height:3px;background:rgba(255,255,255,.35);position:relative;overflow:hidden}
.puntos i::after{content:"";position:absolute;inset:0;background:var(--c);transform:scaleX(var(--avance,0));transform-origin:left}
.puntos .g i::after{background:#fff}
.pausa{min-height:44px;min-width:44px;padding:0 4px;font-size:13px;font-weight:600;text-shadow:0 1px 8px rgba(0,0,0,.45)}

/* Manifiesto */
.manifiesto{padding:clamp(80px,12vw,160px) 0 clamp(64px,8vw,112px);background:var(--papel)}
.manifiesto > .ancho > p{margin:0 0 clamp(56px,7vw,96px);max-width:22ch;font-weight:300;font-size:clamp(34px,4.6vw,72px);line-height:1.04;letter-spacing:-.03em;text-wrap:balance}
.manifiesto p span{font-weight:600;background:linear-gradient(var(--c),var(--c)) 0 92%/100% .09em no-repeat}
.hechos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:32px 48px}
.hechos li{border-top:1px solid var(--tinta);padding-top:18px}
.hechos strong{display:block;margin-bottom:6px;font-size:20px;font-weight:600;letter-spacing:-.01em}
.hechos span{color:var(--tinta-2)}

/* Unidades: foto y texto alternados */
.unidades{background:var(--crema)}
.unidad{background:var(--c);color:#141414}
.unidad.pu{color:#fff}
.unidad{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);min-height:min(78vh,720px)}
.unidad:nth-child(even){grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.unidad:nth-child(even) figure{order:2}
.unidad figure{margin:0;position:relative;overflow:hidden;background:#2A2826}
.unidad figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.unidad:hover figure img{transform:scale(1.025)}
.unidad .texto{display:flex;flex-direction:column;justify-content:center;padding:clamp(48px,6vw,96px)}
.unidad h2{position:relative;margin:0 0 20px;padding-top:28px;font-weight:300;font-size:clamp(48px,6vw,96px);line-height:.95;letter-spacing:-.035em}
.unidad h2::before{content:"";position:absolute;top:0;left:0;width:48px;height:6px;background:currentColor}
.unidad .texto > p{margin:0 0 24px;max-width:36ch;font-size:19px;line-height:1.5;opacity:.82}
.unidad ul{list-style:none;margin:0 0 32px;padding:0;max-width:34ch}
.unidad li{padding:12px 0;border-top:1px solid rgba(20,19,18,.22);font-weight:500}
.unidad li:last-child{border-bottom:1px solid rgba(20,19,18,.22)}
.enlace{align-self:flex-start;display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:600;text-decoration:none;border-bottom:1.5px solid currentColor}
.enlace::after{content:"";width:9px;height:9px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);transition:transform .3s var(--ease)}
.enlace:hover::after{transform:translateX(4px) rotate(45deg)}

/* Proceso (páginas de unidad) */
.proceso{padding:clamp(80px,10vw,144px) 0;background:var(--papel)}
.proceso h2{margin:0 0 clamp(40px,5vw,72px);font-weight:300;font-size:clamp(40px,5.4vw,84px);line-height:.98;letter-spacing:-.035em}
.pasos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:40px 48px;counter-reset:paso}
.pasos li{counter-increment:paso;border-top:1px solid var(--tinta);padding-top:20px}
.pasos li::before{content:counter(paso,decimal-leading-zero);display:block;margin-bottom:28px;font-weight:300;font-size:clamp(40px,4vw,64px);line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--tinta-2)}
.pasos h3{margin:0 0 8px;font-size:22px;font-weight:600;letter-spacing:-.01em}
.pasos p{margin:0;max-width:34ch;color:var(--tinta-2)}

/* PU Concursos en la portada: franja azul sin foto, con el amarillo de su marca */
.banda{background:var(--puconcursos);color:#fff;padding:clamp(72px,9vw,128px) 0}
.banda .ancho{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px clamp(40px,6vw,96px);align-items:center}
.banda h2{position:relative;margin:0 0 24px;padding-top:28px;font-weight:300;font-size:clamp(48px,6vw,96px);line-height:.95;letter-spacing:-.035em}
.banda h2::before{content:"";position:absolute;top:0;left:0;width:48px;height:6px;background:var(--pu-acento)}
.banda .lema{margin:0 0 24px;max-width:20ch;font-weight:300;font-size:clamp(26px,2.8vw,40px);line-height:1.12;letter-spacing:-.02em}
.banda .texto > p{margin:0 0 24px;max-width:40ch;font-size:19px;line-height:1.5;color:rgba(255,255,255,.86)}
.banda ul{list-style:none;margin:0 0 32px;padding:0}
.banda li{padding:12px 0;border-top:1px solid rgba(255,255,255,.22);font-weight:500}
.banda li:last-child{border-bottom:1px solid rgba(255,255,255,.22)}
.banda .enlace{color:#fff}

/* Encabezado de unidad sin foto a pantalla completa: texto sobre oscuro y foto al lado */
.portada.dividida{background:var(--c);color:#141414;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:stretch;min-height:min(86vh,760px)}
.portada.dividida::after{content:none}
.portada.dividida .portada-texto{display:flex;flex-direction:column;justify-content:flex-end;width:auto;margin:0;padding:160px clamp(32px,5vw,80px) clamp(48px,8vh,88px) max(32px,calc((100vw - 1320px) / 2))}
.portada.dividida h1{position:relative;padding-top:36px}
.portada.dividida h1::before{content:"";position:absolute;top:0;left:0;width:64px;height:8px;background:currentColor}
.portada.dividida p{color:inherit;opacity:.86}
.portada.dividida .pastilla.clara{background:#141414;color:#fff}
.portada.dividida .pastilla.linea{color:#141414;box-shadow:inset 0 0 0 1.5px #141414}
.portada.dividida .pastilla.linea:hover{background:rgba(20,19,18,.08)}
.portada.dividida figure{margin:0;position:relative;background:#2A2826}
.portada.dividida figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* Galería de proyectos: cuadrícula pareja; la foto completa se ve en el visor */
.galeria{background:var(--papel);padding:clamp(80px,10vw,144px) 0}
.galeria h2{margin:0 0 clamp(32px,4vw,56px);font-weight:300;font-size:clamp(40px,5.4vw,84px);line-height:.98;letter-spacing:-.035em}
.filtros{display:flex;flex-wrap:wrap;gap:8px;margin:calc(clamp(32px,4vw,56px) * -.5) 0 clamp(32px,4vw,48px)}
.filtros button{min-height:44px;padding:0 18px;border:0;border-radius:999px;background:transparent;box-shadow:inset 0 0 0 1.5px var(--linea);color:var(--tinta);font:inherit;font-size:15px;font-weight:500;cursor:pointer;transition:background .25s var(--ease),box-shadow .25s var(--ease)}
.filtros button:hover{box-shadow:inset 0 0 0 1.5px var(--tinta)}
.filtros button[aria-pressed="true"]{background:var(--tinta);color:var(--papel);box-shadow:none}
.fotos{list-style:none;margin-top:0;margin-bottom:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.fotos li[hidden]{display:none}
.fotos:has(> li:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
.fotos a{display:block;color:inherit;text-decoration:none}
.fotos figure{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;background:#2A2826}
.fotos img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.fotos a:hover img{transform:scale(1.025)}
.fotos figcaption{position:absolute;left:0;bottom:0;padding:8px 14px;background:var(--papel);color:var(--tinta);font-size:14px;font-weight:500}

/* Visor de fotos */
.visor{width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:rgba(20,19,18,.94);color:#fff}
.visor::backdrop{background:transparent}
.visor[open]{display:grid;grid-template-rows:1fr auto;place-items:center}
.visor img{max-width:calc(100vw - 32px);max-height:calc(100dvh - 120px);width:auto;height:auto;object-fit:contain}
.visor p{margin:0;padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));font-size:15px;font-weight:500}
.visor button{position:absolute;display:grid;place-items:center;width:52px;height:52px;border:0;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;transition:background .2s var(--ease)}
.visor button:hover{background:rgba(255,255,255,.24)}
.visor button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2}
.visor .cerrar{top:16px;right:16px}
.visor .ant{left:16px;top:50%;transform:translateY(-50%)}
.visor .sig{right:16px;top:50%;transform:translateY(-50%)}

/* Hoja de presupuesto (ilustra PU Concursos) */
.hoja{margin:0;max-width:100%;overflow-x:auto;background:#fff;color:#141414;font-size:14px;box-shadow:0 24px 60px -12px rgba(8,24,44,.5),0 4px 12px rgba(8,24,44,.2)}
.hoja-barra{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;background:#1C4E80;color:#fff;font-weight:600}
.hoja .ejemplo{padding:3px 10px;border-radius:999px;background:var(--pu-acento);color:#141414;font-size:12px;font-weight:700}
.hoja table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.hoja th{padding:10px 12px;background:#EEF3F9;color:#1C4E80;font-size:12px;font-weight:700;text-align:left;white-space:nowrap}
.hoja td{padding:11px 12px;border-top:1px solid #E3E8EF;vertical-align:top;line-height:1.35}
.hoja .clave{color:#5B6878;white-space:nowrap}
.hoja .u{text-align:center}
.hoja .n{text-align:right;white-space:nowrap}
.hoja tbody tr.activa td{background:#FFF4CC}
.hoja tfoot td{padding:8px 12px;border-top:0;text-align:right;color:#5B6878}
.hoja tfoot tr:first-child td{border-top:2px solid #1C4E80;padding-top:12px}
.hoja tfoot .total td{padding-bottom:14px;color:#141414;font-weight:700;font-size:16px}
.diapo .hoja{position:absolute;top:50%;right:max(32px,calc((100vw - 1320px) / 2));width:min(620px,44vw);transform:translateY(-52%) rotate(-1.5deg);font-size:13px}

/* Alcance de una unidad: renglones grandes */
.proceso .lead{margin:0 0 32px;max-width:46ch;font-size:20px;line-height:1.5;color:var(--tinta-2)}
.alcance{list-style:none;margin:0;padding:0;border-top:1px solid var(--tinta)}
.alcance li{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:24px 0;border-bottom:1px solid var(--linea);font-weight:300;font-size:clamp(26px,3vw,44px);line-height:1.1;letter-spacing:-.025em}
.alcance li::after{content:"";flex:none;width:12px;height:12px;background:var(--c)}

/* Contacto */
.contacto{background:var(--crema);color:var(--tinta);padding:clamp(96px,12vw,168px) 0 clamp(64px,8vw,96px)}
.contacto h2{margin:0 0 clamp(48px,6vw,80px);max-width:14ch;font-weight:300;font-size:clamp(48px,7.6vw,120px);line-height:.95;letter-spacing:-.035em}
.canales{list-style:none;margin:0 0 40px;padding:0}
.canales a{display:grid;grid-template-columns:minmax(120px,1fr) 3fr;align-items:baseline;gap:16px;padding:26px 0;border-top:1px solid var(--linea);text-decoration:none;font-size:clamp(22px,2.6vw,36px);font-weight:400;letter-spacing:-.02em;transition:color .25s var(--ease),padding .35s var(--ease)}
.canales li:last-child a{border-bottom:1px solid var(--linea)}
.canales a span{font-size:15px;font-weight:500;letter-spacing:0;color:var(--tinta-2)}
.canales a:hover{color:var(--marca);padding-left:12px}
.sede{margin:0;color:var(--tinta-2)}

.pie{background:var(--papel);color:var(--tinta-2);font-size:15px;border-top:1px solid var(--linea)}
.pie .ancho{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;min-height:72px;padding-bottom:env(safe-area-inset-bottom,0px)}
.pie nav{display:flex;flex-wrap:wrap;gap:4px 20px}
.pie a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.pie a:hover{color:var(--tinta)}

.barra-movil{display:none}

@media (max-width:1200px){
  .diapo .hoja{display:none}
}

@media (max-width:900px){
  .puntos span{display:none}
  .puntos button{min-height:32px}
  .panel{bottom:84px}
  .controles{bottom:20px}
  .banda .ancho{grid-template-columns:minmax(0,1fr)}
  .portada.dividida{grid-template-columns:1fr;min-height:0}
  .portada.dividida .portada-texto{padding:128px 24px 48px}
  .portada.dividida figure{height:min(64vw,420px)}
  .menu{display:none}
  .barra{gap:16px}
  .barra .pastilla{margin-left:auto}
  .unidad,.unidad:nth-child(even){grid-template-columns:1fr;min-height:0}
  .unidad:nth-child(even) figure{order:0}
  .unidad figure{height:min(64vw,440px)}
  .hechos,.pasos{grid-template-columns:1fr}
  .fotos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hoja .clave,.hoja .u{display:none}
  .hoja th,.hoja td{padding-left:10px;padding-right:10px}
}
@media (max-width:560px){
  .fotos{grid-template-columns:1fr}
  .hoja table,.hoja tbody,.hoja tfoot{display:block}
  .hoja thead,.hoja td:nth-child(4),.hoja td:nth-child(5){display:none}
  .hoja tr{display:grid;grid-template-columns:minmax(0,1fr) auto}
  .hoja tbody tr{border-top:1px solid #E3E8EF}
  .hoja tbody td{border-top:0}
  .panel{left:16px;width:calc(100% - 32px);bottom:76px;padding:24px}
  .intro{height:calc(100svh - 54px - env(safe-area-inset-bottom,0px));min-height:560px}
  .ancho{width:calc(100% - 32px)}
  .barra{min-height:64px}
  .portada-texto{padding-bottom:40px}
  .unidad .texto{padding:44px 16px 56px}
  .canales a{grid-template-columns:1fr;gap:4px;padding:20px 0}
  .barra-movil{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:30;background:#161514;padding-bottom:env(safe-area-inset-bottom,0px)}
  .barra-movil a{display:flex;align-items:center;justify-content:center;min-height:54px;color:#fff;font-weight:600;text-decoration:none}
  .barra-movil a + a{border-left:1px solid rgba(255,255,255,.2)}
  body{padding-bottom:calc(54px + env(safe-area-inset-bottom,0px))}
  .portada{min-height:calc(100svh - 54px - env(safe-area-inset-bottom,0px))}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
