/* =========================================================================
   PROMECANO · portada (template-home-promecano.php)
   Orden = orden de la web vieja: hero (slider) · pilares · nosotros · productos ·
   servicios · portafolio · valores · blog · contacto.
   ========================================================================= */

/* HERO */
.hero{position:relative;background:var(--g0);color:#fff;overflow:hidden;isolation:isolate}
.hero .glow{position:absolute;width:900px;height:900px;right:-260px;top:-300px;background:radial-gradient(circle,rgba(255,86,23,.28),transparent 62%);z-index:-1;filter:blur(10px)}
.hero .glow2{position:absolute;width:700px;height:700px;left:-300px;bottom:-400px;background:radial-gradient(circle,rgba(70,110,180,.18),transparent 65%);z-index:-1}
.hero .engr{position:absolute;right:-140px;top:50%;width:760px;height:760px;margin-top:-380px;z-index:-1;opacity:.16;animation:gira 90s linear infinite}
.hero .c{display:grid;grid-template-columns:1fr 1.02fr;gap:50px;align-items:center;padding-top:80px;padding-bottom:70px}
.slides{position:relative;min-height:330px}
.slide{position:absolute;inset:0;opacity:0;transform:translateY(16px);transition:opacity .7s,transform .7s;pointer-events:none}
.slide.on{opacity:1;transform:none;pointer-events:auto;position:relative}
.hero h1,.hero .h1s{font-family:var(--f1);line-height:1.1;letter-spacing:-.025em;font-size:clamp(40px,5.2vw,68px);font-weight:700;margin:20px 0 20px;color:#fff}
.hero h1 em,.hero .h1s em{font-style:normal;background:linear-gradient(90deg,var(--n),#FFB08A);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{font-size:19px;color:#AEB5C0;max-width:540px}
.ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.puntos{display:flex;gap:8px;margin-top:40px}
.puntos button{width:56px;height:4px;border-radius:4px;border:0;background:rgba(255,255,255,.16);position:relative;padding:0}
.puntos button::before{content:"";position:absolute;inset:-20px 0}
.puntos button i{position:absolute;inset:0;border-radius:4px;background:var(--n);transform:scaleX(0);transform-origin:left}
.puntos button.on i{animation:barra 6s linear forwards}
.puntos button.hecho i{transform:scaleX(1)}
@keyframes barra{to{transform:scaleX(1)}}

.esc{position:relative;height:540px}
.esc .pedestal{position:absolute;inset:20px 60px 40px 70px;border-radius:32px;background:radial-gradient(120% 90% at 50% 20%,#FFFFFF 0%,#EEF0F3 55%,#D9DDE3 100%);overflow:hidden;box-shadow:0 40px 90px -20px rgba(0,0,0,.6)}
.esc .pedestal::after{content:"";position:absolute;left:12%;right:12%;bottom:34px;height:30px;border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.28),transparent 70%)}
.esc .pedestal img{position:absolute;left:50%;bottom:26px;height:88%;width:auto;max-width:none;transform:translateX(-50%);mix-blend-mode:multiply;z-index:1}
.esc .t{position:absolute;border-radius:18px;overflow:hidden;border:4px solid var(--g0);box-shadow:0 24px 50px -12px rgba(0,0,0,.6);z-index:2}
.esc .t img{width:100%;height:100%;object-fit:cover}
.esc .t1{width:210px;height:158px;left:0;top:40px}
.esc .t2{width:230px;height:172px;right:0;bottom:0}
.chip{position:absolute;z-index:3;display:flex;gap:10px;align-items:center;padding:10px 14px 10px 10px;border-radius:14px;background:rgba(17,20,25,.72);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(12px);font-size:13px;color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.35);animation:flota 6s ease-in-out infinite}
.chip i{width:32px;height:32px;border-radius:9px;background:var(--n);display:grid;place-items:center;font-style:normal}
.chip i svg{width:17px;height:17px;stroke:#fff}
.chip b{font-family:var(--f1);display:block;font-size:14px;line-height:1.2}
.chip small{color:#AEB5C0;font-size:11.5px}
.ch1{right:24px;top:60px}.ch2{left:30px;bottom:92px;animation-delay:-3s}
@keyframes flota{50%{transform:translateY(-8px)}}

.cinta{border-top:1px solid var(--lin);background:rgba(255,255,255,.02);overflow:hidden}
.cinta .pista{display:flex;gap:48px;width:max-content;padding:20px 0;animation:cinta 38s linear infinite}
.cinta span{font-family:var(--f1);font-weight:600;font-size:17px;color:#6F7784;display:flex;gap:48px;align-items:center;white-space:nowrap}
.cinta span::after{content:"";width:8px;height:8px;background:var(--n);border-radius:2px;transform:rotate(45deg)}
@keyframes cinta{to{transform:translateX(-50%)}}

/* PILARES */
.pilares{position:relative;z-index:3;margin-top:-1px;background:var(--claro)}
.pilares .c{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-top:56px;padding-bottom:10px}
.pil{background:#fff;border-radius:var(--r);padding:28px;display:flex;gap:18px;border:1px solid var(--lin-c);transition:.3s}
.pil:hover{transform:translateY(-4px);box-shadow:0 24px 50px -20px rgba(11,13,16,.25)}
.pil .ic{width:52px;height:52px;flex:none;border-radius:16px;background:var(--n-suave);display:grid;place-items:center}
.pil .ic svg{width:26px;height:26px;stroke:var(--n)}
.pil small{font-family:var(--fm);font-size:11px;letter-spacing:.14em;color:var(--tx3);text-transform:uppercase}
.pil h3{font-size:19px;font-weight:600;margin:6px 0 8px}
.pil p{font-size:15px;color:var(--tx2)}
.pil a{display:inline-block;margin-top:4px;padding:10px 0;font-family:var(--f1);font-weight:600;font-size:14px;color:var(--n)!important}

/* NOSOTROS */
.nos{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.mosaico{position:relative;height:600px}
.mosaico .m{position:absolute;border-radius:var(--r);overflow:hidden;box-shadow:0 30px 60px -24px rgba(11,13,16,.4)}
.mosaico .m img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s}
.mosaico .m:hover img{transform:scale(1.06)}
.mosaico .m1{left:0;top:0;width:66%;height:62%}
.mosaico .m2{right:0;top:22%;width:44%;height:44%;border:6px solid var(--claro)}
.mosaico .m3{left:12%;bottom:0;width:52%;height:34%;border:6px solid var(--claro)}
.mosaico .marco{position:absolute;right:6%;bottom:6%;width:34%;height:34%;border:2px solid var(--n);border-radius:var(--r);z-index:-1}
.sello{position:absolute;right:2%;bottom:4%;z-index:4;width:150px;height:150px;border-radius:50%;background:var(--g1);color:#fff;display:grid;place-items:center;text-align:center;box-shadow:0 20px 40px -10px rgba(0,0,0,.5)}
.sello svg{position:absolute;inset:0;animation:gira 26s linear infinite}
.sello svg text{font-family:var(--fm);font-size:10.5px;letter-spacing:3.4px;fill:#AEB5C0}
.sello b{font-family:var(--f1);font-size:38px;line-height:1;color:var(--n);display:block}
.sello small{font-size:11.5px;color:#C4C9D1;display:block;margin-top:2px;line-height:1.3}
.nos .txt p{color:var(--tx2);margin:18px 0 0}
.caract{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:34px}
.car{background:#fff;border-radius:var(--r2);padding:18px;display:flex;gap:14px;border:1px solid var(--lin-c)}
.car .ic{width:40px;height:40px;flex:none;border-radius:12px;background:var(--g1);display:grid;place-items:center}
.car .ic svg{width:20px;height:20px;stroke:var(--n)}
.car b{font-family:var(--f1);font-size:15.5px;display:block;margin-bottom:2px}
.car span{font-size:14px;color:var(--tx2);line-height:1.5;display:block}

.cont-bar{display:grid;grid-template-columns:repeat(4,1fr);margin-top:90px;background:var(--g1);border-radius:var(--r);color:#fff;overflow:hidden;position:relative}
.cont-bar::before{content:"";position:absolute;width:500px;height:500px;right:-150px;top:-250px;background:radial-gradient(circle,rgba(255,86,23,.22),transparent 65%)}
.cnt{padding:34px 30px;border-right:1px solid var(--lin);position:relative}
.cnt:last-child{border-right:0}
.cnt b{font-family:var(--f1);font-size:44px;font-weight:700;display:flex;align-items:baseline;gap:2px;line-height:1}
.cnt b em{font-style:normal;color:var(--n);font-size:30px}
.cnt small{color:#AEB5C0;font-size:14.5px;display:block;margin-top:8px}

/* PRODUCTOS */
.cab-s{display:flex;justify-content:space-between;align-items:end;gap:40px;flex-wrap:wrap;margin-bottom:48px}
.tabs{display:inline-flex;gap:4px;padding:5px;background:var(--claro);border-radius:999px;flex-wrap:wrap}
.tabs button{border:0;background:none;padding:11px 20px;border-radius:999px;font-family:var(--f1);font-weight:500;font-size:14.5px;color:var(--tx2);transition:.25s;line-height:1.2}
.tabs button:hover{background:rgba(0,0,0,.04);color:var(--tx)}
.tabs button.on{background:var(--g1);color:#fff;box-shadow:0 8px 20px -8px rgba(0,0,0,.4)}
.panel{display:none;grid-template-columns:1.05fr 1fr;gap:60px;align-items:center}
.panel.on{display:grid;animation:entra .5s ease}
@keyframes entra{from{opacity:0;transform:translateY(12px)}}
.galeria .grande{border-radius:var(--r);overflow:hidden;background:radial-gradient(110% 90% at 50% 25%,#fff 0%,#F0F2F5 60%,#E2E5EA 100%);aspect-ratio:1/1;display:grid;place-items:center;position:relative;cursor:zoom-in}
.galeria .grande img{width:86%;height:86%;object-fit:contain;mix-blend-mode:multiply;transition:.4s}
.galeria .grande:hover img{transform:scale(1.04)}
.galeria .grande .badge{position:absolute;top:18px;left:18px;background:var(--g1);color:#fff;font-family:var(--fm);font-size:11.5px;letter-spacing:.1em;padding:7px 12px;border-radius:999px;z-index:2}
.galeria .grande .badge.n{background:var(--n)}
.miniaturas{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
.miniaturas button{border:2px solid transparent;border-radius:14px;overflow:hidden;background:var(--claro);aspect-ratio:1/1;padding:0;transition:.2s}
.miniaturas button.on{border-color:var(--n)}
.miniaturas img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}
.info small.tipo{font-family:var(--fm);font-size:12px;letter-spacing:.14em;color:var(--n);text-transform:uppercase}
.info h3{font-size:clamp(28px,3vw,40px);font-weight:700;margin:10px 0 16px}
.info>p{color:var(--tx2)}
.checks{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;margin:26px 0}
.checks li{display:flex;gap:10px;font-size:15px;line-height:1.45}
.checks li::before{content:"";width:20px;height:20px;flex:none;border-radius:50%;background:var(--n-suave) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF5617' stroke-width='3'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/12px no-repeat;margin-top:1px}
.specs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}
.spec{background:var(--claro);border-radius:12px;padding:12px 16px}
.spec small{font-family:var(--fm);font-size:10.5px;letter-spacing:.12em;color:var(--tx3);text-transform:uppercase;display:block}
.spec b{font-family:var(--f1);font-size:18px}
.nota-p{font-size:13.5px;color:var(--tx3);margin-top:14px}
.enlace-ficha{align-self:center;font-family:var(--f1);font-weight:600;font-size:14.5px;color:var(--n)!important;padding:12px 6px}

.graf{margin-top:90px;display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:center;background:var(--g1);color:#fff;border-radius:28px;padding:56px;position:relative;overflow:hidden}
.graf::before{content:"";position:absolute;width:600px;height:600px;left:-250px;bottom:-350px;background:radial-gradient(circle,rgba(255,86,23,.2),transparent 65%)}
.graf h3{font-size:30px;font-weight:700;margin:14px 0 12px;position:relative}
.graf p{color:#AEB5C0;position:relative}
.barras{display:grid;gap:22px;position:relative}
.barra .fila{display:flex;justify-content:space-between;font-size:14.5px;margin-bottom:8px}
.barra .fila b{font-family:var(--f1)}
.barra .fila span{font-family:var(--fm);color:#AEB5C0}
.barra .riel{height:14px;border-radius:14px;background:rgba(255,255,255,.07);overflow:hidden}
.barra .riel i{display:block;height:100%;width:0;border-radius:14px;background:linear-gradient(90deg,#FF9466,var(--n));transition:width 1.6s cubic-bezier(.2,.8,.2,1)}
.barra.gris .riel i{background:linear-gradient(90deg,#5C6470,#8B929E)}
.x5{font-family:var(--f1);font-size:64px;font-weight:700;color:var(--n);line-height:1;position:relative;margin-top:26px}
.x5 small{font-size:15px;color:#AEB5C0;font-weight:500;font-family:var(--f2);display:block;margin-top:6px}

/* SERVICIOS */
.serv-w{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}
.lista-s{border-top:1px solid var(--lin-c)}
.it{display:grid;grid-template-columns:64px 1fr 30px;gap:18px;align-items:start;padding:28px 0;border-bottom:1px solid var(--lin-c);cursor:pointer;transition:.3s}
.it .num{font-family:var(--fm);font-size:13px;color:var(--tx3);padding-top:6px}
.it h3{font-size:24px;font-weight:600;transition:.3s}
.it p{color:var(--tx2);font-size:15.5px;max-height:0;overflow:hidden;opacity:0;transition:.45s}
.it .ar{font-size:22px;color:var(--tx3);transition:.3s;padding-top:2px}
.it.on h3{color:var(--n)}
.it.on p{max-height:160px;opacity:1;margin-top:10px}
.it.on .ar{transform:rotate(45deg);color:var(--n)}
.it.on .num{color:var(--n)}
.visor{position:sticky;top:130px;border-radius:28px;overflow:hidden;aspect-ratio:4/4.3;background:var(--g1)}
.visor img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .6s,transform 1.2s}
.visor img.on{opacity:1;transform:none}
.visor .pie-v{position:absolute;left:18px;right:18px;bottom:18px;z-index:2;display:flex;justify-content:space-between;align-items:center;background:rgba(17,20,25,.7);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:14px 18px;color:#fff}
.visor .pie-v small{font-family:var(--fm);font-size:11px;letter-spacing:.12em;color:#AEB5C0;text-transform:uppercase;display:block}
.visor .pie-v b{font-family:var(--f1);font-size:16px}

/* PORTAFOLIO */
.oscuro{background:var(--g0);color:#fff;position:relative;overflow:hidden}
.oscuro .sub{color:#AEB5C0}
.oscuro .glow{position:absolute;width:800px;height:800px;left:50%;top:-500px;margin-left:-400px;background:radial-gradient(circle,rgba(255,86,23,.16),transparent 65%);pointer-events:none}
.filtros{display:flex;gap:8px;flex-wrap:wrap}
.filtros button{padding:10px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:transparent;color:#C4C9D1;font-family:var(--f1);font-weight:500;font-size:14px;transition:.2s;line-height:1.2}
.filtros button.on,.filtros button:hover{background:#fff;color:var(--g0);border-color:#fff}
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:250px;gap:18px;position:relative}
.pr{position:relative;border-radius:var(--r);overflow:hidden;cursor:pointer;background:var(--g2);transition:opacity .4s,transform .4s}
.pr.gr{grid-column:span 2;grid-row:span 2}
.pr.an{grid-column:span 2}
.pr img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.pr:hover img{transform:scale(1.07)}
.pr .ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(11,13,16,.96) 0%,rgba(11,13,16,.6) 45%,rgba(11,13,16,.05) 75%);display:flex;flex-direction:column;justify-content:flex-end;padding:24px}
.pr .tag{font-family:var(--fm);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(255,86,23,.92);padding:5px 10px;border-radius:999px;align-self:flex-start;margin-bottom:10px}
.pr h3{font-size:21px;font-weight:600;color:#fff}
.pr.gr h3{font-size:30px}
.pr .meta{font-size:14px;color:#AEB5C0;margin-top:4px}
.pr .desc{font-size:14.5px;color:#C4C9D1;margin-top:10px;max-width:440px}
.pr .fotos{position:absolute;top:18px;right:18px;display:flex;gap:6px;align-items:center;background:rgba(255,255,255,.92);color:var(--g0);font-size:12.5px;font-weight:600;padding:7px 12px;border-radius:999px;font-family:var(--f1);transform:translateY(-6px);opacity:0;transition:.3s}
.pr:hover .fotos{opacity:1;transform:none}
.pr.fuera{display:none}
.mas-proy{margin-top:36px;text-align:center}
/* /galeria/: todas las tarjetas con su descripción */
.port .c{padding-top:10px}
.bento.lista{grid-template-columns:repeat(3,1fr);grid-auto-rows:auto}
.bento.lista .pr{aspect-ratio:4/3.6}
.bento.lista .pr .desc{display:block;font-size:14px}
.bento.lista .pr h3{font-size:21px}
.bento.lista .pr.prod .fotos{opacity:1;transform:none;background:var(--n);color:#fff}
.desliza{display:none;align-items:center;gap:8px;font-family:var(--fm);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#8B929E;margin:14px 0 0}

.linea{margin-top:90px;position:relative}
.linea h3{font-size:24px;font-weight:600;margin-bottom:34px}
.eje{position:relative;display:grid;grid-template-columns:repeat(8,1fr)}
.eje::before{content:"";position:absolute;left:0;right:0;top:9px;height:2px;background:rgba(255,255,255,.1)}
.eje .prog{position:absolute;left:0;top:9px;height:2px;width:0;background:linear-gradient(90deg,var(--n),#FFB08A);transition:width 2.2s ease}
.hito{position:relative;padding-top:36px;padding-right:12px}
.hito::before{content:"";position:absolute;top:2px;left:0;width:16px;height:16px;border-radius:50%;background:var(--g0);border:2px solid #4A515C;transition:.3s}
.hito:hover::before,.hito.dest::before{border-color:var(--n);background:var(--n);box-shadow:0 0 0 6px rgba(255,86,23,.2)}
.hito b{font-family:var(--f1);font-size:22px;display:block}
.hito span{font-size:14px;color:#AEB5C0;line-height:1.4;display:block;margin-top:4px}
.hito:hover b{color:var(--n)}

/* VALORES */
.val-w{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:start}
.vals{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.vl{border-radius:var(--r);padding:30px;background:var(--claro);position:relative;overflow:hidden;transition:.3s}
.vl:hover{background:var(--g1);color:#fff}
.vl:hover p{color:#AEB5C0}
.vl .ic{width:48px;height:48px;border-radius:14px;background:#fff;display:grid;place-items:center;margin-bottom:22px;transition:.3s}
.vl:hover .ic{background:var(--n)}
.vl .ic svg{width:24px;height:24px;stroke:var(--n);transition:.3s}
.vl:hover .ic svg{stroke:#fff}
.vl h3{font-size:20px;font-weight:600;margin-bottom:8px}
.vl p{font-size:15px;color:var(--tx2);transition:.3s}
.vl .n{position:absolute;right:22px;top:20px;font-family:var(--fm);font-size:12px;color:var(--tx3)}
.cita{font-family:var(--f1);font-size:24px;line-height:1.45;font-weight:500;margin-top:26px;color:var(--tx)}
.cita em{font-style:normal;color:var(--n)}

/* BLOG */
.nov{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}
.post{border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--lin-c);transition:.3s;display:flex;flex-direction:column}
.post:hover{transform:translateY(-4px);box-shadow:0 24px 50px -20px rgba(11,13,16,.25)}
.post .f{aspect-ratio:16/10;overflow:hidden}
.post .f img{width:100%;height:100%;object-fit:cover}
.post .t{padding:24px}
.post small{font-family:var(--fm);font-size:11px;letter-spacing:.12em;color:var(--tx3);text-transform:uppercase}
.post h3{font-size:20px;font-weight:600;margin:8px 0 8px}
.post p{font-size:15px;color:var(--tx2)}
.post .f{display:block}
.post h3 a:hover{color:var(--n)}
/* Toda la tarjeta es clicable: el enlace del título se estira sobre la tarjeta */
.post{position:relative;cursor:pointer}
.post h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.post:hover h3 a{color:var(--n)}
.post:focus-within{outline:2px solid var(--n);outline-offset:3px}
.recetario .pdf::after{content:"";position:absolute;inset:0;z-index:1}
.post .leer{display:inline-block;margin-top:12px;font-family:var(--f1);font-weight:600;font-size:14.5px;color:var(--n)!important;padding:6px 0}
.recetario{background:var(--n);color:#fff;border:0;position:relative}
.recetario .t{display:flex;flex-direction:column;height:100%;padding:30px}
.recetario small{color:rgba(255,255,255,.8)}
.recetario h3{font-size:26px;margin:10px 0}
.recetario p{color:rgba(255,255,255,.88)}
.recetario .pdf{margin-top:auto;display:flex;gap:14px;align-items:center;background:rgba(0,0,0,.14);border-radius:16px;padding:14px;font-family:var(--f1);font-weight:600}
.recetario .pdf i{width:44px;height:44px;border-radius:12px;background:#fff;color:var(--n);display:grid;place-items:center;font-style:normal;font-size:12px;font-weight:700}

/* CONTACTO */
.contacto{background:var(--g0);color:#fff;position:relative;overflow:hidden}
.contacto .glow{position:absolute;width:700px;height:700px;right:-250px;bottom:-350px;background:radial-gradient(circle,rgba(255,86,23,.22),transparent 65%)}
.ct{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;position:relative}
.ct .intro{color:#AEB5C0;margin:18px 0 34px;max-width:460px}
.datos{display:grid;gap:12px}
.dt{display:flex;gap:16px;align-items:center;padding:16px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid var(--lin);transition:.2s}
.dt:hover{background:rgba(255,255,255,.08)}
.dt i{width:46px;height:46px;border-radius:13px;background:var(--n);display:grid;place-items:center;flex:none}
.dt i svg{width:21px;height:21px;stroke:#fff}
.dt small{display:block;font-family:var(--fm);font-size:10.5px;letter-spacing:.14em;color:#8B929E;text-transform:uppercase}
.dt b{font-family:var(--f1);font-weight:500;font-size:16px}
.mapa{margin-top:14px;border-radius:18px;overflow:hidden;height:210px;border:1px solid var(--lin)}
.mapa iframe{width:100%;height:100%;border:0;filter:grayscale(1) invert(.92) contrast(.9)}
.mapa-btn{width:100%;height:100%;border:0;display:flex;align-items:center;justify-content:center;gap:14px;color:#fff;text-align:left;padding:20px;background:radial-gradient(circle at 30% 40%,rgba(255,86,23,.22),transparent 60%),repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 2px,transparent 2px 22px),var(--g2);transition:.25s}
.mapa-btn:hover{background-color:var(--g3)}
.mapa-btn svg{width:44px;height:44px;flex:none;stroke:#fff;background:var(--n);border-radius:14px;padding:11px}
.mapa-btn b{font-family:var(--f1);font-size:16px;display:block}
.mapa-btn small{color:#AEB5C0;font-size:13.5px}
.form{background:#fff;color:var(--tx);border-radius:28px;padding:40px;box-shadow:0 40px 90px -30px rgba(0,0,0,.6)}
.form h3{font-size:26px;font-weight:700}
.form .bajada{color:var(--tx2);font-size:15.5px;margin:6px 0 26px}
.fila2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cp{position:relative;margin-bottom:14px}
.form .cp input,.form .cp textarea,.form .cp select{width:100%;background:var(--claro);border:1.5px solid transparent;border-radius:14px;padding:22px 16px 9px;font-family:var(--f2);font-size:15.5px;color:var(--tx);transition:.2s;box-shadow:none;margin:0;height:auto;line-height:1.4}
.form .cp select{padding:15px 16px}
.form .cp textarea{min-height:120px;resize:vertical}
.cp label{position:absolute;left:17px;top:15px;font-size:15px;color:var(--tx3);pointer-events:none;transition:.2s;margin:0}
.form .cp input:focus,.form .cp textarea:focus,.form .cp select:focus{outline:none;border-color:var(--n);background:#fff}
.cp input:focus+label,.cp input:not(:placeholder-shown)+label,.cp textarea:focus+label,.cp textarea:not(:placeholder-shown)+label{top:6px;font-size:11.5px;color:var(--n)}
/* Teléfono con selector de país (intl-tel-input): sin etiqueta flotante, la bandera a la izquierda */
.pm-oculto{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cp-tel .iti{display:block;width:100%}
.form .cp-tel input[type=tel]{padding-top:15.5px;padding-bottom:15.5px}
.form .cp-tel input[type=tel]::placeholder{color:var(--tx3);opacity:1}
.form .cp-tel .iti__selected-country{background:none;border:0;border-radius:14px 0 0 14px;padding:0;margin:0;color:var(--tx);box-shadow:none;min-height:0;font-size:15px}
.form .cp-tel .iti__selected-country:hover,.form .cp-tel .iti__selected-country:focus{background:rgba(0,0,0,.04)}
.iti__dropdown-content{border-radius:14px;border:1px solid #E2E5EA;box-shadow:0 18px 40px -12px rgba(0,0,0,.25);overflow:hidden;color:var(--tx)}
.form .cp .iti__search-input,body input.iti__search-input{font-family:var(--f2);font-size:15px;background:#fff;border:0;border-radius:0;padding:12px 38px 12px 40px;line-height:1.3}
.form .cp .iti__search-input:focus,body input.iti__search-input:focus{border:0;background:#fff}
.iti__country.iti__highlight{background:#FFF1EA}
.form .btn{width:100%;justify-content:center;margin-top:8px;padding:17px}
.form .btn.enviando{opacity:.75;cursor:wait;pointer-events:none;box-shadow:none;transform:none}
.form .btn .giro{width:16px;height:16px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:pm-giro .7s linear infinite}
@keyframes pm-giro{to{transform:rotate(360deg)}}
.aviso a{color:inherit;font-weight:600;text-decoration:underline}
.form .trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.aviso{border-radius:14px;padding:14px 16px;margin-bottom:18px;font-size:15px}
.aviso.ok{background:#E9F8EF;color:#1B6B3A}
.aviso.error{background:#FDECEC;color:#9B1C1C}
.alt{text-align:center;font-size:14px;color:var(--tx2);margin-top:16px}
.alt a{color:var(--tx);font-weight:600;border-bottom:2px solid var(--n)}
.form .acepto{display:flex;align-items:flex-start;gap:10px;margin:4px 0 6px;font-size:13.5px;line-height:1.45;color:var(--tx2);cursor:pointer}
.form .acepto input{flex:none;width:18px;height:18px;margin:1px 0 0;accent-color:var(--n);cursor:pointer}
.form .acepto a{color:var(--tx);font-weight:500;border-bottom:1px solid var(--n)}

/* Táctil: lo que en escritorio aparece al pasar el ratón, aquí siempre visible */
@media (hover:none){.pr .fotos{opacity:1;transform:none}}

/* RESPONSIVE */
@media (max-width:1100px){
  .hero .c,.nos,.panel.on,.serv-w,.val-w,.ct,.graf{grid-template-columns:1fr}
  .pilares .c{grid-template-columns:1fr}
  .bento{grid-template-columns:repeat(2,1fr)}
  .bento.lista{grid-template-columns:1fr 1fr}
  .nov{grid-template-columns:1fr 1fr}
  .recetario{grid-column:span 2}
  .visor{position:relative;top:0;aspect-ratio:16/10}
  .eje{grid-template-columns:repeat(4,1fr);row-gap:30px}
  .eje::before,.eje .prog{display:none}
}
@media (max-width:700px){
  .hero .c{padding-top:50px;padding-bottom:50px;gap:30px}
  .slides{min-height:390px}
  .esc{height:400px}
  .esc .pedestal{inset:10px 20px 30px 30px}
  .esc .t1{width:130px;height:98px;top:20px}
  .esc .t2{width:150px;height:112px}
  .ch1{right:8px;top:24px}.ch2{left:8px;bottom:70px}
  .mosaico{height:420px}
  .sello{width:118px;height:118px}.sello b{font-size:30px}
  .caract,.checks,.vals,.fila2,.nov{grid-template-columns:1fr}
  .recetario{grid-column:auto}
  .cont-bar{grid-template-columns:1fr 1fr}
  .cnt{border-bottom:1px solid var(--lin)}
  .cnt b{font-size:36px}
  .bento{grid-template-columns:1fr;grid-auto-rows:260px}
  .pr.gr,.pr.an{grid-column:auto;grid-row:auto}
  .pr .desc{display:none}
  .eje{grid-template-columns:1fr 1fr}
  .graf{padding:32px 24px}
  .x5{font-size:52px}
  .form{padding:26px}
  .it{grid-template-columns:44px 1fr 24px}.it h3{font-size:20px}
  /* Pestañas y filtros: una fila que se desliza */
  .tabs,.filtros{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .tabs::-webkit-scrollbar,.filtros::-webkit-scrollbar{display:none}
  .tabs button,.filtros button{white-space:nowrap;flex:none}
  .filtros{margin:0 -24px;padding:0 24px}
  /* Portafolio: carrusel deslizable en vez de 9 tarjetas apiladas */
  .bento{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin:0 -24px;padding:0 24px 6px;scrollbar-width:none}
  .bento::-webkit-scrollbar{display:none}
  .bento .pr,.bento .pr.gr,.bento .pr.an{flex:0 0 84%;height:360px;scroll-snap-align:center}
  .bento .pr.fuera{display:none}
  .bento.lista{display:grid;grid-template-columns:1fr;overflow:visible;margin:0;padding:0}
  .bento.lista .pr{aspect-ratio:auto;min-height:380px}
  .bento.lista .pr .desc{display:block}
  .pm-portafolio .desliza{display:none}
.mas-proy{margin-top:36px;text-align:center}
/* /galeria/: todas las tarjetas con su descripción */
.port .c{padding-top:10px}
.bento.lista{grid-template-columns:repeat(3,1fr);grid-auto-rows:auto}
.bento.lista .pr{aspect-ratio:4/3.6}
.bento.lista .pr .desc{display:block;font-size:14px}
.bento.lista .pr h3{font-size:21px}
.bento.lista .pr.prod .fotos{opacity:1;transform:none;background:var(--n);color:#fff}
.desliza{display:none;align-items:center;gap:8px;font-family:var(--fm);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#8B929E;margin:14px 0 0}
  .desliza{display:flex}
  /* Textos pequeños: mínimo legible */
  .spec small,.pil small,.chip small,.dt small,.pr .tag,.visor .pie-v small{font-size:12px}
  .galeria .grande .badge{font-size:12px}
  .pr .tag{font-size:11px;letter-spacing:.05em;padding:5px 9px}
}
