/* ASTRA ARANJUEZ - main.css */

.landmark-hero {
    position: relative;
    min-height: 60vh;
    background-size: cover;
    background-position: center;
    background-color: #2c3e50;
    color: #fff;
    display: flex;
    align-items: flex-end;
}
.landmark-hero__overlay {
    width: 100%;
    background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.7) 100%);
    padding: 4rem 2rem 3rem;
}
.landmark-hero__content { max-width: 1200px; margin: 0 auto; }
.landmark-hero__rutas { margin-bottom: 1rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.landmark-hero__ruta-tag {
    display: inline-block;
    padding: .35rem .9rem;
    background: rgba(255,255,255,.15);
    border: 1px solid rgba(255,255,255,.4);
    color: #fff !important;
    border-radius: 999px;
    font-size: .85rem;
    text-decoration: none;
    transition: background .2s;
}
.landmark-hero__ruta-tag:hover { background: rgba(255,255,255,.3); }
.landmark-hero__title {
    font-size: clamp(2rem, 5vw, 3.5rem);
    margin: 0 0 .5rem;
    color: #fff;
    line-height: 1.1;
    font-weight: 700;
}
.landmark-hero__meta { font-size: 1.1rem; opacity: .9; }
.landmark-hero__meta span + span::before { content: ' · '; margin: 0 .25rem; }

.landmark-body { background: #fafafa; padding: 3rem 1.5rem; }
.landmark-body__container {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 3rem;
}
@media (max-width: 900px) { .landmark-body__container { grid-template-columns: 1fr; } }

.landmark-resumen {
    font-size: 1.15rem;
    line-height: 1.7;
    color: #34495e;
    border-left: 4px solid #c19a4b;
    padding: 1rem 0 1rem 1.5rem;
    margin-bottom: 2rem;
    background: #fff;
}

.landmark-content { font-size: 1.05rem; line-height: 1.8; color: #333; }
.landmark-content p { margin-bottom: 1.2rem; }
.landmark-galeria { margin-top: 3rem; }
.landmark-galeria__title { font-size: 1.6rem; margin-bottom: 1.2rem; color: #2c3e50; }
.landmark-galeria__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: .6rem;
}
.landmark-galeria__item {
    overflow: hidden;
    border-radius: 4px;
    aspect-ratio: 1/1;
    display: block;
}
.landmark-galeria__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s;
    display: block;
}
.landmark-galeria__item:hover img { transform: scale(1.06); }

.landmark-mapa { margin-top: 3rem; }
.landmark-mapa__title { font-size: 1.6rem; margin-bottom: 1.2rem; color: #2c3e50; }
.landmark-mapa__container { height: 400px; border-radius: 6px; background: #ddd; }

.landmark-info-box {
    background: #fff;
    padding: 1.8rem;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,.06);
    position: sticky;
    top: 2rem;
}
.landmark-info-box h3 {
    margin: 0 0 1.2rem;
    font-size: 1.2rem;
    color: #2c3e50;
    border-bottom: 2px solid #c19a4b;
    padding-bottom: .5rem;
}
.landmark-info dt {
    font-size: .8rem;
    text-transform: uppercase;
    color: #7f8c8d;
    margin-top: .8rem;
    font-weight: 600;
    letter-spacing: .04em;
}
.landmark-info dd {
    margin: .2rem 0 .8rem;
    color: #2c3e50;
    font-size: .95rem;
    line-height: 1.5;
}
.landmark-info dd a { color: #c19a4b; text-decoration: none; }
.landmark-info dd a:hover { text-decoration: underline; }

.landmark-pdf-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    width: 100%;
    margin-top: 1.5rem;
    padding: .9rem 1.2rem;
    background: #c19a4b;
    color: #fff !important;
    border-radius: 4px;
    text-decoration: none;
    font-weight: 600;
    transition: background .2s;
}
.landmark-pdf-btn:hover { background: #a3823f; text-decoration: none; }
/* ============================
   PAGINA DE RUTA (taxonomy-ruta.php)
   ============================ */

.ruta-hero {
    position: relative;
    min-height: 65vh;
    background-size: cover;
    background-position: center;
    background-color: #1e3a5f;
    color: #fff;
    display: flex;
    align-items: flex-end;
}
.ruta-hero__overlay {
    width: 100%;
    background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.75) 100%);
    padding: 5rem 2rem 3rem;
}
.ruta-hero__content {
    max-width: 1200px;
    margin: 0 auto;
}
.ruta-hero__eyebrow {
    display: inline-block;
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .15em;
    background: #c19a4b;
    color: #fff;
    padding: .3rem .9rem;
    border-radius: 3px;
    margin-bottom: 1rem;
}
.ruta-hero__title {
    font-size: clamp(2.2rem, 5.5vw, 4rem);
    margin: 0 0 1rem;
    color: #fff;
    line-height: 1.05;
    font-weight: 700;
}
.ruta-hero__intro {
    font-size: 1.2rem;
    line-height: 1.6;
    max-width: 800px;
    margin: 0 0 1.5rem;
    opacity: .95;
}
.ruta-hero__stats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.5rem;
    font-size: 1rem;
}
.ruta-hero__stats > span {
    background: rgba(255,255,255,.15);
    border: 1px solid rgba(255,255,255,.4);
    padding: .5rem 1rem;
    border-radius: 999px;
}
.ruta-hero__pdf-btn {
    display: inline-block;
    background: #c19a4b;
    color: #fff !important;
    padding: .6rem 1.4rem;
    border-radius: 4px;
    text-decoration: none;
    font-weight: 600;
    transition: background .2s;
}
.ruta-hero__pdf-btn:hover {
    background: #a3823f;
    text-decoration: none;
}

.ruta-body {
    background: #fafafa;
    padding: 3rem 1.5rem;
}
.ruta-body__container {
    max-width: 1200px;
    margin: 0 auto;
}

.ruta-section__title {
    font-size: 1.8rem;
    color: #2c3e50;
    margin: 0 0 1.5rem;
    padding-bottom: .5rem;
    border-bottom: 3px solid #c19a4b;
    display: inline-block;
}

.ruta-descripcion {
    background: #fff;
    padding: 2rem;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,.05);
    margin-bottom: 3rem;
    font-size: 1.05rem;
    line-height: 1.8;
    color: #333;
}
.ruta-descripcion p:last-child {
    margin-bottom: 0;
}
.ruta-galeria {
    margin-bottom: 3rem;
}
.ruta-galeria__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: .6rem;
    margin-bottom: 1rem;
}
.ruta-galeria__item {
    overflow: hidden;
    border-radius: 4px;
    aspect-ratio: 4/3;
    display: block;
}
.ruta-galeria__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .35s;
}
.ruta-galeria__item:hover img {
    transform: scale(1.05);
}
.ruta-galeria__more {
    text-align: center;
    color: #7f8c8d;
    font-size: .9rem;
    font-style: italic;
}

