/* Cabecera propia (inc/cabecera.php). Mismo diseño que la plantilla de Elementor Pro que reemplaza. */

.ac-cabecera, .ac-cabecera * { box-sizing: border-box; }
.ac-cabecera { position: relative; z-index: 10000; /* el buscador de RealHomes usa 9999 */ font-family: var(--ac-fuente); }
.ac-cabecera a { text-decoration: none; color: inherit; }
.ac-cabecera ul { list-style: none; margin: 0; padding: 0; }
.ac-cabecera svg { display: block; width: 100%; height: 100%; fill: currentColor; }

.ac-saltar { position: absolute; left: 8px; top: -60px; z-index: 200; padding: 10px 16px; background: var(--ac-blanco); color: var(--ac-tinta); border-radius: 6px; }
.ac-saltar:focus { top: 8px; }

/* Barra superior */
.ac-barra { background: var(--ac-tinta); color: rgba(255,255,255,.85); font-size: 13px; font-weight: 300; letter-spacing: .2px; }
.ac-barra__in { max-width: var(--ac-ancho); margin: 0 auto; padding: 9px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.ac-barra__datos { display: flex; align-items: center; }
.ac-barra__datos li { display: flex; align-items: center; gap: 7px; }
.ac-barra__datos li + li { margin-left: 18px; padding-left: 18px; border-left: 1px solid rgba(255,255,255,.18); }
.ac-barra__datos svg { width: 15px; height: 15px; color: var(--ac-verde); flex: none; }
.ac-barra__datos a:hover, .ac-barra__datos a:focus-visible { color: var(--ac-blanco); }
.ac-redes { display: flex; gap: 8px; }
.ac-redes a { width: 30px; height: 30px; display: block; border-radius: 50%; transition: transform .2s ease; }
.ac-redes a:hover, .ac-redes a:focus-visible { transform: scale(1.12); }
.ac-redes a:focus-visible { outline: 2px solid var(--ac-blanco); outline-offset: 1px; }

/* Barra principal */
.ac-principal { background: var(--ac-blanco); border-bottom: 1px solid var(--ac-linea); }
.ac-principal__in { max-width: var(--ac-ancho); margin: 0 auto; padding: 0 24px; height: 110px; display: flex; align-items: center; gap: 28px; }
.ac-logo { flex: none; display: block; }
.ac-logo img { display: block; height: 87px; width: auto; }

/* Menú */
.ac-nav { margin-left: auto; }
.ac-menu { display: flex; align-items: center; gap: 4px; }
.ac-menu > li { position: relative; display: flex; align-items: center; }
.ac-menu > li > a { position: relative; display: block; padding: 10px 14px; font-size: 15px; font-weight: 400; color: var(--ac-tinta); }
.ac-menu > li > a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 2px; background: var(--ac-azul); transform: scaleX(0); transform-origin: left; transition: transform .28s ease; }
.ac-menu > li > a:hover, .ac-menu > li > a:focus-visible, .ac-menu > li.current-menu-item > a, .ac-menu > li.current-menu-ancestor > a { color: var(--ac-azul); }
.ac-menu > li > a:hover::after, .ac-menu > li > a:focus-visible::after, .ac-menu > li.current-menu-item > a::after { transform: scaleX(1); }
.ac-menu > li.menu-item-has-children > a { padding-right: 2px; }
.ac-menu > li.menu-item-has-children > a::after { right: 2px; }

.ac-sub-toggle { width: 28px; height: 28px; padding: 6px; margin-right: 6px; border: 0; border-radius: 6px; background: none; color: var(--ac-tinta); opacity: .6; cursor: pointer; }
.ac-sub-toggle svg { transition: transform .25s ease; }
.ac-sub-toggle:hover, .ac-sub-toggle:focus-visible { opacity: 1; background: var(--ac-fondo-suave); }
.ac-menu li.ac-abierto > .ac-sub-toggle svg { transform: rotate(180deg); }

