/* MENU */
#menu {
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
    height: 60px;
    padding: 0 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(90deg, #008f5a, #00a86b 50%, #00b97a);
    box-shadow: 0 2px 14px rgba(0, 0, 0, .18);
}

#menu-list {
    list-style: none;
    display: flex;
    gap: 4px;
    margin: 0;
    padding: 0;
}

#menu-list a {
    position: relative;
    display: block;
    padding: 8px 14px;
    color: #fff;
    font-weight: 500;
    text-decoration: none;
    border-radius: 10px;
    transition: background .25s;
}
#menu-list a::after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 4px;
    height: 2px;
    background: #fff;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s ease;
}
#menu-list a:hover::after,
#menu-list a:focus-visible::after { transform: scaleX(1); }

/* BOTON HAMBURGUESA (se anima a "X") */
.menu-toggle {
    display: none;
    width: 46px;
    height: 46px;
    padding: 0;
    margin-left: auto;
    background: rgba(255, 255, 255, .14);
    border: 0;
    border-radius: 12px;
    cursor: pointer;
    transition: background .25s;
}
.menu-toggle:hover { background: rgba(255, 255, 255, .25); }
.menu-toggle span {
    display: block;
    width: 22px;
    height: 2px;
    margin: 5px auto;
    background: #fff;
    border-radius: 2px;
    transition: transform .35s ease, opacity .25s ease;
}
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* SELECTOR DE IDIOMA (esquina superior izquierda) */
.lang { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); z-index: 1100; }
.lang-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    height: 40px;
    padding: 0 12px;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    color: #fff;
    background: rgba(255, 255, 255, .16);
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: 999px;
    cursor: pointer;
    transition: background .25s;
}
.lang-btn:hover { background: rgba(255, 255, 255, .28); }
.lang-caret { font-size: 11px; transition: transform .25s; }
.lang-btn[aria-expanded="true"] .lang-caret { transform: rotate(180deg); }
.lang-list {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    min-width: 200px;
    max-height: 70vh;
    overflow-y: auto;
    margin: 0;
    padding: 6px;
    list-style: none;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, .25);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px) scale(.98);
    transform-origin: top left;
    transition: opacity .2s ease, transform .25s ease, visibility 0s linear .25s;
}
.lang-list.open { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.lang-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    color: #1d2b25;
    border-radius: 10px;
    cursor: pointer;
    font-size: 15px;
}
.lang-list li:hover, .lang-list li:focus-visible { background: #f1fbf6; outline: 0; }
.lang-list li[aria-selected="true"] { background: #e0f5ea; font-weight: 700; color: #07603f; }
.lang-list li b { min-width: 26px; font-size: 11px; letter-spacing: .04em; color: #007a50; }

/* Ocultar la barra de Google Translate */
body { top: 0 !important; }
.goog-te-banner-frame, iframe.skiptranslate, #goog-gt-tt, .goog-te-balloon-frame, .goog-tooltip { display: none !important; }
.goog-text-highlight { background: none !important; box-shadow: none !important; }
#google_translate_element { position: absolute; left: -9999px; top: 0; width: 1px; height: 1px; overflow: hidden; }

/* RESPONSIVE MENU */
@media (max-width: 768px) {
    #menu { justify-content: space-between; height: 56px; }
    .lang { position: static; transform: none; }
    .menu-toggle { display: block; }

    #menu-list {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        flex-direction: column;
        gap: 0;
        padding: 10px 14px 18px;
        background: linear-gradient(180deg, #007a50, #00634a);
        border-radius: 0 0 24px 24px;
        box-shadow: 0 22px 34px rgba(0, 0, 0, .3);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-14px);
        transition: opacity .3s ease, transform .4s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .4s;
    }
    #menu-list.active {
        opacity: 1;
        visibility: visible;
        transform: none;
        transition-delay: 0s;
    }
    #menu-list li {
        opacity: 0;
        transform: translateX(-18px);
        transition: opacity .35s ease, transform .4s cubic-bezier(.2, .8, .2, 1);
    }
    #menu-list.active li { opacity: 1; transform: none; }
    #menu-list.active li:nth-child(1) { transition-delay: .06s; }
    #menu-list.active li:nth-child(2) { transition-delay: .11s; }
    #menu-list.active li:nth-child(3) { transition-delay: .16s; }
    #menu-list.active li:nth-child(4) { transition-delay: .21s; }
    #menu-list.active li:nth-child(5) { transition-delay: .26s; }
    #menu-list.active li:nth-child(6) { transition-delay: .31s; }
    #menu-list.active li:nth-child(7) { transition-delay: .36s; }
    #menu-list a {
        padding: 14px 12px;
        font-size: 17px;
        border-bottom: 1px solid rgba(255, 255, 255, .12);
        border-radius: 0;
    }
    #menu-list li:last-child a { border-bottom: 0; }
    #menu-list a::after { display: none; }
    #menu-list a:active { background: rgba(255, 255, 255, .12); }
}

/* FORMULARIO */
.booking-wrapper {
    display: flex;
    justify-content: center;
    position: relative;
    z-index: 10;
}

.form-box {
    background: rgba(255,255,255,0.95);
    backdrop-filter: blur(10px);
    padding: 30px;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    width: 100%;
    max-width: 400px;
    text-align: center;
    border: 1px solid rgba(255,255,255,0.2);
}

.form-box h2 {
    margin-bottom: 10px;
}

.form-box p {
    margin-bottom: 20px;
    color: #666;
}

.input-group {
    position: relative;
    margin-bottom: 20px;
}

.input-group input {
    width: 100%;
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: 8px;
    outline: none;
    background: transparent;
}

.input-group label {
    position: absolute;
    top: 12px;
    left: 12px;
    color: #777;
    font-size: 14px;
    transition: 0.3s;
    pointer-events: none;
}

.input-group input:focus + label,
.input-group input:not(:placeholder-shown) + label {
    top: -8px;
    left: 10px;
    background: white;
    padding: 0 5px;
    font-size: 12px;
    color: #00a86b;
}

