/*
Theme Name: GeneratePress Child
Template: generatepress
Version: 1.0
*/

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Nunito+Sans:wght@400;600;700&display=swap');

:root{
    --mft-arena:#EFD9C6;
    --mft-arena-soft:#F7ECE1;
    --mft-terracota:#EC5F0D;
    --mft-terracota-dark:#C44E08;
    --mft-verde:#003A14;
    --mft-teja:#9A1E26;
    --mft-oscuro:#3D2B1F;
    --mft-texto:#4A3F35;
}

.tour-wrap{max-width:1200px;margin:0 auto;color:var(--mft-texto);font-family:'Nunito Sans',sans-serif;font-size:16px;}

/* HERO */
.tour-hero{position:relative;min-height:62vh;background-size:cover;background-position:center;display:flex;align-items:flex-end;border-radius:0 0 24px 24px;overflow:hidden;}
.tour-hero-overlay{
    width:100%;
    padding:3.5rem 2.5rem 3rem;
    background:linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.6) 45%, rgba(0,0,0,0) 100%);
    color:#fff;
}
.tour-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2.4rem,5.5vw,4rem);font-weight:700;line-height:1.08;margin:0;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.35);}
.tour-title--plain{color:var(--mft-oscuro);padding:2rem;}

.tour-tagline {
    color: #fff;
    font-size: 1.15rem;
    font-weight: 400;
    line-height: 1.6;
    margin: 1rem 0 1.5rem;
    max-width: 75ch;
    text-shadow: 0 2px 10px rgba(0,0,0,0.6);
}
.tour-tagline--plain {
    color: var(--mft-texto);
    padding: 0 2rem;
    text-shadow: none;
    margin-top: -.5rem;
}

.tour-hero-sub{font-size:1.2rem;margin:.7rem 0 0;opacity:.96;letter-spacing:.03em;font-weight:600;}

/* BARRA DE DATOS */
.tour-facts{display:flex;flex-wrap:wrap;gap:1rem;background:var(--mft-arena);border-radius:18px;padding:1.6rem 1rem;margin:-2.2rem 2rem 0;position:relative;box-shadow:0 10px 34px rgba(61,43,31,.14);}
.tour-fact{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1;min-width:130px;padding:0 1rem;position:relative;}
.tour-fact:not(:last-child)::after{content:'';position:absolute;right:0;top:15%;height:70%;width:1px;background:rgba(61,43,31,.15);}
.tour-fact-icon{font-size:1.7rem;margin-bottom:.4rem;line-height:1;}
.tour-fact-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;color:var(--mft-terracota);font-weight:700;}
.tour-fact-value{font-size:1.12rem;font-weight:700;color:var(--mft-oscuro);margin-top:.2rem;}
.tour-fact--price .tour-fact-value{font-family:'Cormorant Garamond',serif;font-size:1.7rem;color:var(--mft-verde);line-height:1;}

/* CUERPO */
.tour-body{display:grid;grid-template-columns:1fr 350px;gap:3.5rem;padding:3.5rem 2rem;}
.tour-description{font-size:1.1rem;line-height:1.85;}
.tour-description p{margin-bottom:1.2rem;}
.tour-section{margin-top:3rem;}
.tour-section-title{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:700;color:var(--mft-verde);margin-bottom:1.2rem;padding-bottom:.6rem;position:relative;}
.tour-section-title::after{content:'';position:absolute;left:0;bottom:0;width:64px;height:3px;background:var(--mft-terracota);border-radius:2px;}
.tour-section-content{font-size:1.05rem;line-height:1.85;white-space:pre-line;}

/* INTRO INCLUYE */
.tour-includes-intro {
    font-size: 1.1rem;
    color: var(--mft-oscuro);
    font-weight: 600;
    margin-bottom: 1.5rem;
}

