/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Tema hijo de GeneratePress para Roberto García Sierra · Arquitecto técnico
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      1.0.0
*/

/* ---------- Fuentes locales (OFL) ---------- */
@font-face {
	font-family: 'Anton';
	src: url('fonts/Anton-Regular.ttf') format('truetype');
	font-weight: 400;
	font-display: swap;
}
@font-face {
	font-family: 'Work Sans';
	src: url('fonts/WorkSans-Variable.ttf') format('truetype');
	font-weight: 100 900;
	font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
	--rgs-carbon: #2B2F2C;
	--rgs-carbon-hover: #1E211F;
	--rgs-piedra: #F5F3EE;
	--rgs-blanco: #FFFFFF;
	--rgs-ocre: #C8962E;
	--rgs-teja: #B04E2E;
	--rgs-teja-hover: #963F23;
	--rgs-teja-claro: #F3DED4;
	--rgs-teja-linea: #E9B9A4;
	--rgs-borde: #DDD8CE;
	--rgs-carbon-borde: #444A46;
	--rgs-gris-pie: #BDB9B0;
	--rgs-font-display: 'Anton', Impact, sans-serif;
	--rgs-font-text: 'Work Sans', 'Helvetica Neue', sans-serif;
	--rgs-max: 1440px;
	--rgs-pad-x: 64px;
	--rgs-pad-y: 96px;
	/* Padding lateral que mantiene el contenido dentro de 1440px con fondos a sangre. */
	--rgs-gutter: max(var(--rgs-pad-x), calc((100% - var(--rgs-max)) / 2 + var(--rgs-pad-x)));
}

/* ---------- Base ---------- */
body {
	background: var(--rgs-piedra);
	color: var(--rgs-carbon);
	font-family: var(--rgs-font-text);
	-webkit-font-smoothing: antialiased;
}
a { color: var(--rgs-carbon); text-decoration: none; transition: color .15s, background-color .15s, border-color .15s; }
a:hover, a:focus { color: var(--rgs-teja); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
	outline: 3px solid var(--rgs-ocre);
	outline-offset: 3px;
}
h1, h2, h3, h4 { margin: 0; }
img { border-radius: 0; }

/* Contenedor de GP a sangre: cada sección gestiona su ancho. */
.site.grid-container { max-width: none; }
.one-container .site.container, .one-container .container, .separate-containers .inside-article { background-color: transparent; }
.site-content { padding: 0 !important; }
.separate-containers .site-main { margin: 0; }
.separate-containers .inside-article, .one-container .inside-article { padding: 0; background: transparent; }
.entry-content:not(:first-child), .entry-content { margin: 0; }
.site-main > article { margin: 0; }

