/*!
 * Raineau Group Legacy — main.css
 * ---------------------------------------------------------------------------
 * Sitio memorial trilingüe. Prefijo BEM-light .rgl-.
 * Paleta: Bordeaux/Marfil/Champagne (sin Vert Domaine).
 */

/* ───── TOKENS ───── */
:root {
	--rgl-bordeaux:  #6B2737;
	--rgl-noir:      #1A1A1A;
	--rgl-marfil:    #F5F1E8;
	--rgl-champagne: #C9A86A;
	--rgl-taupe:     #8B7E6F;
	--rgl-white:     #FFFFFF;

	--rgl-font-display:   'Playfair Display', Georgia, serif;
	--rgl-font-editorial: 'Cormorant Garamond', Georgia, serif;
	--rgl-font-body:      'Crimson Pro', Georgia, serif;
	--rgl-font-ui:        'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	--rgl-font-tracking:  'DM Sans', -apple-system, sans-serif;

	--rgl-container: 1440px;
	--rgl-ease:      cubic-bezier(0.22, 0.61, 0.36, 1);
	--rgl-ease-slow: cubic-bezier(0.16, 1, 0.3, 1);
}

* { box-sizing: border-box; }
*::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--rgl-marfil);
	color: var(--rgl-noir);
	font-family: var(--rgl-font-ui);
	font-size: 16px;
	line-height: 1.7;
	font-weight: 300;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.skip-link {
	position: absolute; left: -9999px; top: 8px;
	padding: 10px 16px; background: var(--rgl-noir); color: var(--rgl-marfil);
	z-index: 1000; font-family: var(--rgl-font-tracking); font-size: 12px;
	letter-spacing: 0.22em; text-transform: uppercase;
}
.skip-link:focus { left: 8px; }

/* ───── TIPOGRAFÍA ───── */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--rgl-font-display);
	font-weight: 400;
	letter-spacing: 0.005em;
	margin: 0;
	color: var(--rgl-noir);
	line-height: 1.25;
}
em {
	font-family: var(--rgl-font-editorial);
	font-style: italic;
	color: var(--rgl-bordeaux);
	font-weight: 500;
}
a { color: var(--rgl-bordeaux); text-decoration: none; transition: color 0.6s var(--rgl-ease); }
a:hover, a:focus { color: var(--rgl-champagne); }
img { max-width: 100%; height: auto; display: block; }

/* ───── HELPERS ───── */
.rgl-eyebrow {
	font-family: var(--rgl-font-tracking);
	font-size: 9px;
	letter-spacing: 0.42em;
	text-transform: uppercase;
	color: var(--rgl-taupe);
	margin-bottom: 36px;
	display: inline-block;
	position: relative;
	padding-left: 50px;
	font-weight: 500;
}
.rgl-eyebrow::before {
	content: ''; position: absolute; left: 0; top: 50%;
	transform: translateY(-50%) scaleX(0); transform-origin: left;
	width: 36px; height: 1px; background: var(--rgl-champagne);
	transition: transform 1.2s var(--rgl-ease-slow);
}
.rgl-fade-in.is-visible .rgl-eyebrow::before { transform: translateY(-50%) scaleX(1); }
.rgl-section--noir .rgl-eyebrow,
.rgl-section--bordeaux .rgl-eyebrow { color: var(--rgl-champagne); }

/* ───── HEADER / NAV ───── */
.rgl-nav {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(245, 241, 232, 0.94);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-bottom: 0.5px solid rgba(26, 26, 26, 0.08);
}
.rgl-nav__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 22px 40px;
	max-width: var(--rgl-container);
	margin: 0 auto;
}
.rgl-logo {
	color: var(--rgl-noir);
	font-family: var(--rgl-font-display);
	font-size: 18px;
	letter-spacing: 0.32em;
	font-weight: 400;
	text-transform: uppercase;
	flex-shrink: 0;
}
.rgl-logo:hover { color: var(--rgl-bordeaux); }
.rgl-logo img { max-height: 44px; width: auto; }