/* LISTAS */
.tour-includes-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem;}
.tour-included,.tour-not-included{background:var(--mft-arena-soft);border-radius:16px;padding:1.8rem;}
.tour-not-included{background:#fbeceb;}
.tour-included .tour-section-title{color:var(--mft-verde);font-size:1.5rem;}
.tour-not-included .tour-section-title{color:var(--mft-teja);font-size:1.5rem;}
.tour-list{list-style:none;margin:0;padding:0;}
.tour-list li{position:relative;padding-left:2rem;margin-bottom:.75rem;line-height:1.55;font-size:1.02rem;}
.tour-list li:last-child{margin-bottom:0;}
.tour-list li::before{position:absolute;left:0;top:.05em;font-weight:700;font-size:1.05rem;}
.tour-list--yes li::before{content:'✓';color:var(--mft-verde);}
.tour-list--no li::before{content:'✕';color:var(--mft-teja);}

/* SIDEBAR RESERVA */
.tour-booking-card{position:sticky;top:2rem;background:#fff;border:1px solid var(--mft-arena);border-radius:20px;padding:2.2rem;box-shadow:0 12px 44px rgba(61,43,31,.12);text-align:center;}
.tour-booking-price{font-family:'Cormorant Garamond',serif;font-size:1.35rem;color:var(--mft-texto);margin:0 0 1.2rem;}
.tour-booking-price strong{font-size:2.1rem;color:var(--mft-verde);}
.tour-booking-text{font-size:1.08rem;margin-bottom:1.4rem;color:var(--mft-oscuro);font-weight:600;}
.tour-booking-btn{display:block;background:var(--mft-terracota);color:#fff;font-weight:700;font-size:1.05rem;padding:1rem 1.5rem;border-radius:50px;text-decoration:none;transition:background .25s,transform .25s,box-shadow .25s;margin-bottom:1rem;box-shadow:0 6px 18px rgba(236,95,13,.3);}
.tour-booking-btn:hover,.tour-booking-btn:focus{background:var(--mft-terracota-dark);transform:translateY(-2px);color:#fff;box-shadow:0 8px 24px rgba(236,95,13,.4);}
.tour-booking-wa{display:inline-block;color:var(--mft-verde);font-weight:700;text-decoration:none;font-size:.98rem;border-bottom:2px solid transparent;transition:border-color .2s;}
.tour-booking-wa:hover,.tour-booking-wa:focus{border-color:var(--mft-verde);color:var(--mft-verde);}
.tour-booking-btn:focus-visible,.tour-booking-wa:focus-visible{outline:3px solid var(--mft-verde);outline-offset:3px;}

/* RESPONSIVE FICHA */
@media (max-width:900px){
    .tour-body{grid-template-columns:1fr;gap:2.5rem;padding:2.5rem 1.2rem;}
    .tour-includes-grid{grid-template-columns:1fr;}
    .tour-facts{margin:-2rem 1rem 0;gap:.5rem;}
    .tour-fact{min-width:calc(50% - .5rem);flex:0 0 calc(50% - .5rem);padding:.8rem .5rem;}
    .tour-fact:not(:last-child)::after{display:none;}
    .tour-hero{min-height:50vh;}
    .tour-hero-overlay{padding:2.5rem 1.5rem 2rem;}
    .tour-booking-card{position:static;}
}
@media (max-width:480px){
    .tour-fact{min-width:100%;flex:0 0 100%;border-bottom:1px solid rgba(61,43,31,.12);padding-bottom:.8rem;}
    .tour-fact:last-child{border-bottom:none;}
}

/* ==========================================================================
   ANCHO COMPLETO ARCHIVOS DE TOUR — máxima fuerza
   ========================================================================== */
body.post-type-archive-tour .grid-container,
body.post-type-archive-tour .site-content,
body.post-type-archive-tour .content-area,
body.post-type-archive-tour #primary,
body.post-type-archive-tour .site-main,
body.post-type-archive-tour article,
body.post-type-archive-tour .inside-article,
body.post-type-archive-tour .entry-content,
body.tax-tour-category .grid-container,
body.tax-tour-category .site-content,
body.tax-tour-category .content-area,
body.tax-tour-category #primary,
body.tax-tour-category .site-main,
body.tax-tour-category article,
body.tax-tour-category .inside-article,
body.tax-tour-category .entry-content{
    max-width:100% !important;
    width:100% !important;
    padding-left:0 !important;
    padding-right:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    float:none !important;
}

/* ==========================================================================
   REJILLA DE TARJETAS
   ========================================================================== */
.tours-archive-wrap{
    width:100%;
    max-width:1280px;
    margin:0 auto;
    padding:3rem 2rem 4rem;
    font-family:'Nunito Sans',sans-serif;
}
.tours-archive-header{text-align:center;margin-bottom:3rem;}
.tours-archive-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2.4rem,5vw,3.6rem);font-weight:700;color:var(--mft-verde);margin:0 0 .5rem;}
.tours-archive-sub{font-size:1.15rem;color:var(--mft-terracota);font-weight:600;margin:0;}

.tours-grid{
    display:grid !important;
    grid-template-columns:repeat(3, 1fr) !important;
    gap:2rem;
    width:100%;
}

.tour-card{
    position:relative;
    display:block;
    aspect-ratio: 1 / 1;
    border-radius:20px;
    overflow:hidden;
    background-size:cover;
    background-position:center;
    text-decoration:none;
    box-shadow:0 8px 28px rgba(61,43,31,.15);
    transition:transform .4s ease, box-shadow .4s ease;
    isolation:isolate;
}
.tour-card::before{content:'';position:absolute;inset:0;background-size:cover;background-position:center;background-image:inherit;transition:transform .7s ease;z-index:-1;}
.tour-card:hover{transform:translateY(-6px);box-shadow:0 16px 44px rgba(61,43,31,.28);}
.tour-card:hover::before{transform:scale(1.08);}

.tour-card-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:1.6rem;background:linear-gradient(to top, rgba(61,43,31,.92) 0%, rgba(61,43,31,.45) 45%, rgba(61,43,31,.05) 100%);}

.tour-card-badge{position:absolute;top:1.2rem;left:1.2rem;background:rgba(236,95,13,.95);color:#fff;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.35rem .85rem;border-radius:50px;white-space:nowrap;}

.tour-card-title{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:700;line-height:1.15;color:#fff;margin:0 0 .6rem;text-shadow:0 2px 12px rgba(0,0,0,.4);}
.tour-card-meta{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;}
.tour-card-duration{color:#EFD9C6;font-size:.88rem;font-weight:600;}
.tour-card-price{color:#fff;font-weight:700;font-size:.95rem;background:rgba(0,58,20,.75);padding:.3rem .8rem;border-radius:50px;white-space:nowrap;}

.tours-pagination{margin-top:3rem;text-align:center;}
.tours-pagination .page-numbers{display:inline-block;padding:.5rem .9rem;margin:0 .2rem;border-radius:8px;background:var(--mft-arena-soft);color:var(--mft-oscuro);text-decoration:none;font-weight:700;}
.tours-pagination .page-numbers.current{background:var(--mft-terracota);color:#fff;}

.tours-empty{text-align:center;font-size:1.1rem;color:var(--mft-texto);padding:3rem 0;}
.tour-card:focus-visible{outline:3px solid var(--mft-terracota);outline-offset:3px;}

/* RESPONSIVE REJILLA */
@media (max-width:1000px){
    .tours-grid{grid-template-columns:repeat(2, 1fr) !important;}
}
@media (max-width:640px){
    .tours-archive-wrap{padding:2rem 1.2rem 3rem;}
    .tours-grid{grid-template-columns:1fr !important;gap:1.4rem;}
}

/* ==========================================================================
   FIX DEFINITIVO — ancho del contenedor en archivos de tour
   ========================================================================== */
body.post-type-archive-tour .site.grid-container.container,
body.tax-tour-category .site.grid-container.container,
body.post-type-archive-tour div#page.grid-container,
body.tax-tour-category div#page.grid-container{
    max-width:100% !important;
    width:100% !important;
}

body.post-type-archive-tour #content.site-content,
body.tax-tour-category #content.site-content{
    max-width:100% !important;
    width:100% !important;
    padding:0 !important;
    display: block !important;
}

body.post-type-archive-tour .tours-grid,
body.tax-tour-category .tours-grid{
    grid-template-columns:repeat(3, 1fr) !important;
}
@media (max-width:1000px){
    body.post-type-archive-tour .tours-grid,
    body.tax-tour-category .tours-grid{grid-template-columns:repeat(2, 1fr) !important;}
}
@media (max-width:640px){
    body.post-type-archive-tour .tours-grid,
    body.tax-tour-category .tours-grid{grid-template-columns:1fr !important;}
}

/* ==========================================================================
   MOROCCO FANTASTIC TOURS — Banner + Intro + Filtro (archivo tours)
   ========================================================================== */
.tours-hero{
    width:100%;
    height:60vh;
    min-height:420px;
    background-size:cover;
    background-position:center;
    background-repeat: no-repeat;
    margin-bottom:4rem;
    box-shadow: 0 10px 30px rgba(61, 43, 31, 0.08);
}
.tours-intro{max-width:820px;margin:0 auto 3rem;text-align:center;padding:0 1.5rem;}
.tours-intro-eyebrow{
    display:inline-block;
    font-family:'Nunito Sans',sans-serif;
    font-size:.85rem;
    font-weight:700;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--mft-terracota);
    margin-bottom:.8rem;
}
.tours-intro-title{
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(2.2rem,5vw,3.4rem);
    font-weight:700;
    color:var(--mft-verde);
    margin:0 0 1.4rem;
    line-height:1.1;
}
.tours-intro p{
    font-family:'Nunito Sans',sans-serif;
    font-size:1.08rem;
    line-height:1.8;
    color:var(--mft-texto);
    margin-bottom:1.2rem;
}
.tours-filter{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:.8rem;
    margin-bottom:3rem;
}
.tours-filter-btn{
    display:inline-block;
    font-family:'Nunito Sans',sans-serif;
    font-size:.95rem;
    font-weight:700;
    padding:.6rem 1.4rem;
    border-radius:50px;
    text-decoration:none;
    color:var(--mft-oscuro);
    background:var(--mft-arena-soft);
    border:2px solid transparent;
    transition:all .25s ease;
}
.tours-filter-btn:hover{background:var(--mft-arena);color:var(--mft-oscuro);transform:translateY(-2px);}
.tours-filter-btn.is-active{background:var(--mft-terracota);color:#fff;}
.tours-filter-btn.is-active:hover{background:var(--mft-terracota-dark);color:#fff;}

@media (max-width:768px){
    .tours-hero{height:45vh;min-height:300px;margin-bottom:2.5rem;}
    .tours-intro{margin-bottom:2rem;}
    .tours-filter{gap:.5rem;}
    .tours-filter-btn{font-size:.85rem;padding:.5rem 1.1rem;}
}

/* ==========================================================================
   MOROCCO FANTASTIC TOURS — Tours relacionados
   ========================================================================== */
.tour-related{
    max-width:1200px;
    margin:4rem auto 2rem;
    padding:0 2rem;
}
.tour-related-title{
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(1.9rem,4vw,2.6rem);
    font-weight:700;
    color:var(--mft-verde);
    text-align:center;
    margin-bottom:2.5rem;
    position:relative;
    padding-bottom:.8rem;
}
.tour-related-title::after{
    content:'';
    position:absolute;
    left:50%;
    bottom:0;
    transform:translateX(-50%);
    width:70px;
    height:3px;
    background:var(--mft-terracota);
    border-radius:2px;
}
.tour-related-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1.8rem;
}
@media (max-width:900px){
    .tour-related-grid{grid-template-columns:repeat(2, 1fr);}
}
@media (max-width:600px){
    .tour-related-grid{grid-template-columns:1fr;}
    .tour-related{padding:0 1.2rem;}
}

/* ==========================================================================
   MOROCCO FANTASTIC TOURS — Timeline del itinerario
   ========================================================================== */
.tour-timeline{
    position:relative;
    padding-left:0;
    margin-top:1rem;
}
.tour-timeline::before{
    content:'';
    position:absolute;
    left:19px;
    top:12px;
    bottom:12px;
    width:2px;
    background:linear-gradient(to bottom, var(--mft-terracota), var(--mft-arena));
}
.tour-timeline-item{
    position:relative;
    display:flex;
    gap:1.5rem;
    padding-bottom:2rem;
}
.tour-timeline-item:last-child{padding-bottom:0;}
.tour-timeline-marker{
    position:relative;
    z-index:1;
    flex-shrink:0;
    width:40px;
    height:40px;
    border-radius:50%;
    background:var(--mft-terracota);
    color:#fff;
    font-family:'Cormorant Garamond',serif;
    font-size:1.3rem;
    font-weight:700;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 4px 12px rgba(236,95,13,.35);
    border:3px solid #fff;
}
.tour-timeline-content{
    flex:1;
    padding-top:.2rem;
}
.tour-timeline-day{
    font-family:'Cormorant Garamond',serif;
    font-size:1.35rem;
    font-weight:700;
    color:var(--mft-verde);
    margin:0 0 .4rem;
    line-height:1.25;
}
.tour-timeline-desc{
    font-size:1.02rem;
    line-height:1.7;
    color:var(--mft-texto);
    margin:0;
}

@media (max-width:600px){
    .tour-timeline-item{gap:1rem;}
    .tour-timeline-marker{width:34px;height:34px;font-size:1.1rem;}
    .tour-timeline::before{left:16px;}
    .tour-timeline-day{font-size:1.2rem;}
}

/* ==========================================================================
   MOROCCO FANTASTIC TOURS — Prueba social / Confianza
   ========================================================================== */
.tour-trust{
    max-width:1100px;
    margin:4rem auto 2rem;
    padding:3rem 2rem;
    background:var(--mft-arena-soft);
    border-radius:24px;
    text-align:center;
}
.tour-trust-header{margin-bottom:2.5rem;}
.tour-trust-stars{
    color:#00AA6C;
    font-size:1.6rem;
    letter-spacing:.15em;
    margin-bottom:.6rem;
}
.tour-trust-title{
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(1.8rem,4vw,2.6rem);
    font-weight:700;
    color:var(--mft-verde);
    margin:0 0 .5rem;
}
.tour-trust-sub{
    font-family:'Nunito Sans',sans-serif;
    font-size:1rem;
    font-weight:700;
    color:var(--mft-oscuro);
    letter-spacing:.02em;
    margin:0;
}
.tour-trust-reviews{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1.5rem;
    margin-bottom:2.5rem;
}
.tour-review{
    background:#fff;
    border-radius:16px;
    padding:1.8rem;
    margin:0;
    text-align:left;
    box-shadow:0 6px 20px rgba(61,43,31,.08);
    display:flex;
    flex-direction:column;
}
.tour-review-stars{color:#00AA6C;font-size:1rem;letter-spacing:.1em;margin-bottom:.8rem;}
.tour-review p{
    font-family:'Nunito Sans',sans-serif;
    font-size:.98rem;
    line-height:1.65;
    color:var(--mft-texto);
    font-style:italic;
    margin:0 0 1rem;
    flex:1;
}
.tour-review cite{
    font-family:'Nunito Sans',sans-serif;
    font-size:.9rem;
    font-weight:700;
    font-style:normal;
    color:var(--mft-terracota);
}
.tour-trust-btn{
    display:inline-block;
    background:#00AA6C;
    color:#fff;
    font-family:'Nunito Sans',sans-serif;
    font-weight:700;
    font-size:1rem;
    padding:.9rem 2rem;
    border-radius:50px;
    text-decoration:none;
    transition:background .25s, transform .25s;
}
.tour-trust-btn:hover,.tour-trust-btn:focus{background:#008a58;color:#fff;transform:translateY(-2px);}
.tour-trust-btn:focus-visible{outline:3px solid var(--mft-verde);outline-offset:3px;}

@media (max-width:800px){
    .tour-trust-reviews{grid-template-columns:1fr;}
    .tour-trust{padding:2.5rem 1.5rem;}
}

/* ==========================================================================
   MOROCCO FANTASTIC TOURS — Tabla de precios
   ========================================================================== */
.price-table{
    margin:2.5rem 0;
    font-family:'Nunito Sans',sans-serif;
}
.price-table-header{text-align:center;margin-bottom:1.8rem;}
.price-table-header h3{
    font-family:'Cormorant Garamond',serif;
    font-size:1.9rem;
    font-weight:700;
    color:var(--mft-verde);
    margin:0 0 .3rem;
}
.price-table-header p{
    font-size:1rem;
    color:var(--mft-terracota);
    font-weight:600;
    margin:0;
}
.price-cards{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:1rem;
}
.price-card{
    position:relative;
    background:var(--mft-arena-soft);
    border:2px solid transparent;
    border-radius:16px;
    padding:1.8rem 1rem;
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:.3rem;
    transition:transform .25s ease, box-shadow .25s ease;
}
.price-card:hover{
    transform:translateY(-4px);
    box-shadow:0 10px 28px rgba(61,43,31,.14);
}
.price-people{
    font-size:.9rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.05em;
    color:var(--mft-oscuro);
}
.price-amount{
    font-family:'Cormorant Garamond',serif;
    font-size:2.4rem;
    font-weight:700;
    color:var(--mft-verde);
    line-height:1;
}
.price-unit{
    font-size:.82rem;
    color:var(--mft-texto);
    opacity:.8;
}
.price-card--best{
    background:var(--mft-verde);
    border-color:var(--mft-verde);
}
.price-card--best .price-people,
.price-card--best .price-unit{color:#EFD9C6;}
.price-card--best .price-amount{color:#fff;}
.price-badge{
    position:absolute;
    top:-12px;
    left:50%;
    transform:translateX(-50%);
    background:var(--mft-terracota);
    color:#fff;
    font-size:.7rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.06em;
    padding:.3rem .9rem;
    border-radius:50px;
    white-space:nowrap;
}

@media (max-width:768px){
    .price-cards{grid-template-columns:repeat(2, 1fr);}
}
@media (max-width:420px){
    .price-cards{grid-template-columns:1fr;}
}

/* ==========================================================================
   CTA FINAL ELEGANTE (Estilo Premium Morocco)
   ========================================================================== */
.tour-final-cta {
    max-width: 1100px;
    margin: 4rem auto;
    padding: 0 2rem;
}

.tour-final-cta-box {
    background: var(--mft-arena-soft);
    border: 1px solid var(--mft-arena);
    border-radius: 24px;
    padding: 3.5rem 2.5rem;
    text-align: center;
    box-shadow: 0 12px 40px rgba(61,43,31,.08);
}

.tour-final-cta-box h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(2rem, 4vw, 2.8rem);
    font-weight: 700;
    color: var(--mft-verde);
    margin: 0 0 1rem;
}

.tour-final-cta-box p {
    font-family: 'Nunito Sans', sans-serif;
    font-size: 1.12rem;
    color: var(--mft-texto);
    max-width: 650px;
    margin: 0 auto 2.5rem;
    line-height: 1.6;
}

.tour-final-cta-buttons {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.2rem;
    flex-wrap: wrap;
}

.tour-btn-primary {
    background: var(--mft-terracota);
    color: #fff;
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 700;
    font-size: 1.05rem;
    padding: 1rem 2.2rem;
    border-radius: 50px;
    text-decoration: none;
    box-shadow: 0 6px 20px rgba(236,95,13,.3);
    transition: background .25s, transform .25s, box-shadow .25s;
}

.tour-btn-primary:hover, .tour-btn-primary:focus {
    background: var(--mft-terracota-dark);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(236,95,13,.4);
}

.tour-btn-secondary {
    background: transparent;
    color: var(--mft-verde);
    border: 2px solid var(--mft-verde);
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 700;
    font-size: 1.05rem;
    padding: 0.9rem 2.2rem;
    border-radius: 50px;
    text-decoration: none;
    transition: all .25s ease;
}

.tour-btn-secondary:hover, .tour-btn-secondary:focus {
    background: var(--mft-verde);
    color: #fff;
    transform: translateY(-2px);
}

@media (max-width: 600px) {
    .tour-final-cta-box {
        padding: 2.5rem 1.5rem;
    }
    .tour-final-cta-buttons {
        flex-direction: column;
        width: 100%;
    }
    .tour-btn-primary, .tour-btn-secondary {
        width: 100%;
        text-align: center;
    }
}

/* ==========================================================================
   GALERÍA ESTILO AIRBNB (Bento Box HTML antiguo)
   ========================================================================== */
.tour-bento-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, 220px);
    gap: 12px;
    margin: 2.5rem 0;
    border-radius: 16px;
    overflow: hidden;
}

.tour-bento-item {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-color: var(--mft-arena);
}

.tour-bento-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease, filter 0.4s ease;
}

.tour-gallery-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(236,95,13,0.30), transparent 70%);
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
    z-index: 2;
}
.tour-bento-item:hover img {
    transform: scale(1.08);
    filter: saturate(1.15) brightness(1.03);
}
.tour-bento-item:hover .tour-gallery-overlay {
    opacity: 1;
}

.tour-bento-item:nth-child(1) { grid-column: 1 / 3; grid-row: 1 / 3; }
.tour-bento-item:nth-child(2) { grid-column: 3 / 4; grid-row: 1 / 2; }
.tour-bento-item:nth-child(3) { grid-column: 4 / 5; grid-row: 1 / 2; }
.tour-bento-item:nth-child(4) { grid-column: 3 / 4; grid-row: 2 / 3; }
.tour-bento-item:nth-child(5) { grid-column: 4 / 5; grid-row: 2 / 3; }

.tour-bento-item:nth-child(n+6) {
    display: none !important;
}

.tour-bento-item:nth-child(5)::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.15);
    z-index: 3;
    pointer-events: none;
    transition: background 0.3s ease;
}
.tour-bento-item:nth-child(5):hover::before {
    background: rgba(0,0,0,0.3);
}
.tour-bento-item:nth-child(5)::after {
    content: var(--mft-txt-view-all, 'View all photos'); 
    position: absolute;
    bottom: 16px;
    right: 16px;
    background: #ffffff;
    color: var(--mft-oscuro);
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 700;
    font-size: 0.95rem;
    padding: 8px 16px;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    z-index: 4;
    pointer-events: none;
}