.ruta-landmarks {
    margin-bottom: 2rem;
}
.ruta-landmarks__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
}
.landmark-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,.08);
    transition: transform .25s, box-shadow .25s;
    text-decoration: none !important;
    color: inherit;
}
.landmark-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.landmark-card__img {
    aspect-ratio: 16/10;
    background: #ddd;
    overflow: hidden;
}
.landmark-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.landmark-card__body {
    padding: 1.2rem 1.4rem 1.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.landmark-card__title {
    margin: 0 0 .4rem;
    font-size: 1.15rem;
    color: #2c3e50;
    line-height: 1.3;
}
.landmark-card__siglo {
    display: inline-block;
    font-size: .8rem;
    color: #c19a4b;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: .6rem;
    font-weight: 600;
}
.landmark-card__desc {
    margin: 0;
    font-size: .92rem;
    line-height: 1.55;
    color: #555;
}
/* ============================
   HOME (front-page.php)
   ============================ */

.home-page {
    background: #fff;
}

.home-hero {
    position: relative;
    min-height: 80vh;
    background-size: cover;
    background-position: center;
    background-color: #1e3a5f;
    color: #fff;
    display: flex;
    align-items: center;
}
.home-hero__overlay {
    width: 100%;
    background: linear-gradient(135deg, rgba(30,58,95,0.85) 0%, rgba(0,0,0,0.55) 100%);
    padding: 6rem 2rem;
}
.home-hero__content {
    max-width: 900px;
    margin: 0 auto;
    text-align: center;
}
.home-hero__eyebrow {
    display: inline-block;
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .2em;
    margin-bottom: 1.2rem;
    opacity: .9;
    border-top: 1px solid rgba(255,255,255,.5);
    border-bottom: 1px solid rgba(255,255,255,.5);
    padding: .4rem 1rem;
}
.home-hero__title {
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    color: #fff;
    margin: 0 0 1.5rem;
    line-height: 1.05;
    font-weight: 700;
}
.home-hero__intro {
    font-size: 1.2rem;
    line-height: 1.7;
    max-width: 700px;
    margin: 0 auto 2rem;
    opacity: .95;
}
.home-hero__intro p {
    margin: 0 0 1rem;
}
.home-hero__intro p:last-child {
    margin-bottom: 0;
}
.home-hero__cta {
    display: inline-block;
    background: #c19a4b;
    color: #fff !important;
    padding: 1rem 2.5rem;
    border-radius: 4px;
    text-decoration: none;
    font-weight: 600;
    font-size: 1.05rem;
    letter-spacing: .04em;
    transition: background .2s, transform .2s;
}
.home-hero__cta:hover {
    background: #a3823f;
    transform: translateY(-2px);
    text-decoration: none;
}
.home-section__container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 5rem 1.5rem;
}
.home-section__header {
    text-align: center;
    margin-bottom: 3rem;
}
.home-section__title {
    font-size: clamp(1.8rem, 3.5vw, 2.5rem);
    color: #2c3e50;
    margin: 0 0 .8rem;
    line-height: 1.15;
}
.home-section__subtitle {
    font-size: 1.1rem;
    color: #7f8c8d;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

.home-rutas {
    background: #fafafa;
}
.home-rutas__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 2rem;
}
.ruta-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0,0,0,.08);
    transition: transform .3s, box-shadow .3s;
    text-decoration: none !important;
    color: inherit;
}
.ruta-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 32px rgba(0,0,0,.15);
}
.ruta-card__img {
    position: relative;
    aspect-ratio: 16/10;
    background: #ddd;
    overflow: hidden;
}
.ruta-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s;
}
.ruta-card:hover .ruta-card__img img {
    transform: scale(1.06);
}
.ruta-card__count {
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    background: rgba(193, 154, 75, 0.95);
    color: #fff;
    padding: .35rem .9rem;
    border-radius: 999px;
    font-size: .85rem;
    font-weight: 600;
}
.ruta-card__body {
    padding: 1.5rem 1.6rem 1.8rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.ruta-card__title {
    margin: 0 0 .8rem;
    font-size: 1.35rem;
    color: #2c3e50;
    line-height: 1.25;
}
.ruta-card__desc {
    margin: 0 0 1.2rem;
    font-size: .95rem;
    line-height: 1.6;
    color: #555;
    flex: 1;
}
.ruta-card__cta {
    display: inline-block;
    color: #c19a4b;
    font-weight: 600;
    font-size: .95rem;
    margin-top: auto;
    transition: transform .2s;
}
.ruta-card:hover .ruta-card__cta {
    transform: translateX(4px);
}
.home-destacados {
    background: #fff;
}
.home-destacados__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.2rem;
}
.destacado-card {
    position: relative;
    display: block;
    aspect-ratio: 4/5;
    overflow: hidden;
    border-radius: 6px;
    text-decoration: none !important;
    color: #fff;
    background: #2c3e50;
}
.destacado-card__img {
    position: absolute;
    inset: 0;
}
.destacado-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .5s;
}
.destacado-card:hover .destacado-card__img img {
    transform: scale(1.08);
}
.destacado-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.8) 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.5rem;
    color: #fff;
}
.destacado-card__title {
    margin: 0 0 .3rem;
    font-size: 1.15rem;
    line-height: 1.25;
    color: #fff;
}
.destacado-card__siglo {
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #c19a4b;
    font-weight: 600;
}