.rgl-nav__menu { flex: 1; display: flex; justify-content: center; }
.rgl-nav__menu .rgl-menu {
	display: flex; gap: 26px; list-style: none; margin: 0; padding: 0;
}
.rgl-menu li { margin: 0; }
.rgl-menu a {
	font-family: var(--rgl-font-tracking);
	font-size: 10px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--rgl-noir);
	font-weight: 400;
	position: relative;
	padding-bottom: 4px;
	transition: color 0.6s var(--rgl-ease);
}
.rgl-menu a::after {
	content: ''; position: absolute; bottom: 0; left: 0;
	width: 0; height: 1px; background: var(--rgl-bordeaux);
	transition: width 0.5s var(--rgl-ease);
}
.rgl-menu a:hover { color: var(--rgl-bordeaux); }
.rgl-menu a:hover::after { width: 100%; }

/* Language switcher */
.rgl-lang-switcher {
	display: flex;
	align-items: center;
	gap: 4px;
	flex-shrink: 0;
}
.rgl-lang {
	font-family: var(--rgl-font-tracking);
	font-size: 10px;
	letter-spacing: 0.28em;
	color: var(--rgl-taupe);
	font-weight: 500;
	padding: 4px 6px;
	transition: color 0.4s var(--rgl-ease);
}
.rgl-lang:hover { color: var(--rgl-bordeaux); }
.rgl-lang.is-active { color: var(--rgl-bordeaux); border-bottom: 1px solid var(--rgl-champagne); padding-bottom: 2px; }
.rgl-lang-sep { color: rgba(139, 126, 111, 0.4); font-size: 10px; }

/* ───── HERO ───── */
.rgl-hero {
	padding: 110px 40px 130px;
	text-align: center;
	background: var(--rgl-marfil);
	position: relative;
	overflow: hidden;
}
.rgl-hero__bg {
	position: absolute; inset: 0;
	background-size: cover; background-position: center;
	opacity: 0.12;
	filter: grayscale(0.5) saturate(0.6);
	transform: scale(1.05);
	animation: rgl-hero-zoom 18s var(--rgl-ease-slow) forwards;
	pointer-events: none;
}
@keyframes rgl-hero-zoom { to { transform: scale(1.12); } }

.rgl-hero__content {
	position: relative; z-index: 2;
	max-width: var(--rgl-container); margin: 0 auto;
}
.rgl-hero__mark {
	font-family: var(--rgl-font-display);
	font-size: clamp(36px, 5vw, 58px);
	font-weight: 400;
	letter-spacing: 0.22em;
	margin: 0 0 18px;
	line-height: 1;
	opacity: 0;
	animation: rgl-fade 1.4s var(--rgl-ease) 0.3s forwards;
}
.rgl-hero__descriptor {
	font-family: var(--rgl-font-tracking);
	font-size: 10px;
	letter-spacing: 0.42em;
	text-transform: uppercase;
	color: var(--rgl-taupe);
	margin-bottom: 48px;
	opacity: 0;
	animation: rgl-fade 1.4s var(--rgl-ease) 0.8s forwards;
}
.rgl-hero__line {
	width: 0; height: 1px;
	background: var(--rgl-champagne);
	margin: 0 auto 48px;
	animation: rgl-draw 1.6s var(--rgl-ease) 1.2s forwards;
}
@keyframes rgl-draw { to { width: 60px; } }

.rgl-hero__tagline {
	font-family: var(--rgl-font-editorial);
	font-style: italic;
	font-size: clamp(22px, 2.4vw, 30px);
	color: var(--rgl-noir);
	max-width: 760px;
	margin: 0 auto 32px;
	line-height: 1.5;
	font-weight: 400;
	opacity: 0;
	animation: rgl-fade 1.4s var(--rgl-ease) 1.6s forwards;
}
.rgl-hero__intro {
	font-family: var(--rgl-font-body);
	font-weight: 300;
	font-size: 17px;
	line-height: 1.8;
	color: var(--rgl-taupe);
	max-width: 640px;
	margin: 0 auto 56px;
	opacity: 0;
	animation: rgl-fade 1.4s var(--rgl-ease) 1.9s forwards;
}
.rgl-hero__thumbs {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
	max-width: 840px; margin: 0 auto;
	opacity: 0;
	animation: rgl-fade 1.4s var(--rgl-ease) 2.2s forwards;
}
.rgl-hero__thumb {
	height: 200px;
	background-size: cover; background-position: center;
	filter: grayscale(0.3) saturate(0.78) brightness(0.95);
	transition: filter 1s var(--rgl-ease), transform 1s var(--rgl-ease);
}
.rgl-hero__thumb:hover { filter: grayscale(0) saturate(1) brightness(1); transform: translateY(-4px); }
@keyframes rgl-fade { to { opacity: 1; } }

