/*
 * GLP Montajes Eléctricos — estilos del tema (Boceto A · oscuro e industrial).
 * Se cargan en el sitio y en el editor. Colores y tipografías vienen de theme.json.
 */

:root {
	--glp-rojo: var(--wp--preset--color--rojo, #e4112a);
	--glp-rojo-oscuro: #c20d23;
	--glp-naranja: var(--wp--preset--color--naranja, #f07a22);
	--glp-fondo: var(--wp--preset--color--fondo, #0d0e10);
	--glp-fondo-2: var(--wp--preset--color--fondo-2, #141518);
	--glp-panel: var(--wp--preset--color--panel, #1b1d21);
	--glp-linea: var(--wp--preset--color--linea, #2a2d32);
	--glp-apagado: var(--wp--preset--color--apagado, #a8abb0);
	--glp-mono: var(--wp--preset--font-family--plex-mono, 'IBM Plex Mono', ui-monospace, monospace);
	--glp-pad-x: max(20px, env(safe-area-inset-left, 0px));
	color-scheme: dark;
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { overflow-x: clip; }
img { height: auto; }
:focus-visible { outline: 2px solid var(--glp-naranja); outline-offset: 3px; }

/* Títulos con la tipografía condensada/ancha del boceto */
h1, h2, h3, .glp-titulo { font-stretch: 112%; text-wrap: balance; }
h1 { font-stretch: 120%; }
h1 em, h2 em { font-style: normal; color: var(--glp-rojo); }

/* Etiquetas en mono */
.glp-mono, .glp-eyebrow, .glp-etiqueta {
	font-family: var(--glp-mono);
	font-size: .74rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 400;
}
.glp-eyebrow { color: var(--glp-naranja); margin: 0 0 14px; }
.glp-eyebrow--linea { display: flex; align-items: center; gap: 12px; }
.glp-eyebrow--linea::before { content: ""; width: 34px; height: 2px; background: var(--glp-naranja); }

/* Enlace "Saltar al contenido" */
.glp-skip { position: absolute; left: -9999px; top: 0; z-index: 100; background: var(--glp-rojo); color: #fff; padding: 12px 18px; font-weight: 700; }
.glp-skip:focus { left: 8px; top: 8px; color: #fff; }

/* ---------- Secciones ---------- */
.glp-sec { padding-top: clamp(64px, 8vw, 116px); padding-bottom: clamp(64px, 8vw, 116px); padding-left: var(--glp-pad-x); padding-right: var(--glp-pad-x); }
.glp-sec--alt { background: var(--glp-fondo-2); border-top: 1px solid var(--glp-linea); border-bottom: 1px solid var(--glp-linea); }
.glp-sh { margin-bottom: 46px; }
.glp-sh h2 { margin: 0; }
.glp-sh .glp-sh__texto { color: var(--glp-apagado); max-width: 520px; margin: 14px 0 0; }
.glp-centrado { text-align: center; }

/* ---------- Barra superior ---------- */
.glp-topbar { background: #08080a; border-bottom: 1px solid var(--glp-linea); color: var(--glp-apagado); padding: 8px var(--glp-pad-x); }
.glp-topbar p { margin: 0; font-family: var(--glp-mono); font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; }
.glp-topbar a { color: var(--glp-apagado); }
.glp-topbar a:hover { color: #fff; text-decoration: none; }
.glp-topbar .glp-topbar__der { display: flex; gap: 22px; }

/* ---------- Encabezado (fijo al hacer scroll) ---------- */
/* Sin backdrop-filter a propósito: crea un contenedor que encierra el menú desplegable del celular. */
.glp-site-header { position: sticky; top: 0; z-index: 30; background: rgba(13, 14, 16, .97); border-bottom: 1px solid var(--glp-linea); }
body.admin-bar .glp-site-header { top: var(--wp-admin--admin-bar--height, 32px); }
.glp-header { padding: 14px var(--glp-pad-x); }
.glp-header .wp-block-site-logo img { height: 46px; width: auto; }
.glp-nav { gap: 30px; }
.glp-nav .wp-block-navigation-item__content { font-weight: 600; font-size: .9rem; letter-spacing: .04em; text-transform: uppercase; color: #d8d9db; padding: 6px 0; border-bottom: 2px solid transparent; }
.glp-nav .wp-block-navigation-item__content:hover,
.glp-nav .wp-block-navigation-item__content[aria-current="page"] { color: #fff; border-bottom-color: var(--glp-rojo); text-decoration: none; }
.glp-nav .wp-block-navigation__submenu-container { background: var(--glp-panel) !important; border: 1px solid var(--glp-linea) !important; min-width: 240px; }
.glp-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 10px 16px; border-bottom: 0; color: #d8d9db; }
.glp-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--glp-fondo-2); }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--glp-fondo) !important; color: #fff !important; padding: 24px var(--glp-pad-x); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.3rem; padding: 12px 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1rem; padding: 10px 0 10px 8px; }
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { color: #fff; }

/* ---------- Botones ---------- */
.glp-btn .wp-block-button__link { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-stretch: 108%; text-transform: uppercase; letter-spacing: .05em; font-size: .88rem; padding: 15px 24px; background: var(--glp-rojo); color: #fff; border: 2px solid var(--glp-rojo); border-radius: 0; transition: background .15s, transform .15s; text-decoration: none; }
.glp-btn .wp-block-button__link:hover { background: var(--glp-rojo-oscuro); border-color: var(--glp-rojo-oscuro); color: #fff; transform: translateY(-1px); }
.glp-btn--ghost .wp-block-button__link { background: transparent; border-color: rgba(255, 255, 255, .55); }
.glp-btn--ghost .wp-block-button__link:hover { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .55); }
.glp-btn--sm .wp-block-button__link { padding: 11px 20px; }
.glp-btn--blanco .wp-block-button__link { background: #fff; color: #0d0e10; border-color: #fff; }
.glp-btn--blanco .wp-block-button__link:hover { background: #f1f1f1; color: #0d0e10; border-color: #f1f1f1; }

/* ---------- Portada ---------- */
.glp-hero { position: relative; isolation: isolate; overflow: hidden; background: #0a0a0c; padding: 0 !important; min-height: 0 !important; align-items: center; }
.glp-hero .wp-block-cover__image-background { object-position: 60% 40%; }
.glp-hero::before { content: ""; position: absolute; top: 0; bottom: 0; right: 7%; width: 15%; z-index: 2; background: var(--glp-rojo); clip-path: polygon(38% 0, 100% 0, 62% 100%, 0 100%); opacity: .92; pointer-events: none; }
.glp-hero::after { content: ""; position: absolute; top: 0; bottom: 0; right: 3.5%; width: 6%; z-index: 2; background: var(--glp-naranja); clip-path: polygon(38% 0, 100% 0, 62% 100%, 0 100%); opacity: .92; pointer-events: none; }
.glp-hero .wp-block-cover__inner-container { z-index: 3; width: 100%; padding: clamp(72px, 10vw, 150px) var(--glp-pad-x) clamp(96px, 11vw, 170px); }
.glp-hero__in { max-width: 760px; margin-left: max(0px, calc((100% - 1240px) / 2)) !important; margin-right: auto !important; }
.glp-hero h1 { margin: 0; }
.glp-hero__lead { margin-top: 26px; font-size: clamp(1.02rem, 1.6vw, 1.25rem); color: #dcdde0; max-width: 560px; }
.glp-hero .wp-block-buttons { margin-top: 36px; gap: 14px; }

/* Portada de páginas internas */
.glp-hero--interna .wp-block-cover__inner-container { padding-top: clamp(56px, 7vw, 100px); padding-bottom: clamp(80px, 9vw, 130px); }
.glp-hero--interna::before { width: 11%; right: 4%; }
.glp-hero--interna::after { right: 1.5%; width: 4%; }
.glp-hero--interna h1 { font-size: clamp(2rem, 4.8vw, 4rem); }

/* ---------- Cinta roja con corte ---------- */
.glp-tape { position: relative; z-index: 2; margin-top: -54px !important; margin-bottom: 0 !important; background: var(--glp-rojo); clip-path: polygon(0 46px, 100% 0, 100% 100%, 0 100%); padding: 76px var(--glp-pad-x) 22px; }
.glp-tape__items { display: flex; flex-wrap: wrap; gap: 8px 30px; max-width: 1240px; margin: 0 auto; }
.glp-tape__items p { margin: 0; font-weight: 700; font-stretch: 108%; text-transform: uppercase; letter-spacing: .07em; font-size: .82rem; display: flex; align-items: center; gap: 30px; color: #fff; }
.glp-tape__items p:not(:last-child)::after { content: ""; width: 6px; height: 6px; background: #fff; transform: rotate(45deg); }

/* ---------- Confianza (tres cifras) ---------- */
.glp-trust { background: var(--glp-fondo-2); border-bottom: 1px solid var(--glp-linea); padding: 0 var(--glp-pad-x); }
.glp-trust__cols { max-width: 1240px; margin: 0 auto; gap: 0 !important; }
.glp-trust__item { padding: 34px 32px; margin: 0; border-right: 1px solid var(--glp-linea); }
.glp-trust__item:first-child { padding-left: 0; }
.glp-trust__item:last-child { border-right: 0; }
.glp-trust__cifra { margin: 0; font-size: 2.7rem; font-weight: 800; font-stretch: 118%; line-height: 1; color: #fff; }
.glp-trust__cifra mark { background: transparent; color: var(--glp-naranja); }
.glp-trust__texto { margin: 10px 0 0; color: var(--glp-apagado); font-size: .95rem; max-width: 300px; }

/* ---------- Tarjetas de servicios ---------- */
.glp-servicios { gap: 20px !important; grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
.glp-servicios > .glp-card:nth-child(-n+3) { grid-column: span 2; }
.glp-servicios > .glp-card:nth-child(n+4) { grid-column: span 3; }
.glp-banda__cols { max-width: 1240px; margin: 0 auto; gap: 24px !important; }
.glp-banda .wp-block-buttons { gap: 12px; }
.glp-card { position: relative; isolation: isolate; min-height: 470px !important; padding: 30px !important; overflow: hidden; background: var(--glp-panel); border: 1px solid var(--glp-linea); align-items: flex-end !important; justify-content: flex-start; }
.glp-card .wp-block-cover__image-background { transition: transform .5s; }
.glp-card:hover .wp-block-cover__image-background { transform: scale(1.04); }
.glp-card .wp-block-cover__inner-container { position: static; width: 100%; }
.glp-card__etiqueta { position: absolute; top: 0; left: 0; margin: 0; background: var(--glp-rojo); padding: 9px 16px; color: #fff; z-index: 3; }
.glp-card h3 { margin: 0 0 14px; }
.glp-card ul { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 7px; }
.glp-card li { color: #d6d8db; font-size: .95rem; padding-left: 20px; position: relative; }
.glp-card li::before { content: ""; position: absolute; left: 0; top: .62em; width: 9px; height: 2px; background: var(--glp-naranja); }
.glp-mas { margin: 0; }
.glp-mas a { display: inline-flex; gap: 10px; align-items: center; font-weight: 700; font-stretch: 108%; text-transform: uppercase; letter-spacing: .06em; font-size: .84rem; color: #fff; border-bottom: 2px solid var(--glp-rojo); padding-bottom: 4px; text-decoration: none; }
.glp-mas a:hover { border-bottom-color: var(--glp-naranja); text-decoration: none; }

/* ---------- Quiénes somos ---------- */
.glp-about__cols { max-width: 1240px; margin: 0 auto; align-items: center !important; gap: clamp(30px, 6vw, 84px) !important; }
.glp-marco { position: relative; margin: 0 0 22px 22px !important; }
.glp-marco::before { content: ""; position: absolute; inset: 22px -22px -22px 22px; border: 3px solid var(--glp-rojo); z-index: 0; }
.glp-marco img { position: relative; z-index: 1; width: 100%; aspect-ratio: 4 / 4.6; object-fit: cover; object-position: center 12%; filter: saturate(.95) contrast(1.04); }
.glp-about h2 { margin: 14px 0 24px; font-size: clamp(1.8rem, 3.6vw, 3rem); }
.glp-about p { color: #cfd1d4; }
.glp-valores { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.glp-valores p { margin: 0; border: 1px solid var(--glp-linea); background: var(--glp-panel); padding: 10px 16px; font-weight: 700; font-stretch: 108%; text-transform: uppercase; letter-spacing: .07em; font-size: .8rem; color: #fff; }
.glp-valores p::before { content: ""; display: inline-block; width: 8px; height: 8px; background: var(--glp-rojo); margin-right: 10px; }

/* ---------- Trabajos (galería) y clientes: bloques "Listado de entradas" ---------- */
.glp-galeria .wp-block-post-template { gap: 12px; }
.glp-galeria .wp-block-post-template > li { position: relative; overflow: hidden; background: var(--glp-panel); margin: 0; }
.glp-galeria .wp-block-post-featured-image { margin: 0; }
.glp-galeria .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s, filter .3s; filter: saturate(.92); }
.glp-galeria .wp-block-post-template > li:hover img { transform: scale(1.06); filter: saturate(1.1); }
.glp-galeria .wp-block-post-template > li::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(8, 8, 10, .85)); pointer-events: none; }
.glp-galeria .wp-block-post-title { position: absolute; left: 14px; right: 14px; bottom: 12px; z-index: 2; margin: 0; font-family: var(--glp-mono); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 400; font-stretch: 100%; line-height: 1.3; color: #fff; }
.glp-galeria .wp-block-post-title a { color: #fff; }
.glp-galeria .wp-block-post-title a:hover { text-decoration: none; }
.glp-mas-trabajos { margin-top: 30px; }

.glp-clientes-sec { background: var(--glp-fondo-2); border-top: 1px solid var(--glp-linea); border-bottom: 1px solid var(--glp-linea); padding: clamp(54px, 6vw, 84px) var(--glp-pad-x); }
.glp-clientes .wp-block-post-template { gap: 14px; }
.glp-clientes .wp-block-post-template > li { margin: 0; background: #fff; height: 128px; display: flex; align-items: center; justify-content: center; padding: 10px 18px; }
.glp-clientes .wp-block-post-featured-image { margin: 0; width: 100%; height: 100%; }
.glp-clientes .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: contain; }
.glp-clientes .wp-block-post-title { display: none; }

/* ---------- Contacto ---------- */
.glp-contacto { position: relative; isolation: isolate; overflow: hidden; background: var(--glp-rojo); padding: clamp(64px, 8vw, 116px) var(--glp-pad-x); }
.glp-contacto::before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; right: -6%; width: 46%; background: var(--glp-rojo-oscuro); clip-path: polygon(26% 0, 100% 0, 100% 100%, 0 100%); }
.glp-contacto__cols { max-width: 1240px; margin: 0 auto; align-items: center !important; gap: clamp(30px, 6vw, 80px) !important; }
.glp-contacto h2 { color: #fff; margin: 0; font-size: clamp(1.9rem, 4vw, 3.2rem); }
.glp-contacto__texto { margin-top: 18px; max-width: 470px; font-size: 1.08rem; color: #fff; }
.glp-datos { margin-top: 28px; display: grid; gap: 10px; }
.glp-datos p { margin: 0; font-weight: 700; font-size: 1.05rem; color: #fff; }
.glp-datos a { color: #fff; }
.glp-datos a:hover { text-decoration: underline; }
.glp-contacto--simple { background: var(--glp-fondo-2); border-top: 1px solid var(--glp-linea); }
.glp-contacto--simple::before { display: none; }

/* Formulario (plugin GLP Funcionalidades) */
.glp-form, .glp-form * { box-sizing: border-box; }
.glp-form { background: var(--glp-fondo); padding: 32px; display: grid; gap: 14px; border-top: 5px solid var(--glp-naranja); }
.glp-form h3 { font-size: 1.3rem; margin: 0 0 4px; }
.glp-form label { display: grid; gap: 6px; font-family: var(--glp-mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--glp-apagado); }
.glp-form input, .glp-form textarea, .glp-form select { width: 100%; background: var(--glp-panel); border: 1px solid var(--glp-linea); color: var(--wp--preset--color--texto, #f3f3f1); padding: 13px 14px; font: inherit; font-size: .98rem; letter-spacing: 0; text-transform: none; border-radius: 0; }
.glp-form textarea { min-height: 96px; resize: vertical; }
.glp-form input:focus, .glp-form textarea:focus, .glp-form select:focus { border-color: var(--glp-naranja); outline: none; }
.glp-form .glp-fila { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.glp-form button { display: inline-flex; justify-content: center; align-items: center; width: 100%; font: inherit; font-weight: 700; font-stretch: 108%; text-transform: uppercase; letter-spacing: .05em; font-size: .88rem; padding: 15px 24px; background: var(--glp-rojo); color: #fff; border: 2px solid var(--glp-rojo); cursor: pointer; transition: background .15s; }
.glp-form button:hover { background: var(--glp-rojo-oscuro); border-color: var(--glp-rojo-oscuro); }
.glp-form small, .glp-form .glp-legal { color: var(--glp-apagado); font-size: .78rem; text-transform: none; letter-spacing: 0; font-family: inherit; }
.glp-form .glp-legal a { color: #fff; text-decoration: underline; }
.glp-form .glp-trampa { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.glp-aviso { padding: 14px 16px; margin-bottom: 4px; font-weight: 600; border-left: 5px solid; }
.glp-aviso--ok { background: #0f2a17; border-color: #3ecf6e; color: #d6ffe4; }
.glp-aviso--error { background: #2e0d12; border-color: var(--glp-rojo); color: #ffe1e4; }

/* ---------- Páginas de servicio ---------- */
.glp-listado { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--glp-linea); }
.glp-listado li { padding: 16px 0 16px 34px; border-bottom: 1px solid var(--glp-linea); position: relative; color: #e3e4e6; }
.glp-listado li::before { content: ""; position: absolute; left: 0; top: 1.5em; width: 18px; height: 3px; background: var(--glp-rojo); }
.glp-relacionados { gap: 16px !important; }
.glp-relacionados .wp-block-column { background: var(--glp-panel); border: 1px solid var(--glp-linea); padding: 22px; }
.glp-relacionados h3 { font-size: 1.2rem; margin: 0 0 8px; }
.glp-banda { background: var(--glp-rojo); padding: clamp(40px, 5vw, 64px) var(--glp-pad-x); }
.glp-banda h2 { color: #fff; font-size: clamp(1.5rem, 3vw, 2.4rem); margin: 0; }
.glp-banda p { color: #fff; margin: 8px 0 0; }

/* ---------- Páginas de texto (política de privacidad, etc.) ---------- */
.glp-pagina { padding: clamp(40px, 6vw, 80px) var(--glp-pad-x) clamp(64px, 8vw, 110px); }
.glp-pagina h1 { font-size: clamp(2rem, 4.5vw, 3.4rem); margin-bottom: 28px; }
.glp-pagina h2 { font-size: clamp(1.3rem, 2.4vw, 1.8rem); margin-top: 2em; }
.glp-pagina p, .glp-pagina li { color: #d6d8db; }
.glp-pagina a { color: #fff; text-decoration: underline; text-decoration-color: var(--glp-rojo); text-underline-offset: 3px; }

/* ---------- Pie de página ---------- */
.glp-footer { background: #08080a; border-top: 1px solid var(--glp-linea); padding: 64px var(--glp-pad-x) 0; }
.glp-footer__cols { max-width: 1240px; margin: 0 auto; gap: 36px !important; }
.glp-footer p, .glp-footer li, .glp-footer a { color: var(--glp-apagado); font-size: .93rem; }
.glp-footer a:hover { color: #fff; text-decoration: none; }
.glp-footer h4 { font-size: .78rem; font-family: var(--glp-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--glp-naranja); margin: 0 0 16px; font-weight: 500; font-stretch: 100%; }
.glp-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.glp-footer .wp-block-site-logo img { height: 54px; width: auto; }
.glp-footer__logo { margin-bottom: 16px; }
.glp-mapa { position: relative; height: 150px; border: 1px solid var(--glp-linea); background: linear-gradient(135deg, #171a1e, #101215); overflow: hidden; display: block; }
.glp-mapa::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(var(--glp-linea) 1px, transparent 1px), linear-gradient(90deg, var(--glp-linea) 1px, transparent 1px); background-size: 30px 30px; opacity: .7; transform: rotate(-8deg) scale(1.4); }
.glp-mapa::after { content: ""; position: absolute; left: 50%; top: 44%; width: 16px; height: 16px; background: var(--glp-rojo); border-radius: 50%; transform: translate(-50%, -50%); box-shadow: 0 0 0 8px rgba(228, 17, 42, .2); }
.glp-mapa span { position: absolute; left: 12px; bottom: 10px; z-index: 2; font-family: var(--glp-mono); font-size: .64rem; letter-spacing: .14em; text-transform: uppercase; color: var(--glp-apagado); }
.glp-footer__base { max-width: 1240px; margin: 50px auto 0; border-top: 1px solid var(--glp-linea); padding: 20px 0; color: #80838a; font-size: .84rem; }
.glp-footer__base p { margin: 0; font-size: .84rem; color: #80838a; }
.glp-footer__base a { color: #80838a; }

/* ---------- Botón flotante de WhatsApp ---------- */
.glp-fab { position: fixed; right: max(18px, env(safe-area-inset-right, 0px)); bottom: max(18px, env(safe-area-inset-bottom, 0px)); z-index: 40; width: 60px; height: 60px; border-radius: 50%; background: #25d366; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 24px rgba(0, 0, 0, .45); }
.glp-fab svg { width: 32px; height: 32px; color: #fff; }
.glp-fab:hover { transform: translateY(-2px); }

/* ---------- Entradas (blog, si se usa más adelante) ---------- */
.glp-entrada { padding: clamp(40px, 6vw, 80px) var(--glp-pad-x); }
.wp-block-post-title a { color: inherit; }
.wp-block-query-pagination { font-family: var(--glp-mono); font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; }
.wp-block-post-date, .wp-block-post-terms { color: var(--glp-apagado); font-size: .9rem; }

/* ---------- Tablet ---------- */
@media (max-width: 1020px) {
	.glp-galeria .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.glp-contacto__cols, .glp-footer__cols { flex-wrap: wrap !important; }
	.glp-footer__cols > .wp-block-column { flex-basis: calc(50% - 18px) !important; }
	.glp-contacto__cols > .wp-block-column { flex-basis: 100% !important; }
	.glp-nav { gap: 20px; }
	.glp-servicios { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.glp-servicios > .glp-card:nth-child(n) { grid-column: span 1; }
	.glp-servicios > .glp-card:last-child { grid-column: span 2; }
	.glp-relacionados { flex-wrap: wrap !important; }
	.glp-relacionados > .wp-block-column { flex-basis: calc(50% - 8px) !important; }
}

/* ---------- Móvil ---------- */
@media (max-width: 820px) {
	.glp-topbar .glp-topbar__izq, .glp-topbar .glp-topbar__der p:last-child { display: none; }
	.glp-topbar .wp-block-group { justify-content: center !important; }
	.glp-header .wp-block-site-logo img { height: 40px; }
	.glp-header .glp-header__btn { display: none; }
	.glp-hero::before { right: -2%; width: 9%; }
	.glp-hero::after { right: -6%; width: 4%; }
	.glp-hero .wp-block-cover__inner-container { padding-top: 60px; padding-bottom: 100px; }
	.glp-hero .wp-block-cover__image-background { opacity: .55; }
	.glp-hero .wp-block-buttons .wp-block-button { width: 100%; }
	.glp-hero .wp-block-buttons .wp-block-button__link { width: 100%; justify-content: center; }
	.glp-tape { margin-top: -34px !important; clip-path: polygon(0 30px, 100% 0, 100% 100%, 0 100%); padding-top: 60px; }
	.glp-tape__items { gap: 6px 16px; }
	.glp-tape__items p { font-size: .72rem; gap: 16px; }
	.glp-trust__cols { flex-direction: column; }
	.glp-trust__item, .glp-trust__item:first-child { border-right: 0; border-bottom: 1px solid var(--glp-linea); margin: 0; padding: 24px 0; width: 100%; }
	.glp-trust__item:last-child { border-bottom: 0; }
	.glp-servicios { grid-template-columns: 1fr !important; }
	.glp-servicios > .glp-card:nth-child(n) { grid-column: auto; }
	.glp-card { min-height: 440px !important; padding: 24px !important; }
	.glp-about__cols { flex-wrap: wrap !important; }
	.glp-about__cols > .wp-block-column { flex-basis: 100% !important; }
	.glp-galeria .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.glp-clientes .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.glp-form { padding: 24px; }
	.glp-form .glp-fila { grid-template-columns: 1fr; }
	.glp-footer__cols > .wp-block-column { flex-basis: 100% !important; }
	.glp-relacionados { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; scroll-behavior: auto !important; }
}


/* ---------- Pagina de un trabajo: galeria en mosaico ---------- */
.glp-trabajo-cab { padding: clamp(40px, 6vw, 80px) var(--glp-pad-x) 0; }
.glp-trabajo-cab h1 { font-size: clamp(2rem, 4.8vw, 4rem); margin: 0; }
.glp-trabajo-cab .wp-block-post-excerpt { color: var(--glp-apagado); max-width: 640px; margin: 18px 0 0; font-size: 1.08rem; }
.glp-trabajo-cab .wp-block-post-excerpt__more-link { display: none; }
.glp-trabajo-galeria { padding: 34px var(--glp-pad-x) clamp(40px, 5vw, 70px); }
.glp-trabajo-galeria .wp-block-gallery { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px !important; margin: 0; }
.glp-trabajo-galeria .wp-block-gallery .wp-block-image { aspect-ratio: 1; position: relative; margin: 0 !important; width: auto !important; flex: none !important; overflow: hidden; background: var(--glp-panel); border: 1px solid var(--glp-linea); }
.glp-trabajo-galeria .wp-block-gallery .wp-block-image a { display: block; height: 100%; cursor: zoom-in; }
.glp-trabajo-galeria .wp-block-gallery .wp-block-image img { width: 100% !important; height: 100% !important; object-fit: cover; transition: transform .5s, filter .3s; filter: saturate(.92); }
.glp-trabajo-galeria .wp-block-gallery .wp-block-image:hover img { transform: scale(1.05); filter: saturate(1.1); }
.glp-trabajo-galeria .wp-block-gallery .wp-block-image:first-child { grid-column: span 2; grid-row: span 2; }
.glp-trabajo-galeria .wp-block-gallery .wp-block-image:first-child { aspect-ratio: auto; }
.glp-trabajo-galeria .wp-block-gallery .wp-block-image:first-child:nth-last-child(-n+2), .glp-trabajo-galeria .wp-block-gallery .wp-block-image:first-child:nth-last-child(-n+2) ~ .wp-block-image { grid-column: span 1; grid-row: span 1; aspect-ratio: 4 / 3; }
.glp-trabajo-galeria .wp-block-gallery:has(.wp-block-image:nth-child(2):nth-last-child(1)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.glp-trabajo-galeria .wp-block-gallery .wp-block-image a::after { content: "+"; position: absolute; right: 12px; bottom: 12px; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; background: var(--glp-rojo); color: #fff; font-size: 1.5rem; line-height: 1; font-weight: 700; opacity: 0; transform: translateY(6px); transition: opacity .2s, transform .2s; }
.glp-trabajo-galeria .wp-block-gallery .wp-block-image:hover a::after, .glp-trabajo-galeria .wp-block-gallery .wp-block-image a:focus-visible::after { opacity: 1; transform: none; }
.glp-trabajo-acciones { padding: 0 var(--glp-pad-x) clamp(64px, 8vw, 110px); }
.glp-trabajo-acciones .wp-block-buttons { gap: 12px; }

/* Visor de fotos (lo crea assets/js/visor.js) */
.glp-visor { position: fixed; inset: 0; z-index: 1000; display: flex; flex-direction: column; background: rgba(6, 7, 9, .96); color: #fff; opacity: 0; visibility: hidden; transition: opacity .2s, visibility .2s; touch-action: pan-y; }
.glp-visor.is-abierto { opacity: 1; visibility: visible; }
.glp-visor__barra { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px var(--glp-pad-x); font-family: var(--glp-mono); font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; border-bottom: 1px solid var(--glp-linea); }
.glp-visor__barra b { color: var(--glp-naranja); font-weight: 500; }
.glp-visor__escena { position: relative; flex: 1 1 auto; min-height: 0; display: flex; align-items: center; justify-content: center; padding: 14px 64px; }
.glp-visor__escena img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; box-shadow: 0 20px 60px rgba(0, 0, 0, .6); }
.glp-visor__escena img.is-cambiando { opacity: .15; }
.glp-visor__escena img { transition: opacity .2s; }
.glp-visor button { font: inherit; color: #fff; background: transparent; border: 1px solid rgba(255, 255, 255, .35); cursor: pointer; transition: background .15s, border-color .15s; }
.glp-visor button:hover, .glp-visor button:focus-visible { background: var(--glp-rojo); border-color: var(--glp-rojo); }
.glp-visor__cerrar { width: 44px; height: 44px; font-size: 1.4rem; line-height: 1; }
.glp-visor__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 64px; font-size: 1.8rem; line-height: 1; z-index: 2; }
.glp-visor__ant { left: max(8px, var(--glp-pad-x)); }
.glp-visor__sig { right: max(8px, var(--glp-pad-x)); }
.glp-visor__pie { padding: 10px var(--glp-pad-x) 16px; border-top: 1px solid var(--glp-linea); }
.glp-visor__texto { margin: 0 0 10px; font-size: .95rem; color: #d6d8db; text-align: center; min-height: 1.4em; }
.glp-visor__tiras { display: flex; gap: 8px; justify-content: center; overflow-x: auto; padding-bottom: 4px; }
.glp-visor__tiras button { flex: 0 0 auto; width: 64px; height: 64px; padding: 0; opacity: .55; overflow: hidden; }
.glp-visor__tiras button img { width: 100%; height: 100%; object-fit: cover; display: block; }
.glp-visor__tiras button[aria-current="true"] { opacity: 1; border-color: var(--glp-naranja); box-shadow: 0 0 0 2px var(--glp-naranja); }
body.glp-visor-abierto { overflow: hidden; }

@media (max-width: 1020px) {
	.glp-trabajo-galeria .wp-block-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
	.glp-trabajo-galeria .wp-block-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.glp-visor__escena { padding: 10px 8px; }
	.glp-visor__nav { top: auto; bottom: 8px; transform: none; width: 44px; height: 44px; }
	.glp-visor__escena { padding-bottom: 60px; }
}

/* ---------- Menú: hamburguesa hasta 1100px (tablet) y panel móvil ordenado ---------- */
@media (max-width: 1100px) {
	.glp-header > .wp-block-group { flex-wrap: nowrap !important; }
	.glp-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.glp-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.glp-header .glp-header__btn { margin-left: auto; }
	.glp-header .glp-nav { margin-left: 0; }
}
.wp-block-navigation__responsive-container.is-menu-open { padding: 20px var(--glp-pad-x) 40px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: stretch !important; justify-content: flex-start !important; text-align: left !important; width: 100%; gap: 0 !important; padding: 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { width: 100%; align-items: stretch !important; border-bottom: 1px solid #5c1219; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:first-child { border-top: 1px solid #5c1219; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { display: block; width: 100%; font-size: 1.1rem; padding: 16px 0; border-bottom: 0; text-align: left; letter-spacing: .06em; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[aria-current="page"] { color: var(--glp-naranja); border-bottom: 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { position: static !important; width: 100% !important; min-width: 0 !important; background: transparent !important; border: 0 !important; border-left: 2px solid var(--glp-rojo) !important; margin: 0 0 14px 4px !important; padding: 0 0 0 16px !important; align-items: stretch !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border-bottom: 1px solid rgba(255, 255, 255, .07); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item:last-child { border-bottom: 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { display: block; font-size: .92rem; font-weight: 500; letter-spacing: .03em; padding: 12px 0; color: #b9bbbf; text-align: left; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: #fff; background: transparent; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none; }

/* Galería: las fotos no deben estirar las filas (evita huecos en tablet) */
.glp-trabajo-galeria .wp-block-gallery .wp-block-image a { position: absolute; inset: 0; height: auto; }

/* Menú móvil: todo alineado a la izquierda */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { justify-content: flex-start !important; align-items: flex-start !important; width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { flex: 1 1 auto; width: 100%; text-align: left !important; justify-content: flex-start !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; }

/* Encabezado en tablet: botón y hamburguesa juntos a la derecha */
@media (max-width: 1100px) {
	.glp-header .glp-header__btn { order: 2; margin-left: auto; }
	.glp-header .glp-nav { order: 3; margin-left: 0; }
}
@media (max-width: 820px) {
	.glp-header .glp-nav { margin-left: auto; }
}

/* Galería: sin huecos según la cantidad de fotos */
.glp-trabajo-galeria .wp-block-gallery:has(.wp-block-image:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.glp-trabajo-galeria .wp-block-gallery .wp-block-image:first-child:nth-last-child(4), .glp-trabajo-galeria .wp-block-gallery .wp-block-image:first-child:nth-last-child(4) ~ .wp-block-image { grid-column: span 1; grid-row: span 1; aspect-ratio: 4 / 3; }
.glp-trabajo-galeria .wp-block-gallery .wp-block-image:nth-child(5):last-child { grid-column: span 2; aspect-ratio: 2 / 1; }
@media (max-width: 820px) {
	.glp-trabajo-galeria .wp-block-gallery .wp-block-image:first-child:nth-last-child(n+3) { grid-column: span 2; grid-row: span 1; aspect-ratio: 4 / 3; }
	.glp-trabajo-galeria .wp-block-gallery .wp-block-image:first-child:nth-last-child(4), .glp-trabajo-galeria .wp-block-gallery .wp-block-image:first-child:nth-last-child(4) ~ .wp-block-image { grid-column: span 1; aspect-ratio: 1; }
	.glp-trabajo-galeria .wp-block-gallery .wp-block-image:last-child:nth-child(even):not(:nth-child(2)):not(:nth-child(4)) { grid-column: span 2; aspect-ratio: 2 / 1; }
	.glp-trabajo-galeria .wp-block-gallery .wp-block-image:nth-child(5):last-child { grid-column: span 1; aspect-ratio: 1; }
}

/* Mapa real de Google en el pie */
.glp-mapa-real { display: block; width: 100%; height: 170px; border: 1px solid var(--glp-linea); filter: grayscale(1) invert(.92) contrast(.9); }

/* Mapa grande en Contacto */
.glp-mapa-sec { padding: clamp(40px, 6vw, 80px) var(--glp-pad-x); background: var(--glp-fondo-2); }
.glp-mapa-grande { display: block; width: 100%; height: clamp(320px, 45vw, 480px); border: 1px solid var(--glp-linea); margin-top: 24px; filter: grayscale(1) invert(.92) contrast(.9); }

/* Aviso de cookies: lo más discreto posible */
.cookieadmin_law_container .cookieadmin_consent_inside { padding: 8px 14px !important; }
.cookieadmin_law_container #cookieadmin_notice_title, .cookieadmin_law_container .cookieadmin-poweredby { display: none !important; }
.cookieadmin_law_container #cookieadmin_notice { font-size: 12px !important; line-height: 1.35 !important; margin: 0 !important; }
.cookieadmin_law_container .cookieadmin_notice_group { display: flex !important; align-items: center; justify-content: space-between; gap: 10px 16px; flex-wrap: wrap; margin: 0 !important; }
.cookieadmin_law_container .cookieadmin_notice_con { flex: 1 1 320px; min-width: 0; margin: 0 !important; }
.cookieadmin_law_container .cookieadmin_consent_btns { display: flex !important; flex-direction: row !important; flex-wrap: nowrap; gap: 6px; margin: 0 !important; width: auto !important; }
.cookieadmin_law_container .cookieadmin_btn { padding: 5px 10px !important; font-size: 12px !important; line-height: 1.2 !important; min-height: 0 !important; height: auto !important; width: auto !important; margin: 0 !important; }
@media (max-width: 600px) {
	.cookieadmin_law_container .cookieadmin_notice_group { flex-direction: column !important; align-items: stretch !important; height: auto !important; min-height: 0 !important; gap: 8px; }
	.cookieadmin_law_container .cookieadmin_notice_con { flex: 0 0 auto !important; height: auto !important; }
	.cookieadmin_law_container .cookieadmin_consent_btns { width: 100% !important; }
	.cookieadmin_law_container .cookieadmin_btn { flex: 1 1 0; padding: 6px 4px !important; font-size: 11px !important; }
}

/* ---------- Crédito: Estudio Lanzi (pie) ---------- */
.glp-footer__base .glp-credito { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; opacity: .75; transition: opacity .2s; }
.glp-footer__base .glp-credito:hover, .glp-footer__base .glp-credito:focus-visible { opacity: 1; }
.glp-credito__logo { display: block; width: 58px; height: 30px; background: url("../img/estudio-lanzi-blanco.png") center / contain no-repeat; flex: none; }
.glp-credito__txt { display: block; border-left: 1px solid var(--glp-linea); padding-left: 12px; font-size: .72rem; line-height: 1.25; color: #80838a; }
/* El botón flotante de WhatsApp no tapa el crédito en pantallas angostas. */
@media (max-width: 1360px) { .glp-footer__base .glp-credito { margin-right: 76px; } }