.home-cta-final {
    background: linear-gradient(135deg, #1e3a5f 0%, #2c3e50 100%);
    color: #fff;
    text-align: center;
}
.home-cta-final .home-section__container {
    padding: 4rem 1.5rem;
}
.home-cta-final h2 {
    color: #fff;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    margin: 0 0 1rem;
}
.home-cta-final p {
    font-size: 1.1rem;
    opacity: .9;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}
/* Mapa Leaflet del landmark */
.landmark-mapa {
    margin-top: 2rem;
}
.landmark-mapa__title {
    margin-bottom: 1rem;
}
.landmark-mapa__container {
    width: 100%;
    height: 450px;
    border-radius: 6px;
    overflow: hidden;
    border: 1px solid #e5e5e5;
    background: #f5f5f5;
}
@media (max-width: 768px) {
    .landmark-mapa__container {
        height: 320px;
    }
}

/* ===== Mapa de la ruta ===== */
.ruta-mapa {
    margin: 2.5rem 0;
}
.ruta-mapa__nota {
    color: #666;
    font-size: 0.95rem;
    margin: 0 0 1rem;
}
.ruta-mapa__container {
    width: 100%;
    height: 480px;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #e5e5e5;
    background: #f5f5f5;
}
@media (max-width: 768px) {
    .ruta-mapa__container { height: 360px; }
}

.ruta-marker { background: transparent; border: 0; }
.ruta-marker__num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #185FA5;
    color: #fff;
    font-weight: 600;
    font-size: 13px;
    border: 2px solid #fff;
    box-shadow: 0 2px 6px rgba(0,0,0,0.25);
}