/* ───── SECCIONES BASE ───── */
.rgl-section { padding: 110px 40px; background: var(--rgl-marfil); position: relative; }
.rgl-section--no-top { padding-top: 0; }
.rgl-section--marfil   { background: var(--rgl-marfil); }
.rgl-section--noir     { background: var(--rgl-noir); color: var(--rgl-marfil); }
.rgl-section--bordeaux { background: var(--rgl-bordeaux); color: var(--rgl-marfil); }
.rgl-section--noir h1, .rgl-section--noir h2, .rgl-section--noir h3 { color: var(--rgl-marfil); }
.rgl-section--bordeaux h1, .rgl-section--bordeaux h2, .rgl-section--bordeaux h3 { color: var(--rgl-marfil); }
.rgl-section--bordeaux em, .rgl-section--noir em { color: var(--rgl-champagne); }

.rgl-section__title {
	font-size: clamp(28px, 3.4vw, 40px);
	line-height: 1.25;
	max-width: 760px;
	margin: 0 0 40px;
	font-weight: 400;
}

.rgl-img {
	background-size: cover; background-position: center;
	filter: grayscale(0.3) saturate(0.78) brightness(0.95);
	transition: filter 1.2s var(--rgl-ease), transform 1.2s var(--rgl-ease);
	overflow: hidden;
}
.rgl-img:hover { filter: grayscale(0) saturate(1) brightness(1); transform: scale(1.015); }

/* ───── FAMILIA ───── */
.rgl-familia { text-align: center; max-width: 900px; margin: 0 auto; }
.rgl-familia__imgs {
	display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
	margin-bottom: 60px;
}
.rgl-familia__imgs .rgl-img { height: 280px; }
.rgl-familia__quote {
	font-family: var(--rgl-font-editorial);
	font-style: italic;
	font-size: clamp(28px, 3.6vw, 44px);
	line-height: 1.35;
	color: var(--rgl-noir);
	margin: 0 auto 60px;
	font-weight: 400;
	max-width: 780px;
}
.rgl-familia__body {
	font-family: var(--rgl-font-body);
	font-weight: 300;
	font-size: 19px;
	line-height: 1.85;
	max-width: 680px;
	margin: 0 auto;
}

/* ───── TRAYECTORIA ───── */
.rgl-trayectoria__grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 70px;
	align-items: center; margin-top: 60px;
	max-width: var(--rgl-container); margin-left: auto; margin-right: auto;
}
.rgl-trayectoria__img-wrap { position: relative; }
.rgl-trayectoria__img-main {
	height: 520px;
	background-size: cover; background-position: center;
	filter: grayscale(0.35) saturate(0.7);
	transition: filter 1.2s var(--rgl-ease);
}
.rgl-trayectoria__img-wrap:hover .rgl-trayectoria__img-main { filter: grayscale(0) saturate(1); }
.rgl-trayectoria__img-overlay {
	position: absolute; bottom: -32px; right: -32px;
	width: 62%; height: 270px;
	background-size: cover; background-position: center;
	filter: grayscale(0.4) saturate(0.7);
	border: 6px solid var(--rgl-noir);
	transition: transform 1.2s var(--rgl-ease);
}
.rgl-trayectoria__img-wrap:hover .rgl-trayectoria__img-overlay { transform: translate(-8px, -8px); }
.rgl-trayectoria__timeline { padding-left: 28px; border-left: 1px solid rgba(245, 241, 232, 0.18); }
.rgl-trayectoria__step { margin-bottom: 40px; position: relative; }
.rgl-trayectoria__step::before {
	content: ''; position: absolute; left: -35px; top: 8px;
	width: 13px; height: 13px;
	background: var(--rgl-noir);
	border: 1px solid var(--rgl-champagne);
	border-radius: 50%;
}
.rgl-trayectoria__step.is-current::before {
	background: var(--rgl-champagne);
	box-shadow: 0 0 0 4px rgba(201, 168, 106, 0.25);
}
.rgl-trayectoria__label {
	font-family: var(--rgl-font-display);
	font-size: 24px;
	color: var(--rgl-champagne);
	font-weight: 400;
	margin-bottom: 10px;
	letter-spacing: 0.02em;
}
.rgl-trayectoria__text {
	font-family: var(--rgl-font-editorial);
	font-size: 17px;
	color: rgba(245, 241, 232, 0.85);
	line-height: 1.6;
	font-style: italic;
	max-width: 380px;
	margin: 0;
}
.rgl-trayectoria__narrative {
	max-width: 740px; margin: 90px auto 0;
	font-family: var(--rgl-font-body);
	font-weight: 300;
	font-size: 18px;
	line-height: 1.9;
	color: rgba(245, 241, 232, 0.85);
	font-style: italic;
	text-align: center;
	padding-top: 50px;
	border-top: 1px solid rgba(245, 241, 232, 0.12);
}

