/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

/* =========================================================
   MLO 20 aniversario
   WPForms (render Modern) con el diseno exacto del
   formulario estatico.

   Anadir al final de assets/css/styles.css.
   Usa las variables :root que ya existen en esa hoja.

   REQUISITO: en WPForms -> Settings -> General -> Advanced ->
   Form CSS Class, escribir:  form-panel
   Sin esa clase ninguna regla de este bloque se aplica.

   NOTA IMPORTANTE
   El render Modern de WPForms controla campos y boton mediante
   sus propias variables CSS (--wpforms-*). Sobrescribir solo con
   selectores no funciona: las reglas del plugin ganan por
   especificidad. Por eso el bloque 1 redefine esas variables, que
   es la via soportada, y el resto ajusta lo que no es variable.
   Verificado contra wpforms-full.min.css del sitio.
   ========================================================= */

/* ---------------------------------------------------------
   1 - Variables de WPForms con los valores del diseno MLO
   --------------------------------------------------------- */
.form-panel .wpforms-container,
.wpforms-container.form-panel,
.form-panel {
	/* Campos */
	--wpforms-field-border-radius: 10px;
	--wpforms-field-border-style: solid;
	--wpforms-field-border-size: 1px;
	--wpforms-field-border-color: #E7EAED;
	--wpforms-field-background-color: #FFFFFF;
	--wpforms-field-text-color: #16191C;
	--wpforms-field-size-input-height: 47px;
	--wpforms-field-size-padding-h: 15px;
	--wpforms-field-size-font-size: 15px;
	--wpforms-field-size-input-spacing: 18px;
	--wpforms-field-size-checkbox-size: 18px;

	/* Etiquetas */
	--wpforms-label-color: #16191C;
	--wpforms-label-size-font-size: 13.6px;
	--wpforms-label-size-line-height: 1.35;
	--wpforms-label-sublabel-color: #8A9096;
	--wpforms-label-size-sublabel-font-size: 12.6px;
	--wpforms-label-error-color: #E2001A;

	/* Boton = .btn.btn-primary.btn-lg */
	--wpforms-button-background-color: #B61225;
	--wpforms-button-background-color-alt: #95101F;
	--wpforms-button-text-color: #FFFFFF;
	--wpforms-button-text-color-alt: #FFFFFF;
	--wpforms-button-border-radius: 999px;
	--wpforms-button-border-style: solid;
	--wpforms-button-border-size: 2px;
	--wpforms-button-border-color: transparent;
	--wpforms-button-size-height: 54px;
	--wpforms-button-size-padding-h: 34px;
	--wpforms-button-size-font-size: 16px;
	--wpforms-button-size-margin-top: 4px;

	/* El contenedor no pinta nada: el marco lo pone .form-panel */
	--wpforms-container-padding: 0px;
	--wpforms-container-border-width: 0px;
	--wpforms-container-border-radius: 0px;
	--wpforms-background-color: transparent;
}

/* ---------------------------------------------------------
   2 - Contenedor
   --------------------------------------------------------- */
.wpforms-container.form-panel,
.form-panel .wpforms-form { margin: 0; padding: 0; }
.form-panel .wpforms-head-container { display: none; }

/* ---------------------------------------------------------
   3 - Campos: separacion y tipografia
   --------------------------------------------------------- */
.form-panel .wpforms-field { margin: 0 0 18px; padding: 0; }

.form-panel .wpforms-field-label {
	display: block;
	font-family: var(--font-main);
	font-weight: bold;
	margin: 0 0 7px;
}

/* Asterisco rojo = .field .req */
.form-panel .wpforms-required-label {
	color: var(--red);
	text-decoration: none;
	margin-left: 2px;
	font-size: 0.9em;
	vertical-align: super;
	line-height: 0;
}

.form-panel .wpforms-field-description {
	font-weight: normal;
	line-height: 1.45;
	margin: 5px 0 0;
}

/* El textarea no usa la altura de input */
.form-panel .wpforms-field textarea {
	min-height: 132px;
	height: auto;
	resize: vertical;
	line-height: 1.55;
	padding-top: 13px;
	padding-bottom: 13px;
}

.form-panel .wpforms-field input::placeholder,
.form-panel .wpforms-field textarea::placeholder { color: var(--gray); }