.form-box button {
    width: 100%;
    padding: 12px;
    background: linear-gradient(135deg, #00a86b, #007a50);
    color: white;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: 0.3s;
}

.form-box button:hover {
    transform: scale(1.05);
}

.success {
    background: #d4edda;
    padding: 10px;
    border-radius: 6px;
    margin-bottom: 15px;
}

body {
    margin: 0;
    font-family: Arial, sans-serif;
    background-color: #f4f4f4;
}

/* RESPONSIVE FORM */
@media (max-width: 768px) {
    .booking-wrapper {
        margin-top: 20px;
    }
}
/* HERO */
#hero {
    position: relative;
    height: 70vh;
    min-height: 360px;
    overflow: hidden;
    isolation: isolate;
    background: #06281e;
}

/* VIDEO */
#bg-video {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: translate(-50%, -50%);
    z-index: -1;
}

/* LOGO CENTRADO */
#hero-inner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100%;
    padding: 0 15px;
    text-align: center;
}
#logo-container {
    display: flex;
    justify-content: center;
    align-items: center;
}

#logo-container img {
    width: 300px;
    max-width: 80vw;
    height: auto;
    border-radius: 30px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.3);
}
#floating-social {
    position: fixed;
    bottom: 25px;
    right: 25px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    z-index: 9999;
}

#floating-social a {
    display: block;
}

#floating-social img {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    box-shadow: 0 5px 15px rgba(0,0,0,0.3);
    cursor: pointer;
    transition: transform 0.3s ease;
}

#floating-social img:hover {
    transform: scale(1.15);
}
.selector {
    display: flex;
    justify-content: center;
    gap: 15px;
    z-index: 20;
    position: relative;
}

.option {
    font: inherit;
    color: inherit;
    padding: 12px 18px;
    background: white;
    border-radius: 25px;
    cursor: pointer;
    border: 2px solid #ddd;
    transition: 0.3s;
}

.option:hover {
    background: #00a86b;
    color: white;
}

.option.active {
    background: #00a86b;
    color: white;
}
.input-group select {
    width: 100%;
    padding: 12px;
    border-radius: 8px;
    border: 1px solid #ccc;
    outline: none;
    background: white;
    cursor: pointer;
}
/* CONTROL DE FORMULARIOS */
.form {
    display: none;
}

.form.active {
    display: block;
}
/* separación natural entre secciones */
.selector {
    margin-top: 20px;
}

.booking-wrapper {
    margin-top: 20px;
}
.card-tour img {
    width: 100%;
    height: 200px;       /* altura fija */
    object-fit: cover;   /* recorta sin deformar */
    border-top-left-radius: 15px;
    border-top-right-radius: 15px;
}
.admin-btn {
    background-color: #ffffff;
    color: #00a86b !important;
    padding: 8px 16px;
    border-radius: 20px;
    font-weight: bold;
    text-decoration: none;
}

.admin-btn:hover {
    background-color: #007a50;
    color: #ffffff !important;
}
.card-tour .btn {
    border-radius: 10px;
    font-weight: 600;
}

.modal-body p {
    margin-bottom: 10px;
}

/* ===== Mejoras de accesibilidad, SEO y rendimiento ===== */
html { scroll-padding-top: 70px; }
@media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
}

.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    background: #fff;
    color: #007a50;
    padding: 8px 14px;
    z-index: 2000;
}
.skip-link:focus { left: 8px; top: 8px; }

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
    outline: 3px solid #ffbf47;
    outline-offset: 2px;
}

.hero-title {
    color: #fff;
    font-size: clamp(1.05rem, 2.6vw, 1.6rem);
    font-weight: 600;
    max-width: 760px;
    margin: 18px 0 0;
    text-shadow: 0 2px 8px rgba(0, 0, 0, .7);
}

.section-title {
    text-align: center;
    margin-bottom: 28px;
    font-size: clamp(1.4rem, 3vw, 2rem);
}
.about-text { max-width: 760px; font-size: 1.1rem; }

.hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
.form-legal { font-size: 12px; margin: 14px 0 0; }
.form-legal a { color: #007a50; }
.form-box .alert { text-align: left; font-size: 14px; }
.success { text-align: left; font-size: 14px; }

.footer-logo { width: 150px; height: auto; }
.admin-link { color: #888; font-size: 12px; }
.admin-link:hover { color: #ccc; }
.price { color: #007a50; font-weight: 700; }
.card-tour { border: 0; border-radius: 15px; box-shadow: 0 6px 18px rgba(0, 0, 0, .1); }

/* ===== Modal de tours (minimalista) ===== */
.modal-tour .modal-content { border: 0; border-radius: 16px; overflow: hidden; background: #fff; }
.tour-close {
    position: absolute; top: 10px; right: 12px; z-index: 5;
    width: 32px; height: 32px; line-height: 28px; text-align: center;
    background: rgba(255,255,255,.95); border-radius: 50%; opacity: 1;
    font-size: 22px; color: #333; text-shadow: none; box-shadow: 0 2px 8px rgba(0,0,0,.15);
}
.tour-img { display: block; width: 100%; height: 170px; object-fit: cover; flex-shrink: 0; }
.tour-body { padding: 20px 26px 6px; color: #1d2b25; }
.tour-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 10px; }
.tour-head .badge { font-weight: 600; letter-spacing: .02em; }
.tour-head .modal-title { font-size: 1.45rem; font-weight: 700; margin: 6px 0 2px; line-height: 1.2; }
.tour-meta { font-size: .85rem; color: #6b7a73; }
.tour-price { text-align: right; font-size: 1.7rem; font-weight: 700; color: #00a86b; line-height: 1; white-space: nowrap; }
.tour-price small { display: block; margin-top: 4px; font-size: .72rem; font-weight: 500; color: #6b7a73; }
.tour-desc { color: #44524b; margin: 0 0 12px; }
.tour-facts { display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 10px 0; margin-bottom: 12px; border-top: 1px solid #edf2ef; border-bottom: 1px solid #edf2ef; font-size: .92rem; }
.tour-sub { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #6b7a73; margin: 4px 0 8px; }
.chips { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0 0 12px; }
.chips li { border: 1px solid #e3e9e6; color: #3a4742; border-radius: 999px; padding: 4px 12px; font-size: .84rem; }
.chips-ok li { border-color: #bfe8d3; background: #f1fbf6; color: #07603f; }
.modal-tour .modal-footer { border-top: 1px solid #edf2ef; padding: 12px 20px; }
.modal-tour .modal-footer .btn { border-radius: 10px; font-weight: 600; }
.tour-quote .quote-title { font-weight: 700; margin: 4px 0 12px; }
.tour-quote label { font-size: .8rem; font-weight: 600; color: #44524b; margin-bottom: 3px; }
.tour-quote .form-control { border-radius: 10px; }
.quote-total { display: flex; justify-content: space-between; align-items: center; background: #f1fbf6; border-radius: 12px; padding: 12px 16px; margin: 4px 0 14px; }
.quote-total .qt { font-weight: 700; }
.quote-total strong, .quote-total .qt { font-size: 1.3rem; color: #00a86b; }
.quote-actions { display: flex; justify-content: space-between; gap: 10px; padding-bottom: 14px; }
.quote-actions .btn { border-radius: 10px; font-weight: 600; }
.modal-tour.is-quote .modal-footer { display: none; }
@media (max-width: 575px) {
    .tour-img { height: 140px; }
    .tour-body { padding: 16px 18px 4px; }
    .tour-head .modal-title { font-size: 1.2rem; }
    .tour-price { font-size: 1.4rem; }
    .modal-tour .modal-footer .btn { flex: 1 1 auto; }
    .modal-tour .modal-footer .btn-link { flex: 1 1 100%; margin-right: 0; }
}

/* ===== Blog ===== */
.blog-body { background: #fff; }
.blog-body #menu { position: sticky; top: 0; z-index: 100; }
.blog-wrap { padding-top: 32px; max-width: 980px; }
.blog-hero { text-align: center; margin-bottom: 32px; }
.blog-hero h1 { font-size: clamp(1.6rem, 4vw, 2.4rem); font-weight: 800; color: #0b3d2e; }
.blog-card { border: 0; border-radius: 16px; overflow: hidden; box-shadow: 0 6px 18px rgba(0,0,0,.08); color: inherit; text-decoration: none; transition: transform .2s; }
.blog-card:hover { transform: translateY(-3px); text-decoration: none; }
.blog-card img { height: 190px; object-fit: cover; }
.blog-card h2 a, .blog-card h3 { color: #1d2b25; text-decoration: none; }
.blog-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.blog-tags span { font-size: .72rem; background: #f1fbf6; color: #07603f; border: 1px solid #cfeede; padding: 2px 10px; border-radius: 999px; }
.crumbs { font-size: .85rem; color: #6b7a73; margin-bottom: 14px; }
.crumbs a { color: #007a50; }
.post { max-width: 760px; margin: 0 auto; }
.post h1 { font-size: clamp(1.6rem, 4vw, 2.3rem); font-weight: 800; color: #0b3d2e; line-height: 1.2; }
.post h2 { font-size: 1.45rem; font-weight: 700; margin: 30px 0 10px; color: #1d2b25; }
.post p { font-size: 1.05rem; line-height: 1.75; color: #34423c; }
.post .lead { font-size: 1.2rem; color: #44524b; }
.post-meta { color: #6b7a73 !important; font-size: .88rem !important; margin-bottom: 8px; }
.post-fig { margin: 22px 0; }
.post-fig img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 14px; background: #eef2f0; }
.post-fig figcaption { font-size: .76rem; color: #6b7a73; margin-top: 6px; line-height: 1.4; }
.post-fig figcaption a { color: #6b7a73; text-decoration: underline; }
.post-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.post-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 18px 0; }
.post-facts div { background: #f1fbf6; border-radius: 12px; padding: 12px; text-align: center; display: flex; flex-direction: column; gap: 2px; }
.post-facts span { font-size: 1.4rem; }
.post-facts small { color: #6b7a73; text-transform: uppercase; letter-spacing: .05em; font-size: .66rem; }
.post-facts strong { font-size: .9rem; color: #1d2b25; }
.post-tips { background: #fafdfb; border: 1px solid #e3efe8; border-radius: 14px; padding: 6px 22px 14px; margin: 26px 0; }
.post-tips ul { margin: 0; padding-left: 18px; }
.post-tips li { margin: 5px 0; color: #34423c; }
.post-keywords { margin: 18px 0 8px; }
.post-cta { margin: 30px 0 10px; }
.post-cta .form-box { max-width: 520px; margin: 0 auto; }
.post-cta h2 { margin-top: 0; font-size: 1.3rem; }
.post-cta-links { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 16px; }
.related { margin-top: 50px; }
@media (max-width: 575px) { .post-facts { grid-template-columns: 1fr; } }

.modal-tour .modal-footer .btn-link { margin-right: 0; }
.modal-tour .modal-footer > :first-child { margin-right: auto; }
.card-guide { font-size: .82rem; color: #007a50; margin: 4px 0 10px; text-decoration: underline; }
.post-toc { background: #fafdfb; border: 1px solid #e3efe8; border-radius: 14px; padding: 14px 22px; margin: 20px 0; }
.post-toc ol { margin: 6px 0 0; padding-left: 20px; }
.post-toc li { margin: 3px 0; }
.post-toc a { color: #007a50; }
.post h2 { scroll-margin-top: 80px; }
.post-list { padding-left: 22px; }
.post-list li { margin: 6px 0; line-height: 1.7; color: #34423c; }
.post a { color: #007a50; }
.post-faq details { border: 1px solid #e3efe8; border-radius: 12px; padding: 12px 16px; margin: 10px 0; background: #fff; }
.post-faq summary { font-weight: 600; cursor: pointer; color: #1d2b25; }
.post-faq details[open] { background: #fafdfb; }
.post-faq p { margin: 10px 0 2px; }
.post-en { background: #f6f8f7; border-radius: 14px; padding: 4px 22px 14px; margin: 26px 0; }
.post-en h2 { font-size: 1.2rem; }

/* ===== Transporte: mapa y autocompletado ===== */
.airport-map-wrapper { margin: 14px 0 18px; overflow: hidden; border: 1px solid #e2e2e2; border-radius: 12px; background: #fff; text-align: left; }
.airport-map-title { padding: 10px 14px; font-weight: 600; font-size: .95rem; }
#mapa { display: block; width: 100%; height: 100%; border: 0; }
.mapa-marco { position: relative; width: 100%; height: 300px; background: #e8efe9; }
@media (max-width: 575px) { .mapa-marco { height: 260px; } }
.map-message { padding: 8px 14px; font-size: 13px; color: #666; background: #fff; }
.map-ruta { padding-top: 0; color: #07603f; font-weight: 600; }
.pin-destino { font-size: 26px; line-height: 1; filter: drop-shadow(0 2px 2px rgba(0,0,0,.35)); background: none; border: 0; }
.destino-group { text-align: left; margin-bottom: 12px; }
.destino-group label { font-weight: 600; font-size: .92rem; margin-bottom: 4px; }
.ac-wrap { position: relative; }
.ac-lista { position: absolute; left: 0; right: 0; top: 100%; z-index: 1500; max-height: 270px; overflow-y: auto; margin: 3px 0 0; padding: 4px; list-style: none; background: #fff; border: 1px solid #dfe7e3; border-radius: 12px; box-shadow: 0 10px 24px rgba(0,0,0,.14); text-align: left; }
.ac-lista li { padding: 8px 10px; border-radius: 8px; cursor: pointer; line-height: 1.25; }
.ac-lista li small { display: block; color: #6b7a73; font-size: .75rem; }
.ac-lista li:hover, .ac-lista li[aria-selected="true"] { background: #f1fbf6; }

/* ===== Franja de llamada a la acción + pie de página ===== */
.cta-strip {
    margin-top: 70px;
    padding: 46px 16px;
    text-align: center;
    color: #fff;
    background: linear-gradient(120deg, #00a86b, #00c389 55%, #00a86b);
}
.cta-strip h2 { font-size: clamp(1.4rem, 3.4vw, 2.1rem); font-weight: 800; margin: 0 0 8px; }
.cta-strip p { margin: 0 0 20px; opacity: .95; }
.cta-strip .btn { border-radius: 999px; font-weight: 700; padding: 11px 26px; margin: 4px; transition: transform .25s, box-shadow .25s; }
.cta-strip .btn:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(0, 0, 0, .2); }
.cta-strip .btn-light { color: #007a50; }

.site-footer { position: relative; color: #cfe3da; background: linear-gradient(160deg, #04251b, #0b3d2e 55%, #06402f); }
.site-footer .footer-wave { display: block; width: 100%; height: 46px; margin-top: -1px; background: #00a86b; }
.site-footer .footer-wave svg { display: block; width: 100%; height: 100%; }
.site-footer .container { padding-top: 40px; padding-bottom: 14px; }
.site-footer .footer-logo { width: 150px; height: auto; border-radius: 16px; margin-bottom: 14px; }
.site-footer h2, .site-footer .f-title { position: relative; font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 800; color: #fff; margin: 0 0 18px; padding-bottom: 10px; }
.site-footer h2::after, .site-footer .f-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 3px; border-radius: 3px; background: #00c389; }
.site-footer p { font-size: .92rem; color: #b7d0c4; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin: 0 0 10px; }
.site-footer a { color: #cfe3da; text-decoration: none; transition: color .25s, padding-left .25s; }
.site-footer .links a::before { content: "›"; display: inline-block; width: 0; margin-right: 0; opacity: 0; color: #00c389; transition: width .25s, margin .25s, opacity .25s; }
.site-footer .links a:hover { color: #fff; }
.site-footer .links a:hover::before { width: 12px; margin-right: 4px; opacity: 1; }
.footer-social { display: flex; gap: 10px; margin-top: 16px; }
.footer-social a { width: 44px; height: 44px; display: grid; place-items: center; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .14); border-radius: 50%; transition: transform .25s, background .25s; }
.footer-social a:hover { transform: translateY(-4px) scale(1.06); background: rgba(0, 195, 137, .35); }
.footer-social img { width: 24px; height: 24px; }
.footer-contact li { display: flex; align-items: flex-start; gap: 10px; }
.footer-contact .ico { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; background: rgba(255, 255, 255, .08); border-radius: 10px; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin-top: 26px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .85rem; color: #8fb3a2; }
.footer-bottom a { color: #8fb3a2; }
.footer-bottom a:hover { color: #fff; }

/* Volver arriba */
.to-top { position: fixed; left: 20px; bottom: 25px; z-index: 9998; width: 46px; height: 46px; border: 0; border-radius: 50%; color: #fff; font-size: 20px; background: #00a86b; box-shadow: 0 8px 18px rgba(0, 0, 0, .25); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .3s, transform .3s, visibility 0s linear .3s; }
.to-top.show { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }

/* Aparición suave al hacer scroll */
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .6s ease, transform .6s cubic-bezier(.2, .8, .2, 1); transition-delay: var(--d, 0s); }
.reveal.visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1; transform: none; transition: none; }
    #menu-list, #menu-list li, .lang-list { transition: none !important; }
}

/* Lista de idiomas: independiente del menú de navegación */
#menu .lang-list { display: block; }
#menu .lang-list li { flex-direction: row; }

/* ===== Opiniones ===== */
.reviews { padding: 56px 0 10px; background: linear-gradient(180deg, #f1fbf6, #fff); }
.rv-score { text-align: center; padding: 26px 18px; color: #fff; border-radius: 22px; background: linear-gradient(135deg, #00a86b, #07603f); box-shadow: 0 14px 30px rgba(0, 120, 80, .28); }
.rv-big { font-size: 4rem; font-weight: 800; line-height: 1; }
.rv-stars { --p: calc(var(--r) / 5 * 100%); display: inline-block; font-size: 1.7rem; letter-spacing: 3px; line-height: 1.2; color: transparent; background: linear-gradient(90deg, #ffc83d var(--p), rgba(255, 255, 255, .35) var(--p)); -webkit-background-clip: text; background-clip: text; }
.reviews .rv-card .rv-stars { background: linear-gradient(90deg, #f5b301 var(--p), #d9e2dd var(--p)); -webkit-background-clip: text; background-clip: text; }
.rv-stars-sm { font-size: 1.15rem; letter-spacing: 2px; }
.rv-count { margin-top: 4px; opacity: .95; }
.rv-dist { max-width: 560px; }
.rv-fila { display: flex; align-items: center; gap: 12px; margin: 9px 0; }
.rv-n { width: 38px; font-weight: 700; color: #34423c; }
.rv-barra { flex: 1; height: 12px; background: #e6eeea; border-radius: 99px; overflow: hidden; }
.rv-barra span { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, #ffc83d, #f5b301); transition: width 1s ease; }
.rv-cant { width: 28px; text-align: right; color: #6b7a73; font-size: .9rem; }

.rv-carrusel { position: relative; margin-top: 18px; }
.rv-pista { display: flex; gap: 16px; overflow-x: auto; padding: 10px 6px 24px; scroll-snap-type: x mandatory; scrollbar-width: thin; scroll-behavior: smooth; }
.rv-card { flex: 0 0 min(340px, 84%); scroll-snap-align: start; display: flex; flex-direction: column; gap: 8px; padding: 20px; background: #fff; border: 1px solid #e3efe8; border-radius: 20px; box-shadow: 0 8px 22px rgba(0, 0, 0, .06); }
.rv-head { display: flex; align-items: center; gap: 12px; }
.rv-avatar { flex: 0 0 46px; width: 46px; height: 46px; display: grid; place-items: center; font-weight: 800; color: #fff; border-radius: 50%; background: hsl(var(--h), 55%, 45%); }
.rv-fecha { font-size: .78rem; color: #8a9891; }
.rv-servicio { align-self: flex-start; font-size: .75rem; font-weight: 600; color: #07603f; background: #e0f5ea; padding: 3px 10px; border-radius: 99px; }
.rv-texto { margin: 0; color: #34423c; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; }
.rv-fotos { display: flex; gap: 8px; margin-top: auto; }
.rv-foto { padding: 0; border: 0; background: none; border-radius: 12px; overflow: hidden; cursor: zoom-in; transition: transform .2s; }
.rv-foto:hover { transform: scale(1.05); }
.rv-foto img { display: block; width: 72px; height: 72px; object-fit: cover; }
.rv-flecha { position: absolute; top: 42%; z-index: 3; width: 42px; height: 42px; border: 0; border-radius: 50%; font-size: 26px; line-height: 1; color: #07603f; background: #fff; box-shadow: 0 6px 16px rgba(0, 0, 0, .2); cursor: pointer; display: none; }
.rv-prev { left: -8px; } .rv-next { right: -8px; }
@media (min-width: 992px) { .rv-flecha { display: block; } }
.rv-lightbox { position: fixed; inset: 0; z-index: 20000; display: grid; place-items: center; padding: 20px; background: rgba(0, 0, 0, .86); cursor: zoom-out; animation: rvfade .2s ease; }
.rv-lightbox img { max-width: 100%; max-height: 90vh; border-radius: 14px; }
@keyframes rvfade { from { opacity: 0; } to { opacity: 1; } }

/* ===== Página privada para dejar una opinión ===== */
.opinion-body { min-height: 100vh; background: linear-gradient(160deg, #e9f9f1, #fff 60%); }
.opinion-wrap { max-width: 560px; margin: 0 auto; padding: 28px 16px 60px; text-align: center; }
.opinion-logo { width: 150px; height: auto; margin-bottom: 18px; border-radius: 16px; }
.opinion-card { text-align: left; padding: 26px; background: #fff; border-radius: 22px; box-shadow: 0 16px 40px rgba(0, 0, 0, .1); }
.opinion-card.text-center { text-align: center; }
.opinion-card h1 { font-size: 1.5rem; font-weight: 800; color: #0b3d2e; }
.opinion-emoji { font-size: 3rem; }
.star-picker { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; }
.star-picker input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.star-picker label { margin: 0; font-size: 2.6rem; line-height: 1; color: #d3dbd7; cursor: pointer; transition: color .15s, transform .15s; }
.star-picker label:hover, .star-picker label:hover ~ label, .star-picker input:checked ~ label { color: #f5b301; }
.star-picker label:hover { transform: scale(1.15); }
.star-picker input:focus-visible + label { outline: 3px solid #ffbf47; border-radius: 6px; }
.foto-subir { display: inline-block; margin: 0; padding: 10px 18px; font-weight: 600; color: #07603f; background: #e0f5ea; border: 2px dashed #8fd6b4; border-radius: 12px; cursor: pointer; }
.foto-previas { display: flex; gap: 8px; margin-top: 10px; }
.foto-previas img { width: 74px; height: 74px; object-fit: cover; border-radius: 12px; }

/* ===== Reservas: formulario ampliado ===== */
.booking-container .form-box { max-width: 640px; padding: 26px; text-align: left; }
.booking-container .form-box h2 { text-align: center; }
.booking-container .form-row > [class*="col"] .input-group { margin-bottom: 18px; }
.form-box .form-control { height: auto; padding: 10px 12px; border: 1px solid #ccc; border-radius: 8px; background: #fff; }
.form-box .form-control:focus { border-color: #00a86b; box-shadow: 0 0 0 3px rgba(0, 168, 107, .15); }
.form-group.fijo { margin-bottom: 16px; text-align: left; }
.form-group.fijo > label { margin-bottom: 4px; font-size: .82rem; font-weight: 700; color: #44524b; }
.form-group.fijo .opc { font-weight: 400; color: #8a9891; }
.sentido { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 18px; }
.sentido input, .servicio-opc input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sentido label { margin: 0; padding: 12px 6px; text-align: center; font-size: .9rem; font-weight: 700; color: #34423c; background: #fff; border: 2px solid #dfe7e3; border-radius: 12px; cursor: pointer; transition: all .25s; }
.sentido label span { color: #00a86b; }
.sentido input:checked + label { color: #07603f; background: #e8f8f0; border-color: #00a86b; box-shadow: 0 4px 12px rgba(0, 168, 107, .2); }
.sentido input:focus-visible + label, .servicio-opc input:focus-visible + label { outline: 3px solid #ffbf47; }
.servicio-opc { display: flex; gap: 8px; margin: 2px 0 16px; }
.servicio-opc label { margin: 0; padding: 8px 16px; font-size: .88rem; font-weight: 600; color: #34423c; background: #fff; border: 2px solid #dfe7e3; border-radius: 999px; cursor: pointer; transition: all .25s; }
.servicio-opc input:checked + label { color: #fff; background: #00a86b; border-color: #00a86b; }
.pin { position: relative; width: 38px; height: 38px; display: grid; place-items: center; font-size: 19px; background: #fff; border: 3px solid #00a86b; border-radius: 50%; box-shadow: 0 4px 10px rgba(0, 0, 0, .35); }
.pin b { position: absolute; top: -9px; right: -9px; width: 20px; height: 20px; display: grid; place-items: center; font-size: 11px; color: #fff; background: #00a86b; border-radius: 50%; }
.pin-b { border-color: #e63946; } .pin-b b { background: #e63946; }
.leaflet-container { cursor: crosshair; }

/* Opiniones: estado vacío */
.rv-vacio { max-width: 640px; margin: 0 auto 10px; padding: 34px 22px; text-align: center; background: #fff; border: 1px dashed #bfe8d3; border-radius: 22px; box-shadow: 0 8px 22px rgba(0,0,0,.05); }
.rv-vacio-stars { font-size: 2.2rem; background: linear-gradient(90deg, #d9e2dd, #d9e2dd); -webkit-background-clip: text; background-clip: text; }
.rv-vacio-t { margin: 8px 0 4px; font-size: 1.15rem; font-weight: 700; color: #1d2b25; }
.rv-vacio-s { margin: 0 0 18px; color: #6b7a73; }
.map-message a { color: #007a50; font-weight: 600; }

/* =====================================================================
   Pega esto al FINAL de css/styles.css
   - Oferta combo (3 actividades con descuento)
   - Botones flotantes ocultos cuando hay una actividad abierta
   - Botón X de cerrar más grande y visible
   ===================================================================== */

/* 1) Al abrir una actividad, se ocultan WhatsApp/redes y el botón verde de "subir" para que no tapen Cotizar/Reservar */
body.modal-open .to-top,
body.modal-open #floating-social { display: none !important; }
.to-top, #floating-social { z-index: 900; }

/* 2) X de cerrar grande, con fondo oscuro y borde blanco */
.modal-tour .tour-close {
    top: 12px; right: 12px; z-index: 10;
    width: 48px; height: 48px; line-height: 42px;
    font-size: 34px; font-weight: 400; text-align: center;
    color: #fff; background: rgba(0, 0, 0, .68);
    border: 2px solid rgba(255, 255, 255, .95); border-radius: 50%;
    opacity: 1; text-shadow: none; box-shadow: 0 4px 14px rgba(0, 0, 0, .4);
    transition: background .2s, transform .2s;
}
.modal-tour .tour-close:hover, .modal-tour .tour-close:focus { color: #fff; background: #e63946; transform: scale(1.06); opacity: 1; }

/* 3) Oferta combo (minimalista) */
.oferta { padding: 64px 0 52px; background: #fff; border-top: 1px solid #edf2ef; }
.oferta-wrap { max-width: 940px; }
.oferta-etiqueta { display: inline-block; margin-bottom: 12px; padding: 4px 14px; font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #00805a; background: #e8f8f0; border-radius: 999px; }
.oferta h2 { margin: 0 0 8px; font-size: clamp(1.6rem, 4vw, 2.4rem); font-weight: 800; letter-spacing: -.01em; color: #14211b; }
.oferta h2 span { color: #00a86b; }
.oferta-sub { max-width: 560px; margin: 0 auto 30px; color: #6b7a73; }

/* Las 3 cartas, agrupadas en una sola caja */
.combo-grupo { display: grid; grid-template-columns: repeat(3, 1fr); overflow: hidden; background: #fff; border: 1px solid #e3ebe6; border-radius: 22px; box-shadow: 0 10px 30px rgba(20, 33, 27, .06); }
.combo-carta { position: relative; padding: 16px; text-align: left; }
.combo-carta + .combo-carta { border-left: 1px solid #e3ebe6; }
.combo-carta + .combo-carta::before { content: "+"; position: absolute; top: 50%; left: 0; z-index: 2; width: 28px; height: 28px; display: grid; place-items: center; font-weight: 700; line-height: 1; color: #00a86b; background: #fff; border: 1px solid #e3ebe6; border-radius: 50%; transform: translate(-50%, -50%); }
.combo-carta img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; }
.combo-texto h3 { margin: 12px 0 2px; font-size: 1.05rem; font-weight: 700; color: #14211b; }
.combo-texto p { margin: 0; font-size: .85rem; color: #8a9891; }
.combo-precio { margin-top: 8px; font-weight: 700; color: #14211b; }
.combo-precio small { font-weight: 500; color: #8a9891; }
.combo-resumen { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 18px; padding: 15px 22px; background: #f6fbf8; border-top: 1px solid #e3ebe6; color: #6b7a73; }
.combo-resumen s { color: #8a9891; }
.combo-final { font-size: 1.5rem; font-weight: 800; color: #14211b; }
.combo-final small { font-size: .85rem; font-weight: 500; color: #6b7a73; }
.combo-badge { padding: 4px 12px; font-size: .85rem; font-weight: 800; color: #fff; background: #00a86b; border-radius: 999px; }

/* Reserva sencilla */
.combo-form { margin-top: 18px; padding: 22px; text-align: left; background: #fff; border: 1px solid #e3ebe6; border-radius: 22px; box-shadow: 0 10px 30px rgba(20, 33, 27, .06); }
.combo-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.combo-form .form-control { height: auto; padding: 11px 12px; border: 1px solid #ccd6d0; border-radius: 10px; background: #fff; }
.combo-form .form-control:focus, .stepper:focus-within { border-color: #00a86b; box-shadow: 0 0 0 3px rgba(0, 168, 107, .14); outline: 0; }
.stepper { display: flex; align-items: stretch; overflow: hidden; background: #fff; border: 1px solid #ccd6d0; border-radius: 10px; }
.stepper button { width: 48px; padding: 0; font-size: 1.3rem; line-height: 1; color: #07603f; background: #f6fbf8; border: 0; cursor: pointer; transition: background .2s; }
.stepper button:hover { background: #e0f5ea; }
.stepper input { flex: 1; min-width: 0; padding: 11px 4px; text-align: center; font-weight: 700; border: 0; outline: 0; -moz-appearance: textfield; }
.stepper input::-webkit-outer-spin-button, .stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.combo-pie { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 20px; margin-top: 4px; padding-top: 18px; border-top: 1px dashed #dfe8e3; }
.combo-total { display: flex; flex-direction: column; line-height: 1.2; color: #6b7a73; font-size: .9rem; }
.combo-total strong { font-size: 1.9rem; font-weight: 800; color: #00a86b; }
.combo-total s { color: #8a9891; }
.combo-enviar { padding: 14px 34px; font-weight: 700; color: #fff; background: #00a86b; border: 0; border-radius: 12px; cursor: pointer; transition: background .2s, transform .2s; }
.combo-enviar:hover { background: #008f5a; transform: translateY(-2px); }

@media (max-width: 767px) {
    .combo-grupo { grid-template-columns: 1fr; }
    .combo-carta { display: flex; align-items: center; gap: 14px; padding: 12px 14px; }
    .combo-carta + .combo-carta { border-left: 0; border-top: 1px solid #e3ebe6; }
    .combo-carta + .combo-carta::before { display: none; }
    .combo-carta img { flex: 0 0 96px; width: 96px; height: 96px; aspect-ratio: 1 / 1; }
    .combo-texto h3 { margin-top: 0; font-size: 1rem; }
    .combo-campos { grid-template-columns: 1fr; }
    .combo-pie { flex-direction: column; align-items: stretch; }
    .combo-enviar { width: 100%; }
}

/* ===== Blog: rediseño de lectura y conversión ===== */
.blog-wrap { padding-bottom: 20px; }
.blog-hero { padding: 8px 0 4px; }
.blog-hero .lead { max-width: 640px; margin: 8px auto 0; color: #44524b; }
.blog-filtros { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 0 26px; }
.blog-filtros[hidden] { display: none; }
.blog-chip { border: 1px solid #cfeede; background: #fff; color: #07603f; border-radius: 999px; padding: 6px 16px; font-size: .88rem; font-weight: 600; cursor: pointer; min-height: 40px; }
.blog-chip[aria-pressed="true"] { background: #00a86b; border-color: #00a86b; color: #fff; }
.blog-chip:focus-visible, .blog-card a:focus-visible, .post a:focus-visible { outline: 3px solid #0b3d2e; outline-offset: 2px; }
[data-cat][hidden] { display: none !important; }
.blog-card-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.blog-card-precio { color: #07603f; font-size: .9rem; font-weight: 700; }
.blog-card .card-body .blog-card-precio { display: inline-block; margin-top: 4px; }
.blog-card-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; margin-top: 6px; }
.blog-card-ficha { font-size: .85rem; color: #007a50; text-decoration: underline; }
.blog-cta { margin: 20px 0 10px; padding: 32px 20px; text-align: center; background: #f1fbf6; border: 1px solid #cfeede; border-radius: 18px; }
.blog-cta h2 { font-size: 1.4rem; font-weight: 800; color: #0b3d2e; margin: 0 0 6px; }
.blog-cta p { color: #44524b; margin-bottom: 14px; }
.blog-cta .btn { margin: 4px; }

/* Artículo: ritmo de lectura */
.post { font-size: 1.05rem; }
.post-head { margin-bottom: 8px; }
.post-cat { font-size: .78rem; margin-bottom: 8px; }
.post-sec { margin-top: 6px; }
.post-sec h2 { padding-top: 6px; }
.post-sec p, .post-list li { max-width: 68ch; }
.post-fig { margin: 26px 0; }
.post-fig img { aspect-ratio: 3 / 2; }
.post-facts-precio { background: #e3f6ec !important; }
.post-facts-precio strong { color: #07603f; font-size: 1.05rem; }
.post-quick { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; margin: 6px 0 22px; }
.post-quick .btn { font-weight: 700; }
.post-quick-nota { font-size: .85rem; color: #6b7a73; flex: 1 1 220px; }
.post-toc summary { font-weight: 700; cursor: pointer; color: #0b3d2e; list-style-position: inside; }
.post-toc[open] summary { margin-bottom: 4px; }
.post-aside-cta { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin: 24px 0; padding: 18px 20px; background: #f1fbf6; border: 1px solid #cfeede; border-left: 5px solid #00a86b; border-radius: 14px; }
.post-aside-txt { display: flex; flex-direction: column; gap: 2px; flex: 1 1 240px; }
.post-aside-txt strong { color: #0b3d2e; }
.post-aside-txt span { color: #44524b; font-size: .92rem; }
.post-aside-btns { display: flex; flex-wrap: wrap; gap: 8px; }
.post-cta-precio { margin: -4px 0 8px; font-size: 1.05rem; color: #07603f; }
.post-cta { scroll-margin-top: 80px; }
.post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; max-width: 760px; margin: 34px auto 0; }
.post-nav a { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border: 1px solid #e3efe8; border-radius: 12px; color: #1d2b25; text-decoration: none; background: #fff; }
.post-nav a:hover { background: #fafdfb; text-decoration: none; }
.post-nav small { color: #6b7a73; font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
.post-nav span { font-weight: 600; }
.post-nav-next { text-align: right; }
.related .card-body .blog-card-precio { margin-top: 6px; }
@media (max-width: 575px) {
    .post { font-size: 1rem; }
    .post p { font-size: 1rem; line-height: 1.7; }
    .post h2 { font-size: 1.3rem; margin-top: 26px; }
    .post-quick .btn { width: 100%; }
    .post-aside-btns, .post-aside-btns .btn { width: 100%; }
    .post-nav { grid-template-columns: 1fr; }
    .post-nav-next { text-align: left; }
    .blog-cta .btn { display: block; margin: 8px 0; }
}

/* Botones del blog: contraste AA y texto legible dentro de .post (que colorea los enlaces en verde) */
.blog-body .btn-success { background: #007a50; border-color: #007a50; color: #fff; }
.blog-body .btn-success:hover, .blog-body .btn-success:focus { background: #0b3d2e; border-color: #0b3d2e; color: #fff; }
.blog-body .btn-outline-success { color: #006a45; border-color: #007a50; }
.blog-body .btn-outline-success:hover, .blog-body .btn-outline-success:focus { background: #007a50; color: #fff; }
.post a.btn-success, .post a.btn-success:hover { color: #fff; text-decoration: none; }
.post a.btn-outline-success { color: #006a45; text-decoration: none; }
.post a.btn-outline-success:hover { color: #fff; }
.post a.btn-outline-secondary { text-decoration: none; }
.post a.btn-outline-secondary:hover { color: #fff; }
/* Vistas de cada tour */
.tour-vistas { font-size: .85rem; color: #6b7a73; margin: 2px 0 4px; }

/* =====================================================================================
   REFINAMIENTO VISUAL (look más sobrio y profesional). Solo cambia la apariencia.
   Para volver al diseño anterior: borra TODO este bloque (hasta la línea "FIN REFINAMIENTO").
   Se ajusta aquí: --rf-radio (esquinas), --rf-oro (botones dorados), --rf-sombra (sombras).
   ===================================================================================== */
:root {
    --rf-radio: 10px;          /* botones, campos y etiquetas */
    --rf-radio-card: 14px;     /* tarjetas */
    --rf-radio-grande: 18px;   /* paneles grandes y ventanas */
    --rf-oro-1: #e6c06a;
    --rf-oro-2: #c9973a;
    --rf-oro-txt: #2a1c00;
    --rf-sombra: 0 1px 2px rgba(11, 61, 46, .06), 0 10px 28px rgba(11, 61, 46, .07);
    --rf-sombra-hover: 0 2px 4px rgba(11, 61, 46, .08), 0 16px 36px rgba(11, 61, 46, .12);
    --rf-linea: #e4ece8;
}
html body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* ---- Botones: rectángulo fino en lugar de píldora, dorado más elegante ---- */
html body .hbtn,
html body .tf-btn,
html body .cta-strip .btn,
html body .home #menu-list a.menu-cta,
html body #menu-list a.menu-cta,
html body .rn-filtro { border-radius: var(--rf-radio); letter-spacing: .01em; }
html body .hbtn-gold,
html body .tf-btn:not(.tf-btn-borde) {
    color: var(--rf-oro-txt);
    background: linear-gradient(180deg, var(--rf-oro-1), var(--rf-oro-2));
    border: 1px solid rgba(120, 82, 10, .25);
    box-shadow: 0 1px 0 rgba(255, 255, 255, .45) inset, 0 8px 18px rgba(150, 105, 20, .22);
}
html body .hbtn-gold:hover,
html body .tf-btn:not(.tf-btn-borde):hover { color: var(--rf-oro-txt); box-shadow: 0 1px 0 rgba(255, 255, 255, .45) inset, 0 12px 24px rgba(150, 105, 20, .3); }
html body .hbtn:hover, html body .tf-btn:hover { transform: translateY(-1px); }
html body .hbtn-ghost { border-radius: var(--rf-radio); }
html body .tf-btn-borde { border-radius: var(--rf-radio); border-width: 1.5px; }

/* ---- Tarjetas: bordes finos y sombras suaves en capas ---- */
html body .home .card-tour,
html body .svc,
html body .tf-zona,
html body .tf-razones li,
html body .tf-veh-card,
html body .tf-res,
html body .rn-card,
html body .rn-porque > div,
html body .rn-ficha,
html body .blog-card,
html body .rv-card,
html body .combo-grupo {
    border-radius: var(--rf-radio-card);
    border: 1px solid var(--rf-linea);
    box-shadow: var(--rf-sombra);
}
html body .home .card-tour:hover,
html body .rn-card:hover,
html body .blog-card:hover { box-shadow: var(--rf-sombra-hover); }
html body .trust-grid,
html body .cotiza,
html body .tf-bloque,
html body .tf-precio,
html body .rn-book,
html body .rn-det-media,
html body .opinion-card,
html body .rv-score,
html body .combo-form,
html body .blog-cta { border-radius: var(--rf-radio-grande); }
html body .plan-box { border-radius: var(--rf-radio-grande); }
html body .rn-book, html body .opinion-card { border: 1px solid var(--rf-linea); box-shadow: var(--rf-sombra-hover); }
html body .modal-tour .modal-content { border-radius: var(--rf-radio-grande); }
html body .wa-salto-caja { border-radius: var(--rf-radio-grande); }
html body .tf-dialog { border-radius: var(--rf-radio-grande); }

/* ---- Etiquetas y chips: menos "globo", más discretas ---- */
html body .chips li,
html body .rn-chips li,
html body .tf-etq,
html body .tour-media .badge,
html body .blog-chip,
html body .blog-tags span,
html body .rv-servicio,
html body .tf-enlaces a,
html body .combo-badge,
html body .oferta-etiqueta,
html body .rn-tipo { border-radius: 7px; }

/* ---- Títulos y textos ---- */
html body .sec-title,
html body .home .section-title,
html body .hero-title { letter-spacing: -.01em; }
html body .sec-eyebrow,
html body .book-eyebrow,
html body .hero-eyebrow { letter-spacing: .14em; }

/* ---- Campos de formulario ---- */
html body .form-control,
html body .tf-campo input,
html body .tf-campo select,
html body .tf-campo textarea,
html body .rn-book input,
html body .rn-book select,
html body .rn-book textarea { border-radius: var(--rf-radio); }
html body .form-control:focus,
html body .rn-book input:focus,
html body .rn-book select:focus,
html body .rn-book textarea:focus { border-color: #00a86b; box-shadow: 0 0 0 3px rgba(0, 168, 107, .14); }

/* ---- Insignia HOT: tono más sobrio ---- */
html body .hot-sec .tour-media::after { background: linear-gradient(135deg, #b45309, #92400e); border-radius: 7px; box-shadow: 0 4px 12px rgba(146, 64, 14, .3); }

/* ---- Sin efecto de aparición al hacer scroll: todo se ve de una vez ---- */
html body .reveal, html body .reveal.visible { opacity: 1 !important; transform: none !important; transition: none !important; }

/* ---- Animaciones: más sutiles ---- */
html body .tf-veh-card, html body .rn-card, html body .home .card-tour, html body .blog-card { transition: box-shadow .25s ease, transform .25s ease; }
html body .tf-veh-card:hover, html body .rn-card:hover, html body .home .card-tour:hover, html body .blog-card:hover { transform: translateY(-2px); }
@media (prefers-reduced-motion: reduce) { html body .hbtn, html body .tf-btn, html body .rn-card, html body .home .card-tour { transition: none; transform: none; } }
/* ===== FIN REFINAMIENTO ===== */
/* Blog: títulos de tarjeta (antes h2) y botones para compartir (10-nov-2026) */
.blog-card .blog-card-titulo { font-weight: 700; }
.blog-card .blog-card-titulo a { color: #1d2b25; text-decoration: none; }
.blog-compartir { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 14px 0 4px; }
.blog-compartir-tit { font-weight: 700; color: #1d2b25; margin-right: 4px; }
.blog-compartir a { display: inline-block; padding: 6px 14px; border-radius: 999px; font-size: .88rem; font-weight: 600; color: #fff; text-decoration: none; line-height: 1.3; }
.blog-compartir a:hover, .blog-compartir a:focus { color: #fff; text-decoration: none; opacity: .88; }
.blog-compartir .bc-wa { background: #1fa855; }
.blog-compartir .bc-fb { background: #1877f2; }
.blog-compartir .bc-x { background: #111; }
.blog-compartir .bc-pin { background: #e60023; }
.blog-compartir .bc-tg { background: #229ed9; }