@media (max-width: 900px) {
    .tour-bento-gallery {
        grid-template-rows: repeat(2, 160px);
    }
}

@media (max-width: 600px) {
    .tour-bento-gallery {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 240px 140px;
        border-radius: 12px;
    }
    
    .tour-bento-item:nth-child(1) { grid-column: 1 / 3; grid-row: 1 / 2; }
    .tour-bento-item:nth-child(2) { grid-column: 1 / 2; grid-row: 2 / 3; }
    .tour-bento-item:nth-child(3) { grid-column: 2 / 3; grid-row: 2 / 3; }
    
    .tour-bento-item:nth-child(n+4) {
        display: none !important;
    }
    
    .tour-bento-item:nth-child(5)::after,
    .tour-bento-item:nth-child(5)::before {
        content: none;
    }
    .tour-bento-item:nth-child(3)::before {
        content: ''; position: absolute; inset: 0; background: rgba(0,0,0,0.2); z-index: 3; pointer-events: none;
    }
    .tour-bento-item:nth-child(3)::after {
        content: var(--mft-txt-view-all, 'View all photos');
        position: absolute;
        bottom: 12px;
        right: 12px;
        background: #fff;
        color: var(--mft-oscuro);
        font-family: 'Nunito Sans', sans-serif;
        font-weight: 700;
        font-size: 0.85rem;
        padding: 6px 12px;
        border-radius: 6px;
        z-index: 4;
        pointer-events: none;
    }
}
/* ==========================================================================
   CTA FINAL DE ANCHO COMPLETO (Con bordes redondeados)
   ========================================================================== */
.tour-final-cta {
    width: 100%;
    position: relative;
    margin-top: 4rem;
    margin-bottom: 0;
    background-image: url('/wp-content/uploads/2026/08/morocco-tours.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
    border-radius: 24px; /* Bordes redondeados en el banner completo */
}

/* Capa superpuesta con tu verde corporativo */
.tour-final-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgba(0, 58, 20, 0.88);
    z-index: 1;
}

.tour-final-cta-box {
    position: relative;
    z-index: 2;
    max-width: 900px;
    margin: 0 auto;
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 5rem 2rem;
    text-align: center;
    box-shadow: none;
}

.tour-final-cta-box h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(2.2rem, 4.5vw, 3.2rem);
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 1rem;
    text-shadow: 0 2px 12px rgba(0,0,0,0.3);
}