/* ───── PRINCIPIOS ───── */
.rgl-principios {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
	margin-top: 60px;
	max-width: var(--rgl-container); margin-left: auto; margin-right: auto;
}
.rgl-principio {
	background: var(--rgl-white);
	border: 0.5px solid rgba(107, 39, 55, 0.1);
	padding: 0;
	transition: transform 0.8s var(--rgl-ease), box-shadow 0.8s var(--rgl-ease);
}
.rgl-principio:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 30px rgba(26, 26, 26, 0.06);
}
.rgl-principio__img {
	width: 100%; height: 180px;
	background-size: cover; background-position: center;
	filter: grayscale(0.4) saturate(0.7);
	transition: filter 1s var(--rgl-ease);
}
.rgl-principio:hover .rgl-principio__img { filter: grayscale(0) saturate(1); }
.rgl-principio__num {
	font-family: var(--rgl-font-display);
	font-size: 14px;
	color: var(--rgl-champagne);
	letter-spacing: 0.32em;
	padding: 24px 28px 0;
}
.rgl-principio__name {
	font-family: var(--rgl-font-display);
	font-size: 24px;
	color: var(--rgl-bordeaux);
	font-weight: 400;
	padding: 12px 28px 0;
	margin: 0;
}
.rgl-principio__text {
	font-family: var(--rgl-font-editorial);
	font-size: 15px;
	line-height: 1.7;
	color: var(--rgl-noir);
	padding: 14px 28px 32px;
	margin: 0;
}

/* ───── SECTORES ───── */
.rgl-sectores {
	display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px;
	margin-top: 60px;
	max-width: var(--rgl-container); margin-left: auto; margin-right: auto;
}
.rgl-sector {
	display: grid; grid-template-columns: 1fr 1fr;
	background: rgba(245, 241, 232, 0.05);
	border: 0.5px solid rgba(245, 241, 232, 0.1);
	min-height: 280px;
}
.rgl-sector__img {
	background-size: cover; background-position: center;
	filter: grayscale(0.4) saturate(0.7);
	transition: filter 1.2s var(--rgl-ease);
}
.rgl-sector:hover .rgl-sector__img { filter: grayscale(0) saturate(1); }
.rgl-sector__body { padding: 32px 28px; display: flex; flex-direction: column; justify-content: center; }
.rgl-sector__num {
	font-family: var(--rgl-font-display);
	font-size: 13px;
	color: var(--rgl-champagne);
	letter-spacing: 0.32em;
	margin-bottom: 14px;
}
.rgl-sector__title {
	font-family: var(--rgl-font-display);
	font-size: 22px;
	color: var(--rgl-marfil);
	font-weight: 400;
	margin: 0 0 14px;
}
.rgl-sector__text {
	font-family: var(--rgl-font-editorial);
	font-size: 15px;
	color: rgba(245, 241, 232, 0.78);
	line-height: 1.7;
	margin: 0;
}
.rgl-sectores__disclaimer {
	max-width: 760px;
	margin: 60px auto 0;
	text-align: center;
	font-family: var(--rgl-font-editorial);
	font-size: 14px;
	color: rgba(245, 241, 232, 0.55);
}