/* Foco azul del diseno */
.form-panel .wpforms-field input:focus,
.form-panel .wpforms-field textarea:focus {
	outline: none;
	border-color: var(--blue-teal);
	box-shadow: 0 0 0 3px rgba(45, 106, 138, 0.15);
}

/* ---------------------------------------------------------
   4 - Fila de dos columnas = .field-row
   --------------------------------------------------------- */
.form-panel .wpforms-field-layout { margin-bottom: 0; }
.form-panel .wpforms-field-layout .wpforms-field-layout-rows { display: block; }

.form-panel .wpforms-field-layout .wpforms-layout-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin: 0;
}
.form-panel .wpforms-field-layout .wpforms-layout-column {
	width: auto;
	max-width: none;
	padding: 0;
	float: none;
}
.form-panel .wpforms-layout-column > .wpforms-field { margin-bottom: 18px; }

/* ---------------------------------------------------------
   5 - Telefono: el selector de pais dentro de la caja
   --------------------------------------------------------- */
.form-panel .wpforms-field-phone .iti { width: 100%; display: block; }
.form-panel .wpforms-field-phone .iti__selected-country {
	background: transparent;
	border: 0;
}

/* Los tamanos Small/Medium de WPForms limitan el ancho al 25%/60%.
   El diseno usa siempre el ancho completo de su columna. */
.form-panel .wpforms-field input.wpforms-field-small,
.form-panel .wpforms-field input.wpforms-field-medium,
.form-panel .wpforms-field input.wpforms-field-large,
.form-panel .wpforms-field textarea.wpforms-field-small,
.form-panel .wpforms-field textarea.wpforms-field-medium,
.form-panel .wpforms-field textarea.wpforms-field-large {
	max-width: 100%;
	width: 100%;
}

/* ---------------------------------------------------------
   6 - Checkbox de empleado = .field label.check
   La caja azul la lleva el <li>, no el <label>, para que el
   input quede dentro del recuadro como en el diseno.
   --------------------------------------------------------- */