.tour-final-cta-box p {
    font-family: 'Nunito Sans', sans-serif;
    font-size: 1.15rem;
    color: #EFD9C6;
    max-width: 650px;
    margin: 0 auto 2.5rem;
    line-height: 1.6;
}

.tour-final-cta-buttons {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.2rem;
    flex-wrap: wrap;
}

.tour-btn-primary {
    background: var(--mft-terracota);
    color: #fff;
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 700;
    font-size: 1.05rem;
    padding: 1rem 2.2rem;
    border-radius: 50px;
    text-decoration: none;
    box-shadow: 0 6px 20px rgba(236, 95, 13, 0.4);
    transition: background .25s, transform .25s, box-shadow .25s;
}

.tour-btn-primary:hover, .tour-btn-primary:focus {
    background: var(--mft-terracota-dark);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(236, 95, 13, 0.5);
}

.tour-btn-secondary {
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    border: 2px solid #ffffff;
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 700;
    font-size: 1.05rem;
    padding: 0.9rem 2.2rem;
    border-radius: 50px;
    text-decoration: none;
    transition: all .25s ease;
}

.tour-btn-secondary:hover, .tour-btn-secondary:focus {
    background: #ffffff;
    color: var(--mft-verde);
    border-color: #ffffff;
    transform: translateY(-2px);
}

@media (max-width: 600px) {
    .tour-final-cta {
        border-radius: 16px; /* Bordes un poco más compactos en móvil */
    }
    .tour-final-cta-box {
        padding: 3.5rem 1.2rem;
    }
    .tour-final-cta-buttons {
        flex-direction: column;
        width: 100%;
    }
    .tour-btn-primary, .tour-btn-secondary {
        width: 100%;
        text-align: center;
    }
}

/* Highlights Diseño Chulo */
.highlights-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
    margin-bottom: 3rem;
}
.highlight-item {
    background: var(--mft-arena-soft);
    padding: 1rem 1.2rem;
    border-radius: 12px;
    font-weight: 600;
    color: var(--mft-oscuro);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.highlight-item span { color: var(--mft-terracota); }

/* Asegurar que el Itinerario se vea */
.tour-itinerary { display: block !important; }
.tour-timeline { margin-top: 2rem; }

/* ==========================================================================
   ITINERARIOS HTML PERSONALIZADOS — Mount Toubkal / múltiples duraciones
   ========================================================================== */

.tour-itinerary--custom {
    margin-top: 3rem;
}

.tour-itinerary-custom-html {
    width: 100%;
}

/* Evita márgenes automáticos no deseados si ACF usa editor WYSIWYG */
.tour-itinerary-custom-html > p:empty,
.tour-itinerary-custom-html .toubkal-itinerary > p:empty {
    display: none;
}

.toubkal-itinerary {
    width: 100%;
    margin: 0;
    padding: 0;
    font-family: 'Nunito Sans', sans-serif;
    color: var(--mft-texto);
}

.toubkal-main-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2rem;
    line-height: 1.2;
    color: var(--mft-verde);
    margin: 0 0 .6rem;
    font-weight: 700;
}

.toubkal-title-line {
    width: 64px;
    height: 3px;
    background: var(--mft-terracota);
    border-radius: 2px;
    margin: 0 0 2.2rem;
}

.trek-option {
    margin: 0 0 3.5rem;
}

.trek-option:last-child {
    margin-bottom: 0;
}

.trek-option + .trek-option {
    padding-top: 3.5rem;
    border-top: 1px solid var(--mft-arena);
}

.trek-option-title {
    font-family: 'Cormorant Garamond', serif;
    color: var(--mft-verde);
    font-size: 1.8rem;
    line-height: 1.25;
    margin: 0 0 2rem 64px;
    font-weight: 700;
}

.trek-option-subtitle {
    display: block;
    margin-top: .4rem;
    font-family: 'Nunito Sans', sans-serif;
    font-size: .95rem;
    line-height: 1.55;
    font-weight: 600;
    color: var(--mft-texto);
    opacity: .78;
}

.trek-timeline {
    position: relative;
    margin: 0;
    padding: 0;
}

.trek-timeline::before {
    content: '';
    position: absolute;
    top: 12px;
    bottom: 12px;
    left: 19px;
    width: 2px;
    background: linear-gradient(to bottom, var(--mft-terracota), var(--mft-arena));
}

.trek-day {
    position: relative;
    display: flex;
    gap: 1.5rem;
    padding-bottom: 2rem;
}

.trek-day:last-child {
    padding-bottom: 0;
}

.trek-number {
    position: relative;
    z-index: 2;
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--mft-terracota);
    color: #fff;
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 4px 12px rgba(236,95,13,.35);
    border: 3px solid #fff;
}

.trek-content {
    flex: 1;
    min-width: 0;
    padding-top: .2rem;
}

.trek-content h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.35rem;
    line-height: 1.25;
    font-weight: 700;
    color: var(--mft-verde);
    margin: 0 0 .4rem;
}

.trek-content p {
    font-family: 'Nunito Sans', sans-serif;
    font-size: 1.02rem;
    line-height: 1.7;
    color: var(--mft-texto);
    margin: 0;
}

.trek-content p + p {
    margin-top: .8rem;
}

@media (max-width: 600px) {
    .toubkal-main-title {
        font-size: 1.75rem;
    }

    .toubkal-title-line {
        margin-bottom: 1.8rem;
    }

    .trek-option {
        margin-bottom: 2.8rem;
    }

    .trek-option + .trek-option {
        padding-top: 2.8rem;
    }

    .trek-option-title {
        margin-left: 50px;
        margin-bottom: 1.5rem;
        font-size: 1.5rem;
    }

    .trek-option-subtitle {
        font-size: .88rem;
    }

    .trek-day {
        gap: 1rem;
        padding-bottom: 1.7rem;
    }

    .trek-number {
        flex-basis: 34px;
        width: 34px;
        height: 34px;
        font-size: 1.1rem;
    }

    .trek-timeline::before {
        left: 16px;
    }

    .trek-content h3 {
        font-size: 1.2rem;
    }

    .trek-content p {
        font-size: .98rem;
        line-height: 1.65;
    }
}
/* ==========================================================================
   HOME INMERSIVA (front-page.php)
   ========================================================================== */

/* 1. Hero Inmersivo */
.home-hero-immersive {
    height: 100vh; /* Pantalla completa para inmersión */
    min-height: 700px;
    background-size: cover;
    background-position: center;
    background-attachment: fixed; /* Efecto parallax suave */
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    text-align: center;
    margin-top: -80px; /* Ajusta según la altura de tu menú header */
}

.home-hero-gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,20,10,0.6) 100%);
    z-index: 1;
}

.home-hero-content {
    position: relative;
    z-index: 2;
    max-width: 900px;
    padding: 2rem;
    transform: translateY(20px);
    animation: fadeUp 1s ease forwards;
}

@keyframes fadeUp {
    from { opacity: 0; transform: translateY(40px); }
    to { opacity: 1; transform: translateY(0); }
}

.home-hero-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(3rem, 7vw, 5.5rem);
    color: #ffffff;
    font-weight: 700;
    line-height: 1.05;
    margin-bottom: 1.5rem;
    text-shadow: 0 10px 30px rgba(0,0,0,0.5);
    letter-spacing: -0.02em;
}

.home-hero-subtitle {
    font-size: clamp(1.2rem, 2.5vw, 1.6rem);
    color: #EFD9C6;
    margin-bottom: 3rem;
    font-weight: 400;
    text-shadow: 0 4px 12px rgba(0,0,0,0.5);
}

.btn-pulse {
    box-shadow: 0 0 0 0 rgba(236, 95, 13, 0.7);
    animation: pulseBtn 2s infinite;
}

@keyframes pulseBtn {
    0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(236, 95, 13, 0.7); }
    70% { transform: scale(1); box-shadow: 0 0 0 15px rgba(236, 95, 13, 0); }
    100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(236, 95, 13, 0); }
}

/* 2. Barra de Métricas Flotante */
.home-stats-wrapper {
    position: relative;
    z-index: 10;
    margin-top: -60px;
    padding: 0 2rem;
}

.home-stats-grid {
    background: #ffffff;
    max-width: 1000px;
    margin: 0 auto;
    border-radius: 20px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.08);
    display: flex;
    justify-content: space-around;
    align-items: center;
    padding: 2rem;
    flex-wrap: wrap;
    gap: 1.5rem;
}

.stat-item {
    text-align: center;
    flex: 1;
    min-width: 120px;
}

.stat-item:not(:last-child) {
    border-right: 1px solid rgba(0,0,0,0.05);
}

.stat-number {
    display: block;
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--mft-verde);
    line-height: 1;
    margin-bottom: 0.5rem;
}

.stat-label {
    font-size: 0.85rem;
    color: #666;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 600;
}

.trust-badge img {
    filter: drop-shadow(0 4px 6px rgba(0,0,0,0.1));
}

/* 3. Sección Intro Sensorial */
.home-intro-section {
    padding: 6rem 2rem 4rem;
    background-color: #fcf9f5;
    text-align: center;
}

.home-intro-container {
    max-width: 800px;
    margin: 0 auto;
}

.home-intro-lead {
    font-size: 1.25rem;
    line-height: 1.8;
    color: #4a4a4a;
    margin-bottom: 2.5rem;
}

.home-intro-features {
    display: flex;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.3rem;
    color: var(--mft-terracota);
    font-weight: 600;
}

/* 4. FAQs (Acordeón nativo HTML5) */
.home-faq-section {
    padding: 5rem 2rem;
    max-width: 900px;
    margin: 0 auto;
}

