/* Hero: carga progresiva sin destello de fondo */
    .hero-media { position: absolute; inset: 0; overflow: hidden; }
    .hero-bg-image { display: block; width: 100%; height: 100%; }
    .hero-picture { position: absolute; inset: 0; display: block; }
    .hero-bg-image {
        position: absolute; inset: 0; object-fit: cover; object-position: center;
        animation: ken-burns 20s ease-in-out infinite alternate;
        will-change: transform;
        opacity: 0;
        transition: opacity .65s ease-out;
    }
    .hero-bg-image.is-loaded { opacity: 1; }
    /* En móviles: portada editorial, sin recortes ni fondos artificiales. */
    @media (max-width: 767px) {
        #inicio.hero-responsive {
            display: flex;
            flex-direction: column;
            justify-content: flex-start;
            min-height: 0;
            background: linear-gradient(160deg, #05312f 0%, #0c5146 58%, #062c2a 100%);
        }
        #inicio .hero-media {
            position: relative;
            inset: auto;
            width: 100%;
            height: auto;
            flex: none;
            overflow: hidden;
        }
        #inicio .hero-picture { position: relative; inset: auto; display: block; line-height: 0; }
        #inicio .hero-bg-image {
            position: relative;
            inset: auto;
            display: block;
            width: 100%;
            height: auto;
            object-fit: contain;
            animation: ken-burns-mobile 13s ease-in-out infinite alternate;
            transform-origin: center center;
            will-change: transform;
        }
        #inicio .hero-photo-overlay {
            background: linear-gradient(to bottom, rgba(0,0,0,.36), transparent 38%, rgba(5,49,47,.08));
        }
        #inicio .hero-content {
            width: 100%;
            margin-top: 0;
            padding: 2rem 1.35rem 4.5rem;
            background: linear-gradient(160deg, #05312f 0%, #0c5146 70%, #062c2a 100%);
        }
        #inicio .hero-content h1 {
            font-size: clamp(1.9rem, 8vw, 2.65rem);
            line-height: 1.13;
            margin-bottom: 1rem;
        }
        #inicio .hero-content p { margin-bottom: 1.7rem; line-height: 1.65; }
        #inicio .hero-scroll-cue { bottom: .8rem; }
    }
    @keyframes ken-burns-mobile {
        from { transform: scale(1); }
        to { transform: scale(1.09); }
    }
    @media (prefers-reduced-motion: reduce) {
        .hero-bg-image { animation: none !important; }
    }
    @keyframes ken-burns {
        from { transform: scale(1); }
        to { transform: scale(1.15); }
    }

    /* Animaciones auxiliares */
    .animate-fade-slide-up {
        opacity: 0;
        transform: translateY(40px);
        animation: fade-slide-up 1s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
    }
    @keyframes fade-slide-up {
        to { opacity: 1; transform: translateY(0); }
    }

    .service-card, .gallery-card {
        transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
    .service-card:hover, .gallery-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
    }

    .title-underline { position: relative; padding-bottom: 12px; display: inline-block; }
    .title-underline::after {
        content: ''; position: absolute; bottom: 0; left: 50%;
        transform: translateX(-50%) scaleX(0); width: 60px; height: 4px;
        background-color: #F59E0B; border-radius: 2px; transition: transform 1s ease;
    }
    .title-underline.is-visible::after { transform: translateX(-50%) scaleX(1); }

    /* Ticker */
    .promo-ticker-wrap {
        background-color: #F59E0B; color: white; padding: 0.5rem 0;
        overflow: hidden; position: relative; display: flex;
        border-top: 1px solid rgba(255, 255, 255, 0.3);
    }
    .promo-ticker-track {
        display: flex; flex-shrink: 0; min-width: 100%;
        animation: marquee 30s linear infinite;
    }
    .promo-ticker-item { padding: 0 2rem; font-weight: 600; white-space: nowrap; }
    @keyframes marquee {
        0% { transform: translateX(0); }
        100% { transform: translateX(-50%); }
    }

    /* Iconos Pulso */
    .pulse-icon::before {
        content: ''; position: absolute; z-index: -1; left: 0; top: 0;
        width: 100%; height: 100%; border-radius: 50%;
        background-color: rgba(255, 255, 255, 0.3);
        transform: scale(1); opacity: 0; animation: pulse-ring 2.5s infinite;
    }
    @keyframes pulse-ring {
        0% { transform: scale(0.9); opacity: 0.7; }
        100% { transform: scale(1.5); opacity: 0; }
    }