.form-panel .wpforms-field-checkbox fieldset { border: 0; margin: 0; padding: 0; }
.form-panel .wpforms-field-checkbox legend.wpforms-label-hide {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
.form-panel .wpforms-field-checkbox ul { margin: 0; padding: 0; list-style: none; }

.form-panel .wpforms-field-checkbox li {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	background: var(--blue-wash);
	border: 1px solid var(--gray-line);
	border-radius: 10px;
	padding: 13px 15px;
	margin: 0;
	cursor: pointer;
	transition: border-color .15s ease;
}
.form-panel .wpforms-field-checkbox li:hover { border-color: var(--blue-light); }

.form-panel .wpforms-field-checkbox li input[type="checkbox"] {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	margin: 1px 0 0;
	accent-color: var(--red-btn);
	cursor: pointer;
}
.form-panel .wpforms-field-checkbox li label.wpforms-field-label-inline {
	margin: 0;
	font-size: 0.88rem;
	font-weight: normal;
	line-height: 1.5;
	color: var(--ink-soft);
	cursor: pointer;
}

/* ---------------------------------------------------------
   7 - Subida de archivos (Modern) = .upload
   --------------------------------------------------------- */
.form-panel .wpforms-uploader {
	border: 2px dashed var(--gray-line);
	border-radius: 14px;
	background: var(--blue-wash);
	padding: 18px;
	min-height: 0;
	transition: border-color .15s ease, background .15s ease;
}
.form-panel .wpforms-uploader.dz-drag-hover {
	border-color: var(--blue-teal);
	background: var(--blue-tint);
}

/* Cabecera horizontal como .upload__head: icono, textos a la
   izquierda y el enlace de subida con aspecto de .upload__btn */
.form-panel .wpforms-uploader .dz-message {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 14px;
	margin: 0;
	padding: 0;
	text-align: left;
}
.form-panel .wpforms-uploader .dz-message svg {
	width: 30px;
	height: 30px;
	margin: 0;
	color: var(--blue-light);
	grid-column: 1;
	grid-row: 1 / span 2;
}
.form-panel .wpforms-uploader .modern-title {
	grid-column: 2;
	grid-row: 1;
	display: block;
	font-size: 0.89rem;
	font-weight: bold;
	color: var(--ink);
	margin: 0 0 3px;
}
.form-panel .wpforms-uploader .modern-hint {
	grid-column: 2;
	grid-row: 2;
	display: block;
	font-size: 0.79rem;
	color: #71787E;
	line-height: 1.45;
	margin: 0;
}

/* El enlace "Choose Files to Upload" toma el aspecto de .upload__btn */
.form-panel .wpforms-uploader .modern-title a {
	display: inline-block;
	padding: 10px 18px;
	border: 1px solid var(--gray-line);
	border-radius: 999px;
	background: var(--white);
	font-size: 0.82rem;
	font-weight: bold;
	color: var(--ink);
	white-space: nowrap;
	text-decoration: none;
	transition: border-color .15s ease, color .15s ease;
}
.form-panel .wpforms-uploader .modern-title a:hover {
	border-color: var(--red);
	color: var(--red);
}

@media (max-width: 520px) {
	.form-panel .wpforms-uploader .dz-message {
		grid-template-columns: auto 1fr;
		text-align: left;
	}
}

/* Miniaturas = .upload__thumb */
.form-panel .wpforms-uploader .dz-preview {
	border-radius: 9px;
	overflow: hidden;
	background: var(--white);
	border: 1px solid var(--gray-line);
	margin: 12px 0 0;
}
.form-panel .wpforms-uploader .dz-preview .dz-image img { object-fit: cover; }
.form-panel .wpforms-uploader .dz-preview .dz-remove { color: var(--red); }

/* ---------------------------------------------------------
   8 - Boton: ancho completo y sombra (lo demas va por variables)
   --------------------------------------------------------- */
.form-panel .wpforms-submit-container { padding: 0; margin: 0; text-align: left; }

.form-panel button.wpforms-submit {
	width: 100%;
	font-family: var(--font-main);
	font-weight: bold;
	box-shadow: 0 6px 18px rgba(182, 18, 37, 0.26);
	transition: background-color .16s ease, box-shadow .16s ease, transform .12s ease;
}
.form-panel button.wpforms-submit:hover {
	box-shadow: 0 12px 28px rgba(182, 18, 37, 0.34);
	transform: translateY(-2px);
}
.form-panel button.wpforms-submit:active { transform: translateY(0); }

/* ---------------------------------------------------------
   9 - Contador inyectado desde functions.php = .counter
   --------------------------------------------------------- */
.form-panel .wpforms-field .counter {
	font-size: 0.76rem;
	color: #8A9096;
	margin-top: 6px;
	text-align: right;
	font-family: var(--font-alt);
}
/* WPForms imprime su propio contador; se oculta para no duplicar */
.form-panel .wpforms-field-limit-text { display: none; }

/* ---------------------------------------------------------
   10 - Campos HTML: aviso rojo y texto legal
   --------------------------------------------------------- */
.form-panel .wpforms-field-html { margin-bottom: 0; }
.form-panel .wpforms-field-html .notice { margin: 22px 0 16px; }
.form-panel .wpforms-field-html .legal { margin: 14px 0 0; }

/* ---------------------------------------------------------
   11 - Errores
   --------------------------------------------------------- */
.form-panel label.wpforms-error,
.form-panel em.wpforms-error {
	display: block;
	font-size: 0.78rem;
	margin-top: 6px;
	font-style: normal;
}
.form-panel input.wpforms-error:focus,
.form-panel textarea.wpforms-error:focus {
	box-shadow: 0 0 0 3px rgba(226, 0, 26, 0.14);
}

/* ---------------------------------------------------------
   12 - Confirmacion = .done
   El verde por defecto de WPForms se anula por completo.
   --------------------------------------------------------- */
div.wpforms-container-full.form-panel .wpforms-confirmation-container-full,
div.wpforms-container-full.form-panel .wpforms-confirmation-container-full:not(.wpforms-redirection-message) {
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	color: inherit;
}
.form-panel .wpforms-confirmation-container-full .done { display: block; }

/* ---------------------------------------------------------
   13 - Movil
   --------------------------------------------------------- */
@media (max-width: 640px) {
	.form-panel .wpforms-field-layout .wpforms-layout-row {
		grid-template-columns: 1fr;
		gap: 0;
	}
}


/* In-page WPForms Theme style override */
.form-panel div[id^="wpforms-"],
.form-panel .wpforms-container,
.wpforms-container.form-panel,
.form-panel {
	--wpforms-button-background-color: #B61225 !important;
	--wpforms-button-background-color-alt: #95101F !important;
	--wpforms-button-text-color: #FFFFFF !important;
	--wpforms-button-border-radius: 999px !important;
}

.form-panel button.wpforms-submit,
.form-panel div.wpforms-container-full button[type="submit"],
div.wpforms-container-full.form-panel button[type="submit"] {
	background-color: #B61225 !important;
	color: #FFFFFF !important;
	border-radius: 999px !important;
	height: 54px !important;
	width: 100% !important;
	box-shadow: 0 6px 18px rgba(182, 18, 37, 0.26) !important;
}

.form-panel button.wpforms-submit:hover,
.form-panel div.wpforms-container-full button[type="submit"]:hover,
div.wpforms-container-full.form-panel button[type="submit"]:hover {
	background-color: #95101F !important;
	box-shadow: 0 12px 28px rgba(182, 18, 37, 0.34) !important;
}


/* Exact match for WPForms Modern submit button rule */
div.wpforms-container-full .form-panel input[type="submit"]:not(:hover):not(:active),
div.wpforms-container-full .form-panel button[type="submit"]:not(:hover):not(:active),
.form-panel div.wpforms-container-full input[type="submit"]:not(:hover):not(:active),
.form-panel div.wpforms-container-full button[type="submit"]:not(:hover):not(:active),
div.wpforms-container-full.form-panel input[type="submit"]:not(:hover):not(:active),
div.wpforms-container-full.form-panel button[type="submit"]:not(:hover):not(:active) {
	background-color: #B61225 !important;
	color: #FFFFFF !important;
	border-radius: 999px !important;
	height: 54px !important;
	border: 0 !important;
}

div.wpforms-container-full .form-panel input[type="submit"]:hover,
div.wpforms-container-full .form-panel button[type="submit"]:hover,
.form-panel div.wpforms-container-full input[type="submit"]:hover,
.form-panel div.wpforms-container-full button[type="submit"]:hover,
div.wpforms-container-full.form-panel input[type="submit"]:hover,
div.wpforms-container-full.form-panel button[type="submit"]:hover {
	background-color: #95101F !important;
	color: #FFFFFF !important;
	border-radius: 999px !important;
}
/* =========================================================
   ELEMENTOR / THEME RESET OVERRIDES
   Protects MLO buttons, typography, and containers from
   Elementor's global style inheritance.
   ========================================================= */

/* Buttons inside Elementor */
.elementor .btn-primary,
.elementor .btn-primary.btn-lg,
.elementor .btn-primary.btn-brand,
body.elementor-page .btn-primary {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: 999px !important;
	font-family: var(--font-main) !important;
	font-weight: bold !important;
	text-decoration: none !important;
	border: 2px solid transparent !important;
	box-sizing: border-box !important;
}

.elementor .btn-primary,
body.elementor-page .btn-primary {
	background: var(--red-btn) !important;
	color: var(--white) !important;
	box-shadow: 0 6px 18px rgba(182, 18, 37, 0.26) !important;
}

.elementor .btn-primary:hover,
body.elementor-page .btn-primary:hover {
	background: var(--red-btn-dark) !important;
	color: var(--white) !important;
	box-shadow: 0 12px 28px rgba(182, 18, 37, 0.34) !important;
	transform: translateY(-2px) !important;
}

.elementor .btn-primary.btn-brand,
body.elementor-page .btn-primary.btn-brand {
	background: var(--red) !important;
	color: var(--white) !important;
	box-shadow: 0 6px 18px rgba(226, 0, 26, 0.28) !important;
}

.elementor .btn-primary.btn-brand:hover,
body.elementor-page .btn-primary.btn-brand:hover {
	background: var(--red-dark) !important;
	color: var(--white) !important;
	box-shadow: 0 12px 28px rgba(226, 0, 26, 0.36) !important;
	transform: translateY(-2px) !important;
}

.elementor .btn-outline-dark,
body.elementor-page .btn-outline-dark {
	background: transparent !important;
	color: var(--white) !important;
	border: 2px solid rgba(255, 255, 255, 0.7) !important;
}

.elementor .btn-outline-dark:hover,
body.elementor-page .btn-outline-dark:hover {
	background: rgba(255, 255, 255, 0.12) !important;
	color: var(--white) !important;
	border-color: var(--white) !important;
}

.elementor .btn-light,
body.elementor-page .btn-light {
	background: var(--white) !important;
	color: var(--red) !important;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12) !important;
}