.faq-container {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.faq-item {
    background: #fff;
    border: 1px solid var(--mft-arena);
    border-radius: 12px;
    overflow: hidden;
    transition: box-shadow 0.3s;
}

.faq-item:hover {
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
}

.faq-item summary {
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 700;
    font-size: 1.15rem;
    color: var(--mft-verde);
    padding: 1.5rem;
    cursor: pointer;
    list-style: none;
    position: relative;
}

.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
    content: '+';
    position: absolute;
    right: 1.5rem;
    font-size: 1.5rem;
    color: var(--mft-terracota);
    transition: transform 0.3s;
}

.faq-item[open] summary::after {
    content: '−';
    transform: rotate(180deg);
}

.faq-content {
    padding: 0 1.5rem 1.5rem;
    color: #555;
    line-height: 1.7;
}

/* Ajustes Móviles */
@media (max-width: 768px) {
    .home-stats-grid { padding: 1.5rem; }
    .stat-item:not(:last-child) { border-right: none; border-bottom: 1px solid rgba(0,0,0,0.05); padding-bottom: 1rem; }
    .home-intro-features { gap: 1rem; font-size: 1.1rem; }
}
/* Forzar ancho completo real en la Home */
.home-main {
    width: 100%;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Permitir que las secciones internas sí tengan su límite estético centrado */
.home-section, .home-intro-section, .home-faq-section, .home-stats-wrapper {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}
/* ==========================================================================
   ESTILOS HOME TOP - MOROCCO FANTASTIC TOURS
   ========================================================================== */

/* Hero Inmersivo Sensorial */
.home-hero-immersive {
    height: 90vh;
    min-height: 650px;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    margin-top: -80px;
}

.home-hero-gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, rgba(0,35,12,0.85) 100%);
    z-index: 1;
}

.home-hero-content {
    position: relative;
    z-index: 2;
    max-width: 900px;
    padding: 2rem;
}

.hero-badge-tag {
    display: inline-block;
    background: rgba(239, 217, 198, 0.2);
    color: var(--mft-arena);
    padding: 0.4rem 1.2rem;
    border-radius: 50px;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 700;
    margin-bottom: 1.5rem;
    backdrop-filter: blur(5px);
}

.home-hero-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(3rem, 7vw, 5.2rem);
    color: #ffffff;
    font-weight: 700;
    line-height: 1.05;
    margin-bottom: 1.5rem;
    text-shadow: 0 10px 30px rgba(0,0,0,0.4);
}

.home-hero-subtitle {
    font-size: clamp(1.1rem, 2.2vw, 1.45rem);
    color: #EFD9C6;
    margin-bottom: 2.5rem;
    font-weight: 400;
    line-height: 1.6;
}

.hero-cta-group {
    display: flex;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.hero-wa-btn {
    background: rgba(255,255,255,0.1);
    color: #fff !important;
    border: 2px solid #fff !important;
    backdrop-filter: blur(5px);
}
.hero-wa-btn:hover {
    background: #fff;
    color: var(--mft-verde) !important;
}

/* Métricas Flotantes */
.home-stats-wrapper {
    position: relative;
    z-index: 10;
    margin-top: -50px;
    padding: 0 1.5rem;
}

.home-stats-grid {
    background: #ffffff;
    max-width: 1100px;
    margin: 0 auto;
    border-radius: 20px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.08);
    display: flex;
    justify-content: space-around;
    align-items: center;
    padding: 2rem;
    flex-wrap: wrap;
    gap: 1.5rem;
    border: 1px solid rgba(0,58,20,0.05);
}

.stat-item {
    text-align: center;
    flex: 1;
    min-width: 140px;
}

.stat-number {
    display: block;
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--mft-verde);
    line-height: 1;
    margin-bottom: 0.4rem;
}

.stat-label {
    font-size: 0.85rem;
    color: #666;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 600;
}

.trust-badge-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
}

/* Sección Sensorial (Vender experiencia) */
.home-sensory-section {
    padding: 6rem 2rem;
    background-color: #fcf9f5;
}

.sensory-container {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
}

.section-tag {
    color: var(--mft-terracota);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.85rem;
    letter-spacing: 2px;
    display: block;
    margin-bottom: 0.8rem;
}

.sensory-lead {
    font-size: 1.15rem;
    line-height: 1.8;
    color: #4a4a4a;
    margin-bottom: 2rem;
}

.sensory-bullets {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    font-weight: 600;
    color: var(--mft-verde);
}

.sensory-image-grid {
    position: relative;
    height: 450px;
}

.sensory-img-main {
    position: absolute;
    top: 0;
    left: 0;
    width: 80%;
    height: 80%;
    background-size: cover;
    background-position: center;
    border-radius: 16px;
    box-shadow: 0 15px 35px rgba(0,0,0,0.1);
}

.sensory-img-sub {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 60%;
    height: 60%;
    background-size: cover;
    background-position: center;
    border-radius: 16px;
    box-shadow: 0 15px 35px rgba(0,0,0,0.15);
    border: 6px solid #fcf9f5;
}

/* Galería Visual Inspiracional */
.home-visual-gallery {
    padding: 5rem 2rem;
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}

.gallery-grid-top {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-top: 3rem;
}

.gallery-card {
    height: 350px;
    background-size: cover;
    background-position: center;
    border-radius: 16px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0,0,0,0.08);
    transition: transform 0.4s ease;
}

.gallery-card:hover {
    transform: translateY(-8px);
}

.gallery-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, transparent 60%);
    display: flex;
    align-items: flex-end;
    padding: 2rem;
}

.gallery-overlay span {
    color: #fff;
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.8rem;
    font-weight: 700;
}

/* Por qué elegirnos (Why Us) */
.home-why-section {
    padding: 6rem 2rem;
    background-color: #f7f2eb;
}

.why-container {
    max-width: 1200px;
    margin: 0 auto;
}

.why-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

.why-card {
    background: #fff;
    padding: 2.5rem;
    border-radius: 16px;
    box-shadow: 0 8px 20px rgba(0,0,0,0.04);
    transition: all 0.3s ease;
}

.why-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 30px rgba(0,0,0,0.08);
}

.why-icon {
    font-size: 2.5rem;
    margin-bottom: 1.5rem;
}

.why-card h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.5rem;
    color: var(--mft-verde);
    margin-bottom: 1rem;
}

.why-card p {
    color: #666;
    line-height: 1.6;
}

/* Responsivo para móviles */
@media (max-width: 768px) {
    .sensory-container { grid-template-columns: 1fr; gap: 3rem; }
    .gallery-grid-top { grid-template-columns: 1fr; }
    .sensory-image-grid { height: 350px; }
}
/* ==========================================================================
   ESTILOS PÁGINA ABOUT US — MOROCCO FANTASTIC TOURS
   ========================================================================== */

.about-main {
    background-color: #fcf9f5;
    color: #333;
}

/* Hero Header */
.about-hero {
    height: 60vh;
    min-height: 450px;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    margin-top: -80px;
}

.about-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, rgba(0,58,20,0.85) 100%);
    z-index: 1;
}

.about-hero-content {
    position: relative;
    z-index: 2;
    max-width: 800px;
    padding: 2rem;
}

.about-badge {
    display: inline-block;
    background: rgba(239, 217, 198, 0.2);
    color: var(--mft-arena);
    padding: 0.4rem 1.2rem;
    border-radius: 50px;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 700;
    margin-bottom: 1rem;
    backdrop-filter: blur(5px);
}

.about-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(2.8rem, 6vw, 4.5rem);
    color: #fff;
    font-weight: 700;
    margin-bottom: 1rem;
}

.about-subtitle {
    font-size: clamp(1.1rem, 2vw, 1.35rem);
    color: #EFD9C6;
    line-height: 1.5;
}

/* Contenedor general */
.about-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 6rem 2rem;
}

/* Sección Misión */
.mission-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
}

.mission-text p {
    font-size: 1.1rem;
    line-height: 1.8;
    color: #555;
    margin-bottom: 1.5rem;
}

.mission-image {
    height: 450px;
    background-size: cover;
    background-position: center;
    border-radius: 20px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}

/* Sección Fundador (Omar Fadil) */
.about-owner-section {
    background-color: #f7f2eb;
    padding: 6rem 0;
}

.owner-grid {
    display: grid;
    grid-template-columns: 400px 1fr;
    gap: 4rem;
    align-items: start;
}

.owner-photo-wrap {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(0,0,0,0.15);
}

.owner-img {
    width: 100%;
    height: auto;
    display: block;
}

.owner-badge-float {
    position: absolute;
    bottom: 20px;
    left: 20px;
    background: var(--mft-terracota);
    color: #fff;
    padding: 0.6rem 1.2rem;
    border-radius: 50px;
    font-weight: 700;
    font-size: 0.9rem;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

.owner-bio h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 3rem;
    color: var(--mft-verde);
    margin-bottom: 0.2rem;
}

.owner-subtitle {
    font-size: 1.1rem;
    color: var(--mft-terracota);
    font-weight: 600;
    margin-bottom: 2rem;
}

.owner-bio p {
    font-size: 1.05rem;
    line-height: 1.7;
    color: #555;
    margin-bottom: 1.2rem;
}

/* Credenciales Box */
.owner-credentials-box {
    background: #fff;
    padding: 2rem;
    border-radius: 16px;
    margin-top: 2.5rem;
    border: 1px solid var(--mft-arena);
    box-shadow: 0 8px 20px rgba(0,0,0,0.03);
}

