/*
Theme Name: 123GO
Theme URI: https://nueva.equipo123go.com/
Author: 123GO
Description: Tema personalizado para 123GO (reclutamiento y vacantes). Compatible con Elementor, Yoast SEO y LiteSpeed Cache.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: equipo123go
*/

/* ==========================================================================
   Tokens
   ========================================================================== */
:root {
	--navy: #00003c;
	--cyan: #66e5f5;
	--orange: #ff8a1f;
	--pale: #d5e4e7;
	--pale-2: #e9fbff;
	--ink: #0a0a1f;
	--muted: #6b7694;
	--white: #fff;
	--black: #000;
	--radius: 22px;
	--container: 1200px;
	--font-head: "Outfit", system-ui, sans-serif;
	--font-body: "Inter", system-ui, sans-serif;
}

/* ==========================================================================
   Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--font-body);
	font-size: 17px;
	line-height: 1.55;
	color: var(--navy);
	background: var(--white);
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { font-family: var(--font-head); font-weight: 800; line-height: 1.1; margin: 0 0 .5em; color: var(--navy); }
p { margin: 0 0 1em; }
ul { margin: 0; padding: 0; list-style: none; }
.container { width: min(100% - 40px, var(--container)); margin-inline: auto; }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); white-space: nowrap;
}
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 999; background: #fff; padding: 8px 14px; clip: auto; width: auto; height: auto; }
:focus-visible { outline: 3px solid var(--cyan); outline-offset: 3px; }

.section-title {
	font-size: clamp(30px, 4vw, 48px);
	text-transform: uppercase;
	text-align: center;
	letter-spacing: -.01em;
}

/* Buttons */
.btn {
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--font-head); font-weight: 700; font-size: 18px;
	padding: 16px 40px; border-radius: 999px; border: 0; cursor: pointer;
	transition: transform .2s, filter .2s;
}
.btn:hover { transform: translateY(-2px); filter: brightness(1.06); }
.btn--orange { background: var(--orange); color: var(--white); }
.btn--navy { background: var(--navy); color: var(--cyan); border-radius: 14px; }
.btn--cyan { background: var(--cyan); color: var(--black); border-radius: 12px; }

/* ==========================================================================
   Header
   ========================================================================== */
.site-header {
	position: absolute; inset: 0 0 auto 0; z-index: 20; color: var(--white);
}
.site-header__inner {
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; width: min(100% - 40px, 1260px); padding-top: 34px; padding-bottom: 22px;
}
.site-header .brand svg { width: 74px; }
.site-header .brand__text { font-size: 34px; }
.site-header .custom-logo { max-height: 52px; }
.main-nav { justify-self: center; }
.header-search { justify-self: end; }
.site-header .brand, .site-header .custom-logo-link { justify-self: start; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--white); font-family: var(--font-head); font-weight: 800; }
.brand svg { width: 64px; height: auto; color: var(--cyan); }
.brand__text { font-size: 28px; letter-spacing: -.02em; }
.brand__text small { font-size: .55em; color: var(--orange); font-style: italic; }
.custom-logo { max-height: 44px; width: auto; }
.main-nav { flex: 1; }
.main-nav ul { display: flex; gap: 26px; flex-wrap: wrap; }
.main-nav a { font-size: 15px; text-transform: uppercase; }
.main-nav a:hover { color: var(--cyan); }
.header-search {
	display: flex; align-items: center; border: 2px solid var(--white); border-radius: 999px;
	padding: 3px 12px 3px 18px; width: 200px; height: 36px;
}
.header-search input { background: none; border: 0; color: var(--white); font: inherit; font-size: 13px; width: 100%; outline: 0; }
.header-search input::placeholder { color: rgba(255,255,255,.75); }
.header-search button { background: none; border: 0; color: var(--white); cursor: pointer; padding: 4px; display: grid; }
.nav-toggle { display: none; background: none; border: 0; color: var(--white); cursor: pointer; margin-left: auto; padding: 6px; }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero {
	position: relative; min-height: 620px; display: grid; place-items: center; text-align: center;
	color: var(--white); background: #001a1f center/cover no-repeat; padding: 170px 0 110px;
}
.bgimg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.hero > .container { position: relative; z-index: 1; }
.hero__title { color: var(--white); font-size: clamp(36px, 5.6vw, 68px); text-transform: uppercase; max-width: 900px; margin-inline: auto; }
.hero__lead { max-width: 560px; margin: 0 auto 44px; font-size: 18px; }