/* ───── DESTACADOS (Bordeaux) ───── */
.rgl-destacados__title {
	font-family: var(--rgl-font-editorial) !important;
	font-style: italic;
	color: var(--rgl-champagne) !important;
}
.rgl-destacados__body {
	max-width: 720px;
	font-family: var(--rgl-font-body);
	font-weight: 300;
	font-size: 18px;
	line-height: 1.85;
	color: rgba(245, 241, 232, 0.88);
	margin: 0 0 60px;
}
.rgl-destacados {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px;
	max-width: var(--rgl-container); margin: 0 auto;
}
.rgl-destacado {
	padding: 32px 0 36px;
	border-top: 1px solid rgba(201, 168, 106, 0.3);
	position: relative;
}
.rgl-destacado__num {
	font-family: var(--rgl-font-display);
	font-size: 13px;
	color: var(--rgl-champagne);
	letter-spacing: 0.32em;
	margin-bottom: 18px;
}
.rgl-destacado__name {
	font-family: var(--rgl-font-display);
	font-size: 28px;
	color: var(--rgl-marfil);
	font-weight: 400;
	margin: 0 0 20px;
	letter-spacing: 0.005em;
}
.rgl-destacado__line {
	width: 30px;
	height: 1px;
	background: var(--rgl-champagne);
}

/* ───── BOILERPLATE ───── */
.rgl-boilerplate {
	max-width: 820px;
	margin: 60px auto 0;
	font-family: var(--rgl-font-body);
	font-weight: 300;
	font-size: 20px;
	line-height: 1.9;
	color: var(--rgl-noir);
	font-style: italic;
	text-align: center;
	position: relative;
	padding: 0 40px;
}
.rgl-boilerplate::before, .rgl-boilerplate::after {
	font-family: var(--rgl-font-display);
	font-style: italic;
	font-size: 68px;
	color: var(--rgl-champagne);
	opacity: 0.4;
	position: absolute;
	line-height: 1;
}
.rgl-boilerplate::before { content: '«'; top: -12px; left: 0; }
.rgl-boilerplate::after  { content: '»'; bottom: -34px; right: 0; }

/* ───── PRESENCIA / MARQUEE / STATS ───── */
.rgl-marquee {
	background: var(--rgl-noir);
	padding: 18px 0;
	overflow: hidden;
	white-space: nowrap;
	border-top: 1px solid var(--rgl-champagne);
	border-bottom: 1px solid var(--rgl-champagne);
	margin: 60px 0;
}
.rgl-marquee__track {
	display: inline-flex; gap: 48px; align-items: center;
	animation: rgl-marquee 38s linear infinite;
}
@keyframes rgl-marquee {
	0%   { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}
.rgl-marquee__item {
	font-family: var(--rgl-font-display);
	font-size: 14px;
	color: var(--rgl-marfil);
	letter-spacing: 0.32em;
	text-transform: uppercase;
}
.rgl-marquee__dot { color: var(--rgl-champagne); opacity: 0.4; font-size: 14px; }

.rgl-presencia-imgs {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
	margin-top: 40px;
	max-width: var(--rgl-container); margin-left: auto; margin-right: auto;
}
.rgl-presencia-card { overflow: hidden; }
.rgl-presencia-card__img {
	width: 100%; height: 240px;
	background-size: cover; background-position: center;
	filter: grayscale(0.4) saturate(0.7);
	transition: filter 1.2s var(--rgl-ease), transform 1.2s var(--rgl-ease);
}
.rgl-presencia-card:hover .rgl-presencia-card__img { filter: grayscale(0) saturate(1); transform: scale(1.04); }

.rgl-stats {
	display: flex; justify-content: center; gap: 80px;
	margin-top: 80px; padding-top: 60px;
	border-top: 0.5px solid rgba(26, 26, 26, 0.1);
}
.rgl-stat { text-align: center; max-width: 220px; }
.rgl-stat__value {
	font-family: var(--rgl-font-display);
	font-size: clamp(32px, 4vw, 44px);
	color: var(--rgl-bordeaux);
	font-weight: 400;
	line-height: 1;
}
.rgl-stat__label {
	font-family: var(--rgl-font-tracking);
	font-size: 9px;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--rgl-taupe);
	margin-top: 18px;
}

/* ───── CONTACTO ───── */
.rgl-contacto {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
}
.rgl-contacto__intro {
	font-family: var(--rgl-font-editorial);
	font-size: 20px;
	color: rgba(245, 241, 232, 0.9);
	font-style: italic;
	line-height: 1.6;
	margin: 0 0 50px;
	font-weight: 400;
}
.rgl-contacto__block { margin-bottom: 32px; }
.rgl-contacto__label {
	font-family: var(--rgl-font-tracking);
	font-size: 9px;
	letter-spacing: 0.42em;
	text-transform: uppercase;
	color: var(--rgl-champagne);
	margin-bottom: 14px;
}
.rgl-contacto__value {
	font-family: var(--rgl-font-display);
	font-size: clamp(20px, 2vw, 26px);
	color: var(--rgl-marfil);
}
.rgl-contacto__value a {
	color: var(--rgl-marfil);
	border-bottom: 1px solid rgba(201, 168, 106, 0.4);
	padding-bottom: 3px;
}
.rgl-contacto__value a:hover { border-bottom-color: var(--rgl-champagne); }