.owner-credentials-box h4 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.4rem;
    color: var(--mft-verde);
    margin-bottom: 1rem;
    border-bottom: 2px solid var(--mft-arena);
    padding-bottom: 0.5rem;
}

.owner-credentials-box ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.owner-credentials-box li {
    font-size: 0.95rem;
    color: #444;
}

/* Sección Equipo */
.about-team-section {
    padding: 6rem 2rem;
}

.team-header {
    max-width: 700px;
    margin: 0 auto 4rem auto;
}

.team-intro-text {
    font-size: 1.15rem;
    color: #666;
    line-height: 1.6;
}

.team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
}

.team-card {
    background: #fff;
    padding: 2.5rem 2rem;
    border-radius: 16px;
    border: 1px solid var(--mft-arena);
    box-shadow: 0 10px 25px rgba(0,0,0,0.04);
    transition: transform 0.3s ease;
}

.team-card:hover {
    transform: translateY(-5px);
}

.team-card-icon {
    font-size: 2.5rem;
    margin-bottom: 1.5rem;
}

.team-card h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.5rem;
    color: var(--mft-verde);
    margin-bottom: 1rem;
}

.team-card p {
    font-size: 0.98rem;
    line-height: 1.6;
    color: #666;
}

/* Responsivo */
@media (max-width: 900px) {
    .mission-grid, .owner-grid {
        grid-template-columns: 1fr;
        gap: 3rem;
    }
    .mission-image { height: 300px; }
}
/* ==========================================================================
   FORZAR ANCHO COMPLETO EN GENERATEPRESS (SOLO EN ABOUT US)
   ========================================================================== */
body.page-template-page-about .grid-container,
body.page-template-page-about .site-content,
body.page-template-page-about #content {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

.about-main {
    width: 100%;
    max-width: 100% !important;
    overflow-x: hidden; /* Evita scroll horizontal indeseado */
}

/* ==========================================================================
   AJUSTE DE LA IMAGEN DE OMAR EN VERTICAL
   ========================================================================== */
.owner-grid {
    /* Le damos un poco más de ancho a la foto (450px) para que se vea imponente */
    grid-template-columns: 450px 1fr; 
    align-items: stretch; /* Hace que la foto crezca a lo alto junto con el texto */
}

.owner-photo-wrap {
    height: 100%; 
    min-height: 650px; /* Forzamos un formato vertical alto */
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(0,0,0,0.15);
}

.owner-img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Cubre todo el cuadro alto sin deformar la imagen */
    object-position: center 20%; /* Asegura que la cabeza y el cuerpo queden centrados */
    display: block;
}

/* Ajuste móvil para que no sea tan alto en teléfonos */
@media (max-width: 900px) {
    .owner-grid {
        grid-template-columns: 1fr;
    }
    .owner-photo-wrap {
        min-height: 500px;
    }
}
/* ==========================================================================
   ESTILOS PÁGINA TRAVEL ADVICE (page-travel-advice.php)
   ========================================================================== */

/* Ajustes generales */
.advice-main { width: 100%; max-width: 100% !important; overflow-x: hidden; }
.advice-section { padding: 4rem 2rem; }
.advice-container { max-width: 1200px; margin: 0 auto; }

/* Intro & Palabras clave */
.advice-intro-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 4rem;
    align-items: center;
}
.intro-words-box {
    background: #fff;
    padding: 2.5rem;
    border-radius: 16px;
    border: 1px solid var(--mft-arena);
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
}
.intro-words-box h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.8rem;
    color: var(--mft-verde);
    margin-bottom: 1.5rem;
    border-bottom: 2px solid var(--mft-arena);
    padding-bottom: 0.5rem;
}
.intro-words-box ul {
    list-style: none; padding: 0; margin: 0;
}
.intro-words-box li {
    font-size: 1.1rem;
    color: #555;
    margin-bottom: 1rem;
    background: #fcf9f5;
    padding: 1rem;
    border-radius: 8px;
}
.intro-words-box li strong { color: var(--mft-terracota); }

/* Packing List Grid */
.advice-packing { background-color: #fcf9f5; }
.packing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2rem;
}
.pack-card-full { grid-column: 1 / -1; }

.packing-card {
    background: #fff;
    padding: 2.5rem;
    border-radius: 16px;
    box-shadow: 0 8px 25px rgba(0,0,0,0.04);
    border-top: 4px solid var(--mft-terracota);
}
.pack-icon {
    font-size: 3rem;
    margin-bottom: 1rem;
}
.packing-card h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.8rem;
    color: var(--mft-verde);
    margin-bottom: 1.5rem;
}
.pack-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.pack-list li {
    position: relative;
    padding-left: 1.8rem;
    margin-bottom: 0.8rem;
    color: #555;
    line-height: 1.5;
}
.pack-list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--mft-verde);
    font-weight: bold;
}
.grid-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
}

/* Responsivo */
@media (max-width: 900px) {
    .advice-intro-grid { grid-template-columns: 1fr; gap: 2.5rem; }
}
/* ==========================================================================
   PÁGINA DE CONTACTO Y ESTILOS DEL FORMULARIO
   ========================================================================== */
.contact-main { width: 100%; max-width: 100% !important; overflow-x: hidden; }

.contact-section {
    padding: 6rem 2rem;
    background-color: #fcf9f5;
}

.contact-container {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 4rem;
    align-items: start;
}

/* Columna Izquierda (Info) */
.contact-info-box h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.8rem;
    color: var(--mft-verde);
    margin-bottom: 1.5rem;
}

.contact-lead {
    font-size: 1.15rem;
    line-height: 1.7;
    color: #555;
    margin-bottom: 3rem;
}

.contact-methods {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.method-item {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.method-icon {
    font-size: 2.2rem;
    background: #fff;
    width: 70px;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    box-shadow: 0 8px 20px rgba(0,0,0,0.05);
}

.method-details strong {
    display: block;
    color: var(--mft-terracota);
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 0.3rem;
}

.method-details a, .method-details span {
    color: var(--mft-verde);
    font-size: 1.2rem;
    font-weight: 700;
    text-decoration: none;
    transition: color 0.3s;
}

.method-details a:hover { color: var(--mft-terracota); }

/* Columna Derecha (Formulario) */
.contact-form-box {
    background: #fff;
    padding: 3rem;
    border-radius: 20px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.06);
    border-top: 5px solid var(--mft-terracota);
}

.contact-form-box h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.5rem;
    color: var(--mft-verde);
    margin-bottom: 2rem;
}

/* Estilos internos de Contact Form 7 */
.mft-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}

.mft-form-group {
    display: flex;
    flex-direction: column;
}

.mft-form-group label {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--mft-verde);
    margin-bottom: 0.5rem;
}

.wpcf7-form-control.mft-input {
    width: 100%;
    padding: 1rem 1.2rem;
    border: 1px solid #e0d7cd;
    border-radius: 8px;
    background-color: #fdfdfc;
    font-family: 'Nunito Sans', sans-serif;
    font-size: 1rem;
    color: #333;
    transition: all 0.3s ease;
}

.wpcf7-form-control.mft-input:focus {
    outline: none;
    border-color: var(--mft-terracota);
    background-color: #fff;
    box-shadow: 0 0 0 4px rgba(236, 95, 13, 0.1);
}

textarea.wpcf7-form-control.mft-input {
    min-height: 150px;
    resize: vertical;
}

.mft-submit-wrap {
    margin-top: 1.5rem;
    text-align: right;
}

.wpcf7-spinner {
    margin-right: 15px;
}

/* Responsivo */
@media (max-width: 900px) {
    .contact-container { grid-template-columns: 1fr; gap: 3rem; }
    .mft-form-grid { grid-template-columns: 1fr; }
    .contact-form-box { padding: 2rem; }
}
/* ==========================================================================
   ESTILOS DEL PIE DE PÁGINA (FOOTER) ACTUALIZADO
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap');

.mft-premium-footer {
    background-color: #0d1110;
    color: #e0d7cd;
    font-family: 'Poppins', sans-serif; /* Tipografía cambiada a Poppins */
    padding-top: 5rem;
    border-top: 4px solid var(--mft-terracota);
}

.mft-footer-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem 4rem;
    display: grid;
    grid-template-columns: 1.2fr 1fr 1.5fr; /* 3 Columnas adaptadas */
    gap: 3rem;
    align-items: start;
}

.footer-logo {
    max-width: 200px;
    margin-bottom: 1.5rem;
    /* Filtro eliminado para que se vea el color real de la imagen */
}

.footer-title {
    font-family: 'Poppins', sans-serif;
    font-size: 1.15rem;
    font-weight: 600;
    color: #ffffff;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.footer-links ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li {
    margin-bottom: 0.8rem;
}

.footer-links a {
    color: #a0a0a0;
    text-decoration: none;
    font-size: 0.95rem;
    transition: all 0.3s ease;
}

.footer-links a:hover {
    color: var(--mft-terracota);
    padding-left: 5px;
}

.footer-badges .badge-grid {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    margin-bottom: 2rem;
    background: #fff;
    padding: 1rem;
    border-radius: 8px;
    display: inline-flex;
}

.footer-socials {
    display: flex;
    gap: 1.5rem;
}

.footer-socials a {
    transition: transform 0.3s ease, color 0.3s ease;
}

.footer-socials a:hover {
    transform: translateY(-3px);
    color: var(--mft-terracota) !important;
}

.mft-sub-footer {
    background-color: #070908;
    padding: 1.5rem 2rem;
    text-align: center;
    border-top: 1px solid rgba(255,255,255,0.05);
}