.ruta-marker__popup { line-height: 1.5; }
.ruta-marker__popup strong { color: #1a3a5c; }
.ruta-marker__popup a {
    display: inline-block;
    margin-top: 4px;
    color: #185FA5;
    text-decoration: none;
    font-weight: 500;
}
.ruta-marker__popup a:hover { text-decoration: underline; }

/*
   El .ast-container en Astra (con full-width-container) ocupa el 100% del viewport.
   Los HEROES (que tienen background-image) deben ocupar todo ese ancho.
   Los CONTAINERS internos (donde está el contenido legible) se centran a 1200px.
*/

/* 1) Asegurar que las secciones HERO ocupen el 100% del viewport */
.home-hero,
.home-rutas,
.home-destacados,
.home-cta-final,
.landmark-hero,
.landmark-body,
.landmark-mapa,
.ruta-hero,
.ruta-mapa,
.ruta-body,
.ruta-descripcion,
.ruta-galeria {
    width: 100% !important;
    max-width: 100% !important;
}

/* 2) El wrapper .ast-container debe ocupar todo el ancho (sin paddings de Astra) */
.ast-container {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* 3) Containers internos centrados a 1200px con padding lateral
      (los que NO los tenían explícitos en sus reglas originales) */
.ruta-body__container,
.landmark-body__container,
.ruta-hero__content,
.landmark-hero__content,
.home-section__container {
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
}

/* === FIX FINAL: ancho completo en TODAS las páginas === */
/* Mismo enfoque que funcionó en la home: .ast-container al 100% sin paddings,
   y todas las secciones (incluidos grids internos) al 100% del viewport. */

.ast-container {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Todas las secciones de la home, ruta y landmark a ancho completo */
.home-page,
.home-hero,
.home-rutas,
.home-destacados,
.home-cta-final,
.landmark-hero,
.landmark-body,
.landmark-mapa,
.landmark-galeria,
.landmark-info,
.ruta-single,
.ruta-hero,
.ruta-body,
.ruta-mapa,
.ruta-descripcion,
.ruta-galeria,
.ruta-landmarks {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* ====================
   FOOTER
   ==================== */
.aranjuez-footer {
    background: #1e3a5f;
    color: #cfd8e3;
    padding: 4rem 0 0;
    margin-top: 4rem;
    font-size: .95rem;
    line-height: 1.7;
}
.aranjuez-footer__container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem;
    box-sizing: border-box;
}
.aranjuez-footer__cols {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2.5rem;
    padding-bottom: 3rem;
}
.aranjuez-footer__col {
    min-width: 0;
}
.aranjuez-footer__col--marca .aranjuez-footer__logo img {
    max-width: 180px;
    height: auto;
    margin-bottom: 1rem;
    filter: brightness(0) invert(1);
}
.aranjuez-footer__tagline {
    margin: 0;
    color: #fff;
    line-height: 1.5;
}
.aranjuez-footer__tagline strong {
    font-size: 1.05rem;
}
.aranjuez-footer__title {
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
    margin: 0 0 1rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    border-bottom: 2px solid #c19a4b;
    padding-bottom: .5rem;
    display: inline-block;
}
.aranjuez-footer__address {
    font-style: normal;
    margin: 0;
}
.aranjuez-footer__address a {
    color: #cfd8e3;
    text-decoration: none;
    transition: color .2s;
}
.aranjuez-footer__address a:hover {
    color: #c19a4b;
}
.aranjuez-footer__address span {
    display: inline-block;
    margin-top: .5rem;
    font-size: .88rem;
    opacity: .85;
}
.aranjuez-footer__list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.aranjuez-footer__list li {
    margin-bottom: .5rem;
}
.aranjuez-footer__list a {
    color: #cfd8e3;
    text-decoration: none;
    transition: color .2s, padding-left .2s;
    display: inline-block;
}
.aranjuez-footer__list a:hover {
    color: #c19a4b;
    padding-left: 4px;
}
.aranjuez-footer__bottom {
    border-top: 1px solid rgba(255,255,255,.1);
    padding: 1.5rem 0;
    text-align: center;
    font-size: .85rem;
    color: rgba(207,216,227,.7);
}
.aranjuez-footer__bottom p {
    margin: 0;
}

/* Responsive */
@media (max-width: 900px) {
    .aranjuez-footer__cols {
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;
    }
}
@media (max-width: 600px) {
    .aranjuez-footer__cols {
        grid-template-columns: 1fr;
        gap: 1.8rem;
    }
    .aranjuez-footer {
        padding-top: 3rem;
    }
}

/* === HEADER: fondo azul oscuro + links blancos === */
#masthead.site-header,
.ast-primary-header-bar,
.site-primary-header-wrap,
.main-header-bar {
    background-color: #1e3a5f !important;
}
.main-header-menu > li > a,
.ast-primary-header .ast-builder-menu-1 .menu-item > a,
#masthead .menu-item > a {
    color: #ffffff !important;
}
.main-header-menu > li > a:hover,
.main-header-menu > li.current-menu-item > a,
.ast-primary-header .ast-builder-menu-1 .menu-item.current-menu-item > a,
.ast-primary-header .ast-builder-menu-1 .menu-item > a:hover {
    color: #c19a4b !important;
}

/* Logo: ya viene blanco, no hacen falta filtros en el header */
#masthead .custom-logo-link img {
    max-height: 64px;
    width: auto;
}