.ac-menu .sub-menu { position: absolute; top: calc(100% + 6px); left: 0; min-width: 210px; padding: 8px; background: var(--ac-blanco); border: 1px solid var(--ac-linea); border-radius: 12px; box-shadow: 0 18px 40px rgba(20,17,15,.12); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s; }
.ac-menu .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -8px; height: 8px; } /* puente para que el cursor no lo cierre */
.ac-menu .sub-menu a { display: block; padding: 10px 14px; font-size: 14.5px; color: #333; border-radius: 8px; transition: background-color .18s ease, color .18s ease; }
.ac-menu .sub-menu a:hover, .ac-menu .sub-menu a:focus-visible, .ac-menu .sub-menu .current-menu-item > a { background: var(--ac-fondo-suave); color: var(--ac-azul); }

@media (min-width: 861px) {
	.ac-menu > li:hover > .sub-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
	.ac-menu > li:hover > .ac-sub-toggle svg { transform: rotate(180deg); }
}
@media (min-width: 861px) {
	.ac-menu > li.ac-abierto > .sub-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
}

/* Acciones */
.ac-acciones { display: flex; align-items: center; gap: 12px; }
.ac-cta { display: inline-flex; align-items: center; gap: 8px; padding: 11px 20px; border-radius: 40px; background: var(--ac-verde-oscuro); color: var(--ac-blanco) !important; font-size: 15px; font-weight: 500; box-shadow: 0 6px 18px rgba(16,128,67,.28); transition: transform .25s ease, box-shadow .25s ease; }
.ac-cta svg { width: 19px; height: 19px; }
.ac-cta:hover, .ac-cta:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(16,128,67,.38); }

.ac-hamburguesa { display: none; width: 44px; height: 44px; padding: 0; border: 0; background: none; cursor: pointer; flex-direction: column; justify-content: center; gap: 5px; }
.ac-hamburguesa span { display: block; width: 24px; height: 2px; margin: 0 auto; background: var(--ac-tinta); transition: transform .3s ease, opacity .3s ease; }
.ac-cabecera.ac-menu-abierto .ac-hamburguesa span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ac-cabecera.ac-menu-abierto .ac-hamburguesa span:nth-child(2) { opacity: 0; }
.ac-cabecera.ac-menu-abierto .ac-hamburguesa span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

:focus-visible { outline-offset: 2px; }
.ac-cabecera a:focus-visible, .ac-cabecera button:focus-visible { outline: 2px solid var(--ac-azul); }

/* Tablet */
@media (max-width: 992px) {
	.ac-barra__horario { display: none !important; }
}

/* Móvil */
@media (max-width: 860px) {
	.ac-hamburguesa { display: flex; }
	.ac-acciones { margin-left: auto; }
	.ac-nav { position: absolute; top: 100%; left: 0; right: 0; margin: 0; background: var(--ac-blanco); border-bottom: 1px solid var(--ac-linea); box-shadow: 0 20px 40px rgba(0,0,0,.1); display: none; }
	.ac-cabecera.ac-menu-abierto .ac-nav { display: block; }
	.ac-cabecera .ac-menu { flex-direction: column; align-items: stretch; gap: 0; padding: 8px 16px 16px; }
	.ac-menu > li { flex-wrap: wrap; border-bottom: 1px solid #f2f2f2; }
	.ac-menu > li > a { flex: 1; padding: 14px 8px; font-size: 16px; }
	.ac-menu > li > a::after { display: none; }
	.ac-sub-toggle { width: 44px; height: 44px; padding: 12px; margin: 0; }
	.ac-menu .sub-menu { position: static; flex-basis: 100%; min-width: 0; padding: 0 0 8px 12px; border: 0; border-radius: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; transition: none; display: none; }
	.ac-menu .sub-menu::before { display: none; }
	.ac-menu li.ac-abierto > .sub-menu { display: block; }
}
@media (max-width: 560px) {
	.ac-barra__datos li:not(:nth-child(2)) { display: none; }
	.ac-barra__datos li + li { margin-left: 0; padding-left: 0; border-left: 0; }
	.ac-barra__in { padding: 8px 16px; }
	.ac-principal__in { height: 92px; padding: 0 16px; gap: 12px; }
	.ac-logo img { height: 69px; }
	.ac-cta { padding: 11px; }
	.ac-cta span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
	.ac-cabecera *, .ac-cabecera *::after { transition: none !important; }
}