/* ---------- Cabecera ---------- */
.site-header { background: var(--rgs-carbon); border-bottom: 16px solid var(--rgs-ocre); }
.home .site-header, .header-wrap .site-header { background: transparent; border-bottom: 0; }
.inside-header.grid-container { max-width: var(--rgs-max); padding: 28px var(--rgs-pad-x); }
.site-header .header-image { height: 52px; width: auto; }
.main-navigation, .main-navigation ul ul { background: transparent; }
.main-navigation .main-nav ul li a {
	color: var(--rgs-piedra);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.2;
	padding: 12px 16px;
}
.main-navigation .main-nav ul li:not(.rgs-menu-cta) > a:hover,
.main-navigation .main-nav ul li.sfHover:not(.rgs-menu-cta) > a,
.main-navigation .main-nav ul li[class*="current-menu-"]:not(.rgs-menu-cta) > a { color: var(--rgs-piedra); box-shadow: inset 0 -2px 0 var(--rgs-ocre); background: transparent; }
.main-navigation .main-nav ul li.rgs-menu-cta { margin-left: 16px; }
.main-navigation .main-nav ul li.rgs-menu-cta > a { background: var(--rgs-teja); color: #fff; font-weight: 600; padding: 12px 20px; }
.main-navigation .main-nav ul li.rgs-menu-cta > a:hover { background: var(--rgs-teja-hover); color: #fff; }
.main-navigation .main-nav ul ul { background: var(--rgs-carbon); width: 290px; box-shadow: none; border-top: 4px solid var(--rgs-ocre); }
.main-navigation .main-nav ul ul li a { padding: 12px 18px; font-size: 15px; }
.main-navigation .dropdown-menu-toggle { padding-left: 6px; padding-right: 0; }
.menu-toggle, .mobile-menu-control-wrapper .menu-toggle, .mobile-menu-control-wrapper .menu-toggle:hover, .mobile-menu-control-wrapper .menu-toggle:focus { color: var(--rgs-piedra); background: transparent; }
.rgs-tel-movil { display: none; }

/* ---------- Tipografía ---------- */
.rgs-h1, .rgs-h2, .rgs-h2-sec, .rgs-h2-cierre, .rgs-hero-title {
	font-family: var(--rgs-font-display);
	font-weight: 400;
	text-transform: uppercase;
	color: inherit;
	margin: 0;
}
.rgs-hero-title { font-size: clamp(64px, 10vw, 144px); line-height: .92; overflow-wrap: normal; word-break: normal; hyphens: none; }
.rgs-h1 { font-size: clamp(44px, 6vw, 88px); line-height: 1; }
.rgs-h2 { font-size: 64px; line-height: 1.02; }
.rgs-h2-sec { font-size: 48px; line-height: 1.05; }
.rgs-h2-cierre { font-size: 44px; line-height: 1.05; }
.rgs-eyebrow { font-size: 14px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--rgs-teja); margin: 0; }
.rgs-eyebrow a { color: inherit; border-bottom: 2px solid var(--rgs-ocre); padding-bottom: 2px; }
.rgs-lead { font-size: 19px; line-height: 1.55; margin: 0; }
.rgs-p { font-size: 18px; line-height: 1.6; margin: 0; }
.rgs-p-s { font-size: 16px; line-height: 1.5; margin: 0; }
.rgs-item-title { font-size: 21px; font-weight: 600; line-height: 1.3; margin: 0; font-family: var(--rgs-font-text); text-transform: none; }

/* ---------- Secciones ---------- */
.rgs-section { padding: var(--rgs-pad-y) var(--rgs-gutter); }
.rgs-section--blanco { background: var(--rgs-blanco); }
.rgs-section--piedra { background: var(--rgs-piedra); }
.rgs-section--carbon { background: var(--rgs-carbon); color: var(--rgs-piedra); }
.rgs-section--sin-top { padding-top: 0; }
.rgs-stack { display: flex; flex-direction: column; gap: 20px; }
.rgs-stack--l { gap: 48px; }
.rgs-stack--xl { gap: 56px; }
.rgs-stack > .gb-btn, .rgs-stack > [class*="gb-btn-"] { align-self: flex-start; }
.rgs-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.rgs-franja { height: 16px; background: var(--rgs-ocre); }
.rgs-botones { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.rgs-narrow { max-width: 860px; }

/* Botones (respaldo; el estilo canónico vive en los Estilos globales de GenerateBlocks) */
[class*="gb-btn-"] { display: inline-block; line-height: 1.2; font-size: 16px; border-radius: 0; text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }

/* ---------- Hero Home ---------- */
.rgs-hero { position: relative; min-height: 780px; display: flex; flex-direction: column; color: var(--rgs-piedra); background: var(--rgs-carbon); padding-top: 108px; }
.rgs-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rgs-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(43,47,44,.78) 0%, rgba(43,47,44,.35) 45%, rgba(43,47,44,.88) 100%); }
.rgs-hero__inner { position: relative; z-index: 1; margin-top: auto; padding: 120px var(--rgs-gutter) 64px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 40px 48px; align-items: end; }
.rgs-hero__copy { display: flex; flex-direction: column; gap: 24px; }
.home .site-header { position: relative; z-index: 5; }

