/* =========================================================================
   Estudio Ferreyra — estilos propios del theme (cabecera, pie, navegación,
   menú móvil, formulario, carrusel). El contenido de las páginas usa su
   propio CSS (brizy-base.css + pages/*.css).
   Paleta de marca: #d7002e / #ff4f41 (rojo), #262626 (texto), #757575 (gris).
   Tipografías: Lato (texto) + Cardo (títulos).
   ========================================================================= */

:root {
	--ef-red: #d7002e;
	--ef-red-alt: #ff4f41;
	--ef-dark: #262626;
	--ef-gray: #757575;
	--ef-light: #f0f0f0;
}

html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: 'Lato', sans-serif;
	color: var(--ef-dark);
	background: #fff;
	line-height: 1.6;
}
img { max-width: 100%; height: auto; }

/* Accesibilidad */
.screen-reader-text {
	border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute;
}
.ef-skip-link { position: absolute; left: -9999px; top: 0; z-index: 1000; background: #fff; padding: 10px 16px; }
.ef-skip-link:focus { left: 10px; }

/* =========================== Grilla (header/footer) ====================== */
.fw-container {
	position: relative;
	width: 100%;
	max-width: 1170px;
	margin: 0 auto;
	padding-left: 15px;
	padding-right: 15px;
	box-sizing: border-box;
}
.fw-row { display: flex; flex-wrap: wrap; margin: 0 -15px; }
.fw-row > [class*="fw-col"] { padding: 0 15px; box-sizing: border-box; }
.fw-col-md-3 { width: 25%; }
.fw-col-sm-6 { width: 50%; }

/* =============================== Cabecera =============================== */
.fw-header { position: relative; z-index: 100; }
.fw-header-main { width: 100%; background: #fff; box-shadow: 0 1px 0 rgba(0,0,0,.06); }
.fw-header-main .fw-container {
	display: flex; align-items: center; justify-content: space-between;
	padding-top: 18px; padding-bottom: 18px; gap: 24px;
}
.fw-wrap-logo { flex: 0 0 auto; display: flex; align-items: center; }
.fw-site-logo { display: inline-flex; align-items: center; text-decoration: none; }
.ef-logo { display: block; width: auto; height: auto; max-height: 64px; }

.fw-nav-wrap { flex: 1 1 auto; display: flex; justify-content: flex-end; }
.fw-nav-menu {
	list-style: none; margin: 0; padding: 0;
	display: flex; flex-wrap: wrap; gap: 26px; align-items: center;
}
.fw-nav-menu a {
	display: inline-block; text-decoration: none;
	font-family: 'Lato', sans-serif; font-weight: 700;
	font-size: 13px; letter-spacing: .5px; text-transform: uppercase;
	color: var(--ef-dark); transition: color .2s ease;
}
.fw-nav-menu a:hover,
.fw-nav-menu .current-menu-item > a,
.fw-nav-menu .current_page_item > a { color: var(--ef-red); }

/* Botón hamburguesa (oculto en desktop; a la derecha en mobile) */
.mmenu-link {
	display: none; border: 0; background: transparent; cursor: pointer;
	padding: 8px; order: 5; margin-left: auto;
}
.ef-burger, .ef-burger::before, .ef-burger::after {
	display: block; width: 26px; height: 2px; background: var(--ef-dark);
	position: relative; transition: all .2s ease;
}
.ef-burger::before, .ef-burger::after { content: ""; position: absolute; left: 0; }
.ef-burger::before { top: -8px; }
.ef-burger::after { top: 8px; }

/* ============================ Menú móvil ============================== */
.ef-mobile-menu {
	position: fixed; top: 0; right: 0; height: 100%; width: 300px; max-width: 85vw;
	background: #1f1f1f; color: #fff; z-index: 1000;
	transform: translateX(100%); transition: transform .3s ease;
	padding: 60px 24px 24px; overflow-y: auto;
}
.ef-mobile-menu.is-open { transform: translateX(0); }
.ef-mobile-menu__close {
	position: absolute; top: 12px; right: 16px; background: transparent; border: 0;
	color: #fff; font-size: 34px; line-height: 1; cursor: pointer;
}
.ef-mobile-menu__list { list-style: none; margin: 0; padding: 0; }
.ef-mobile-menu__list li { border-bottom: 1px solid rgba(255,255,255,.12); }
.ef-mobile-menu__list a {
	display: block; padding: 14px 4px; color: #fff; text-decoration: none;
	text-transform: uppercase; font-size: 14px; font-weight: 700; letter-spacing: .5px;
}
.ef-mobile-menu__list a:hover { color: var(--ef-red-alt); }
.ef-mobile-menu__overlay {
	position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 999;
}
.ef-mobile-menu__overlay[hidden] { display: none; }

/* ================================ Pie ================================= */
.site-footer { background: var(--ef-light); }
.fw-footer-widgets { position: relative; padding: 100px 0; background-color: var(--ef-light); }
.fw-footer-widgets .widget { margin-bottom: 20px; }
.widget-title {
	margin: 0 0 9px; font-family: 'Cardo', serif; font-weight: 400; font-style: italic;
	font-size: 15px; line-height: 40px; color: #b6b8b9; letter-spacing: 0;
	text-transform: uppercase;
}
.widget-title span { color: var(--ef-dark); font-style: normal; font-weight: 700; }
.textwidget, .custom-html-widget { font-size: 13px; line-height: 20px; color: #4c4c4c; }
.textwidget a { color: var(--ef-red-alt); text-decoration: none; }
.fw-footer-bar { background: #e8e8e8; padding: 28px 0; color: #1f1f1f; }
.fw-copyright { font-size: 12px; font-family: 'Lato', sans-serif; color: #808080; text-align: center; }
.fw-copyright-center .fw-copyright { text-align: center; }

/* Íconos de contacto (SVG inline, sin Font Awesome) */
.ef-ico { display: inline-block; width: 14px; height: 14px; vertical-align: -2px; background-size: contain; background-repeat: no-repeat; opacity: .8; }
.ef-ico-wa { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23757575'%3E%3Cpath d='M.057 24l1.687-6.163a11.867 11.867 0 01-1.587-5.945C.16 5.335 5.495 0 12.05 0a11.82 11.82 0 018.413 3.488 11.82 11.82 0 013.48 8.414c-.003 6.557-5.338 11.892-11.893 11.892a11.9 11.9 0 01-5.688-1.448L.057 24zm6.597-3.807c1.676.995 3.276 1.591 5.392 1.592 5.448 0 9.886-4.434 9.889-9.885.002-5.462-4.415-9.89-9.881-9.892-5.452 0-9.887 4.434-9.889 9.884a9.82 9.82 0 001.636 5.4l-1.1 3.942 3.962-1.041zm11.387-5.464c-.074-.124-.272-.198-.57-.347-.297-.149-1.758-.868-2.031-.967-.272-.099-.47-.149-.669.149-.198.297-.768.967-.941 1.165-.173.198-.347.223-.644.074-.297-.149-1.255-.462-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.372-.025-.521-.075-.149-.669-1.611-.916-2.206-.242-.579-.487-.501-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.263.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.719 2.006-1.413.248-.695.248-1.29.173-1.414z'/%3E%3C/svg%3E"); }
.ef-ico-mail { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23757575'%3E%3Cpath d='M12 13.065L.015 4.5h23.97L12 13.065zM12 15.185L0 6.75V19.5h24V6.75l-12 8.435z'/%3E%3C/svg%3E"); }

/* ============================ Formulario ============================== */
.ef-honeypot { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.ef-form-notice { padding: 14px 18px; margin-bottom: 18px; border-radius: 4px; font-size: 15px; }
.ef-form-notice--ok { background: #e6f6e9; color: #1b5e20; border: 1px solid #a5d6a7; }
.ef-form-notice--error { background: #fdecea; color: #b71c1c; border: 1px solid #f5c6cb; }

/* ============================= Botones ================================ */
.ef-btn {
	display: inline-block; background: var(--ef-red); color: #fff; text-decoration: none;
	padding: 12px 28px; border-radius: 3px; font-weight: 700; text-transform: uppercase;
	font-size: 13px; letter-spacing: .5px;
}
.ef-btn:hover { background: var(--ef-red-alt); }

/* =================== Carrusel nativo (testimonios) ==================== */
/* Evita el "flash" de todos los slides antes de que el JS inicialice. */
.brz-slick-slider:not(.ef-ready) > div ~ div { display: none; }

.brz-slick-slider.ef-slider { position: relative; overflow: hidden; }
.ef-slider__viewport { overflow: hidden; width: 100%; }
.ef-slider__track { display: flex; transition: transform .5s ease; will-change: transform; }
.ef-slider__slide { flex: 0 0 100%; min-width: 100%; box-sizing: border-box; }

.ef-slider__arrow {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
	border: 0; cursor: pointer; width: 46px; height: 46px; border-radius: 50%;
	background: rgba(201,201,201,.7); color: #fff; font-size: 24px; line-height: 1;
	display: flex; align-items: center; justify-content: center; transition: background .2s;
}
.ef-slider__arrow:hover { background: var(--ef-red); }
.ef-slider__arrow--prev { left: 20px; }
.ef-slider__arrow--next { right: 20px; }

.ef-slider__dots { list-style: none; display: flex; gap: 8px; justify-content: center; padding: 0; margin: 18px 0 0; }
.ef-slider__dots li { line-height: 0; }
.ef-slider__dots button { width: 12px; height: 12px; border-radius: 50%; border: 0; background: #c9c9c9; cursor: pointer; padding: 0; font-size: 0; }
.ef-slider__dots .is-active button { background: var(--ef-red); }

/* Hero con un único slide: se muestra estático (sin controles). */
.brz-slick-slider.ef-slider-static { overflow: visible; }

/* ============ Contenido de páginas: centrado "boxed" ================== */
/* Brizy centra el contenido con la variable --brz-section-container-width,
   ausente en el export; por eso los contenedores caían a ancho completo.
   Los acotamos y centramos para una presentación profesional. */
.brz .brz-container {
	max-width: 1170px;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}
@media (max-width: 1230px) {
	.brz .brz-container { max-width: 100%; }
}
@media (max-width: 991px) {
	.brz .brz-container { padding-left: 20px; padding-right: 20px; }
}

/* ======================== WhatsApp flotante =========================== */
.ef-wa-float {
	position: fixed; right: 20px; bottom: 20px; z-index: 900;
	width: 56px; height: 56px; border-radius: 50%;
	background: #25d366; color: #fff;
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 4px 12px rgba(0,0,0,.25); text-decoration: none;
	transition: transform .2s ease, background .2s ease;
}
.ef-wa-float:hover { transform: scale(1.08); background: #1ebe5b; color: #fff; }

/* ============================ Responsive ============================== */
@media (max-width: 1024px) {
	.fw-nav-wrap { display: none; }
	.mmenu-link { display: inline-block; }
	.fw-header-main .fw-container { justify-content: space-between; }
	.site-title { font-size: 20px; }
}
@media (max-width: 767px) {
	.fw-footer-widgets { padding: 50px 0; }
	.fw-col-md-3, .fw-col-sm-6 { width: 100%; }
	.fw-container { padding-left: 18px; padding-right: 18px; }
}