/* ───── FOOTER ───── */
.rgl-footer {
	background: var(--rgl-noir);
	padding: 80px 40px 40px;
	text-align: center;
	border-top: 1px solid rgba(201, 168, 106, 0.18);
	position: relative;
}
.rgl-footer__line {
	width: 0; height: 1px;
	background: var(--rgl-champagne);
	margin: 0 auto 40px;
	transition: width 2s var(--rgl-ease-slow);
}
.rgl-footer.is-visible .rgl-footer__line { width: 80px; }
.rgl-footer__mark {
	font-family: var(--rgl-font-display);
	font-size: 18px;
	letter-spacing: 0.32em;
	color: var(--rgl-marfil);
	margin-bottom: 12px;
}
.rgl-footer__desc {
	font-family: var(--rgl-font-tracking);
	font-size: 9px;
	letter-spacing: 0.42em;
	text-transform: uppercase;
	color: var(--rgl-champagne);
	margin-bottom: 36px;
}
.rgl-footer__tagline {
	font-family: var(--rgl-font-editorial);
	font-style: italic;
	font-size: 14px;
	color: rgba(245, 241, 232, 0.55);
	margin-bottom: 28px;
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
}
.rgl-footer__lang { margin: 24px 0; }
.rgl-footer__lang .rgl-lang { color: rgba(245, 241, 232, 0.5); }
.rgl-footer__lang .rgl-lang.is-active { color: var(--rgl-champagne); border-bottom-color: var(--rgl-champagne); }
.rgl-footer__lang .rgl-lang:hover { color: var(--rgl-marfil); }
.rgl-footer__copy {
	font-family: var(--rgl-font-tracking);
	font-size: 9px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: rgba(245, 241, 232, 0.3);
}

/* ───── ANIMACIONES ───── */
.rgl-fade-in {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.4s var(--rgl-ease-slow), transform 1.4s var(--rgl-ease-slow);
}
.rgl-fade-in.is-visible { opacity: 1; transform: translateY(0); }
.rgl-slide-left {
	opacity: 0;
	transform: translateX(-32px);
	transition: opacity 1.2s var(--rgl-ease-slow), transform 1.2s var(--rgl-ease-slow);
}
.rgl-slide-left.is-visible { opacity: 1; transform: translateX(0); }
.rgl-slide-right {
	opacity: 0;
	transform: translateX(32px);
	transition: opacity 1.2s var(--rgl-ease-slow), transform 1.2s var(--rgl-ease-slow);
}
.rgl-slide-right.is-visible { opacity: 1; transform: translateX(0); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.rgl-fade-in, .rgl-slide-left, .rgl-slide-right { opacity: 1; transform: none; }
}

/* ───── RESPONSIVE ───── */
@media (max-width: 1024px) {
	.rgl-principios { grid-template-columns: repeat(2, 1fr); }
	.rgl-destacados { grid-template-columns: repeat(2, 1fr); }
	.rgl-presencia-imgs { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
	.rgl-section { padding: 70px 24px; }
	.rgl-hero { padding: 70px 24px 80px; }
	.rgl-nav__inner { padding: 18px 24px; flex-wrap: wrap; gap: 12px; }
	.rgl-nav__menu { display: none; }
	.rgl-trayectoria__grid { grid-template-columns: 1fr; gap: 40px; }
	.rgl-trayectoria__img-main { height: 360px; }
	.rgl-trayectoria__img-overlay { width: 70%; height: 200px; bottom: -20px; right: -20px; }
	.rgl-familia__imgs { grid-template-columns: 1fr; }
	.rgl-principios, .rgl-destacados, .rgl-sectores, .rgl-presencia-imgs { grid-template-columns: 1fr; }
	.rgl-sector { grid-template-columns: 1fr; min-height: auto; }
	.rgl-sector__img { height: 200px; }
	.rgl-hero__thumbs { grid-template-columns: 1fr; }
	.rgl-hero__thumb { height: 160px; }
	.rgl-stats { gap: 40px; flex-wrap: wrap; padding-top: 40px; }
}