/* ---------- Cabecera de página interior ---------- */
.rgs-page-head { padding: 72px var(--rgs-gutter) 64px; display: flex; flex-direction: column; gap: 20px; }
.rgs-page-head .rgs-lead { max-width: 820px; }
.rgs-page-head--foto { display: grid; grid-template-columns: 1.2fr 1fr; gap: 64px; align-items: center; }
.rgs-page-head--foto .rgs-stack { gap: 20px; }

/* ---------- Dos columnas imagen / texto ---------- */
.rgs-split { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.rgs-split--top { align-items: start; }
.rgs-split--4-8 { grid-template-columns: 4fr 8fr; align-items: start; }
.rgs-split__img { width: 100%; height: 460px; object-fit: cover; display: block; }
.rgs-split--inv > :first-child { order: 2; }

/* ---------- Lista de servicios (Home) ---------- */
.rgs-servicios { display: flex; flex-direction: column; border-top: 2px solid var(--rgs-carbon); }
.rgs-servicio { display: grid; grid-template-columns: 80px 1fr 1.3fr 40px; gap: 24px; padding: 28px 0; border-bottom: 1px solid var(--rgs-borde); align-items: center; color: var(--rgs-carbon); }
.rgs-servicio:hover, .rgs-servicio:focus { color: var(--rgs-carbon); }
.rgs-servicio__num { font-family: var(--rgs-font-display); font-size: 32px; line-height: 1; color: var(--rgs-ocre); }
.rgs-servicio__titulo { font-size: 24px; font-weight: 600; line-height: 1.3; transition: color .15s; }
.rgs-servicio:hover .rgs-servicio__titulo { color: var(--rgs-teja); }
.rgs-servicio__desc { font-size: 16px; line-height: 1.5; }
.rgs-servicio__flecha { font-size: 24px; color: var(--rgs-teja); }

/* ---------- Pasos ---------- */
.rgs-pasos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; position: relative; list-style: none; margin: 0; padding: 0; }
.rgs-pasos::before { content: ""; position: absolute; left: 0; right: 0; top: 27px; height: 4px; background: var(--rgs-teja-linea); }
.rgs-pasos--5 { grid-template-columns: repeat(5, 1fr); }
.rgs-paso { position: relative; display: flex; flex-direction: column; gap: 16px; }
.rgs-paso__num { width: 58px; height: 58px; border-radius: 50%; background: var(--rgs-teja); color: #fff; font-family: var(--rgs-font-display); font-size: 26px; display: flex; align-items: center; justify-content: center; margin: 0; }
.rgs-paso__titulo { font-size: 20px; font-weight: 600; line-height: 1.3; margin: 0; }

/* ---------- Mosaico de proyectos (Home) ---------- */
.rgs-mosaico { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 320px 320px; gap: 16px; }
.rgs-mosaico__item { position: relative; display: block; overflow: hidden; color: var(--rgs-piedra); background: var(--rgs-carbon); }
.rgs-mosaico__item:hover, .rgs-mosaico__item:focus { color: var(--rgs-piedra); }
.rgs-mosaico__item:nth-child(1) { grid-row: span 2; }
.rgs-mosaico__item:nth-child(2) { grid-column: span 2; }
.rgs-mosaico__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.rgs-mosaico__item:nth-child(1) .rgs-mosaico__img { object-position: center 30%; }
.rgs-mosaico__label { position: absolute; left: 0; bottom: 0; padding: 16px 20px; background: var(--rgs-carbon); display: flex; flex-direction: column; gap: 4px; max-width: 100%; }
.rgs-mosaico__titulo { font-size: 16px; font-weight: 600; line-height: 1.3; margin: 0; }
.rgs-mosaico__meta { font-size: 13px; line-height: 1.4; margin: 0; }
.rgs-mosaico__meta:empty { display: none; }
.rgs-mosaico__item:nth-child(1) .rgs-mosaico__label { right: 0; padding: 28px; gap: 6px; background: linear-gradient(0deg, rgba(43,47,44,.9), rgba(43,47,44,0)); }
.rgs-mosaico__item:nth-child(1) .rgs-mosaico__titulo { font-size: 24px; }
.rgs-mosaico__item:nth-child(1) .rgs-mosaico__meta { font-size: 14px; }
.rgs-mosaico__item:nth-child(2) .rgs-mosaico__label { padding: 20px 24px; }
.rgs-mosaico__item:nth-child(2) .rgs-mosaico__titulo { font-size: 18px; }

/* ---------- Argumentos ---------- */
.rgs-argumentos { display: grid; grid-template-columns: 1fr 1fr; gap: 40px 48px; }
.rgs-argumentos--3 { grid-template-columns: repeat(3, 1fr); }
.rgs-argumentos--4 { grid-template-columns: repeat(4, 1fr); gap: 32px; }
.rgs-argumento { display: flex; flex-direction: column; gap: 10px; border-top: 4px solid var(--rgs-ocre); padding-top: 20px; }

/* ---------- Listas ---------- */
.rgs-lista { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--rgs-carbon); }
.rgs-lista > li { padding: 14px 0; border-bottom: 1px solid var(--rgs-borde); font-size: 17px; line-height: 1.45; margin: 0; }
.rgs-lista--links > li { padding: 0; }
.rgs-lista--links a { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; font-weight: 600; }
.rgs-lista--links a::after { content: "→"; color: var(--rgs-teja); }
.rgs-cols-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 48px 64px; align-items: start; }
.rgs-cols-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; align-items: start; }
.rgs-h3 { font-size: 24px; font-weight: 600; line-height: 1.3; margin: 0; font-family: var(--rgs-font-text); }