/* Footer: el logo ya es blanco, quitar filtro brightness/invert */
.aranjuez-footer__col--marca .aranjuez-footer__logo img {
    filter: none;
    max-width: 200px;
}

/* === FIX: single-landmark a ancho completo === */
.single-landmark .ast-container,
.single-landmark .site-content > .ast-container,
.single-landmark .site-content {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
.single-landmark .landmark-hero,
.single-landmark .landmark-body,
.single-landmark .landmark-mapa,
.single-landmark .landmark-galeria,
.single-landmark .landmark-info {
    width: 100% !important;
    max-width: 100% !important;
}

/* === FIX REFUERZO: single-landmark ancho completo === */
body.single-landmark.ast-page-builder-template .site-content > .ast-container,
body.single-landmark .ast-container,
body.single-landmark #content,
body.single-landmark #content > .ast-container {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.single-landmark .landmark-hero,
body.single-landmark .landmark-body,
body.single-landmark .landmark-mapa,
body.single-landmark .landmark-galeria,
body.single-landmark .landmark-info,
body.single-landmark .landmark-info-box,
body.single-landmark .landmark-content {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* === FIX FINAL: single-landmark cubrir todos los wrappers === */
body.single-landmark .ast-article-single,
body.single-landmark article.landmark-single,
body.single-landmark .landmark-body__container,
body.single-landmark .landmark-body__main,
body.single-landmark .landmark-content {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* FIX hero intro: WYSIWYG envuelve en <p>, evitar doble margen */
.ruta-hero__intro p { margin: 0 0 .5em 0; }
.ruta-hero__intro p:last-child { margin-bottom: 0; }

/* Video por ruta - responsive 16:9 */
.ruta-video { margin: 2em 0; }
.ruta-video__container {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    max-width: 100%;
    border-radius: 8px;
    background: #000;
}
.ruta-video__container iframe,
.ruta-video__container embed,
.ruta-video__container object,
.ruta-video__container video {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    border: 0;
}

/* ============== ARANJUEZ MENU TWEAKS (1.0) ============== */

/* Línea dorada que aparece bajo el enlace del menú al pasar el ratón */
.main-header-bar .main-header-menu .menu-link,
.ast-primary-header-bar .main-header-menu .menu-link,
#ast-desktop-header .menu-link {
    position: relative;
    transition: color 0.25s ease;
}
.main-header-bar .main-header-menu .menu-link::after,
.ast-primary-header-bar .main-header-menu .menu-link::after,
#ast-desktop-header .menu-link::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 8px;
    width: 0;
    height: 2px;
    background: #f6c66d;
    transition: width 0.3s ease, left 0.3s ease;
    pointer-events: none;
}
.main-header-bar .main-header-menu .menu-link:hover::after,
.ast-primary-header-bar .main-header-menu .menu-link:hover::after,
#ast-desktop-header .menu-link:hover::after,
.main-header-menu .current-menu-item > .menu-link::after,
.main-header-menu .current_page_item > .menu-link::after {
    width: 65%;
    left: 17.5%;
}
.main-header-bar .main-header-menu .menu-link:hover {
    color: #f6c66d !important;
}

/* Sutil "lift" al pasar — efecto pseudo-parallax */
.main-header-menu .menu-link:hover {
    transform: translateY(-1px);
    transition: transform 0.25s ease, color 0.25s ease;
}

/* ============== MENÚ MÓVIL / TABLET (offcanvas) ============== */
/* Forzar fondo navy + texto blanco, supera lo que el Customizer no aplica */

.ast-mobile-popup-drawer .ast-mobile-popup-inner,
#ast-mobile-popup,
#ast-mobile-popup-inner,
.ast-mobile-popup-content,
.ast-builder-menu-mobile,
#ast-hf-mobile-menu {
    background: #1f3a5f !important;
}