.elementor .btn-light:hover,
body.elementor-page .btn-light:hover {
	background: #FFF5F6 !important;
	color: var(--red-dark) !important;
	transform: translateY(-2px) !important;
}

/* Headings font protection */
.elementor h1, .elementor h2, .elementor h3,
body.elementor-page h1, body.elementor-page h2, body.elementor-page h3 {
	font-family: var(--font-main) !important;
}


/* Nav links text color protection against theme/Elementor link styles */
.nav .nav__links a,
body .nav .nav__links a {
	color: var(--ink) !important;
	text-decoration: none !important;
}

.nav .nav__links a:hover,
body .nav .nav__links a:hover,
.nav .nav__links a.is-current,
body .nav .nav__links a.is-current {
	color: var(--red) !important;
	border-color: var(--red) !important;
}

/* Footer links text color protection */
footer#bases a,
body footer#bases a {
	color: inherit !important;
	text-decoration: none !important;
}

footer#bases a:hover,
body footer#bases a:hover {
	color: var(--red) !important;
}


/* Burger button reset against theme/Elementor button hover */
.nav .nav__burger,
body .nav .nav__burger,
.nav .nav__burger:hover,
body .nav .nav__burger:hover,
.nav .nav__burger:focus,
body .nav .nav__burger:focus,
.nav .nav__burger:active,
body .nav .nav__burger:active {
	background: transparent !important;
	background-color: transparent !important;
	border: none !important;
	box-shadow: none !important;
	outline: none !important;
	transform: none !important;
}


