/* Shared visual language: navy, white space, restrained yellow accents. */
:root{--concreto:#1b2430;--concreto-2:#28323f;--senal:#f5c518;--cal:#f5f6f7;--linea:#dce1e5;--gut:clamp(20px,4.5vw,64px);--maxw:1320px}
body{overflow-wrap:break-word}section{padding-block:clamp(48px,6vw,88px)}.wrap{width:100%}h1,h2,h3{text-wrap:balance}p{max-width:75ch}.kicker,.sub,.eyebrow{letter-spacing:.16em}.btn{letter-spacing:.07em;min-height:46px;display:inline-flex;align-items:center;justify-content:center}.phero{padding-top:144px;padding-bottom:64px}.phero p{max-width:62ch}.phero h1{font-size:clamp(36px,5vw,64px)}.nav .marca img{content-visibility:visible}.reading-progress{pointer-events:none}.tab-btn{min-height:44px}.proy{scroll-margin-top:94px}.proy h3{font-size:clamp(25px,3vw,40px)}.fgrid{gap:32px}footer p{max-width:50ch}.company-cards figure{border-radius:4px}.company-cards figcaption{text-align:center;width:100%}.logos.company-cards figure{align-items:center}.company-cards figure img{object-position:center}.section-head{gap:20px}.portfolio-page .phero{min-height:400px;display:flex;align-items:flex-end}.portfolio-page .phero .bg:after{background:linear-gradient(90deg,#101c29ed,#101c2940)}.portfolio-page .phero .wrap{position:relative}.portfolio-page .phero p{font-size:17px;color:#e1e5e9;max-width:58ch}.portfolio-page .phero .kicker{color:var(--senal);font-size:12px}.portfolio-page .phero .btn{margin-top:12px}
.portfolio-page #obras{padding-top:0}.portfolio-nav{display:flex;flex-wrap:wrap;gap:12px 28px;border-bottom:1px solid var(--linea);padding:24px 0;margin-bottom:36px}.portfolio-nav a{font-size:14px;font-weight:600;text-decoration:none;border-bottom:2px solid transparent;padding:4px 0}.portfolio-nav a:hover{border-color:var(--senal)}.catalog-title{font-size:clamp(26px,3vw,38px);font-weight:800;color:var(--concreto);margin:0 0 12px}.portfolio-page .nota{font-size:15px;line-height:1.7;margin:0 0 20px}.portfolio-page .filtros{padding:24px;background:white;border:1px solid var(--linea);margin:24px 0 40px;border-radius:4px}.portfolio-page .filtro-lab{font-size:12px;letter-spacing:.12em;margin:16px 0 10px}.portfolio-page .filtro-lab:first-child{margin-top:0}.portfolio-page .tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0}.portfolio-page .tab-btn,.portfolio-page .sub-btn{font-family:inherit;font-size:14px;letter-spacing:0;text-transform:none;padding:9px 14px;border:1px solid #dce1e5;background:#f7f8fa;color:#344050;border-radius:3px}.portfolio-page .tab-btn.on,.portfolio-page .sub-btn.on{background:#1b2430;color:#fff;border-color:#1b2430;box-shadow:inset 0 -3px var(--senal)}.portfolio-page .filtro-cuenta{margin:20px 0 0;padding-top:16px;border-top:1px solid var(--linea);font-size:13px;letter-spacing:0;color:#5c6675}.portfolio-page .tabla-group{margin:0 0 56px;scroll-margin-top:100px}.catalog-heading{font-size:25px;font-weight:700;margin:0 0 24px;border-left:4px solid var(--senal);padding-left:16px;color:#1b2430}.portfolio-page #grp-clientes>.tabla,.portfolio-page #grp-fichas>.tabla{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border:0;margin-top:0!important;align-items:start}.project-card{min-width:0;background:white;border:1px solid #dce1e5;border-radius:4px;overflow:hidden;scroll-margin-top:96px}.project-card[hidden],.project-card.page-hidden{display:none!important}.project-cover{display:block;list-style:none;cursor:pointer}.project-cover::-webkit-details-marker{display:none}.project-cover:focus-visible{outline:3px solid #b08a00;outline-offset:-3px}.project-image{width:100%;height:220px;object-fit:contain;background:#e8edf0;content-visibility:visible}.project-placeholder{height:220px;display:grid;place-items:center;color:#ffffff40;font-size:64px;font-weight:800;background:#233241}.project-info{padding:22px;display:flex;flex-direction:column;gap:10px}.project-category{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#6a7280}.project-info>b{font-size:20px;line-height:1.3;color:#1b2430;min-height:52px}.project-location{font-size:13px;color:#687283}.project-cue{font-size:13px;font-weight:600;border-top:1px solid #e3e7ea;padding-top:16px;margin-top:8px;color:#28323f}.project-card[open]{border-color:#b19a41}.project-card[open] .project-cue{color:#897017}.project-detail{border-top:1px solid #e0e4e8;padding:22px;font-size:15px;line-height:1.75;color:#536070}.project-detail>span{display:block}.project-detail .cif{display:block;font-size:13px;line-height:1.7;margin-top:18px;color:#1b2430}.project-detail .fotos{display:grid;grid-template-columns:1fr;gap:10px;margin-top:20px}.project-detail .fotos img{width:100%;height:auto;max-height:none;object-fit:contain}.catalog-more{display:block;margin:28px auto 0;padding:14px 28px;min-height:48px;background:transparent;border:1px solid #1b2430;color:#1b2430;font:600 14px Poppins,sans-serif;cursor:pointer}.catalog-more:hover{background:#1b2430;color:white}.catalog-more[hidden]{display:none}.portfolio-page #grp-trayectoria{padding-top:32px;border-top:1px solid #dce1e5}.portfolio-page #grp-trayectoria>.sub{font-size:25px;letter-spacing:0;color:#1b2430;text-transform:none;font-family:inherit;font-weight:700}.portfolio-page .trajectory-route{gap:14px}.portfolio-page .trajectory-route .route-stop{padding:0 20px;border:1px solid #dce1e5;border-radius:4px}.portfolio-page .route-stop summary{font-size:17px;padding:22px 0}.portfolio-page .route-stop .chips{padding-bottom:20px}.portfolio-page .route-stop .lista{padding:0 16px;border:0;background:#f6f7f8}.portfolio-page .route-stop .lista li{font-size:15px;line-height:1.7}.portfolio-page .route-stop .chip-photo{max-width:100%;margin:0}.portfolio-page .route-stop .chip-photo img{object-fit:contain}.portfolio-page #trayectoria{scroll-margin-top:100px}.portfolio-page .rv{opacity:1;transform:none}
@media(max-width:1000px){.portfolio-page #grp-clientes>.tabla,.portfolio-page #grp-fichas>.tabla{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.phero{padding-top:116px;padding-bottom:40px}.portfolio-page .phero{min-height:360px}.portfolio-page .phero h1{font-size:38px}.portfolio-page .phero p{font-size:15px}.portfolio-nav{gap:12px 20px;margin-bottom:28px}.portfolio-nav a{font-size:13px}.portfolio-page .filtros{padding:18px;margin-bottom:32px}.portfolio-page .tab-btn{padding:9px 11px;font-size:13px}.portfolio-page #grp-clientes>.tabla,.portfolio-page #grp-fichas>.tabla{grid-template-columns:1fr;gap:20px}.project-image,.project-placeholder{height:230px}.project-info>b{min-height:0}.project-info{padding:20px}.catalog-heading{font-size:23px}.portfolio-page .tabla-group{margin-bottom:40px}.btn{max-width:100%}.portfolio-page .route-stop summary{font-size:16px}.portfolio-page .filtro-cuenta{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Portfolio: one ordered index, photography only inside each project. */
.portfolio-page #grp-clientes>.tabla{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;background:transparent}
.project-card{border:0;border-bottom:1px solid #cfd6dc;border-radius:0;background:transparent}
.project-cover{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;padding:26px 0;min-height:220px}
.project-number{font:500 14px 'IBM Plex Mono',monospace;color:#8a7130;padding-top:2px}
.project-info{padding:0;gap:9px}.project-info>b{font-size:21px;min-height:0;line-height:1.35;max-width:30ch}
.project-category{font-size:11px;color:#687383}.project-cue{border:0;padding:0;margin-top:8px;color:#39495a}
.project-card[open]{grid-column:1/-1;border-bottom:2px solid #cfaa2c;background:#fff;padding:0 24px}
.project-card[open] .project-cover{min-height:0}.project-card[open] .project-info>b{max-width:none}
.project-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:28px;padding:24px 0 32px}
.project-detail .fotos{margin:0;align-content:start;gap:16px}.project-detail .fotos img{max-height:520px;object-fit:contain;background:#f1f3f5}
.portfolio-page .catalog-heading{margin-top:0}.portfolio-page .portfolio-nav{margin-bottom:28px}
@media(max-width:640px){.portfolio-page #grp-clientes>.tabla{grid-template-columns:1fr}.project-cover{min-height:0;padding:24px 0;grid-template-columns:28px minmax(0,1fr);gap:12px}.project-info>b{font-size:20px}.project-detail{grid-template-columns:1fr;gap:24px}.project-card[open]{padding:0 16px}.project-number{font-size:12px}.project-detail .fotos img{max-height:420px}}