.ast-mobile-popup-drawer .menu-link,
.ast-mobile-popup-drawer .ast-builder-menu-mobile .menu-link,
.ast-mobile-popup-drawer a,
#ast-hf-mobile-menu .menu-link,
#ast-hf-mobile-menu a,
.ast-builder-menu-mobile .menu-link {
    color: #ffffff !important;
    border-bottom: 1px solid rgba(255,255,255,0.08) !important;
    padding: 0.85em 1.2em !important;
}

.ast-mobile-popup-drawer .menu-link:hover,
#ast-hf-mobile-menu .menu-link:hover,
.ast-builder-menu-mobile .menu-link:hover,
.ast-mobile-popup-drawer .current-menu-item > .menu-link,
#ast-hf-mobile-menu .current-menu-item > .menu-link {
    background: rgba(246, 198, 109, 0.15) !important;
    color: #f6c66d !important;
}

/* Botón cerrar (X) del offcanvas */
.menu-toggle-close,
.ast-mobile-popup-close,
#menu-toggle-close {
    color: #ffffff !important;
}

/* Submenús dentro del móvil */
.ast-mobile-popup-drawer .sub-menu,
#ast-hf-mobile-menu .sub-menu {
    background: rgba(0,0,0,0.18) !important;
}

/* Botón hamburguesa: que sea visible siempre */
.ast-button-wrap .menu-toggle,
#ast-mobile-header .menu-toggle {
    color: #1f3a5f !important;
    border-color: #1f3a5f !important;
}
.ast-mobile-header-on-canvas .menu-toggle {
    background: #1f3a5f !important;
    color: #ffffff !important;
}

/* ============== FIN ARANJUEZ MENU TWEAKS ============== */

/* ============== ARANJUEZ MOBILE MENU FIX (1.1) ============== */
/* Especificidad muy alta para superar al Customizer de Astra */

html body .ast-mobile-popup-drawer .menu-link,
html body .ast-mobile-popup-drawer .menu-link:link,
html body .ast-mobile-popup-drawer .menu-link:visited,
html body .ast-mobile-popup-drawer .menu-link span,
html body .ast-mobile-popup-drawer .menu-text,
html body .ast-mobile-popup-drawer li > a,
html body .ast-mobile-popup-drawer .ast-builder-menu-mobile a,
html body #ast-hf-mobile-menu .menu-link,
html body #ast-hf-mobile-menu a,
html body #ast-hf-mobile-menu .menu-text,
html body .ast-builder-menu-mobile-1 .menu-link,
html body .ast-builder-menu-mobile-1 a,
html body .main-header-menu.ast-flex.ast-justify-content-flex-end .menu-link {
    color: #ffffff !important;
    opacity: 1 !important;
    text-decoration: none !important;
}

/* Por si Astra usa CSS variables — las redefinimos */
.ast-mobile-popup-drawer,
#ast-hf-mobile-menu,
.ast-builder-menu-mobile {
    --ast-mobile-menu-link-color: #ffffff !important;
    --ast-mobile-menu-link-h-color: #f6c66d !important;
    --ast-mobile-menu-link-a-color: #f6c66d !important;
    --ast-mobile-header-toggle-btn-color: #ffffff !important;
    --ast-global-color-3: #ffffff !important;
    --ast-global-color-1: #ffffff !important;
    color: #ffffff !important;
}

/* Hover y activo: dorado */
html body .ast-mobile-popup-drawer .menu-link:hover,
html body .ast-mobile-popup-drawer .current-menu-item > .menu-link,
html body #ast-hf-mobile-menu .menu-link:hover,
html body #ast-hf-mobile-menu .current-menu-item > .menu-link {
    color: #f6c66d !important;
    background: rgba(246, 198, 109, 0.12) !important;
}

/* Iconos de submenu (flechita) blancos */
.ast-mobile-popup-drawer .ast-submenu-expanded svg,
.ast-mobile-popup-drawer .menu-item svg,
#ast-hf-mobile-menu svg {
    fill: #ffffff !important;
    color: #ffffff !important;
}

/* Subtítulos / descripciones del menú si las hay */
.ast-mobile-popup-drawer .menu-description,
#ast-hf-mobile-menu .menu-description {
    color: rgba(255,255,255,0.7) !important;
}

/* Botón cerrar (X) bien visible */
html body .menu-toggle-close,
html body #menu-toggle-close,
html body .ast-mobile-popup-close {
    color: #ffffff !important;
    opacity: 1 !important;
}
html body .menu-toggle-close svg,
html body #menu-toggle-close svg {
    fill: #ffffff !important;
}

/* ============== FIN MOBILE MENU FIX ============== */

/* ============== ARANJUEZ MOBILE MENU FIX (1.2 - texto oscuro sobre fondo claro) ============== */
/* Texto navy sobre fondo blanco — más legible que pelear contra Astra */