/* Explicit border and colors for outline buttons inside Elementor */
.elementor .btn-outline,
body.elementor-page .btn-outline,
.rail-more .btn-outline {
	background: transparent !important;
	color: var(--blue-teal) !important;
	border: 2px solid var(--blue-teal) !important;
	border-radius: 999px !important;
}

.elementor .btn-outline:hover,
body.elementor-page .btn-outline:hover,
.rail-more .btn-outline:hover {
	background: var(--blue-teal) !important;
	color: var(--white) !important;
	border: 2px solid var(--blue-teal) !important;
}


.elementor .btn-outline,
body.elementor-page .btn-outline,
.rail-more a.btn-outline,
a.btn.btn-outline {
	background: transparent !important;
	color: #2D6A8A !important;
	border: 2px solid #2D6A8A !important;
	border-radius: 999px !important;
	padding: 15px 30px !important;
	display: inline-flex !important;
	text-decoration: none !important;
}

.elementor .btn-outline:hover,
body.elementor-page .btn-outline:hover,
.rail-more a.btn-outline:hover,
a.btn.btn-outline:hover {
	background: #2D6A8A !important;
	color: #FFFFFF !important;
	border-color: #2D6A8A !important;
}


/* Explicit Typography and Font Weight protection for Header and Navigation */
.nav,
.nav .nav__links a,
body .nav .nav__links a,
.nav .brand,
.nav .nav__right {
	font-family: var(--font-main) !important;
}

.nav .nav__links a,
body .nav .nav__links a {
	font-weight: 400 !important;
	font-size: 0.94rem !important;
	line-height: 1.4 !important;
	letter-spacing: normal !important;
	color: var(--ink) !important;
}

.nav .nav__links .only-mobile,
body .nav .nav__links .only-mobile {
	font-weight: bold !important;
	color: var(--red) !important;
}

.nav__right .btn,
body .nav__right .btn {
	font-family: var(--font-main) !important;
	font-weight: 700 !important;
	font-size: 0.96rem !important;
}


/* Headings font weight protection against Hello Elementor reset (500) */
.elementor h1, .elementor h2, .elementor h3, .elementor h4,
body.elementor-page h1, body.elementor-page h2, body.elementor-page h3, body.elementor-page h4,
.hero h1,
.section-head h2,
.form-panel h2,
.banner h2,
.page-head h1,
.detail h1,
.cat h3,
.done h3,
.testi-card__title,
.story-card__title,
.foot__col h4 {
	font-weight: 700 !important;
	font-family: var(--font-main) !important;
}