/* ==========================================================================
   Por qué unirse
   ========================================================================== */
.why { padding: 90px 0; }
.why__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.why__img, .diff__img { border-radius: var(--radius); overflow: hidden; box-shadow: 0 10px 40px rgba(0,0,60,.12); }
.why__img img { width: 100%; aspect-ratio: 4/3.6; object-fit: cover; }
.why h2 { font-size: clamp(32px, 3.6vw, 46px); text-transform: uppercase; }
.why p { max-width: 460px; }

/* ==========================================================================
   Testimonios
   ========================================================================== */
.testimonials {
	position: relative; padding: 70px 0 60px; text-align: center; overflow: hidden;
	background: var(--pale) center/cover no-repeat;
}
.testimonials::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(213,228,231,.9); }
.testimonials > .container { position: relative; z-index: 2; }
.testimonials::after, .testimonials .quote-mark { pointer-events: none; }
.quote-mark {
	position: absolute; z-index: 1; top: 40px; font-family: Georgia, serif; font-size: 400px; line-height: .8;
	color: rgba(0,0,60,.1); font-weight: 800;
}
.quote-mark--l { left: 8%; }
.quote-mark--r { right: 8%; top: 70px; }
.slider__slide { display: none; }
.slider__slide.is-active { display: block; animation: fade .5s; }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }
.testimonial__text { max-width: 560px; margin: 32px auto; font-size: 17px; color: #000; }
.testimonial__author { display: inline-flex; align-items: center; gap: 12px; text-align: left; }
.testimonial__author img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 2px solid var(--white); }
.testimonial__name { font-family: var(--font-head); font-weight: 800; text-transform: uppercase; font-size: 20px; line-height: 1.1; }
.testimonial__role { color: var(--orange); font-style: italic; font-size: 16px; }
.dots { display: flex; justify-content: center; gap: 6px; margin-top: 44px; }
.dots button { width: 12px; height: 12px; padding: 0; border: 0; border-radius: 99px; background: var(--white); cursor: pointer; transition: width .25s; }
.dots button.is-active { width: 40px; }
.dots--dark button { background: var(--pale); }

/* ==========================================================================
   Lo que nos diferencia
   ========================================================================== */