html body .ast-mobile-popup-drawer,
html body #ast-mobile-popup,
html body #ast-mobile-popup-inner,
html body .ast-mobile-popup-content,
html body #ast-hf-mobile-menu,
html body .ast-builder-menu-mobile,
html body .ast-builder-menu-mobile-1 {
    background: #ffffff !important;
}

html body .ast-mobile-popup-drawer .menu-link,
html body .ast-mobile-popup-drawer .menu-link:link,
html body .ast-mobile-popup-drawer .menu-link:visited,
html body .ast-mobile-popup-drawer a,
html body .ast-mobile-popup-drawer .menu-text,
html body .ast-mobile-popup-drawer span,
html body #ast-hf-mobile-menu .menu-link,
html body #ast-hf-mobile-menu a,
html body #ast-hf-mobile-menu span,
html body .ast-builder-menu-mobile .menu-link,
html body .ast-builder-menu-mobile a,
html body .ast-builder-menu-mobile span {
    color: #1f3a5f !important;
    opacity: 1 !important;
    text-shadow: none !important;
    border-bottom: 1px solid rgba(31, 58, 95, 0.1) !important;
    font-weight: 500 !important;
}

/* CSS variables de Astra: forzar texto oscuro */
.ast-mobile-popup-drawer,
#ast-hf-mobile-menu,
.ast-builder-menu-mobile {
    --ast-mobile-menu-link-color: #1f3a5f !important;
    --ast-mobile-menu-link-h-color: #c9962f !important;
    --ast-mobile-menu-link-a-color: #c9962f !important;
}

/* Hover/activo: dorado oscuro para que destaque sobre blanco */
html body .ast-mobile-popup-drawer .menu-link:hover,
html body .ast-mobile-popup-drawer .current-menu-item > .menu-link,
html body #ast-hf-mobile-menu .menu-link:hover,
html body #ast-hf-mobile-menu .current-menu-item > .menu-link,
html body .ast-builder-menu-mobile .menu-link:hover {
    color: #c9962f !important;
    background: rgba(201, 150, 47, 0.08) !important;
}

/* Iconos de submenu en navy */
.ast-mobile-popup-drawer .ast-submenu-expanded svg,
.ast-mobile-popup-drawer .menu-item svg,
#ast-hf-mobile-menu svg {
    fill: #1f3a5f !important;
    color: #1f3a5f !important;
}

/* Botón cerrar (X) en navy */
html body .menu-toggle-close,
html body #menu-toggle-close,
html body .ast-mobile-popup-close {
    color: #1f3a5f !important;
    opacity: 1 !important;
}
html body .menu-toggle-close svg,
html body #menu-toggle-close svg,
html body .ast-mobile-popup-close svg {
    fill: #1f3a5f !important;
}

/* Botón hamburguesa (cuando el menú está cerrado): navy sobre blanco */
html body #ast-mobile-header .menu-toggle,
html body .ast-mobile-header-on-canvas .menu-toggle,
html body .ast-button-wrap .menu-toggle {
    color: #1f3a5f !important;
    background: transparent !important;
    border-color: #1f3a5f !important;
}
html body #ast-mobile-header .menu-toggle svg,
html body .menu-toggle svg {
    fill: #1f3a5f !important;
}

/* ============== FIN MOBILE MENU FIX 1.2 ============== */

/* ============== ARANJUEZ HAMBURGUESA FIX (1.3) ============== */
/* Botón hamburguesa: blanco sobre la cabecera navy */

html body .ast-mobile-header-wrap .menu-toggle,
html body #ast-mobile-header .menu-toggle,
html body .ast-mobile-header-on-canvas .menu-toggle,
html body .ast-button-wrap .menu-toggle,
html body .main-header-bar .menu-toggle,
html body .ast-builder-menu-mobile-trigger {
    color: #ffffff !important;
    background: transparent !important;
    border-color: #ffffff !important;
}

html body .ast-mobile-header-wrap .menu-toggle svg,
html body #ast-mobile-header .menu-toggle svg,
html body .menu-toggle svg,
html body .ast-builder-menu-mobile-trigger svg,
html body .ast-mobile-svg {
    fill: #ffffff !important;
    color: #ffffff !important;
    stroke: #ffffff !important;
}

/* Las "rayas" del icono hamburguesa cuando es CSS (no SVG) */
html body .menu-toggle .menu-toggle-icon,
html body .menu-toggle .ast-mobile-svg,
html body .menu-toggle:before,
html body .menu-toggle:after {
    color: #ffffff !important;
    background: #ffffff !important;
}

/* Por si Astra usa pseudo-elementos para las rayas */
html body .ast-button-wrap .ast-mobile-svg-1,
html body .ast-button-wrap .ast-mobile-svg-2,
html body .ast-button-wrap .ast-mobile-svg-3 {
    fill: #ffffff !important;
}