/* ---------- Bloques de servicio (página Servicios) ---------- */
.rgs-bloque-servicio { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; padding: 64px 0; border-bottom: 1px solid var(--rgs-borde); }
.rgs-bloque-servicio:first-child { padding-top: 0; }
.rgs-bloque-servicio:last-child { border-bottom: 0; padding-bottom: 0; }
.rgs-bloque-servicio:nth-child(even) > :first-child { order: 2; }
.rgs-bloque-servicio__img { width: 100%; height: 420px; object-fit: cover; display: block; }
.rgs-bloque-servicio__num { font-family: var(--rgs-font-display); font-size: 32px; line-height: 1; color: var(--rgs-ocre); margin: 0; }

/* ---------- Tarjetas de proyecto ---------- */
.rgs-proyectos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px 32px; }
.rgs-card { display: flex; flex-direction: column; gap: 8px; color: var(--rgs-carbon); }
.rgs-card:hover, .rgs-card:focus { color: var(--rgs-carbon); }
.rgs-card__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; margin-bottom: 10px; background: var(--rgs-borde); }
.rgs-card__titulo { font-size: 20px; font-weight: 600; line-height: 1.3; margin: 0; transition: color .15s; font-family: var(--rgs-font-text); }
.rgs-card:hover .rgs-card__titulo { color: var(--rgs-teja); }
.rgs-card__localidad { font-size: 14px; margin: 0; }
.rgs-card__servicios { font-size: 13px; font-weight: 600; color: var(--rgs-teja); margin: 0; }
.rgs-card__localidad:empty, .rgs-card__servicios:empty { display: none; }
.rgs-card__link { font-size: 15px; font-weight: 600; color: var(--rgs-teja); margin: 6px 0 0; }
.rgs-filtros { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.rgs-filtros a { display: block; padding: 10px 16px; border: 2px solid var(--rgs-carbon); font-size: 15px; font-weight: 600; line-height: 1.2; }
.rgs-filtros a:hover { border-color: var(--rgs-teja); }
.rgs-filtros a[aria-current="true"] { background: var(--rgs-carbon); color: var(--rgs-piedra); }

/* ---------- Ficha de proyecto ---------- */
.rgs-ficha { background: var(--rgs-blanco); padding: 8px 32px; margin: 0; }
.rgs-ficha > div { display: grid; grid-template-columns: 220px 1fr; gap: 24px; padding: 16px 0; border-bottom: 1px solid var(--rgs-borde); }
.rgs-ficha > div:last-child { border-bottom: 0; }
.rgs-ficha dt { font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.rgs-ficha dd { margin: 0; font-size: 17px; line-height: 1.45; }
.rgs-proyecto-portada { width: 100%; max-height: 640px; object-fit: cover; display: block; }
.rgs-proyecto-texto { display: grid; grid-template-columns: 4fr 8fr; gap: 64px; padding: 40px 0; border-top: 2px solid var(--rgs-carbon); }
.rgs-proyecto-texto p { font-size: 18px; line-height: 1.6; margin: 0 0 1em; }
.rgs-proyecto-texto p:last-child { margin-bottom: 0; }
.rgs-galeria { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.rgs-galeria a { display: block; overflow: hidden; background: var(--rgs-borde); }
.rgs-galeria img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform .3s; }
.rgs-galeria a:hover img { transform: scale(1.03); }

/* ---------- Área de trabajo + CTA ---------- */
.rgs-cierre { display: grid; grid-template-columns: 1fr 1fr; }
.rgs-cierre__area { background: var(--rgs-teja-claro); padding: 80px var(--rgs-pad-x) 80px var(--rgs-gutter); display: flex; flex-direction: column; gap: 18px; }
.rgs-cierre__cta { background: var(--rgs-teja); color: #fff; padding: 80px var(--rgs-gutter) 80px var(--rgs-pad-x); display: flex; flex-direction: column; gap: 20px; }
.rgs-cierre { --rgs-gutter: max(var(--rgs-pad-x), calc((100vw - var(--rgs-max)) / 2 + var(--rgs-pad-x))); }
.rgs-cierre__contacto { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; font-weight: 600; }
.rgs-cierre__cta a:not([class*="gb-btn-"]) { color: #fff; border-bottom: 2px solid rgba(255,255,255,.5); }
.rgs-cierre__cta a:not([class*="gb-btn-"]):hover { border-bottom-color: #fff; }
.rgs-cta { background: var(--rgs-teja); color: #fff; padding: 80px var(--rgs-gutter); display: flex; flex-direction: column; gap: 20px; }
.rgs-cta .rgs-p { max-width: 760px; }
.rgs-cta a:not([class*="gb-btn-"]) { color: #fff; border-bottom: 2px solid rgba(255,255,255,.5); }

/* ---------- Contacto ---------- */
.rgs-datos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.rgs-dato { border-top: 4px solid var(--rgs-ocre); padding-top: 20px; display: flex; flex-direction: column; gap: 8px; }
.rgs-dato__valor { font-size: 24px; font-weight: 600; line-height: 1.3; margin: 0; overflow-wrap: anywhere; }
.rgs-form-wrap { background: var(--rgs-blanco); padding: 40px; }
.wpcf7 form { display: flex; flex-direction: column; gap: 20px; }
.wpcf7 form p { margin: 0; }
.wpcf7 .rgs-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.wpcf7 label { display: block; font-size: 15px; font-weight: 600; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; margin-top: 8px; padding: 14px 16px; font: 400 16px/1.4 var(--rgs-font-text);
	color: var(--rgs-carbon); background: var(--rgs-piedra); border: 1px solid var(--rgs-borde); border-radius: 0;
}
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { border-color: var(--rgs-carbon); background: #fff; }
.wpcf7 textarea { min-height: 160px; }
.wpcf7 .wpcf7-acceptance .wpcf7-list-item { margin: 0; font-size: 15px; }
.wpcf7 .wpcf7-acceptance a { border-bottom: 2px solid var(--rgs-ocre); }
.wpcf7 input[type="submit"] { background: var(--rgs-teja); color: #fff; padding: 18px 26px; font: 700 16px/1.2 var(--rgs-font-text); border: 0; border-radius: 0; cursor: pointer; }
.wpcf7 input[type="submit"]:hover { background: var(--rgs-teja-hover); }
.wpcf7 .rgs-form-note { font-size: 14px; }
.rgs-faq { border-top: 2px solid var(--rgs-carbon); }
.rgs-faq__item { padding: 24px 0; border-bottom: 1px solid var(--rgs-borde); display: grid; grid-template-columns: 1fr 1.3fr; gap: 24px; }

/* ---------- Páginas legales ---------- */
.rgs-legal .entry-content { max-width: calc(760px + 2 * var(--rgs-pad-x)); margin: 0 auto; padding: 72px var(--rgs-pad-x) 96px; font-size: 17px; line-height: 1.7; }
.rgs-legal .entry-content h1 { font-family: var(--rgs-font-display); font-weight: 400; text-transform: uppercase; font-size: clamp(40px, 5vw, 64px); line-height: 1; margin-bottom: 32px; }
.rgs-legal .entry-content h2 { font-size: 24px; font-weight: 600; margin: 40px 0 12px; }
.rgs-legal .entry-content h3 { font-size: 20px; font-weight: 600; margin: 28px 0 10px; }
.rgs-legal .entry-content a { border-bottom: 2px solid var(--rgs-ocre); }
.rgs-legal .entry-content table { font-size: 15px; }

/* ---------- Pie ---------- */
.site-footer { background: var(--rgs-carbon); }
.rgs-pie { background: var(--rgs-carbon); color: var(--rgs-piedra); padding: 48px var(--rgs-gutter) 32px; display: flex; flex-direction: column; gap: 32px; font-size: 14px; }
.rgs-pie a { color: var(--rgs-piedra); }
.rgs-pie a:hover { color: var(--rgs-piedra); text-decoration: underline; text-decoration-color: var(--rgs-ocre); text-underline-offset: 4px; }
.rgs-pie__fila { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.rgs-pie__fila--legal { border-top: 1px solid var(--rgs-carbon-borde); padding-top: 28px; }
.rgs-pie__logo { height: 40px; width: auto; display: block; }
.rgs-pie__menu { display: flex; gap: 24px; flex-wrap: wrap; }
.rgs-pie__kit { display: flex; gap: 28px; align-items: center; flex-wrap: wrap; }
.rgs-pie__kit-ue { height: 44px; width: auto; }
.rgs-pie__kit-prtr { height: 48px; width: auto; }
.rgs-pie__legal { display: flex; gap: 20px; flex-wrap: wrap; align-items: center; color: var(--rgs-gris-pie); }
.rgs-pie__legal p { margin: 0; }

/* ---------- Responsive ---------- */
@media (max-width: 1279px) {
	:root { --rgs-pad-x: 40px; }
	.rgs-h2 { font-size: 52px; }
	.rgs-h2-sec { font-size: 40px; }
	.rgs-h2-cierre { font-size: 38px; }
	.rgs-split, .rgs-page-head--foto, .rgs-bloque-servicio { gap: 40px; }
	.rgs-servicio { grid-template-columns: 64px 1fr 40px; row-gap: 8px; }
	.rgs-servicio__desc { grid-column: 2 / 3; grid-row: 2; }
	.rgs-servicio__flecha { grid-column: 3; grid-row: 1 / span 2; }
	.rgs-pasos, .rgs-pasos--5 { grid-template-columns: 1fr 1fr; gap: 40px 32px; }
	.rgs-pasos::before { display: none; }
	.rgs-mosaico { grid-template-columns: 1fr 1fr; grid-template-rows: none; grid-auto-rows: 300px; }
	.rgs-mosaico__item:nth-child(1) { grid-row: auto; grid-column: span 2; }
	.rgs-split--4-8, .rgs-proyecto-texto { grid-template-columns: 1fr; gap: 32px; }
	.rgs-argumentos--4 { grid-template-columns: 1fr 1fr; }
	.rgs-proyectos { grid-template-columns: 1fr 1fr; }
	.rgs-cols-3 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1024px) {
	.main-navigation .main-nav ul li a { padding: 12px 10px; }
}
@media (max-width: 768px) {
	:root { --rgs-pad-x: 20px; --rgs-pad-y: 64px; }
	.inside-header.grid-container { padding: 16px var(--rgs-pad-x); }
	.site-header .header-image { height: 40px; }
	.rgs-tel-movil { display: inline-flex; align-items: center; margin-left: auto; margin-right: 4px; padding: 10px 14px; background: var(--rgs-teja); color: #fff; font-size: 14px; font-weight: 600; line-height: 1; }
	.rgs-tel-movil:hover { color: #fff; background: var(--rgs-teja-hover); }
	.has-inline-mobile-toggle .mobile-menu-control-wrapper { margin-left: 0; }
	.has-inline-mobile-toggle #site-navigation.toggled { background: var(--rgs-carbon); margin-top: 12px; }
	.main-navigation.toggled .main-nav ul li a { padding: 14px 0; font-size: 17px; }
	.main-navigation.toggled .main-nav ul ul { width: auto; border-top: 0; padding-left: 16px; }
	.main-navigation.toggled .main-nav ul li.rgs-menu-cta { margin: 12px 0 8px; }
	.main-navigation.toggled .main-nav ul li.rgs-menu-cta > a { padding: 16px 20px; text-align: center; }
	.rgs-hero { min-height: 640px; padding-top: 72px; }
	.rgs-hero__inner { padding-top: 80px; padding-bottom: 48px; }
	.rgs-hero-title { font-size: clamp(56px, 17vw, 96px); }
	.rgs-h2 { font-size: 40px; }
	.rgs-h2-sec, .rgs-h2-cierre { font-size: 34px; }
	.rgs-page-head { padding-top: 48px; padding-bottom: 40px; }
	.rgs-split, .rgs-page-head--foto, .rgs-bloque-servicio, .rgs-cols-2, .rgs-cols-3, .rgs-cierre, .rgs-argumentos, .rgs-argumentos--3, .rgs-argumentos--4, .rgs-datos, .rgs-proyectos, .rgs-faq__item, .wpcf7 .rgs-form-grid { grid-template-columns: 1fr; }
	.rgs-split, .rgs-bloque-servicio { gap: 32px; }
	.rgs-split--inv > :first-child, .rgs-bloque-servicio:nth-child(even) > :first-child { order: 0; }
	.rgs-split__img, .rgs-bloque-servicio__img { height: 280px; }
	.rgs-bloque-servicio { padding: 48px 0; }
	.rgs-servicio { grid-template-columns: 1fr; gap: 8px; padding: 24px 0; }
	.rgs-servicio__desc { grid-column: auto; grid-row: auto; }
	.rgs-servicio__flecha { display: none; }
	.rgs-servicio__titulo { font-size: 21px; }
	.rgs-pasos, .rgs-pasos--5 { grid-template-columns: 1fr; gap: 32px; }
	.rgs-pasos::before { display: block; left: 27px; right: auto; top: 0; bottom: 0; width: 4px; height: auto; }
	.rgs-paso { display: grid; grid-template-columns: 58px 1fr; column-gap: 20px; row-gap: 6px; }
	.rgs-paso__num { grid-row: span 2; }
	.rgs-mosaico { grid-template-columns: 1fr; grid-auto-rows: 280px; }
	.rgs-mosaico__item:nth-child(1), .rgs-mosaico__item:nth-child(2) { grid-column: auto; }
	.rgs-cierre__area, .rgs-cierre__cta, .rgs-cta { padding: 56px var(--rgs-pad-x); }
	.rgs-botones > [class*="gb-btn-"], .rgs-stack > [class*="gb-btn-"], .rgs-cierre__contacto > [class*="gb-btn-"], .rgs-cta > [class*="gb-btn-"] { width: 100%; text-align: center; align-self: stretch; }
	.rgs-form-wrap { padding: 24px 20px; }
	.rgs-ficha { padding: 4px 20px; }
	.rgs-ficha > div { grid-template-columns: 1fr; gap: 4px; }
	.rgs-galeria { grid-template-columns: 1fr 1fr; gap: 8px; }
	.rgs-legal .entry-content { padding: 48px var(--rgs-pad-x) 64px; }
	.rgs-pie__fila { flex-direction: column; align-items: flex-start; }
}