.diff { position: relative; padding: 80px 0 100px; overflow: hidden; }
.diff__bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; background: url("assets/img/go-bg-pattern.svg") center/cover no-repeat; }
.diff > .container { position: relative; z-index: 1; }
.diff .section-title { margin-bottom: 70px; }
.diff__row { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; margin-bottom: 64px; }
.diff__row:last-child { margin-bottom: 0; }
.diff__row--rev .diff__img { order: 2; justify-self: end; }
.diff__img { max-width: 590px; }
.diff__img { position: relative; }
.diff__img img { width: 100%; aspect-ratio: 4/2.9; object-fit: cover; }
.diff__img::after {
	content: ""; position: absolute; right: 18px; bottom: 14px; width: 44px; height: 24px; opacity: .95;
	background: url("assets/img/go-mark-white.svg") center/contain no-repeat;
}
.diff__copy { padding-inline: 8%; }
.diff__copy h3 { font-size: 22px; margin-bottom: 8px; }
.diff__copy p { max-width: 260px; margin: 0; color: #000; font-size: 16px; }

/* ==========================================================================
   Quiénes somos
   ========================================================================== */
.about {
	position: relative; color: var(--white); padding: 70px 0 80px;
	background: #10201f center/cover no-repeat;
}
.about::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(0,15,18,.35); }
.about > .container { position: relative; z-index: 2; }
.about__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; padding-inline: 5%; }
.about .brand { margin-bottom: 20px; }
.about .brand svg { width: 100px; }
.about .brand__text { font-size: 44px; }
.about h3 { color: var(--white); font-size: 22px; margin-top: 36px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.15); }
.about__big { font-family: var(--font-head); font-weight: 800; font-size: clamp(34px, 4vw, 48px); line-height: 1.1; margin: 8px 0 20px; }
.about p { max-width: 330px; }
.about__grid > div:last-child p { max-width: 330px; }
.socials { display: flex; gap: 10px; }
.socials a { width: 32px; height: 32px; border-radius: 50%; background: var(--white); color: var(--navy); display: grid; place-items: center; transition: background .2s; }
.socials a:hover { background: var(--cyan); }
.socials svg { width: 17px; height: 17px; fill: currentColor; }

/* ==========================================================================
   Vacantes
   ========================================================================== */