/* NATURAL EDITORIAL — una dirección visual cálida, fotográfica y serena */
:root {--ne-forest:#173b32;--ne-leaf:#55745a;--ne-paper:#faf7f0;--ne-sand:#efe9dc;--ne-ink:#28352e;--ne-muted:#6c756b;}
body {background:var(--ne-paper);}
#inicio.hero-responsive {background:#173b32;}
#inicio .hero-photo-overlay {background:linear-gradient(90deg,rgba(12,36,28,.73),rgba(12,36,28,.10) 90%)!important;}
#inicio .hero-content {max-width:1190px;}
#inicio .hero-content h1 {font-weight:600;letter-spacing:-.047em;max-width:860px;line-height:1.12;}
#inicio .hero-content h1 span {background:none!important;color:#d8e8c4!important;-webkit-text-fill-color:#d8e8c4;}
#inicio .hero-content p {font-weight:400;max-width:590px;}
#inicio .hero-content .hero-actions a {border-radius:3px;letter-spacing:.015em;padding:16px 27px;}
#inicio .hero-content .hero-actions a:first-child {background:#e8e7d6;color:#1e4235;}
#inicio .hero-content .hero-actions a:last-child {background:transparent;border:1px solid rgba(255,255,255,.65);color:#fff;}
.ne-kicker {display:block;color:#73856e;font-size:.77rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;margin-bottom:18px;}
.ne-section {padding:108px 0;}
.ne-container {max-width:1220px;margin:auto;padding:0 28px;}
.ne-heading {max-width:750px;margin-bottom:52px;}
.ne-heading h2 {font-size:clamp(2.35rem,4.8vw,4.5rem);font-weight:500;letter-spacing:-.055em;line-height:1.08;color:var(--ne-forest);}
.ne-heading h2 span {color:var(--ne-leaf);}
.ne-heading p {margin-top:22px;font-size:1.08rem;line-height:1.85;color:var(--ne-muted);}
.ne-services {background:var(--ne-paper);}
.ne-services-grid {display:grid;grid-template-columns:1.12fr .88fr;gap:60px;align-items:start;}
.ne-service-shuttles {margin-top:100px;}
.ne-service {background:transparent;border:0;}
.ne-service img {width:100%;height:clamp(245px,30vw,405px);object-fit:cover;display:block;transition:transform .75s ease;}
.ne-service-photo {overflow:hidden;background:#e9e6dc;}
.ne-service:hover img {transform:scale(1.045);}
.ne-service-copy {display:flex;gap:20px;padding:23px 0 6px;align-items:flex-start;}
.ne-service-number {color:#829783;font-size:.8rem;letter-spacing:.08em;margin-top:7px;}
.ne-service-copy h3 {font-size:1.6rem;color:var(--ne-forest);font-weight:600;letter-spacing:-.035em;}
.ne-service-copy p {color:var(--ne-muted);font-size:.95rem;line-height:1.8;margin:12px 0 16px;}
.ne-service-copy a {color:var(--ne-forest);display:inline-flex;align-items:center;gap:10px;font-size:.9rem;font-weight:600;border-bottom:1px solid #9aa99a;padding-bottom:4px;}
.ne-values {background:var(--ne-forest);color:#f7f4ea;}
.ne-values-inner {display:grid;grid-template-columns:1fr 1.3fr;gap:90px;align-items:start;}
.ne-values h2 {font-size:clamp(2rem,3.4vw,3.4rem);letter-spacing:-.05em;font-weight:500;line-height:1.2;}
.ne-values h2 span {color:#b9d0b4;}
.ne-value {padding:23px 0;border-bottom:1px solid rgba(255,255,255,.2);}
.ne-value:first-child {padding-top:0;}
.ne-value h3 {font-weight:600;font-size:1.14rem;margin-bottom:7px;}
.ne-value p {color:#c7d7ca;font-size:.96rem;line-height:1.8;}
#promociones-destacadas {background:#eaeade;}
#promociones-destacadas h2,#galeria h2,#testimonios h2 {font-weight:500;letter-spacing:-.05em;color:var(--ne-forest);}
#promociones-destacadas .rounded-3xl {border-radius:3px;}
#galeria {background:#faf7f0;}
#galeria .rounded-3xl {border-radius:3px;}
#testimonios {background:#f1eee5;}
#testimonios .grid > .rounded-2xl {border:0;border-top:2px solid #a7b5a2;border-radius:0;background:transparent;padding:30px 8px;}
#testimonios .shadow-inner {border:1px solid #ded9ce;border-radius:3px;background:#faf9f4;box-shadow:none;}
#testimonios .rounded-xl {border-radius:4px;}
.ne-cta {background:#dfe8d8;padding:90px 0;}
.ne-cta-inner {display:grid;grid-template-columns:1.4fr .6fr;align-items:center;gap:60px;}
.ne-cta h2 {font-size:clamp(2.1rem,4vw,3.8rem);font-weight:500;letter-spacing:-.055em;line-height:1.12;color:var(--ne-forest);}
.ne-cta p {color:#54695b;margin-top:18px;line-height:1.85;}
.ne-cta a {display:inline-flex;align-items:center;justify-content:center;padding:18px 28px;background:var(--ne-forest);color:white;border-radius:3px;font-weight:600;text-align:center;}
.ne-contact {background:var(--ne-paper);}
.ne-contact-grid {display:grid;grid-template-columns:1fr 1fr;gap:90px;}
.ne-contact h2 {font-size:clamp(2.4rem,4vw,3.7rem);font-weight:500;letter-spacing:-.055em;color:var(--ne-forest);}
.ne-contact-intro {margin-top:22px;color:var(--ne-muted);line-height:1.85;}
.ne-contact-item {padding:24px 0;border-bottom:1px solid #d8dace;}
.ne-contact-item:first-child {border-top:1px solid #d8dace;}
.ne-contact-item h3 {color:#7c8b79;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;font-weight:600;}
.ne-contact-item p {color:var(--ne-forest);overflow-wrap:anywhere;}
.ne-contact-item a {text-decoration:underline;text-underline-offset:4px;}
@media(max-width:767px){
 #inicio.hero-responsive {background:#173b32;}
 #inicio .hero-content {background:#173b32;text-align:left;padding:37px 24px 50px;}
 #inicio .hero-content h1 {font-size:clamp(2.1rem,8.6vw,3rem);}
 #inicio .hero-content .hero-actions {flex-direction:column;}
 #inicio .hero-content .hero-actions a {width:100%;text-align:center;}
 #inicio .hero-photo-overlay {background:linear-gradient(to bottom,rgba(12,36,28,.32),transparent 60%)!important;}
 .ne-container {padding:0 20px;}
 .ne-section {padding:72px 0;}
 .ne-heading {margin-bottom:35px;}
 .ne-services-grid,.ne-values-inner,.ne-cta-inner,.ne-contact-grid {grid-template-columns:1fr;gap:28px;}
 .ne-services-side {padding-top:0;gap:38px;}
 .ne-service img {height:245px;}
 .ne-service-copy {gap:14px;}
 .ne-values-inner {gap:36px;}
 .ne-cta {padding:66px 0;}
 .ne-cta a {width:100%;}
}
@media(prefers-reduced-motion:reduce){.ne-service img{transition:none;}}

/* NUEVOS SERVICIOS — galería editorial de tres experiencias */
#servicios.ne-services { background:#f3f1e8; padding-block:clamp(70px,8vw,116px); }
#servicios .ne-services-intro {display:flex;justify-content:space-between;align-items:end;gap:26px;margin-bottom:42px;}
#servicios .ne-services-intro .ne-heading {margin:0;max-width:800px;}
#servicios .ne-services-intro .ne-heading p {max-width:650px;}
#servicios .ne-showcase-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch;}
#servicios .ne-showcase-card {position:relative;display:block;isolation:isolate;overflow:hidden;min-width:0;min-height:510px;background:#173b32;color:#fff;text-decoration:none;border-radius:5px;outline-offset:5px;box-shadow:0 8px 25px rgba(16,45,33,.09);transition:transform .3s ease,box-shadow .3s ease;}
#servicios .ne-showcase-card:focus-visible {outline:3px solid #55745a;}
#servicios .ne-showcase-card:hover {transform:translateY(-5px);box-shadow:0 18px 38px rgba(16,45,33,.18);}
#servicios .ne-showcase-media {position:absolute;inset:0;overflow:hidden;}
#servicios .ne-showcase-media img {width:100%;height:100%;object-fit:cover;display:block;transition:transform .65s ease;}
#servicios .ne-showcase-card:hover .ne-showcase-media img {transform:scale(1.065);}
#servicios .ne-showcase-card::after {content:'';position:absolute;z-index:0;inset:0;background:linear-gradient(180deg,rgba(9,28,22,.24) 0%,rgba(9,28,22,.02) 28%,rgba(9,28,22,.60) 57%,rgba(8,26,21,.95) 100%);pointer-events:none;}
#servicios .ne-showcase-top {position:absolute;z-index:1;top:25px;left:26px;right:26px;display:flex;justify-content:space-between;align-items:center;gap:8px;}
#servicios .ne-showcase-label {font-size:.69rem;font-weight:600;letter-spacing:.16em;color:#fff;text-transform:uppercase;text-shadow:0 1px 5px #123;}
#servicios .ne-showcase-body {position:absolute;z-index:1;bottom:0;left:0;right:0;padding:27px 29px 30px;}
#servicios .ne-showcase-rule {display:block;width:42px;height:2px;background:#c6daba;margin-bottom:18px;}
#servicios .ne-showcase-body h3 {font-size:clamp(1.58rem,2.2vw,2.25rem);font-weight:600;line-height:1.15;letter-spacing:-.035em;color:#fff;margin:0 0 13px;}
#servicios .ne-showcase-body p {font-size:.91rem;line-height:1.7;color:#eef2e9;margin:0 0 24px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;}
#servicios .ne-showcase-cta {display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:18px;border-top:1px solid rgba(255,255,255,.28);font-size:.87rem;font-weight:650;color:#fff;}
#servicios .ne-showcase-arrow {display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.65);border-radius:50%;transition:transform .2s ease,background .2s ease;}
#servicios .ne-showcase-card:hover .ne-showcase-arrow {transform:translateX(3px);background:rgba(255,255,255,.18);}
@media(max-width:1000px){ #servicios .ne-showcase-grid {gap:13px;}#servicios .ne-showcase-card{min-height:450px;}#servicios .ne-showcase-body{padding:22px;}#servicios .ne-showcase-top{top:20px;left:22px;right:22px;}}
@media(max-width:767px){ #servicios .ne-services-intro{display:block;margin-bottom:30px;}#servicios .ne-services-count{display:none;}#servicios .ne-showcase-grid{grid-template-columns:1fr;gap:18px;}#servicios .ne-showcase-card{min-height:390px;}#servicios .ne-showcase-body p{-webkit-line-clamp:3;}#servicios .ne-showcase-body h3{font-size:1.85rem;}#servicios .ne-showcase-media img{object-position:center 45%;}}
@media(max-width:380px){ #servicios .ne-showcase-card{min-height:410px;}#servicios .ne-showcase-body{padding:20px;}#servicios .ne-showcase-body h3{font-size:1.65rem;}}
@media(prefers-reduced-motion:reduce){ #servicios .ne-showcase-card,#servicios .ne-showcase-media img,#servicios .ne-showcase-arrow{transition:none;}#servicios .ne-showcase-card:hover{transform:none;}}
/* Estilos puntuales trasladados desde los atributos HTML */
#inicio .hero-content .hero-lead {animation-delay:.5s;}
#inicio .hero-content .hero-actions {animation-delay:.8s;}
.ne-values .ne-kicker {color:#bed5bb;}

/* Promociones destacadas: fotografía + contenido; sin alturas rígidas ni texto recortado. */
#promociones-destacadas {background:#eaeade;}
#promociones-destacadas .home-promotions-heading {margin-bottom:clamp(26px,4vw,45px);text-align:center;}
#promociones-destacadas .home-promotions-heading h2 {color:#173b32;font-size:clamp(2rem,4.6vw,3.6rem);font-weight:500;line-height:1.12;letter-spacing:-.045em;}
#promociones-destacadas .home-promotions-heading h2 span {color:#55745a;}
.home-promotions-carousel{max-width:1080px;margin:auto;min-width:0;}
.home-promotion-slides{min-width:0;}
.home-promotion-slide{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);overflow:hidden;background:#fffdf7;border:1px solid #dcded3;box-shadow:0 15px 45px rgba(23,59,50,.09);min-width:0;}
.home-promotion-slide[x-cloak]{display:none!important;}
.home-promotion-picture{position:relative;min-height:385px;background:#173b32;overflow:hidden;}
.home-promotion-picture img{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:cover;}
.home-promotion-badge{position:absolute;left:20px;top:20px;max-width:calc(100% - 40px);padding:9px 14px;background:#faf7f0;color:#173b32;font-size:.7rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;}
.home-promotion-copy{display:flex;flex-direction:column;min-width:0;gap:22px;padding:clamp(26px,4.2vw,54px);color:#173b32;}
.home-promotion-copy h3{color:#173b32;font-size:clamp(1.6rem,3vw,2.65rem);font-weight:600;line-height:1.18;letter-spacing:-.045em;overflow-wrap:anywhere;}
.home-promotion-date{display:flex;align-items:flex-start;gap:12px;color:#5f7164;font-size:clamp(.88rem,1.3vw,1rem);line-height:1.55;overflow-wrap:anywhere;}
.home-promotion-date i{margin-top:4px;color:#55745a;flex:none;}
.home-promotion-bottom{margin-top:auto;padding-top:22px;border-top:1px solid #e0e4d9;display:flex;flex-direction:column;gap:22px;align-items:flex-start;}
.home-promotion-price{display:flex;flex-direction:column;gap:5px;}
.home-promotion-price span{color:#6b7f70;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;font-weight:650;}
.home-promotion-price strong{font-weight:650;font-size:clamp(1.85rem,3.3vw,2.5rem);line-height:1.1;color:#173b32;overflow-wrap:anywhere;}
.home-promotion-link{min-height:49px;display:inline-flex;align-items:center;justify-content:center;gap:15px;background:#173b32;color:white!important;padding:13px 23px;text-align:center;font-size:.88rem;line-height:1.4;font-weight:650;text-decoration:none;border-radius:3px;}
.home-promotion-link:hover{background:#365f48;}
.home-promotion-link:focus-visible,.home-promotion-control:focus-visible{outline:3px solid #55745a;outline-offset:3px;}
.home-promotions-controls{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:23px;}
.home-promotion-control{width:45px;height:45px;display:grid;place-items:center;border:1px solid #aebcaf;background:transparent;color:#173b32;border-radius:50%;cursor:pointer;}
.home-promotion-control:hover{background:#fffdf7;}
.home-promotion-counter{font-size:.83rem;color:#52695a;letter-spacing:.1em;min-width:60px;text-align:center;}
@media(max-width:800px){
 .home-promotion-slide{grid-template-columns:minmax(0,1fr);}
 .home-promotion-picture{min-height:0;aspect-ratio:16/10;}
 .home-promotion-copy{padding:clamp(20px,5vw,32px);gap:17px;}
 .home-promotion-bottom{gap:16px;}
 .home-promotion-link{width:100%;}
}
@media(max-width:420px){
 .home-promotion-picture{aspect-ratio:4/3;}
 .home-promotion-badge{top:12px;left:12px;padding:7px 10px;font-size:.65rem;}
 .home-promotion-copy{padding:22px 18px;}
 .home-promotion-copy h3{font-size:clamp(1.5rem,7vw,2rem);}
 .home-promotion-link{padding-inline:12px;}
}
@media(prefers-reduced-motion:reduce){.home-promotion-link,.home-promotion-control{transition:none!important;}}