/* Ensure carousel rail grid styles apply to both .rail and #rail */
.rail,
#rail,
.testi-rail {
	display: grid !important;
	grid-auto-flow: column !important;
	grid-template-rows: repeat(2, 1fr) !important;
	grid-auto-columns: 345px !important;
	gap: 22px !important;
	overflow-x: auto !important;
	scroll-snap-type: x mandatory !important;
	padding: 6px 28px 24px !important;
	margin: 0 -28px !important;
	scrollbar-width: thin !important;
	scrollbar-color: var(--blue-light) #DCE7F1 !important;
}

.testi-card {
	scroll-snap-align: start !important;
	width: 345px !important;
	box-sizing: border-box !important;
}


/* Grid alias support */
.story-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 26px;
}
@media (max-width: 1080px) {
	.story-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.story-grid { grid-template-columns: 1fr; }
}


/* Tighten WPForms field vertical spacing to match static design (.field: margin-bottom: 18px, padding: 0) */
.form-panel .wpforms-container .wpforms-field,
div.wpforms-container-full.form-panel .wpforms-field,
.form-panel .wpforms-field {
	padding: 0 !important;
	margin: 0 0 18px !important;
}

.form-panel .wpforms-field-label {
	margin: 0 0 7px !important;
	line-height: 1.35 !important;
}

.form-panel .wpforms-field-checkbox li {
	margin: 0 !important;
}

.form-panel .wpforms-submit-container {
	margin-top: 10px !important;
	padding: 0 !important;
}


/* =========================================================
   GALLERY PROTECTION FROM ELEMENTOR / THEME BUTTON RESETS
   ========================================================= */
.gallery__arrow,
button.gallery__arrow,
.elementor button.gallery__arrow,
body.elementor-page button.gallery__arrow {
	position: absolute !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	width: 48px !important;
	height: 48px !important;
	border-radius: 50% !important;
	border: none !important;
	background: rgba(255, 255, 255, 0.94) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	box-shadow: 0 4px 14px rgba(0,0,0,0.18) !important;
	cursor: pointer !important;
	transition: background .15s ease !important;
}

.gallery__arrow:hover,
button.gallery__arrow:hover,
.elementor button.gallery__arrow:hover,
body.elementor-page button.gallery__arrow:hover {
	background: #FFFFFF !important;
}

.gallery__arrow[disabled],
button.gallery__arrow[disabled],
.elementor button.gallery__arrow[disabled],
body.elementor-page button.gallery__arrow[disabled] {
	opacity: 0.35 !important;
	cursor: default !important;
}

.gallery__arrow--prev { left: 14px !important; right: auto !important; }
.gallery__arrow--next { right: 14px !important; left: auto !important; }

.gallery__thumb,
button.gallery__thumb,
.elementor button.gallery__thumb,
body.elementor-page button.gallery__thumb {
	width: 92px !important;
	height: 66px !important;
	flex-shrink: 0 !important;
	border-radius: 10px !important;
	overflow: hidden !important;
	padding: 0 !important;
	border: 2px solid transparent !important;
	background: var(--blue-tint) !important;
	opacity: 0.62 !important;
	cursor: pointer !important;
	display: block !important;
	box-shadow: none !important;
	transition: border-color .15s ease, opacity .15s ease !important;
}

.gallery__thumb:hover,
button.gallery__thumb:hover,
.elementor button.gallery__thumb:hover,
body.elementor-page button.gallery__thumb:hover {
	opacity: 0.9 !important;
	border-color: transparent !important;
	background: var(--blue-tint) !important;
}

.gallery__thumb.is-active,
button.gallery__thumb.is-active,
.elementor button.gallery__thumb.is-active,
body.elementor-page button.gallery__thumb.is-active {
	border: 2px solid var(--red) !important;
	border-color: var(--red) !important;
	opacity: 1 !important;
}


/* =========================================================
   CAROUSEL SINGLE ROW SIDE-BY-SIDE
   ========================================================= */
.rail,
#rail,
.testi-rail {
	grid-template-rows: repeat(2, 1fr) !important;
}

/* =========================================================
   INTERNAL PAGE GALLERY ARROWS & THUMBNAILS FIX
   Protect from theme & Elementor button resets
   ========================================================= */