.jobs { background: var(--pale); padding: 60px 0 60px; }
.jobs__inner { width: min(100% - 40px, 900px); margin-inline: auto; }
.jobs .section-title { text-align: left; font-size: clamp(30px, 4vw, 40px); margin-bottom: 26px; }
.jobs__search { display: flex; gap: 16px; align-items: center; }
.jobs__search .badge { flex: none; width: 54px; height: 54px; border-radius: 12px; background: var(--navy); display: grid; place-items: center; color: var(--cyan); }
.jobs__search .badge svg { width: 36px; }
.jobs__search label { position: relative; flex: 1; }
.jobs__search input {
	width: 100%; height: 52px; border: 1px solid #c9d6d9; border-radius: 12px; padding: 0 56px 0 20px;
	font: inherit; font-size: 15px; background: var(--white); color: var(--navy);
}
.jobs__search label svg { position: absolute; right: 18px; top: 50%; translate: 0 -50%; width: 26px; color: #b5d3d9; }
.chips { display: flex; flex-wrap: wrap; gap: 12px; margin: 20px 0 50px; }
.chip {
	font: 600 13px var(--font-body); color: var(--muted); background: transparent;
	border: 2px solid rgba(107,118,148,.2); border-radius: 12px; padding: 8px 16px; cursor: pointer;
}
.chip:hover, .chip.is-active { background: var(--navy); color: var(--cyan); border-color: var(--navy); }

/* --- Estructura de una vacante: copiar/pegar <article class="job"> --- */
.job {
	display: grid; grid-template-columns: 1fr 190px; gap: 10px 16px; align-items: start;
	padding: 34px 0; border-bottom: 1px solid rgba(0,0,60,.08);
}
.job[hidden] { display: none; }
.job__title { font-size: 22px; margin: 0 0 2px; }
.job__meta { font-size: 14px; font-weight: 700; margin: 0 0 14px; }
.job__meta span + span::before { content: "|"; margin: 0 6px; font-weight: 400; }
.job__desc { font-size: 14px; margin: 0; max-width: 470px; }
.job__actions { display: grid; gap: 14px; text-align: center; }
.job__actions .btn { font-size: 16px; padding: 12px 20px; }
.job__apply { font-family: var(--font-head); font-weight: 700; font-size: 17px; color: var(--orange); }
.job__apply:hover { text-decoration: underline; }
.jobs__empty { text-align: center; padding: 30px 0; }
.jobs__all {
	display: block; text-align: center; margin-top: 50px; padding: 14px; border-radius: 12px;
	background: rgba(107,118,148,.16); color: var(--muted); font-weight: 600; font-size: 14px;
}
.jobs__all:hover { background: var(--navy); color: var(--cyan); }

/* ==========================================================================
   Historias recientes
   ========================================================================== */
.stories { padding: 70px 0 90px; }
.stories .section-title { margin-bottom: 40px; }
.stories__track { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.story__img { position: relative; border-radius: 18px; overflow: hidden; }
.story__img img { width: 100%; aspect-ratio: 257/138; object-fit: cover; }
.story__img::before, .story__img::after {
	content: ""; position: absolute; width: 64px; height: 46px; background: var(--white);
}
.story__img::before { top: 0; left: 0; border-bottom-right-radius: 64px; width: 62px; height: 46px; }
.story__img::after { bottom: 0; right: 0; border-top-left-radius: 64px; }
.story__body { padding: 30px 32px 0; }
.story__body h3 { font-size: 20px; margin-bottom: 10px; }
.story__body p { font-size: 13px; color: #000; line-height: 1.55; }
.story__more { color: var(--orange); font-size: 13px; }
.story__more:hover { text-decoration: underline; }
.stories .dots { margin-top: 70px; }

/* ==========================================================================
   Red de talento
   ========================================================================== */
.talent {
	position: relative; color: var(--white); text-align: center; padding: 70px 0 80px;
	background: linear-gradient(135deg, #0d1a1a 0%, #163332 55%, #1f5350 100%);
}
.talent::before {
	content: ""; position: absolute; inset: 0; opacity: .25; mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
}
.talent > .container { position: relative; }
.talent h2 { color: var(--white); text-transform: uppercase; font-size: clamp(30px, 4vw, 44px); }
.talent p { max-width: 640px; margin: 0 auto 40px; font-size: 18px; }
.cv-form { display: flex; gap: 16px; width: min(100%, 665px); margin-inline: auto; }
.cv-form__file {
	flex: 1; display: flex; align-items: center; gap: 12px; height: 52px; padding: 0 18px;
	background: var(--white); border-radius: 12px; color: #9aa3b5; font-size: 14px; cursor: pointer; text-align: left; overflow: hidden;
}
.cv-form__file svg { width: 30px; flex: none; color: #cfd3dc; }
.cv-form__file span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cv-form__file input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cv-form__file:focus-within { outline: 3px solid var(--cyan); }
.cv-form .btn { height: 52px; padding: 0 44px; font-size: 18px; }
.cv-form .hp { position: absolute; left: -9999px; }
.notice { max-width: 665px; margin: 0 auto 24px; padding: 12px 18px; border-radius: 12px; font-size: 15px; }
.notice--ok { background: rgba(102,229,245,.18); border: 1px solid var(--cyan); }
.notice--err { background: rgba(255,84,112,.18); border: 1px solid #ff5470; }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { background: var(--black); color: var(--white); padding: 60px 0 28px; font-size: 14px; }
.site-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 0; padding-bottom: 50px; border-bottom: 1px solid rgba(255,255,255,.14); }
.site-footer__grid > div { padding-inline: 40px; }
.site-footer__grid > div:first-child { padding-left: 0; }
.site-footer__grid > div + div { border-left: 1px solid rgba(255,255,255,.14); }
.site-footer .brand__text { font-size: 40px; }
.site-footer .brand svg { width: 86px; }
.site-footer .socials { margin: 18px 0 26px; }
.site-footer address { font-style: normal; line-height: 1.9; }
.site-footer address a, .legal .rg { color: var(--orange); }
.footer-title { font: 400 14px var(--font-body); color: #9aa3a5; margin-bottom: 26px; }
.site-footer li { margin-bottom: 4px; text-transform: uppercase; font-size: 13.5px; }
.site-footer .col--about li { text-transform: none; }
.site-footer li a:hover { color: var(--cyan); }
.legal { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px; padding-top: 32px; font-size: 13px; }
.legal nav { display: flex; gap: 20px; }

/* ==========================================================================
   Páginas internas / blog
   ========================================================================== */
.page-hero { background: var(--navy); color: var(--white); padding: 150px 0 60px; }
.page-hero h1 { color: var(--white); font-size: clamp(32px, 4.4vw, 54px); text-transform: uppercase; margin: 0; }
.entry { padding: 60px 0 90px; }
.entry .container { max-width: 820px; }
.entry img { border-radius: 14px; }
.entry a { color: var(--orange); text-decoration: underline; }
.posts-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.posts-grid .story__body { padding: 22px 6px 0; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 960px) {
	.nav-toggle { display: block; }
	.main-nav, .header-search { display: none; }
	.site-header.is-open { background: var(--navy); position: fixed; }
	.site-header.is-open .site-header__inner { flex-wrap: wrap; }
	.site-header.is-open .main-nav, .site-header.is-open .header-search { display: block; flex-basis: 100%; }
	.site-header.is-open .main-nav ul { flex-direction: column; gap: 14px; padding: 10px 0; }
	.site-header.is-open .header-search { display: flex; margin-bottom: 14px; width: 100%; }
	.why__grid, .diff__row, .about__grid { grid-template-columns: 1fr; gap: 30px; }
	.diff__row--rev .diff__img { order: 0; justify-self: stretch; }
	.diff__img { max-width: none; }
	.diff__copy { padding-inline: 0; }
	.diff__copy p, .about p { max-width: none; }
	.about__grid { padding-inline: 0; }
	.quote-mark { font-size: 200px; }
	.stories__track, .posts-grid {
		display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px; padding-bottom: 10px;
	}
	.stories__track > *, .posts-grid > * { flex: 0 0 82%; scroll-snap-align: center; }
	.site-footer__grid { grid-template-columns: 1fr; gap: 34px; }
	.site-footer__grid > div { padding-inline: 0 !important; border-left: 0 !important; }
}
@media (max-width: 640px) {
	.job { grid-template-columns: 1fr; }
	.job__actions { grid-template-columns: 1fr 1fr; align-items: center; }
	.cv-form { flex-direction: column; }
	.hero { padding: 130px 0 80px; min-height: 520px; }
	.legal { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.slider__slide.is-active { animation: none; }
}

/* Páginas distintas a la portada: cabecera sólida (funciona sobre cualquier diseño de Elementor) */
body:not(.home):not(.header-overlay) .site-header { position: relative; background: var(--black); }
body:not(.home) .page-hero { padding-top: 60px; }
body:not(.home) .site-header.is-open { position: sticky; top: 0; }
@media (max-width: 960px) {
	.site-header__inner { display: flex; padding-top: 20px; }
	.site-header .brand svg { width: 60px; }
	.site-header .brand__text { font-size: 28px; }
	.header-search { height: auto; }
}

/* ==========================================================================
   Landing de vacantes (Elementor)
   ========================================================================== */
.vac-hero { --text-align: center; position: relative; min-height: 380px; padding: 190px 20px 90px !important; color: var(--white); text-align: center; background-color: #001a1f; }
.vac-hero .hero__title, .vac-hero .hero__lead { text-align: center; }
.vac-hero .hero__title { font-size: clamp(38px, 5vw, 60px); margin-bottom: 18px; }
.vac-hero .hero__lead { max-width: 640px; margin: 0 auto; font-size: 18px; }
.vac-search-wrap { padding: 50px 20px 0 !important; }
.vac-search { position: relative; width: min(100%, 560px); margin: 0 auto; }
.vac-search input {
	width: 100%; height: 56px; border: 0; border-radius: 12px; padding: 0 60px 0 22px;
	background: var(--pale); color: var(--navy); font: inherit; font-size: 15px;
}
.vac-search input::placeholder { color: var(--muted); }
.vac-search svg { position: absolute; right: 20px; top: 50%; translate: 0 -50%; width: 28px; color: var(--navy); pointer-events: none; }

.vac-toolbar-wrap { padding: 50px 0 0 !important; }
.vac-toolbar {
	display: flex; justify-content: space-between; align-items: center; gap: 20px;
	width: min(100% - 40px, var(--container)); margin: 0 auto; padding-bottom: 14px; font-size: 14px;
}
.vac-toolbar__left { display: flex; gap: 40px; align-items: center; }
.vac-toolbar button { background: none; border: 0; padding: 0; font: 700 14px var(--font-body); color: var(--navy); cursor: pointer; }
.vac-toolbar button:hover { color: var(--orange); }
.vac-toolbar__right { color: var(--orange); font-size: 12px; font-weight: 600; }

.jobs-layout { border-top: 1px solid rgba(0,0,60,.14); }
.jobs-sidebar { padding: 26px 20px 60px 0 !important; }
.jobs-list { border-left: 1px solid rgba(0,0,60,.14); }
.vac-side h3 { font-size: 22px; margin: 6px 0 12px; }
.vac-side h3:not(:first-child) { margin-top: 34px; }
.vac-filter { display: flex; align-items: center; gap: 10px; font-size: 13px; margin-bottom: 8px; cursor: pointer; }
.vac-filter input { appearance: none; width: 16px; height: 16px; margin: 0; border-radius: 3px; background: var(--pale); border: 1px solid #c3d3d6; cursor: pointer; display: grid; place-content: center; }
.vac-filter input:checked { background: var(--navy); border-color: var(--navy); }
.vac-filter input:checked::after { content: ""; width: 8px; height: 4px; border-left: 2px solid var(--cyan); border-bottom: 2px solid var(--cyan); rotate: -45deg; translate: 0 -1px; }

.job--row { grid-template-columns: 1fr 170px; align-items: center; padding: 28px 8% 28px 4%; }
.job--row .job__title { font-size: 20px; line-height: 1.15; margin-bottom: 10px; }
.job--row .job__meta { font-size: 12px; margin: 0; }
.job--row .btn { font-size: 13px; padding: 10px 20px; align-self: start; }
.job-block { border-bottom: 1px solid rgba(0,0,60,.14); }
.job-block[hidden], .job-block.is-hidden, .job.is-hidden { display: none !important; }

.vac-pager-wrap { padding: 20px 0 80px !important; }
.vac-pager { display: flex; justify-content: space-between; align-items: center; padding: 0 8% 0 4%; font-size: 12px; }
.vac-pager[hidden], .vac-pager__btn[hidden] { display: none; }
.vac-pager__nav { display: flex; gap: 12px; }
.vac-pager__info { color: var(--muted); font-weight: 600; }
.vac-pager__info b { color: var(--muted); }
.vac-pager__btn { background: var(--white); border: 2px solid var(--pale); border-radius: 10px; padding: 8px 20px; font: 700 12px var(--font-body); color: var(--navy); cursor: pointer; }
.vac-pager__btn:hover:not(:disabled) { background: var(--navy); color: var(--cyan); border-color: var(--navy); }
.vac-pager__btn:disabled { opacity: .35; cursor: default; }
.vac-pager__info b { display: inline-block; background: var(--pale); padding: 2px 10px; margin: 0 4px; }

@media (max-width: 960px) {
	.jobs-layout { flex-direction: column !important; }
	.jobs-layout > .e-con-inner { flex-direction: column !important; }
	.jobs-sidebar, .jobs-list { width: 100% !important; }
	.jobs-list { border-left: 0; border-top: 1px solid rgba(0,0,60,.14); }
	.jobs-sidebar { padding-right: 0 !important; }
	.vac-toolbar { flex-wrap: wrap; }
	.job--row { grid-template-columns: 1fr; padding-inline: 0; }
	.vac-pager { padding-inline: 0; flex-wrap: wrap; gap: 10px; }
}

/* ==========================================================================
   Juego Responsable (Elementor)
   ========================================================================== */
.rg-section { padding-block: 40px 30px !important; }
.rg-section--intro { padding-top: 70px !important; }
.rg-hero { display: flex; justify-content: space-between; align-items: center; gap: 40px; padding: 0 4.5% 50px; }
.rg-hero h1 { font-size: clamp(38px, 4.6vw, 56px); margin-bottom: 14px; }
.rg-hero p { max-width: 640px; font-size: 17px; margin: 0; }
.rg-shield { flex: none; width: 150px; height: auto; }
.rg-banner {
	display: flex; align-items: center; gap: 44px; padding: 26px 50px; border-radius: 14px;
	background: var(--orange); color: var(--white); font-size: 16px; line-height: 1.55;
}
.rg-banner p { margin: 0; font-weight: 300; }
.rg-banner strong { font-weight: 700; }
.rg-banner .rg-go { flex: none; width: 76px; height: auto; }
.rg-banner--alert { padding: 22px 40px; gap: 30px; font-size: 14px; }
.rg-banner--alert .rg-warn { flex: none; width: 34px; }
a.rg-banner:hover { filter: brightness(1.05); }
.rg-head { padding: 40px 4.5% 30px; }
.rg-head h2 { font-size: clamp(32px, 4vw, 46px); margin-bottom: 16px; }
.rg-head p { max-width: 720px; margin: 0; }
.rg-stack { gap: 14px !important; margin-bottom: 14px; }
.rg-card { background: var(--pale); border-radius: 12px; padding: 22px 36px; }
.rg-signal h3 { font-family: var(--font-body); font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.rg-signal p { margin: 0; font-size: 15px; font-weight: 300; }

.rg-grid { display: grid !important; gap: 16px; }
.rg-grid--2 { grid-template-columns: repeat(2, 1fr) !important; }
.rg-grid--3 { grid-template-columns: repeat(3, 1fr) !important; margin-bottom: 14px; }
.rg-block { height: 100%; }
.rg-block .elementor-widget, .rg-block .elementor-widget-container, .rg-block .rg-card { height: 100%; }
.rg-org, .rg-tool { padding: 30px 34px; }
.rg-org { display: flex; flex-direction: column; }
.rg-org h3, .rg-tool h3 { display: flex; align-items: center; gap: 10px; font-size: 20px; margin-bottom: 14px; }
.rg-ico { width: 34px; height: 34px; flex: none; }
.rg-org p { font-size: 13px; font-weight: 300; }
.rg-tool p { font-size: 13px; font-weight: 300; margin: 0; }
.rg-facts { margin: 6px 0 26px; font-size: 13px; }
.rg-facts div { display: flex; gap: 12px; margin-bottom: 6px; }
.rg-facts dt { margin: 0; font-weight: 300; }
.rg-facts dd { margin: 0; font-weight: 700; }
.rg-facts a, .rg-org a:not(.rg-btn) { color: var(--orange); font-weight: 700; }
.rg-btn {
	margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 24px;
	background: var(--navy); color: var(--orange); font-family: var(--font-head); font-weight: 700; font-size: 13px;
	padding: 12px 18px 12px 20px; border-radius: 12px;
}
.rg-btn::after { content: ""; border: 5px solid transparent; border-left: 6px solid var(--orange); opacity: .6; }
.rg-btn:hover { filter: brightness(1.2); }

@media (max-width: 960px) {
	.rg-hero { flex-direction: column-reverse; align-items: flex-start; padding-inline: 0; }
	.rg-shield { width: 110px; }
	.rg-head { padding-inline: 0; }
	.rg-banner { flex-direction: column; align-items: flex-start; gap: 16px; padding: 24px; }
	.rg-banner--alert { flex-direction: row; }
	.rg-grid--2, .rg-grid--3 { grid-template-columns: 1fr !important; }
	.rg-card { padding-inline: 22px; }
}