/* CSS variables del header builder */
.ast-mobile-header-wrap,
#ast-mobile-header {
    --ast-mobile-header-toggle-btn-color: #ffffff !important;
    --ast-mobile-header-toggle-btn-border-color: #ffffff !important;
}

/* ============== FIN HAMBURGUESA FIX ============== */

/* ============== ARANJUEZ HAMBURGUESA FIX (1.4) — solo rayas blancas, sin caja ============== */
html body .ast-mobile-header-wrap .menu-toggle,
html body #ast-mobile-header .menu-toggle,
html body .ast-mobile-header-on-canvas .menu-toggle,
html body .ast-button-wrap .menu-toggle,
html body .main-header-bar .menu-toggle,
html body .ast-builder-menu-mobile-trigger {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    padding: 8px !important;
}

html body .ast-mobile-header-wrap .menu-toggle:hover,
html body #ast-mobile-header .menu-toggle:hover,
html body .menu-toggle:hover,
html body .menu-toggle:focus,
html body .menu-toggle:active {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* Las 3 rayas / SVG: blancas */
html body .menu-toggle svg,
html body .menu-toggle svg *,
html body .ast-builder-menu-mobile-trigger svg,
html body .ast-builder-menu-mobile-trigger svg * {
    fill: #ffffff !important;
    stroke: #ffffff !important;
    color: #ffffff !important;
}

/* CSS variables */
.ast-mobile-header-wrap,
#ast-mobile-header {
    --ast-mobile-header-toggle-btn-color: #ffffff !important;
    --ast-mobile-header-toggle-btn-bg-color: transparent !important;
    --ast-mobile-header-toggle-btn-border-color: transparent !important;
}
/* ============== FIN HAMBURGUESA FIX 1.4 ============== */

/* ============== ARANJUEZ HAMBURGUESA FIX (1.4) — solo rayas blancas, sin caja ============== */
html body .ast-mobile-header-wrap .menu-toggle,
html body #ast-mobile-header .menu-toggle,
html body .ast-mobile-header-on-canvas .menu-toggle,
html body .ast-button-wrap .menu-toggle,
html body .main-header-bar .menu-toggle,
html body .ast-builder-menu-mobile-trigger {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    padding: 8px !important;
}

html body .ast-mobile-header-wrap .menu-toggle:hover,
html body #ast-mobile-header .menu-toggle:hover,
html body .menu-toggle:hover,
html body .menu-toggle:focus,
html body .menu-toggle:active {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* Las 3 rayas / SVG: blancas */
html body .menu-toggle svg,
html body .menu-toggle svg *,
html body .ast-builder-menu-mobile-trigger svg,
html body .ast-builder-menu-mobile-trigger svg * {
    fill: #ffffff !important;
    stroke: #ffffff !important;
    color: #ffffff !important;
}

/* CSS variables */
.ast-mobile-header-wrap,
#ast-mobile-header {
    --ast-mobile-header-toggle-btn-color: #ffffff !important;
    --ast-mobile-header-toggle-btn-bg-color: transparent !important;
    --ast-mobile-header-toggle-btn-border-color: transparent !important;
}
/* ============== FIN HAMBURGUESA FIX 1.4 ============== */

/* ============== ARANJUEZ HAMBURGUESA FIX (1.5) — quitar cuadrado blanco ============== */
/* Anular fondos blancos que metí por error en versiones anteriores */

html body .menu-toggle,
html body .menu-toggle::before,
html body .menu-toggle::after,
html body .menu-toggle .menu-toggle-icon,
html body .menu-toggle .ast-mobile-svg,
html body .menu-toggle .ast-button-wrap,
html body .ast-builder-menu-mobile-trigger::before,
html body .ast-builder-menu-mobile-trigger::after {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* Solo el SVG: rayas blancas, fondo transparente */
html body .menu-toggle svg,
html body .ast-builder-menu-mobile-trigger svg {
    background: transparent !important;
}
html body .menu-toggle svg path,
html body .menu-toggle svg line,
html body .menu-toggle svg polygon,
html body .menu-toggle svg rect.ast-icon-line,
html body .ast-builder-menu-mobile-trigger svg path,
html body .ast-builder-menu-mobile-trigger svg line {
    fill: #ffffff !important;
    stroke: #ffffff !important;
}
/* Si el SVG usa rect como fondo, transparente */
html body .menu-toggle svg > rect:first-child,
html body .menu-toggle svg rect:not(.ast-icon-line) {
    fill: transparent !important;
}

/* ============== FIN FIX 1.5 ============== */