.sub-footer-container p {
    margin: 0;
    font-size: 0.85rem;
    color: #777;
    letter-spacing: 0.5px;
    font-family: 'Poppins', sans-serif;
}

/* Responsivo */
@media (max-width: 900px) {
    .mft-footer-container {
        grid-template-columns: 1fr 1fr;
    }
    .footer-brand {
        grid-column: 1 / -1;
    }
}

@media (max-width: 600px) {
    .mft-footer-container {
        grid-template-columns: 1fr;
        gap: 2.5rem;
        text-align: center;
    }
    .footer-logo {
        margin: 0 auto;
    }
    .footer-badges .badge-grid {
        justify-content: center;
    }
    .footer-socials {
        justify-content: center;
    }
}
/* ==========================================================================
   HEADER STICKY PREMIUM (Menú Principal)
   ========================================================================== */

/* 1. Fijar el header en la parte superior con efecto cristal */
.site-header, 
#masthead {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 9999;
    background-color: rgba(255, 255, 255, 0.92) !important; /* Transparencia elegante */
    backdrop-filter: blur(10px); /* Desenfoque del fondo (Glassmorphism) */
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05); /* Sombra muy suave */
    transition: all 0.3s ease-in-out;
}

/* 2. Estilizar la tipografía de los enlaces del menú */
.main-navigation .main-nav ul li a {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--mft-verde) !important;
    padding-left: 20px;
    padding-right: 20px;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* 3. Efecto al pasar el ratón y página activa */
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
    color: var(--mft-terracota) !important;
    background-color: transparent !important;
}

/* Submenús más elegantes */
.main-navigation ul ul {
    background-color: #ffffff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    border-radius: 0 0 8px 8px;
    padding: 10px 0;
}
.main-navigation ul ul li a {
    font-size: 0.85rem;
    padding: 10px 20px;
    text-transform: none; /* Submenús sin mayúsculas para leer mejor */
}

/* 4. Ajuste estructural vital */
/* Al fijar el menú, flota sobre el contenido. Compensamos el espacio en toda la web... */
body {
    padding-top: 80px; /* Ajusta según la altura real de tu logo/menú */
}

/* ...PERO quitamos ese espacio en las páginas inmersivas que ya diseñamos */
.home, 
.page-template-page-about, 
.page-template-page-contact, 
.page-template-page-travel-advice {
    padding-top: 0 !important;
}
/* ==========================================================================
   MOROCCO FANTASTIC TOURS — HEADER / MENU PREMIUM
   GeneratePress + Polylang
   ========================================================================== */

:root{
    --mft-verde:#123a2d;
    --mft-verde-oscuro:#0b2c22;
    --mft-terracota:#f36a06;
    --mft-terracota-dark:#c75400;
    --mft-crema:#fbf8f3;
    --mft-border:rgba(18,58,45,.10);
}

/* ==========================================================================
   1. HEADER STICKY / GLASS
   ========================================================================== */

.site-header,
#masthead{
    position:fixed;
    top:0;
    left:0;
    right:0;
    width:100%;
    z-index:9999;
    background:rgba(255,255,255,.88)!important;
    backdrop-filter:blur(16px) saturate(140%);
    -webkit-backdrop-filter:blur(16px) saturate(140%);
    border-bottom:1px solid rgba(18,58,45,.07);
    box-shadow:0 8px 30px rgba(12,39,29,.055);
    transition:
        background-color .28s ease,
        box-shadow .28s ease,
        border-color .28s ease;
}

/* Contenedor del header */
.site-header .inside-header{
    min-height:78px;
    padding-top:8px;
    padding-bottom:8px;
}

/* Logo */
.site-header .site-logo img,
.site-header .header-image{
    max-height:58px;
    width:auto;
    transition:transform .25s ease;
}

.site-header .site-logo a:hover img{
    transform:scale(1.025);
}

/* ==========================================================================
   2. NAVEGACIÓN PRINCIPAL
   ========================================================================== */

.main-navigation{
    background:transparent!important;
}

.main-navigation .inside-navigation{
    background:transparent!important;
}

/* Enlaces principales */
.main-navigation .main-nav > ul > li > a{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:52px;
    padding:0 15px!important;

    font-family:'Poppins',sans-serif;
    font-size:.82rem;
    font-weight:650;
    line-height:1;
    letter-spacing:.055em;
    text-transform:uppercase;

    color:var(--mft-verde)!important;
    background:transparent!important;
    border-radius:999px;
    transition:
        color .22s ease,
        background-color .22s ease,
        transform .22s ease;
}

/* Línea animada inferior */
.main-navigation .main-nav > ul > li > a::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:7px;
    width:0;
    height:2px;
    border-radius:999px;
    background:var(--mft-terracota);
    transform:translateX(-50%);
    transition:width .22s ease;
}

/* Hover / actual */
.main-navigation .main-nav > ul > li:hover > a,
.main-navigation .main-nav > ul > li[class*="current-menu-"] > a,
.main-navigation .main-nav > ul > li.current_page_item > a{
    color:var(--mft-terracota)!important;
    background:rgba(243,106,6,.055)!important;
}

.main-navigation .main-nav > ul > li:hover > a::after,
.main-navigation .main-nav > ul > li[class*="current-menu-"] > a::after,
.main-navigation .main-nav > ul > li.current_page_item > a::after{
    width:22px;
}

/* Separación entre items */
.main-navigation .main-nav > ul{
    gap:2px;
}

/* Flechitas de submenú */
.main-navigation .menu-item-has-children > a .dropdown-menu-toggle{
    padding-left:6px;
    transition:transform .22s ease;
}

.main-navigation .menu-item-has-children:hover > a .dropdown-menu-toggle{
    transform:rotate(180deg);
}

/* ==========================================================================
   3. CTA OPCIONAL EN EL MENÚ
   Añade la clase CSS "menu-cta" al item que quieras convertir en botón.
   ========================================================================== */

.main-navigation .main-nav > ul > li.menu-cta > a{
    margin-left:8px;
    padding:0 20px!important;
    color:#fff!important;
    background:var(--mft-terracota)!important;
    box-shadow:0 9px 22px rgba(243,106,6,.22);
}

.main-navigation .main-nav > ul > li.menu-cta > a::after{
    display:none;
}

.main-navigation .main-nav > ul > li.menu-cta:hover > a{
    color:#fff!important;
    background:var(--mft-terracota-dark)!important;
    transform:translateY(-1px);
    box-shadow:0 12px 26px rgba(243,106,6,.28);
}

/* ==========================================================================
   4. SUBMENÚ PREMIUM
   ========================================================================== */

.main-navigation ul ul{
    width:245px;
    padding:9px!important;
    background:rgba(255,255,255,.98)!important;
    border:1px solid rgba(18,58,45,.08);
    border-radius:16px!important;
    box-shadow:0 18px 48px rgba(9,35,26,.14)!important;
    overflow:hidden;
}

.main-navigation ul ul li{
    margin:0!important;
}

.main-navigation ul ul li a{
    min-height:auto!important;
    padding:11px 13px!important;

    font-family:'Poppins',sans-serif;
    font-size:.84rem;
    font-weight:550;
    letter-spacing:0;
    text-transform:none;

    color:#38443e!important;
    background:transparent!important;
    border-radius:10px;
    transition:.2s ease;
}

.main-navigation ul ul li:hover > a,
.main-navigation ul ul li[class*="current-menu-"] > a{
    padding-left:17px!important;
    color:var(--mft-terracota)!important;
    background:rgba(243,106,6,.065)!important;
}

/* ==========================================================================
   5. SELECTOR DE IDIOMA POLYLANG
   ========================================================================== */

.main-navigation .lang-item > a{
    font-size:.74rem!important;
    letter-spacing:.06em!important;
}

/* Si Polylang usa banderas */
.main-navigation .lang-item img{
    width:19px!important;
    height:auto!important;
    margin-right:5px;
    border-radius:2px;
}

/* ==========================================================================
   6. COMPENSACIÓN DEL HEADER FIJO
   ========================================================================== */

body{
    padding-top:78px;
}

/* Las plantillas hero inmersivas ya contemplan el header */
body.home,
body[class*="page-template-front-page"],
body[class*="page-template-page-about"],
body[class*="page-template-about"],
body[class*="page-template-page-contact"],
body[class*="page-template-contact"],
body[class*="page-template-page-travel-advice"],
body[class*="page-template-travel-advice"]{
    padding-top:0!important;
}

/* Evita que los anchors queden ocultos tras el header */
html{
    scroll-padding-top:96px;
}

/* ==========================================================================
   7. MENÚ MÓVIL
   ========================================================================== */

