/* Rediseno gruporadiovigo.com (26/10/2026). Todo cuelga de body.grv2. */
body.grv2 {
	--grv-navy: #00324f;
	--grv-blue: #004a74;
	--grv-sky: #0f6ea3;
	--grv-ink: #1d1d1b;
	--grv-muted: #5b6670;
	--grv-tint: #f2f6f9;
	--grv-line: #dde5ec;
	--grv-radius: 14px;
	font-family: "Poppins", sans-serif;
	color: var(--grv-ink);
	background: #fff;
}
body.grv2 p { color: inherit; }
body.grv2 .grv-wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

/* ---------- Cabecera ---------- */
body.grv2 .site-header {
	position: sticky; top: 0; z-index: 100;
	background: #fff;
	border-bottom: 1px solid var(--grv-line);
}
body.admin-bar.grv2 .site-header { top: 32px; }
body.grv2 .site-header-content {
	max-width: 1248px; margin: 0 auto;
	padding-top: 14px; padding-bottom: 14px;
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
body.grv2 .custom-logo { max-height: 42px; width: auto; }
body.grv2 .main-navigation .menu-primary > li > a {
	font-size: 15px; font-weight: 500; color: var(--grv-ink);
	padding: 8px 12px; border-radius: 8px;
}
body.grv2 .main-navigation .menu-primary > li > a:hover,
body.grv2 .main-navigation .menu-primary > li.current-menu-item > a {
	color: var(--grv-blue); background: var(--grv-tint);
}
body.grv2 .main-navigation .menu-primary > li > a::after,
body.grv2 .main-navigation .menu-primary > li > a::before { display: none; }
body.grv2 .main-navigation .menu-primary > li.menu-item-2818 > a {
	background: var(--grv-blue); color: #fff; margin-left: 6px;
}
body.grv2 .main-navigation .menu-primary > li.menu-item-2818 > a:hover { background: var(--grv-navy); }
body.grv2 .site-header-content > .search-form { display: none; }
@media (min-width: 56em) {
	body.grv2 .site-header-content { flex-wrap: nowrap; }
	body.grv2 .site-branding { flex: 0 0 auto; }
	body.grv2 .main-navigation { flex: 1 1 auto; width: auto; margin: 0; }
	body.grv2 #site-navigation-container, body.grv2 .menu-primary { width: auto; justify-content: flex-end; flex-wrap: nowrap; }
	body.grv2 .main-navigation .menu-primary > li { margin: 0; }
}

/* ---------- Botones ---------- */
body.grv2 .grv-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
body.grv2 .grv-btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 50px; padding: 0 26px; border-radius: 999px;
	font-weight: 600; font-size: 16px; text-decoration: none;
	transition: transform .15s, background-color .15s, box-shadow .15s;
}
body.grv2 .grv-btn:hover { transform: translateY(-1px); }
body.grv2 .grv-btn--primary { background: #fff; color: var(--grv-navy); }
body.grv2 .grv-btn--primary:hover { box-shadow: 0 8px 24px rgba(0,0,0,.25); }
body.grv2 .grv-btn--ghost { color: #fff; border: 1.5px solid rgba(255,255,255,.7); }
body.grv2 .grv-btn--ghost:hover { background: rgba(255,255,255,.12); }
body.grv2 .grv-btn--dark { background: var(--grv-blue); color: #fff; }
body.grv2 .grv-btn--dark:hover { background: var(--grv-navy); }
body.grv2 .grv-btn--whatsapp { background: #25d366; color: #0b2e1a; }

/* ---------- Hero ---------- */
body.grv2 .grv-hero {
	position: relative; overflow: hidden; color: #fff;
	background: var(--grv-navy);
	min-height: min(78vh, 720px);
	display: flex; align-items: center;
}
body.grv2 .grv-hero__media {
	position: absolute; inset: 0;
	background: url(/wp-content/uploads/2023/02/IMG-20230203-WA0004-1296x946.jpg) center 60% / cover no-repeat;
}
body.grv2 .grv-hero__media::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(100deg, rgba(0,32,52,.94) 0%, rgba(0,50,79,.82) 45%, rgba(0,74,116,.35) 100%);
}
body.grv2 .grv-hero__inner { position: relative; width: 100%; padding-top: 96px; padding-bottom: 96px; }
body.grv2 .grv-hero__title {
	font-size: clamp(36px, 5.6vw, 68px); line-height: 1.05; font-weight: 800;
	letter-spacing: -.02em; text-transform: none; color: #fff; margin: 0 0 22px; max-width: 17ch;
}
body.grv2 .grv-hero__lead { font-size: clamp(17px, 1.6vw, 20px); line-height: 1.6; max-width: 54ch; color: rgba(255,255,255,.88); margin: 0; }
body.grv2 .grv-eyebrow {
	display: inline-block; font-size: 13px; font-weight: 600; letter-spacing: .14em;
	text-transform: uppercase; color: #9fd3f2; margin: 0 0 18px;
}
body.grv2 .grv-eyebrow--dark { color: var(--grv-sky); margin-bottom: 10px; }

/* ---------- Cifras ---------- */
body.grv2 .grv-stats { background: var(--grv-blue); color: #fff; }
body.grv2 .grv-stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
body.grv2 .grv-stats__grid > div { padding: 30px 20px; border-left: 1px solid rgba(255,255,255,.15); }
body.grv2 .grv-stats__grid > div:first-child { border-left: 0; padding-left: 0; }
body.grv2 .grv-stats strong { display: block; font-size: 36px; font-weight: 800; line-height: 1.1; }
body.grv2 .grv-stats span { font-size: 14px; color: rgba(255,255,255,.8); }

/* ---------- Secciones ---------- */
body.grv2 .grv-section { padding: 96px 0; }
body.grv2 .grv-section--tint { background: var(--grv-tint); }
body.grv2 .grv-head { max-width: 760px; margin-bottom: 48px; }
body.grv2 .grv-head h2, body.grv2 .grv-story h2 {
	font-size: clamp(28px, 3.4vw, 42px); line-height: 1.15; font-weight: 800;
	letter-spacing: -.015em; text-transform: none; margin: 0 0 16px; color: var(--grv-ink);
}
body.grv2 .grv-head p, body.grv2 .grv-story p { font-size: 17px; line-height: 1.7; color: var(--grv-muted); margin: 0; }
body.grv2 .grv-story p.grv-eyebrow { font-size: 13px; color: var(--grv-sky); margin-bottom: 10px; }

/* Marcas */
body.grv2 .grv-brands { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
body.grv2 .grv-brand {
	display: flex; flex-direction: column; align-items: center; text-align: center;
	padding: 28px 18px 24px; border: 1px solid var(--grv-line); border-radius: var(--grv-radius);
	background: #fff; text-decoration: none; color: var(--grv-ink);
	transition: transform .2s, box-shadow .2s, border-color .2s;
}
body.grv2 .grv-brand:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,50,79,.12); border-color: transparent; }
body.grv2 .grv-brand__logo { height: 110px; display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
body.grv2 .grv-brand__logo img { max-height: 110px; max-width: 150px; width: auto; height: auto; object-fit: contain; }
body.grv2 .grv-brand__name { font-weight: 700; font-size: 17px; }
body.grv2 .grv-brand__freq { font-size: 13px; color: var(--grv-muted); margin-top: 4px; line-height: 1.4; }

/* Tarjetas de servicios */
body.grv2 .grv-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
body.grv2 .grv-card {
	display: flex; flex-direction: column; padding: 30px 26px; background: #fff;
	border-radius: var(--grv-radius); text-decoration: none; color: var(--grv-ink);
	box-shadow: 0 1px 2px rgba(0,0,0,.04); transition: transform .2s, box-shadow .2s;
}
body.grv2 .grv-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,50,79,.12); }
body.grv2 .grv-card__icon {
	width: 52px; height: 52px; border-radius: 12px; background: var(--grv-tint);
	display: flex; align-items: center; justify-content: center; margin-bottom: 22px;
}
body.grv2 .grv-card__icon svg { width: 26px; height: 26px; fill: var(--grv-blue); }
body.grv2 .grv-card h3 { font-size: 19px; font-weight: 700; margin: 0 0 10px; text-transform: none; }
body.grv2 .grv-card p { font-size: 15px; line-height: 1.6; color: var(--grv-muted); margin: 0 0 22px; flex: 1; }
body.grv2 .grv-card__more { font-weight: 600; font-size: 15px; color: var(--grv-blue); }
body.grv2 .grv-card__more::after { content: " →"; transition: margin .15s; }
body.grv2 .grv-card:hover .grv-card__more::after { margin-left: 4px; }

/* Historia */
body.grv2 .grv-story { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
body.grv2 .grv-story__img { margin: 0; }
body.grv2 .grv-story__img img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--grv-radius); display: block; }

/* Franja UE */
body.grv2 .grv-eu { border-top: 1px solid var(--grv-line); padding: 28px 0; }
body.grv2 .grv-eu__inner { display: flex; align-items: center; gap: 20px; }
body.grv2 .grv-eu img { width: 90px; height: auto; display: block; }
body.grv2 .grv-eu p { margin: 0; font-size: 14px; color: var(--grv-muted); }
body.grv2 .grv-eu p a { color: var(--grv-blue); font-weight: 600; }

/* Paginas maquetadas con secciones grv-* (portada e interiores): a todo el ancho */
body.grv-full .site-content,
body.grv-full .content-area,
body.grv-full .site-main,
body.grv-full .entry-content,
body.grv-full article { max-width: none; padding: 0; margin: 0; }
body.grv-full .entry-content > * { max-width: none; margin-top: 0; margin-bottom: 0; }

/* ---------- Paginas interiores ---------- */
/* Banda de titulo: la de las paginas nuevas y la del tema en las demas */
body.grv2 .grv-page-hero,
body.grv2 .page-header {
	background: var(--grv-navy) linear-gradient(110deg, rgba(0,32,52,1) 0%, rgba(0,74,116,.9) 100%);
	color: #fff; padding: 88px 0 80px; margin: 0;
}
body.grv2 .page-header { width: 100vw; margin-left: calc(50% - 50vw); }
body.grv2 .page-header-content { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
body.grv2 .grv-page-hero h1,
body.grv2 .page-header .page-title {
	font-size: clamp(34px, 4.6vw, 56px); line-height: 1.08; font-weight: 800; letter-spacing: -.02em;
	color: #fff; margin: 0 0 18px; max-width: 20ch; text-transform: none;
}
body.grv2 .grv-page-hero__lead,
body.grv2 .page-header .page-summary { font-size: clamp(17px, 1.5vw, 19px); line-height: 1.6; color: rgba(255,255,255,.85); max-width: 60ch; margin: 0; }
body.grv2 .page-header .page-summary p { color: inherit; margin: 0; }

/* Texto corrido (legales, Ediprem, subvenciones...) */
body.grv2 .content-area { padding-top: 0; }
body.grv2:not(.grv-full) .site-main { padding-bottom: 80px; }
body.grv2:not(.grv-full) .entry-content { padding-top: 64px; }
body.grv2:not(.grv-full).no-primary-title .entry-content { padding-top: 32px; }
body.grv2:not(.grv-full) .entry-content > *,
body.grv2:not(.grv-full) .entry-content > .alignwide-wrap > .alignwide { max-width: 860px; margin-left: auto; margin-right: auto; }
body.grv2:not(.grv-full) .entry-content p,
body.grv2:not(.grv-full) .entry-content li { font-size: 16px; line-height: 1.75; color: #3a444c; }
body.grv2:not(.grv-full) .entry-content h2,
body.grv2:not(.grv-full) .entry-content h3,
body.grv2:not(.grv-full) .entry-content h4 { color: var(--grv-ink); letter-spacing: -.01em; text-transform: none; margin-top: 2em; }
body.grv2:not(.grv-full) .entry-content h2 { font-size: clamp(24px, 2.4vw, 30px); font-weight: 800; }
body.grv2:not(.grv-full) .entry-content h3 { font-size: 20px; font-weight: 700; }
body.grv2:not(.grv-full) .entry-content img { border-radius: var(--grv-radius); }
body.grv2 .entry-content table { border-collapse: collapse; width: 100%; font-size: 14px; border: 1px solid var(--grv-line); border-radius: 10px; overflow: hidden; }
body.grv2 .entry-content th { background: var(--grv-tint); color: var(--grv-ink); font-weight: 600; text-align: left; }
body.grv2 .entry-content th, body.grv2 .entry-content td { padding: 10px 12px; border: 0; border-bottom: 1px solid var(--grv-line); vertical-align: top; }
body.grv2 .entry-content .wp-block-table { overflow-x: auto; }

/* Formularios (Contact Form 7) */
body.grv2 .wpcf7 label, body.grv2 .wpcf7 p { font-size: 14px; font-weight: 500; color: var(--grv-ink); }
body.grv2 .wpcf7 label { display: block; width: 100%; }
body.grv2 .wpcf7 p:has(> label + label) { display: flex; gap: 12px; }
body.grv2 .wpcf7 p:has(> label + label) > label { flex: 1; }
body.grv2 .wpcf7 .wpcf7-list-item label { display: inline-flex; width: auto; }
body.grv2 .wpcf7 input[type=text], body.grv2 .wpcf7 input[type=email], body.grv2 .wpcf7 input[type=tel],
body.grv2 .wpcf7 input[type=number], body.grv2 .wpcf7 input[type=date], body.grv2 .wpcf7 select, body.grv2 .wpcf7 textarea {
	width: 100%; max-width: none; margin-top: 6px; padding: 12px 14px; font: inherit; font-size: 15px;
	border: 1px solid #c9d4dd; border-radius: 10px; background: #fff; color: var(--grv-ink); box-shadow: none;
}
body.grv2 .wpcf7 input:focus, body.grv2 .wpcf7 select:focus, body.grv2 .wpcf7 textarea:focus {
	outline: none; border-color: var(--grv-sky); box-shadow: 0 0 0 3px rgba(15,110,163,.18);
}
body.grv2 .wpcf7 .wpcf7-list-item { margin: 6px 16px 6px 0; display: inline-flex; align-items: center; gap: 6px; font-weight: 400; }
body.grv2 .wpcf7 input[type=checkbox], body.grv2 .wpcf7 input[type=radio] { accent-color: var(--grv-blue); width: 18px; height: 18px; }
body.grv2 .wpcf7 input[type=submit] {
	background: var(--grv-blue); color: #fff; border: 0; border-radius: 999px; padding: 15px 36px;
	font: inherit; font-weight: 600; font-size: 16px; cursor: pointer; text-transform: none; letter-spacing: 0;
}
body.grv2 .wpcf7 input[type=submit]:hover { background: var(--grv-navy); }
body.grv2 .wpcf7 h3, body.grv2 .wpcf7 h4 { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--grv-sky); margin: 28px 0 8px; }
body.grv2 .wpcf7-response-output { border-radius: 10px; }
body.grv2 .grv-form { max-width: 820px; margin: 0 auto; background: #fff; border-radius: var(--grv-radius); padding: 48px; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
body.grv2 .grv-form > h2 { font-size: clamp(26px, 3vw, 34px); font-weight: 800; letter-spacing: -.015em; margin: 0 0 8px; text-transform: none; }
body.grv2 .grv-form > p { color: var(--grv-muted); margin: 0 0 24px; }

/* Bloques de las paginas nuevas */
body.grv2 .grv-section--navy { background: var(--grv-navy); color: #fff; }
body.grv2 .grv-section--navy h2 { color: #fff; font-size: clamp(28px, 3.4vw, 42px); line-height: 1.15; font-weight: 800; letter-spacing: -.015em; margin: 0; text-transform: none; }
body.grv2 .grv-section--navy p { color: rgba(255,255,255,.85); font-size: 17px; line-height: 1.7; }
body.grv2 .grv-section--navy a:not(.grv-btn) { color: #9fd3f2; }
body.grv2 .grv-split { display: grid; grid-template-columns: 1fr 1.3fr; gap: 64px; align-items: center; }
body.grv2 .grv-split--top { align-items: start; grid-template-columns: 1fr 1fr; }
body.grv2 .grv-split h2 { font-size: clamp(24px, 2.6vw, 32px); font-weight: 800; letter-spacing: -.015em; margin: 0 0 16px; text-transform: none; }
body.grv2 .grv-split p { font-size: 16px; line-height: 1.7; color: var(--grv-muted); }
body.grv2 .grv-section--navy .grv-split p { color: rgba(255,255,255,.85); }
body.grv2 .grv-story__img--tall img { aspect-ratio: 3/4; max-height: 560px; }
body.grv2 .grv-story p + p { margin-top: 14px; }
body.grv2 .grv-note { margin-top: 32px; font-size: 14px; color: var(--grv-muted); }
body.grv2 .grv-note a { color: var(--grv-blue); font-weight: 600; }

/* Linea de tiempo */
body.grv2 .grv-timeline { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
body.grv2 .grv-timeline li { background: #fff; border-radius: var(--grv-radius); padding: 26px 24px; margin: 0; border-top: 4px solid var(--grv-sky); }
body.grv2 .grv-timeline__year { display: block; font-size: 30px; font-weight: 800; color: var(--grv-blue); line-height: 1; margin-bottom: 14px; }
body.grv2 .grv-timeline h3 { font-size: 17px; font-weight: 700; margin: 0 0 8px; text-transform: none; }
body.grv2 .grv-timeline p { font-size: 15px; line-height: 1.6; color: var(--grv-muted); margin: 0; }

/* Galeria de fotos */
body.grv2 .grv-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
body.grv2 .grv-gallery figure { margin: 0; }
body.grv2 .grv-gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--grv-radius); display: block; }
body.grv2 .grv-gallery figcaption { font-size: 14px; color: var(--grv-muted); margin-top: 10px; }

/* Reproductores */
body.grv2 .grv-players { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
body.grv2 .grv-player {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px;
	padding: 24px; border: 1px solid var(--grv-line); border-radius: var(--grv-radius); background: #fff;
	transition: box-shadow .2s, border-color .2s;
}
body.grv2 .grv-player.is-active { border-color: var(--grv-sky); box-shadow: 0 0 0 3px rgba(15,110,163,.15); }
body.grv2 .grv-player__logo { width: 100%; height: 96px; display: flex; align-items: center; justify-content: center; }
body.grv2 .grv-player__logo img { max-width: 220px; max-height: 96px; width: auto; height: auto; object-fit: contain; }
body.grv2 .grv-player__info h3 { font-size: 17px; font-weight: 700; margin: 0; text-transform: none; }
body.grv2 .grv-player__info p { font-size: 14px; color: var(--grv-muted); margin: 2px 0 0; }
body.grv2 .grv-play {
	align-self: stretch; display: flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 48px; border-radius: 999px; background: var(--grv-blue); color: #fff; font-weight: 600; text-decoration: none;
}
body.grv2 .grv-play::before { content: ""; width: 0; height: 0; border-style: solid; border-width: 7px 0 7px 12px; border-color: transparent transparent transparent currentColor; }
body.grv2 .grv-play:hover { background: var(--grv-navy); color: #fff; }
body.grv2 .grv-play.is-playing { background: #25d366; color: #0b2e1a; }
body.grv2 .grv-play.is-playing::before { border: 0; width: 12px; height: 14px; border-left: 4px solid currentColor; border-right: 4px solid currentColor; }
body.grv2 .grv-play.is-loading { opacity: .75; }
body.grv2 .grv-tv {
	margin-top: 20px; display: grid; grid-template-columns: 220px 1fr auto; gap: 32px; align-items: center;
	padding: 28px 32px; background: var(--grv-tint); border-radius: var(--grv-radius); text-decoration: none; color: var(--grv-ink);
}
body.grv2 .grv-tv img { width: 100%; height: auto; }
body.grv2 .grv-tv h3 { font-size: 20px; font-weight: 700; margin: 0 0 4px; text-transform: none; }
body.grv2 .grv-tv p { margin: 0; color: var(--grv-muted); }
body.grv2 .grv-tv:hover .grv-card__more::after { margin-left: 4px; }

/* Contacto */
body.grv2 .grv-contact { display: grid; grid-template-columns: 1.6fr 1fr; gap: 40px; align-items: start; }
body.grv2 .grv-contact__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
body.grv2 .grv-info { padding: 28px 26px; border: 1px solid var(--grv-line); border-radius: var(--grv-radius); }
body.grv2 .grv-info h3 { font-size: 18px; font-weight: 700; margin: 0 0 10px; text-transform: none; }
body.grv2 .grv-info p { font-size: 15px; line-height: 1.7; color: var(--grv-muted); margin: 0 0 6px; }
body.grv2 .grv-info a { color: var(--grv-blue); font-weight: 600; }
body.grv2 .grv-contact__img { margin: 0; }
body.grv2 .grv-contact__img img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: var(--grv-radius); display: block; }

/* Tarjetas grandes y listas */
body.grv2 .grv-cards--two { grid-template-columns: 1fr 1fr; }
body.grv2 .grv-card--big { padding: 40px 36px; border: 1px solid var(--grv-line); }
body.grv2 .grv-card--big h3 { font-size: 24px; }
body.grv2 .grv-card--big p { font-size: 16px; }
body.grv2 .grv-checks, body.grv2 .grv-steps { margin: 20px 0 0; padding: 0; list-style: none; }
body.grv2 .grv-checks li, body.grv2 .grv-steps li { position: relative; padding-left: 40px; margin-bottom: 16px; font-size: 16px; line-height: 1.6; color: var(--grv-muted); }
body.grv2 .grv-checks li::before {
	content: ""; position: absolute; left: 0; top: 2px; width: 24px; height: 24px; border-radius: 50%;
	background: var(--grv-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23004a74' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center / 15px no-repeat;
}
body.grv2 .grv-steps { counter-reset: paso; }
body.grv2 .grv-steps li::before {
	counter-increment: paso; content: counter(paso); position: absolute; left: 0; top: 0;
	width: 28px; height: 28px; border-radius: 50%; background: var(--grv-blue); color: #fff;
	font-size: 14px; font-weight: 700; display: flex; align-items: center; justify-content: center;
}
body.grv2 .grv-steps strong { color: var(--grv-ink); }
body.grv2:not(.grv-full) .entry-content a:not(.wp-block-button__link) { color: var(--grv-blue); }
body.grv2 .grv-form a, body.grv2 .grv-split a:not(.grv-btn) { color: var(--grv-blue); font-weight: 600; }
body.grv2 .grv-section--navy .grv-split a:not(.grv-btn) { color: #9fd3f2; }
body.grv2 .wp-block-button__link {
	background: var(--grv-blue); color: #fff; border-radius: 999px; padding: 14px 28px; font-weight: 600;
}
body.grv2 .wp-block-button__link:hover { background: var(--grv-navy); }
body.grv2 .wp-block-separator.is-style-wide { border-color: var(--grv-line); opacity: 1; }

/* ---------- Pie ---------- */
body.grv2 .site-footer { background: var(--grv-navy); color: rgba(255,255,255,.78); }
body.grv2 .site-footer-section { background: transparent; }
body.grv2 .footer-widgets-content { max-width: 1248px; margin: 0 auto; padding-top: 64px; padding-bottom: 40px; }
body.grv2 .site-footer .widget_media_image { display: none; }
body.grv2 .site-footer .widget-title { color: #fff; font-size: 15px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
body.grv2 .site-footer a, body.grv2 .site-footer p { color: rgba(255,255,255,.78); }
body.grv2 .site-footer a:hover { color: #fff; }
body.grv2 .site-footer .menu li::before,
body.grv2 .site-footer .menu a::before { content: none !important; display: none !important; }
body.grv2 .site-footer .menu li { padding-left: 0; margin-bottom: 8px; }
body.grv2 .site-footer img { background: #fff; padding: 8px; border-radius: 8px; }

/* ---------- Cookies ---------- */
body.grv2 .cky-consent-container .cky-consent-bar {
	border-radius: 14px; box-shadow: 0 20px 50px rgba(0,0,0,.2); border: 0;
}
body.grv2 .cky-consent-container { left: 16px; right: 16px; bottom: 16px; width: auto; max-width: 980px; margin: 0 auto; }
body.grv2 .cky-notice-des, body.grv2 .cky-notice-des * { font-family: "Poppins", sans-serif !important; font-size: 13px !important; }
body.grv2 .cky-btn { border-radius: 999px !important; font-family: "Poppins", sans-serif !important; }
body.grv2 .cky-btn-accept { background: var(--grv-blue) !important; border-color: var(--grv-blue) !important; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	body.grv2 .grv-brands { grid-template-columns: repeat(3, 1fr); }
	body.grv2 .grv-cards { grid-template-columns: repeat(2, 1fr); }
	body.grv2 .grv-players { grid-template-columns: repeat(2, 1fr); }
	body.grv2 .grv-contact { grid-template-columns: 1fr; }
	body.grv2 .grv-contact__img { display: none; }
}
@media (max-width: 55.99em) {
	body.grv2 .site-header-content { flex-wrap: nowrap; padding-top: 10px; padding-bottom: 10px; }
	body.grv2 .main-navigation { margin-left: auto; }
	body.grv2 .menu-toggle {
		background: var(--grv-tint); color: var(--grv-blue); box-shadow: none;
		width: 44px; height: 44px; padding: 0; border-radius: 10px; margin: 0; position: relative; z-index: 1000; transform: none; left: auto; right: auto;
	}
	body.grv2 .menu-toggle svg { fill: var(--grv-blue); }
}
@media (max-width: 760px) {
	body.grv2 .grv-wrap { padding: 0 20px; }
	body.grv2 .grv-hero__title br { display: none; }
	body.grv2 .grv-hero { min-height: 0; }
	body.grv2 .grv-hero__inner { padding-top: 64px; padding-bottom: 64px; }
	body.grv2 .grv-hero__media { background-position: 30% center; }
	body.grv2 .grv-hero__media::after { background: linear-gradient(180deg, rgba(0,32,52,.9), rgba(0,50,79,.88)); }
	body.grv2 .grv-actions .grv-btn { width: 100%; }
	body.grv2 .grv-stats__grid { grid-template-columns: 1fr 1fr; }
	body.grv2 .grv-stats__grid > div { padding: 22px 0 22px 16px; border-left: 0; }
	body.grv2 .grv-stats__grid > div:nth-child(odd) { padding-left: 0; }
	body.grv2 .grv-stats strong { font-size: 28px; }
	body.grv2 .grv-section { padding: 64px 0; }
	body.grv2 .grv-head { margin-bottom: 32px; }
	body.grv2 .grv-brands { grid-template-columns: 1fr 1fr; gap: 12px; }
	body.grv2 .grv-brand { padding: 20px 12px; }
	body.grv2 .grv-brand__logo, body.grv2 .grv-brand__logo img { height: auto; max-height: 80px; }
	body.grv2 .grv-brand__logo { height: 80px; }
	body.grv2 .grv-brand:last-child { grid-column: span 2; }
	body.grv2 .grv-cards { grid-template-columns: 1fr; }
	body.grv2 .grv-story { grid-template-columns: 1fr; gap: 32px; }
	body.grv2 .grv-eu__inner { flex-direction: column; align-items: flex-start; }
	body.grv2 .grv-page-hero, body.grv2 .page-header { padding: 56px 0 48px; }
	body.grv2 .page-header-content { padding: 0 20px; }
	body.grv2 .grv-split, body.grv2 .grv-split--top { grid-template-columns: 1fr; gap: 32px; }
	body.grv2 .grv-gallery, body.grv2 .grv-players, body.grv2 .grv-contact__cards, body.grv2 .grv-cards--two { grid-template-columns: 1fr; }
	body.grv2 .grv-timeline { grid-template-columns: 1fr; }
	body.grv2 .grv-tv { grid-template-columns: 1fr; gap: 16px; padding: 24px; }
	body.grv2 .grv-tv img { max-width: 200px; }
	body.grv2 .grv-form { padding: 28px 20px; }
	body.grv2 .grv-card--big { padding: 30px 24px; }
	body.grv2:not(.grv-full) .entry-content { padding-top: 40px; }
}

/* Formulario de visitas escolares (CF7 2575) */
body.grv2 .grv-f { border: 0; margin: 0 0 36px; padding: 0; min-width: 0; }
body.grv2 .grv-f legend {
	display: flex; align-items: center; gap: 12px; padding: 0; margin-bottom: 18px;
	font-size: 18px; font-weight: 700; color: var(--grv-ink);
}
body.grv2 .grv-f legend span {
	width: 30px; height: 30px; border-radius: 50%; background: var(--grv-blue); color: #fff;
	font-size: 14px; display: flex; align-items: center; justify-content: center;
}
body.grv2 .grv-f-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
body.grv2 .grv-f-grid + .grv-f-grid { margin-top: 18px; }
body.grv2 .grv-f-grid--3 { grid-template-columns: repeat(3, 1fr); }
body.grv2 .grv-f-grid .grv-f-full { grid-column: 1 / -1; }
body.grv2 .grv-f-grid label { margin: 0; }
body.grv2 .grv-f small { font-weight: 400; color: var(--grv-muted); }
body.grv2 .grv-f-help { display: block; margin-top: 6px; font-size: 13px; }
body.grv2 .grv-f-help.is-error { color: #c62828; font-weight: 500; }
body.grv2 .wpcf7 select {
	appearance: none; padding-right: 40px; cursor: pointer;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%235b6670' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") right 10px center / 22px no-repeat;
}
body.grv2 .wpcf7 ::placeholder { color: #9aa5ae; }
body.grv2 .wpcf7 .wpcf7-not-valid { border-color: #c62828; }
body.grv2 .wpcf7 .wpcf7-not-valid-tip { font-size: 13px; color: #c62828; margin-top: 4px; }
body.grv2 .grv-f-end { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding-top: 24px; border-top: 1px solid var(--grv-line); }
body.grv2 .grv-f-end .grv-f-accept { width: auto; font-weight: 400; }
body.grv2 .grv-f-end .grv-f-accept .wpcf7-list-item { margin: 0 8px 0 0; }
body.grv2 .grv-f-end p { margin: 0; }
body.grv2 .wpcf7 input[type=submit]:disabled { opacity: .45; cursor: not-allowed; }
body.grv2 .wpcf7 .wpcf7-spinner { margin: 0 0 0 12px; }
body.grv2 .wpcf7 form .wpcf7-response-output { margin: 24px 0 0; padding: 14px 18px; font-size: 15px; }
body.grv2 .wpcf7 form.sent .wpcf7-response-output { border-color: #25d366; background: #eafaf0; }
@media (max-width: 760px) {
	body.grv2 .grv-f-grid, body.grv2 .grv-f-grid--3 { grid-template-columns: 1fr; }
	body.grv2 .grv-f-end { flex-direction: column; align-items: stretch; }
	body.grv2 .grv-f-end input[type=submit] { width: 100%; }
}

/* Redes sociales */
body.grv2 .grv-social { display: flex; flex-wrap: wrap; gap: 12px; }
body.grv2 .grv-social__link {
	display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 22px 0 16px;
	border-radius: 999px; background: var(--grv-blue); color: #fff; font-weight: 600; font-size: 15px; text-decoration: none;
	transition: background-color .15s, transform .15s;
}
body.grv2 .grv-social__link:hover { background: var(--grv-navy); color: #fff; transform: translateY(-1px); }
body.grv2 .grv-social__link svg { width: 20px; height: 20px; fill: currentColor; flex: none; }
body.grv2 .grv-follow { background: var(--grv-tint); padding: 64px 0; }
body.grv2 .grv-follow__inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
body.grv2 .grv-follow h2 { font-size: clamp(24px, 2.6vw, 32px); font-weight: 800; letter-spacing: -.015em; margin: 0; text-transform: none; }
body.grv2 .grv-info--wide { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
body.grv2 .grv-info--wide h3 { margin: 0; }
body.grv2 .grv-info .grv-social__link { color: #fff; }
/* En el pie: solo iconos redondos */
body.grv2 .grv-social--foot { margin-top: 18px; gap: 10px; }
body.grv2 .site-footer .grv-social--foot .grv-social__link {
	width: 42px; min-height: 42px; height: 42px; padding: 0; justify-content: center;
	background: rgba(255,255,255,.1); color: #fff;
}
body.grv2 .site-footer .grv-social--foot .grv-social__link:hover { background: rgba(255,255,255,.22); }
body.grv2 .grv-social--foot span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body.grv2 .grv-foot-contact { line-height: 1.8; }
@media (max-width: 760px) {
	body.grv2 .grv-follow { padding: 48px 0; }
	body.grv2 .grv-follow .grv-social { width: 100%; }
	body.grv2 .grv-follow .grv-social__link { flex: 1; justify-content: center; padding: 0 12px; }
}

/* Casillas y opciones de los formularios (practicas) */
body.grv2 .grv-f-group { font-size: 14px; font-weight: 500; color: var(--grv-ink); }
body.grv2 .grv-f-group .wpcf7-form-control { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
body.grv2 .grv-f-group .wpcf7-list-item { margin: 0; }
body.grv2 .grv-f-group .wpcf7-list-item > label {
	display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border: 1px solid #c9d4dd; border-radius: 999px;
	font-weight: 500; cursor: pointer; transition: border-color .15s, background-color .15s;
}
body.grv2 .grv-f-group .wpcf7-list-item > label:has(input:checked) { border-color: var(--grv-blue); background: var(--grv-tint); color: var(--grv-blue); }
body.grv2 .grv-f-group .wpcf7-free-text { width: auto; min-width: 200px; margin: 0 0 0 4px; padding: 8px 12px; }
body.grv2 .grv-f-group .grv-f-help { margin-top: 8px; font-weight: 400; color: var(--grv-muted); }