.gallery .gallery__arrow,
button.gallery__arrow,
.elementor button.gallery__arrow {
	position: absolute !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	width: 48px !important;
	height: 48px !important;
	border-radius: 50% !important;
	border: none !important;
	background: rgba(255, 255, 255, 0.94) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	box-shadow: 0 4px 14px rgba(0,0,0,0.18) !important;
	cursor: pointer !important;
	z-index: 10 !important;
}
.gallery .gallery__arrow--prev { left: 14px !important; right: auto !important; }
.gallery .gallery__arrow--next { right: 14px !important; left: auto !important; }

.gallery .gallery__thumbs,
.gallery__thumbs {
	display: flex !important;
	flex-direction: row !important;
	gap: 10px !important;
	margin-top: 14px !important;
	overflow-x: auto !important;
	width: 100% !important;
}

.gallery .gallery__thumb,
button.gallery__thumb,
.elementor button.gallery__thumb {
	width: 92px !important;
	height: 66px !important;
	max-width: 92px !important;
	flex: 0 0 92px !important;
	flex-shrink: 0 !important;
	border-radius: 10px !important;
	overflow: hidden !important;
	padding: 0 !important;
	border: 2px solid transparent !important;
	background: var(--blue-tint) !important;
	opacity: 0.62 !important;
	display: block !important;
}
.gallery .gallery__thumb.is-active,
button.gallery__thumb.is-active,
.elementor button.gallery__thumb.is-active {
	border: 2px solid var(--red) !important;
	opacity: 1 !important;
}
.gallery .gallery__thumb img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

/* =========================================================
   FORM PADDING & SPACING TIGHTENING
   ========================================================= */
.form-panel .wpforms-container .wpforms-field,
div.wpforms-container-full.form-panel .wpforms-field,
.form-panel .wpforms-field {
	padding: 0 !important;
	margin: 0 0 18px !important;
}

.form-panel .wpforms-field-label {
	margin: 0 0 7px !important;
	line-height: 1.35 !important;
}


/* Active header navigation link */
.nav .nav__links a.is-current,
body .nav .nav__links a.is-current {
	color: var(--red) !important;
	border-bottom: 2px solid var(--red) !important;
	font-weight: 500 !important;
}

/* Page head count badge */
.page-head__count {
	display: inline-block !important;
	margin-top: 26px !important;
	font-family: var(--font-alt) !important;
	font-size: 0.74rem !important;
	font-weight: bold !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	background: rgba(255,255,255,0.12) !important;
	color: var(--white) !important;
	border: 1px solid rgba(255,255,255,0.22) !important;
	padding: 8px 15px !important;
	border-radius: 999px !important;
}


/* Responsive Nav Header Fix */
@media (max-width: 980px) {
	.nav .nav__right > .btn,
	.elementor .nav .nav__right > .btn,
	body.elementor-page .nav .nav__right > .btn {
		display: none !important;
	}
	.nav .nav__burger,
	body .nav .nav__burger {
		display: flex !important;
	}
	.nav .nav__links a.only-mobile,
	body .nav .nav__links a.only-mobile {
		display: block !important;
		color: var(--red) !important;
		font-weight: bold !important;
	}
}


/* Hero accent matching button color */
.hero h1 .accent,
.hero h1 span.accent {
	color: var(--red) !important;
}


/* Hero accent matching button color exactly */
.hero h1 .accent,
.hero h1 span.accent,
.elementor .hero h1 .accent,
body.elementor-page .hero h1 .accent {
	color: #E2001A !important;
}


/* =========================================================
   SCROLL REVEAL ANIMATION (MINIMAL)
   ========================================================= */
.mlo-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.5s ease-out, transform 0.5s ease-out;
	will-change: opacity, transform;
}
.mlo-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
	.mlo-reveal {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}


/* Keyframe fade-up on initial page load for Hero */
@keyframes mloHeroFadeUp {
	from {
		opacity: 0;
		transform: translateY(28px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.hero__content {
	animation: mloHeroFadeUp 0.85s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
}

/* Punchier scroll reveal transition for Banner & other sections */
.mlo-reveal {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1), transform 0.75s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.mlo-reveal.is-visible {
	opacity: 1 !important;
	transform: translateY(0) !important;
}