@media(max-width:1024px){

    .site-header .inside-header{
        min-height:70px;
        padding:7px 16px;
    }

    .site-header .site-logo img,
    .site-header .header-image{
        max-height:52px;
    }

    body{
        padding-top:70px;
    }

    /* Botón hamburguesa */
    .menu-toggle{
        width:46px;
        height:46px;
        display:flex!important;
        align-items:center;
        justify-content:center;
        border-radius:50%!important;
        color:var(--mft-verde)!important;
        background:var(--mft-crema)!important;
        border:1px solid rgba(18,58,45,.09)!important;
    }

    /* Panel móvil */
    .main-navigation.toggled .main-nav{
        position:absolute;
        top:calc(100% + 8px);
        left:14px;
        right:14px;
        padding:12px;
        background:rgba(255,255,255,.98);
        border:1px solid rgba(18,58,45,.08);
        border-radius:20px;
        box-shadow:0 22px 60px rgba(10,38,28,.16);
        max-height:calc(100vh - 100px);
        overflow-y:auto;
    }

    .main-navigation.toggled .main-nav > ul{
        display:flex!important;
        flex-direction:column;
        gap:3px;
    }

    .main-navigation .main-nav > ul > li > a{
        justify-content:flex-start;
        min-height:48px;
        padding:0 15px!important;
        font-size:.84rem;
        border-radius:11px;
    }

    .main-navigation .main-nav > ul > li > a::after{
        display:none;
    }

    .main-navigation .main-nav > ul > li.menu-cta > a{
        margin:7px 0 2px;
        justify-content:center;
    }

    /* Submenús en móvil */
    .main-navigation ul ul{
        width:100%!important;
        position:relative!important;
        left:auto!important;
        top:auto!important;
        padding:5px 0 5px 12px!important;
        border:0;
        border-radius:0!important;
        box-shadow:none!important;
        background:transparent!important;
    }

    .main-navigation ul ul li a{
        padding:10px 14px!important;
        color:#53605a!important;
    }
}


/* ==========================================================================
   AJUSTE DE CENTRADO DEL MENÚ
   ========================================================================== */

/* Centra visualmente el contenido del header dentro de su ancho disponible */
.site-header .inside-header,
.main-navigation .inside-navigation{
    max-width:1180px;
    margin-left:auto;
    margin-right:auto;
}

/* El menú ocupa mejor el espacio central */
.main-navigation .main-nav{
    flex:1;
}

.main-navigation .main-nav > ul{
    justify-content:center;
    align-items:center;
}

/* Mantiene logo y navegación equilibrados */
.site-header .inside-header{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:24px;
}

/* Si GeneratePress coloca el logo a la izquierda, evitamos que empuje demasiado el menú */
.site-header .site-branding,
.site-header .site-logo{
    flex:0 0 auto;
}

/* Navegación más centrada dentro del header */
.main-navigation{
    flex:1;
}

@media(max-width:1024px){
    .site-header .inside-header{
        justify-content:space-between;
    }

    .main-navigation .main-nav > ul{
        justify-content:flex-start;
    }
}

/* ==========================================================================
   8. ACCESIBILIDAD
   ========================================================================== */

.main-navigation a:focus-visible,
.menu-toggle:focus-visible{
    outline:3px solid rgba(243,106,6,.35)!important;
    outline-offset:3px;
}

@media(prefers-reduced-motion:reduce){
    .site-header,
    .main-navigation a,
    .site-logo img,
    .dropdown-menu-toggle{
        transition:none!important;
    }
}
/* ==========================================================================
   OCULTAR MENÚ MÓVIL DUPLICADO (Basado en atributos del DOM)
   ========================================================================== */
@media (max-width: 768px) {
    /* Oculta el botón inferior (que no tiene data-nav) y protege el de la cabecera */
    button.menu-toggle:not([data-nav="site-navigation"]) {
        display: none !important;
    }
}
/* ==========================================================================
   AJUSTES DE INTERLINEADO EN MÓVIL PARA EL HERO DE TOURS
   ========================================================================== */
@media (max-width: 768px) {
    /* Ajusta el título principal */
    .tour-hero .tour-title {
        line-height: 1.15 !important;
        margin-bottom: 12px !important;
    }

    /* Ajusta el párrafo descriptivo */
    .tour-hero .tour-tagline {
        line-height: 1.45 !important; /* Reduce el espacio entre líneas */
        margin-bottom: 16px !important;
    }

    /* Ajusta la línea inferior de datos (Ej: 5 jours · À partir de Marrakech) */
    .tour-hero .tour-hero-sub {
        line-height: 1.4 !important;
    }
}

/* ==========================================================================
   ESTILO GALERÍA AIRBNB FUNCIONAL (5 Fotos visibles + Botón pequeño)
   ========================================================================== */
.tour-body .wp-block-gallery {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    grid-template-rows: repeat(2, 1fr) !important;
    gap: 8px !important;
    margin: 30px 0 !important;
    padding: 0 !important;
    border-radius: 12px !important;
    overflow: hidden;
    aspect-ratio: 2.2 / 1; /* Formato panorámico Airbnb */
}

/* Contenedor de cada foto */
.tour-body .wp-block-gallery .wp-block-image {
    margin: 0 !important;
    width: 100% !important;
    height: 100% !important;
    position: relative; /* Clave para el botón flotante */
    display: block;
}

/* 1. LA IMAGEN GRANDE (Izquierda, ocupa 2x2) */
.tour-body .wp-block-gallery .wp-block-image:nth-child(1) {
    grid-column: 1 / 3 !important;
    grid-row: 1 / 3 !important;
}

/* 2. LAS 4 IMÁGENES PEQUEÑAS (Derecha) */
.tour-body .wp-block-gallery .wp-block-image:nth-child(n+2):nth-child(-n+5) {
    grid-column: span 1 !important;
    grid-row: span 1 !important;
}

/* 3. OCULTAR VISUALMENTE A PARTIR DE LA 6 (El lightbox sí las leerá) */
.tour-body .wp-block-gallery .wp-block-image:nth-child(n+6) {
    display: none !important;
}

/* Ajustes de imagen */
.tour-body .wp-block-gallery .wp-block-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 0 !important; 
    transition: filter 0.3s ease, transform 0.3s ease !important;
}

/* Efecto hover general: oscurece el fondo */
.tour-body .wp-block-gallery:hover .wp-block-image img {
    filter: brightness(0.85);
}
.tour-body .wp-block-gallery .wp-block-image img:hover {
    filter: brightness(1.1);
}

/* ==========================================================================
   4. EL BOTÓN "MÁS FOTOS" (Pequeño, traducido y funcional)
   ========================================================================== */
.tour-body .wp-block-gallery .wp-block-image:nth-child(5)::after,
.tour-body .wp-block-gallery .wp-block-image:nth-child(5) a::after {
    content: "Más fotos"; /* Español por defecto */
    position: absolute;
    bottom: 12px;
    right: 12px;
    background: #ffffff;
    color: #222222;
    padding: 6px 12px;
    font-size: 13px; /* Más pequeño y discreto */
    font-weight: 600;
    border-radius: 6px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.15);
    /* TRUCO: pointer-events: none permite que el clic traspase el botón y toque la foto real */
    pointer-events: none; 
    border: 1px solid #dddddd;
    z-index: 10;
}

/* Idioma: Inglés */
html[lang*="en"] .tour-body .wp-block-gallery .wp-block-image:nth-child(5)::after,
html[lang*="en"] .tour-body .wp-block-gallery .wp-block-image:nth-child(5) a::after {
    content: "More photos";
}

/* Idioma: Francés */
html[lang*="fr"] .tour-body .wp-block-gallery .wp-block-image:nth-child(5)::after,
html[lang*="fr"] .tour-body .wp-block-gallery .wp-block-image:nth-child(5) a::after {
    content: "Plus de photos";
}

/* --- VERSIÓN MÓVIL --- */
@media (max-width: 768px) {
    .tour-body .wp-block-gallery {
        aspect-ratio: auto !important;
        grid-template-columns: repeat(2, 1fr) !important;
        grid-auto-rows: 150px !important;
        border-radius: 8px !important;
    }
    .tour-body .wp-block-gallery .wp-block-image:nth-child(1) {
        grid-column: 1 / 3 !important;
        grid-row: 1 / 3 !important;
    }
}
/* ==========================================================================
   5. LIGHTBOX CUSTOM PARA LA GALERÍA (Pantalla completa)
   ========================================================================== */
.tour-body .wp-block-gallery .wp-block-image {
    cursor: pointer; /* Hace que salga la manita al pasar el ratón */
}

#mft-lightbox {
    display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    z-index: 999999; backdrop-filter: blur(5px);
}
#mft-lightbox.active {
    display: flex; align-items: center; justify-content: center;
}
.mft-lightbox-overlay {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.85);
}
.mft-lightbox-content {
    position: relative; z-index: 2; max-width: 90%; max-height: 90%;
    display: flex; flex-direction: column; align-items: center;
}
.mft-lightbox-img {
    max-width: 100%; max-height: 80vh; object-fit: contain;
    border-radius: 4px; box-shadow: 0 5px 25px rgba(0,0,0,0.5);
}
.mft-lightbox-close {
    position: absolute; top: -40px; right: 0; background: none; border: none;
    color: white; font-size: 35px; cursor: pointer; transition: 0.3s;
}
.mft-lightbox-close:hover { color: #f36a06; }
.mft-lightbox-prev, .mft-lightbox-next {
    position: absolute; top: 50%; transform: translateY(-50%);
    background: rgba(255,255,255,0.1); border: none; color: white;
    font-size: 24px; width: 50px; height: 50px; border-radius: 50%;
    cursor: pointer; transition: 0.3s; display: flex; align-items: center; justify-content: center;
}
.mft-lightbox-prev:hover, .mft-lightbox-next:hover { background: rgba(255,255,255,0.3); }
.mft-lightbox-prev { left: -70px; }
.mft-lightbox-next { right: -70px; }
.mft-lightbox-counter {
    color: white; margin-top: 15px; font-family: 'Poppins', sans-serif; font-size: 14px; letter-spacing: 1px;
}

/* Ajustes para móviles */
@media (max-width: 768px) {
    .mft-lightbox-prev { left: 10px; background: rgba(0,0,0,0.5); }
    .mft-lightbox-next { right: 10px; background: rgba(0,0,0,0.5); }
    .mft-lightbox-close { right: 10px; top: -35px; }
}