/* ============================================
   RAÍZ DEL SHORTCODE — ROMPER CONTENEDOR ELEMENTOR
   ============================================ */
html { overflow-x: clip; }

.pa-root {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    max-width: 100vw;
    box-sizing: border-box;
    overflow-x: hidden;
}

.pa-root .max-w-7xl {
    max-width: 78rem !important;
}

.text-brand-red { color: var(--atv-brand-600); }
.text-brand-orange { color: var(--atv-accent-600); }
.text-brand-red-dark { color: var(--atv-brand-700); }
.bg-brand-red { background: var(--atv-brand-600); }
.bg-brand-50 { background: var(--atv-brand-50); }
.border-brand-rose { border-color: var(--atv-brand-100); }
.border-brand-orange { border-color: var(--atv-accent-600); }

.hover\:bg-brand-red-dark:hover { background: var(--atv-brand-700); }
.hover\:text-brand-red-dark:hover { color: var(--atv-brand-700); }

@media (max-width: 767px) {
    .pa-root .max-w-7xl {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
}

@media (min-width: 1024px) {
    body.has-xtravel-fixed-header .planaventura-hero-section > .max-w-7xl {
        padding-top: calc(1.5rem + 2.75rem);
    }
}

/* ============================================
   ICONOS SVG
   ============================================ */
svg {
    display: inline-block;
    vertical-align: middle;
    fill: currentColor;
}

.icon-primary { color: var(--atv-accent-600); }
.icon-success { color: var(--atv-brand-600); }
.icon-danger  { color: #e76f51; }

.icon-xs { width: 0.75rem; height: 0.75rem; }
.icon-sm { width: 1rem;    height: 1rem; }
.icon-md { width: 1.25rem; height: 1.25rem; }
.icon-lg { width: 1.5rem;  height: 1.5rem; }

/* ============================================
   BASE
   ============================================ */
body {
    background: #ffffff;
    font-family: var(--atv-font-primary, 'Poppins', system-ui, -apple-system, sans-serif);
}

/* ============================================
   SISTEMA DE ANCHOS UNIFICADO
   ============================================ */
.pa-grid-two {
    --pa-grid-gap: 1rem;
    gap: var(--pa-grid-gap);
}

.pa-grid-single {
    width: 100%;
    max-width: 42rem;
}

@media (min-width: 1024px) {
    .pa-grid-two {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pa-grid-single {
        max-width: calc((1280px - 2rem - 1rem) / 2);
    }
}

/* ============================================
   HERO MOSAICO
   ============================================ */
.hero-mosaic {
    display: grid;
    grid-template-columns: 58% 42%;
    grid-template-rows: 480px;
    gap: 4px;
    border-radius: 14px;
    overflow: hidden;
}

/* Celdas de imagen: propiedades comunes */
.hero-img-main,
.hero-img-top,
.hero-img-sm {
    min-height: 0;
    background: #1a1a1a;
    overflow: hidden;
}

.hero-img-main {
    position: relative;
    height: 100%;
}

.hero-img-main img,
.hero-img-top img,
.hero-img-sm img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.hero-img-main img {
    transition: opacity 0.2s ease;
}
.hero-img-main img:hover { opacity: 0.95; }

.hero-img-top img,
.hero-img-sm img {
    cursor: pointer;
    opacity: 0.88;
    transition: opacity 0.2s ease;
}
.hero-img-top img:hover,
.hero-img-sm img:hover { opacity: 1; }

.hero-main-overlay {
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 2;
    pointer-events: none;
}

.hero-category-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.55rem 0.85rem;
    border-radius: 999px;
    background: rgba(244, 136, 47, 0.94);
    color: var(--atv-white);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.18);
    backdrop-filter: blur(6px);
    pointer-events: auto;
}

.hero-img-col {
    display: flex;
    flex-direction: column;
    gap: 4px;
    height: 100%;
    min-height: 0;
}

.hero-img-top {
    flex: 1 1 0%;
}

.hero-img-row {
    flex: 1 1 0%;
    min-height: 0;
    display: flex;
    gap: 4px;
}

.hero-img-sm {
    flex: 1 1 0%;
    min-width: 0;
}

@media (max-width: 640px) {
    .planaventura-hero-section > .max-w-7xl {
        padding-top: 1rem;
    }

    .hero-tour-title {
        font-size: 1.55rem !important;
        line-height: 1.15;
    }

    .hero-mosaic {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
        gap: 0.55rem;
        border-radius: 0;
        overflow: visible;
    }

    .hero-img-main {
        aspect-ratio: 4 / 3;
        border-radius: 14px;
    }

    .hero-main-overlay {
        top: 0.75rem;
        left: 0.75rem;
    }

    .hero-category-badge {
        padding: 0.5rem 0.75rem;
        font-size: 0.68rem;
    }

    .hero-img-col {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.55rem;
        height: auto;
        min-height: auto;
    }

    .hero-img-top,
    .hero-img-sm {
        aspect-ratio: 1 / 1;
        min-height: auto;
        border-radius: 12px;
        border: 2px solid var(--atv-brand-100);
        background: var(--atv-brand-50);
    }

    .hero-img-row {
        display: contents;
        min-height: auto;
    }

    .hero-img-top img,
    .hero-img-sm img {
        opacity: 1;
        touch-action: manipulation;
    }
}

/* ============================================
   HERO ACTION BAR
   ============================================ */
.hero-action-bar {
    display: flex;
    align-items: center;
    gap: 0;
    background: var(--atv-white);
    border: 2px solid var(--atv-brand-100);
    border-radius: 14px;
    padding: 12px 20px;
    box-shadow: 0 2px 12px rgba(132, 18, 32, .07);
    flex-wrap: wrap;
}

.hero-action-precio {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 100px;
}

.hero-action-label,
.hero-action-sub {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--atv-accent-700);
    margin: 0;
    line-height: 1;
}

.hero-action-sub { font-weight: 400; }

.hero-action-price {
    font-size: 1.75rem;
    font-weight: 900;
    color: var(--atv-brand-600);
    line-height: 1.1;
    margin: 2px 0;
}

.hero-action-sep {
    width: 1px;
    height: 42px;
    background: var(--atv-brand-100);
    margin: 0 18px;
    flex-shrink: 0;
}

.hero-action-rating {
    display: flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}
.hero-action-rating svg { flex-shrink: 0; }

.hero-action-rating-val {
    font-size: 1rem;
    font-weight: 800;
    color: #111827;
}

.hero-action-rating-count {
    font-size: 11px;
    color: #6b7280;
}

.hero-action-btns {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    flex-wrap: wrap;
}

/* Botones hero — base compartida */
.hero-btn-primary,
.hero-btn-secondary,
.hero-btn-outline {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    padding: 8px 16px;
    border-radius: 8px;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    transition: background .2s, color .2s;
}

.hero-btn-primary {
    background: var(--atv-brand-600);
    color: var(--atv-white);
    border: none;
    padding: 9px 18px;
    box-shadow: 0 2px 8px rgba(132, 18, 32, .25);
}
.hero-btn-primary:hover { background: var(--atv-brand-700); }

.hero-btn-secondary {
    background: var(--atv-white);
    color: var(--atv-brand-600);
    border: 2px solid var(--atv-accent-600);
}
.hero-btn-secondary:hover { background: var(--atv-brand-50); }

.hero-btn-outline {
    background: var(--atv-white);
    color: var(--atv-brand-600);
    border: 2px solid var(--atv-brand-600);
    font-weight: 600;
}
.hero-btn-outline:hover { background: var(--atv-brand-600); color: var(--atv-white); }

@media (max-width: 768px) {
    .hero-action-bar { padding: 12px 14px; gap: 4px; }
    .hero-action-sep { margin: 0 10px; }
    .hero-action-btns { margin-left: 0; width: 100%; justify-content: stretch; }

    .hero-btn-primary,
    .hero-btn-secondary,
    .hero-btn-outline { flex: 1; justify-content: center; font-size: 12px; padding: 8px 10px; }
}

/* ============================================
   DESCRIPCIÓN + VIDEO
   ============================================ */
.hero-desc-section {
    background: var(--atv-brand-50);
    border: 1px solid var(--atv-brand-100);
    border-radius: 16px;
    overflow: hidden;
}

.hero-desc-video {
    display: grid;
    grid-template-columns: 3fr 2fr;
    align-items: stretch;
}

.hero-desc-text {
    padding: 28px 32px;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 14px;
    border-right: 1px solid var(--atv-brand-100);
}

.hero-desc-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 9.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--atv-accent-600);
    padding: 4px 10px;
    background: var(--atv-accent-50);
    border-radius: 99px;
    border: 1px solid color-mix(in srgb, var(--atv-accent-600) 20%, transparent);
    width: fit-content;
}

.hero-desc-body {
    font-size: 1rem;
    color: var(--atv-gray-700);
    line-height: 1.85;
    font-weight: 400;
}
.hero-desc-body p           { margin: 0 0 0.75em; }
.hero-desc-body p:last-child { margin-bottom: 0; }
.hero-desc-body a           { color: var(--atv-brand-600) !important; text-underline-offset: 2px; }
.hero-desc-body a:hover     { color: var(--atv-brand-700) !important; text-decoration: underline; }
.hero-desc-body ul,
.hero-desc-body ol          { padding-left: 1.4rem; margin: 0 0 0.75em; }
.hero-desc-body li          { margin-bottom: 4px; }

/* Columna video */
.hero-video-wrap {
    display: flex;
    flex-direction: column;
    background: var(--atv-brand-50);
}

.hero-video-title {
    font-size: 0.72rem;
    font-weight: 800;
    color: var(--atv-brand-600);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin: 0;
    padding: 14px 16px 12px;
    line-height: 1.35;
    display: flex;
    align-items: center;
    gap: 6px;
}
.hero-video-title::before {
    content: '';
    display: inline-block;
    width: 3px;
    height: 12px;
    background: var(--atv-accent-600);
    border-radius: 2px;
    flex-shrink: 0;
}

.hero-video-embed-wrap { padding: 0 14px; }

.hero-video-embed {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
    overflow: hidden;
    background: #111;
    border-radius: 10px;
    box-shadow: 0 8px 28px rgba(0, 0, 0, .22);
}
.hero-video-embed iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: none;
}

/* Facade YouTube */
.hero-video-embed .yt-facade {
    position: absolute;
    inset: 0;
    cursor: pointer;
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hero-video-embed .yt-facade img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.88;
    transition: opacity 0.25s;
}
.hero-video-embed .yt-facade:hover img { opacity: 0.65; }

.hero-video-embed .yt-play-btn {
    position: relative;
    z-index: 1;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    filter: drop-shadow(0 4px 14px rgba(0, 0, 0, .6));
    transition: transform 0.22s;
}
.hero-video-embed .yt-play-btn:hover { transform: scale(1.12); }

.hero-video-embed .yt-facade.yt-playing .yt-play-btn,
.hero-video-embed .yt-facade.yt-playing img { display: none; }

.hero-video-embed .yt-facade iframe.yt-active {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: none;
}

.hero-video-desc {
    font-size: 0.74rem;
    color: var(--atv-gray-500);
    margin: 0;
    padding: 10px 16px 16px;
    line-height: 1.55;
    display: flex;
    align-items: flex-start;
    gap: 5px;
}
.hero-video-desc::before {
    content: '▶';
    font-size: 0.55rem;
    color: var(--atv-accent-600);
    margin-top: 3px;
    flex-shrink: 0;
}

@media (max-width: 768px) {
    .hero-desc-video { grid-template-columns: 1fr; }
    .hero-desc-text {
        border-right: none;
        border-bottom: 1px solid var(--atv-brand-100);
        padding: 18px;
    }
    .hero-video-wrap { border-radius: 0 0 16px 16px; }
}

/* ============================================
   TABS — BRAND KIT
   ============================================ */
.tour-detail-section {
    --tour-border:        var(--atv-brand-100);
    --tour-border-strong: color-mix(in srgb, var(--atv-brand-100) 80%, var(--atv-brand-600));
    --tour-surface:       var(--atv-brand-50);
    --tour-surface-muted: var(--atv-accent-50);
    --tour-text:          var(--atv-gray-600);
    --tour-heading:       var(--atv-brand-600);
    --tour-accent:        var(--atv-accent-600);
}

.tour-panel {
    background: var(--tour-surface);
    border: 1px solid var(--tour-border);
    border-radius: 28px;
    box-shadow: 0 14px 34px rgba(132, 18, 32, 0.05);
}

.tour-panel-main  {
    background: var(--atv-brand-50);
    box-shadow: 0 6px 18px rgba(132, 18, 32, 0.035);
}

.tour-panel-info,
.tour-panel-pricing { background: var(--atv-white); }

.tour-panel-info { padding: 1rem; }

@media (min-width: 1024px) {
    .tour-detail-grid {
        grid-template-columns: minmax(0, 1.18fr) minmax(320px, 0.82fr) !important;
        align-items: start;
    }

    .tour-sidebar-stack {
        width: 100%;
        max-width: 34rem;
        justify-self: end;
    }

    .tour-panel-info {
        padding: 0.9rem;
    }
}

.tour-panel-faq {
    background: transparent;
    border: 0;
    border-top: 1px solid rgba(132, 18, 32, 0.12);
    border-radius: 0;
    box-shadow: none;
    padding: 0.95rem 0 0;
}

.tour-faq-title {
    justify-content: flex-start;
    margin-bottom: 0.85rem !important;
    font-size: 0.98rem;
}

.tour-faq-intro {
    margin-bottom: 0.9rem !important;
    text-align: left;
    font-size: 0.88rem;
    line-height: 1.65;
}

.tour-faq-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.tour-faq-item {
    padding: 0.1rem 0;
    border-bottom: 1px solid rgba(132, 18, 32, 0.1);
}

.tour-faq-item:first-child {
    border-top: 1px solid rgba(132, 18, 32, 0.1);
}

.tour-faq-summary {
    padding: 0.85rem 0;
    align-items: flex-start;
    font-size: 0.92rem;
    font-weight: 700;
}

.tour-faq-question {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.7rem;
    min-width: 0;
}

.tour-faq-question-icon {
    width: 1.9rem;
    height: 1.9rem;
    border-radius: 999px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--atv-accent-600);
    background: rgba(244, 136, 47, 0.12);
    border: 1px solid rgba(244, 136, 47, 0.18);
}

.tour-faq-question-icon svg {
    width: 0.95rem;
    height: 0.95rem;
}

.tour-faq-toggle-wrap {
    position: relative;
    flex: 0 0 auto;
    width: 1.6rem;
    height: 1.6rem;
    margin-left: 0.55rem;
    border-radius: 999px;
    background: rgba(244, 136, 47, 0.12);
    border: 1px solid rgba(244, 136, 47, 0.22);
    overflow: hidden;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.tour-faq-summary:hover .tour-faq-toggle-wrap {
    background: rgba(244, 136, 47, 0.18);
    border-color: rgba(244, 136, 47, 0.34);
    transform: translateX(1px);
}

.tour-faq-toggle {
    position: absolute;
    inset: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 1rem;
    font-weight: 900;
    line-height: 1;
    color: var(--atv-accent-600);
    transition: opacity 0.18s ease, transform 0.22s ease;
}

.tour-faq-toggle--closed {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.tour-faq-toggle--open {
    opacity: 0;
    transform: translateY(35%) scale(0.72);
}

.tour-faq-item[open] .tour-faq-toggle-wrap {
    background: rgba(244, 136, 47, 0.18);
    border-color: rgba(244, 136, 47, 0.34);
}

.tour-faq-item[open] .tour-faq-toggle--closed {
    opacity: 0;
    transform: translateY(-35%) scale(0.72);
}

.tour-faq-item[open] .tour-faq-toggle--open {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.tour-faq-answer {
    padding: 0 1.4rem 0.9rem 0;
    margin-top: 0 !important;
    font-size: 0.86rem;
    line-height: 1.68;
}

.tour-tabs-nav {
    padding-bottom: 0.9rem;
    border-bottom: 1px solid var(--tour-border);
}

.tour-tabs-scroll {
    scrollbar-width: none;
}
.tour-tabs-scroll::-webkit-scrollbar { display: none; }

.tab-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 700;
    color: var(--tour-heading);
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid var(--tour-border);
    cursor: pointer;
    white-space: nowrap;
    line-height: 1;
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.tab-btn svg { color: var(--tour-accent); flex-shrink: 0; }

.tab-btn:hover {
    background: #ffffff;
    border-color: var(--tour-border-strong);
}

.tab-btn:focus-visible {
    outline: 2px solid rgba(244, 136, 47, 0.35);
    outline-offset: 2px;
}

.tab-btn.tab-btn-active,
.tab-btn.active {
    background: var(--tour-heading);
    border-color: var(--tour-heading);
    color: #ffffff;
}
.tab-btn.tab-btn-active svg,
.tab-btn.active svg { color: #ffd089; }

.tour-tab-pane { padding-top: 0.1rem; }

@media (max-width: 640px) {
    .tour-panel       { border-radius: 16px; }
    .tour-panel-main  { padding: 0.75rem !important; }

    .tour-tabs-nav {
        padding-bottom: 0.5rem;
        margin-bottom: 0.2rem;
    }

    .tour-tabs-scroll {
        display: grid !important;
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 0.25rem !important;
        overflow: visible !important;
        padding-bottom: 0 !important;
        scroll-snap-type: none !important;
    }

    .tab-btn {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        flex: unset !important;
        gap: 0.2rem;
        padding: 0.4rem 0.15rem;
        font-size: 0.58rem;
        line-height: 1.2;
        min-height: 2rem;
        white-space: normal !important;
        text-align: center;
        scroll-snap-align: unset;
    }
    .tab-btn svg { width: 0.85rem; height: 0.85rem; }

    .tour-tab-pane { padding-top: 0; }
    .tour-tab-heading { font-size: 0.88rem; margin-bottom: 0.75rem; }

    #contenido-tour .space-y-3 > :not([hidden]) ~ :not([hidden]) {
        margin-top: 0.5rem;
    }
}

/* ============================================
   RESUMEN — CHIPS 2×2
   ============================================ */
.tour-summary-pane { margin: 0; padding: 0; }

.tour-summary-shell {
    background: linear-gradient(180deg, rgba(255, 252, 250, 0.98), rgba(255, 255, 255, 0.99));
    border-color: rgba(132, 18, 32, 0.08);
    box-shadow: 0 4px 14px rgba(132, 18, 32, 0.03);
}

.tour-section-shell {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.05rem;
    border: 1px solid color-mix(in srgb, var(--atv-brand-100) 85%, white);
    border-radius: 20px;
    background:
        radial-gradient(circle at top right, rgba(244, 136, 47, 0.1), transparent 30%),
        radial-gradient(circle at bottom left, rgba(132, 18, 32, 0.05), transparent 28%),
        linear-gradient(180deg, rgba(255, 250, 247, 0.94), rgba(255, 255, 255, 0.98) 48%, rgba(250, 252, 255, 0.94));
    box-shadow: 0 10px 26px rgba(132, 18, 32, 0.05);
}

.tour-section-intro {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.tour-section-kicker {
    display: inline-flex;
    align-self: flex-start;
    padding: 0.4rem 0.75rem;
    border-radius: 999px;
    background: rgba(132, 18, 32, 0.08);
    color: var(--atv-brand-600, #841220);
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.tour-section-heading-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.tour-section-title {
    margin: 0;
}

.tour-section-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.38rem 0.75rem;
    border-radius: 999px;
    border: 1px solid rgba(244, 136, 47, 0.24);
    background: rgba(244, 136, 47, 0.1);
    color: var(--atv-accent-700, #d97706);
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
}

.tour-section-lead {
    margin: 0;
    max-width: 62ch;
    font-size: 0.92rem;
    line-height: 1.7;
    color: var(--atv-gray-600, #4b5563);
}

.tour-chips-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.tour-chip {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 0.95rem 1rem;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(255, 248, 244, 0.94));
    border: 1px solid rgba(132, 18, 32, 0.1);
    border-radius: 18px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.tour-summary-shell .tour-chips-grid {
    gap: 0.85rem;
}

.tour-summary-shell .tour-chip {
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(132, 18, 32, 0.08);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
}

.tour-summary-shell .tour-chip-icon {
    background: rgba(244, 136, 47, 0.08);
}

.tour-summary-shell .tour-section-badge {
    background: rgba(244, 136, 47, 0.08);
    border-color: rgba(244, 136, 47, 0.18);
}

.tour-chip-icon,
.tour-info-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--atv-accent-600);
    background: color-mix(in srgb, var(--atv-accent-600) 10%, transparent);
}

.tour-chip-icon {
    width: 38px;
    height: 38px;
    border-radius: 12px;
}
.tour-chip-icon svg { width: 16px; height: 16px; }

.tour-chip > div {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.tour-chip-label {
    font-size: 0.62rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--atv-gray-500);
    line-height: 1;
}

.tour-chip-value {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--atv-gray-800, #111827);
    line-height: 1.4;
}

@media (max-width: 400px) {
    .tour-chips-grid { grid-template-columns: 1fr; }
}

/* ============================================
   RESUMEN — LISTA DINÁMICA
   ============================================ */
.tour-info-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.tour-info-list--sep {
    margin-top: 0.4rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(132, 18, 32, 0.12);
}

.tour-info-card {
    position: relative;
    padding: 0 0 0 1.1rem;
    background: transparent;
    border: 0;
    border-radius: 0;
}

.tour-info-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.3rem;
    bottom: 0.3rem;
    width: 3px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(244, 136, 47, 0.92), rgba(132, 18, 32, 0.28));
}

.tour-info-card-head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.tour-info-card-copy {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    min-width: 0;
}

.tour-info-icon {
    width: 40px;
    height: 40px;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(244, 136, 47, 0.14), rgba(132, 18, 32, 0.08));
}
.tour-info-icon svg { width: 16px; height: 16px; }

.tour-info-label {
    display: inline-block;
    font-size: 0.92rem;
    font-weight: 800;
    text-transform: none;
    letter-spacing: -0.01em;
    color: var(--atv-brand-600, #841220);
    line-height: 1.3;
}

.tour-info-value {
    max-width: 64ch;
    font-size: 0.9rem;
    color: var(--atv-gray-600, #4b5563);
    line-height: 1.78;
    margin: 0;
}

.tour-info-value a,
.text-sm.text-slate-700 a {
    color: var(--atv-brand-600, #841220);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.tour-info-value a:hover,
.text-sm.text-slate-700 a:hover {
    color: var(--atv-brand-700, #6b0e1a);
    text-decoration: none;
}

/* Negritas en contenido dinámico de la BD */
.tour-info-value b,
.tour-info-value strong,
.text-sm.text-slate-700 b,
.text-sm.text-slate-700 strong,
.hero-desc-body b,
.hero-desc-body strong {
    font-weight: 700;
    font-family: var(--atv-font-secondary, 'Montserrat', sans-serif);
    color: var(--atv-brand-600, #841220);
}

/* Tipografía consistente en campos dinámicos */
.tour-info-value,
.tour-info-label,
.tour-chip-value,
.tour-chip-label,
.tour-tab-heading,
.text-sm.text-slate-700,
.hero-desc-body {
    font-family: var(--atv-font-primary, 'Poppins', sans-serif);
}

@media (min-width: 768px) {
    .tour-info-label { font-size: 1rem; }
    .tour-info-value { font-size: 0.95rem; }
    .tour-chip-label { font-size: 0.67rem; }
    .tour-chip-value { font-size: 0.98rem; }
}

.tour-resumen-empty {
    font-size: 0.875rem;
    color: var(--atv-gray-500);
    font-style: italic;
}

.tour-tab-heading {
    font-size: 1rem;
    font-weight: 800;
    color: var(--tour-heading);
    letter-spacing: -0.02em;
}

.tour-side-title {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--tour-heading);
    letter-spacing: -0.02em;
}

/* ============================================
   ITINERARIO
   ============================================ */
.tour-itinerary-list {
    position: relative;
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.tour-itinerary-list::before {
    content: "";
    position: absolute;
    top: 0.5rem;
    bottom: 0.5rem;
    left: 1.12rem;
    width: 2px;
    background: linear-gradient(180deg, rgba(244, 136, 47, 0.9), rgba(132, 18, 32, 0.15));
}

.tour-itinerary-item {
    position: relative;
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr);
    gap: 0.9rem;
}

.tour-itinerary-marker {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 0.15rem;
}

.tour-itinerary-step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 999px;
    background: linear-gradient(135deg, #f4882f, #b45309);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 800;
    box-shadow: 0 10px 22px rgba(244, 136, 47, 0.28);
}

.tour-itinerary-card {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    padding: 0.95rem 0 1rem;
    border-radius: 0;
    border: 0;
    border-bottom: 1px solid rgba(132, 18, 32, 0.08);
    background: transparent;
    box-shadow: none;
}

.tour-itinerary-list > .tour-itinerary-item:last-child .tour-itinerary-card {
    border-bottom: 0;
    padding-bottom: 0;
}

.tour-itinerary-card-head {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
}

.tour-itinerary-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 14px;
    color: var(--atv-brand-600, #841220);
    background: rgba(132, 18, 32, 0.08);
    flex-shrink: 0;
}

.tour-itinerary-icon svg {
    width: 1rem;
    height: 1rem;
}

.tour-itinerary-copy {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 0;
}

.tour-itinerary-title {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 800;
    line-height: 1.35;
    color: var(--atv-brand-600, #841220);
}

.tour-itinerary-meta {
    display: inline-flex;
    align-self: flex-start;
    padding: 0.24rem 0.55rem;
    border-radius: 999px;
    background: rgba(244, 136, 47, 0.08);
    color: var(--atv-accent-700, #b45309);
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.tour-itinerary-detail {
    font-size: 0.9rem;
    line-height: 1.72;
    color: var(--atv-gray-700, #374151);
}

.tour-itinerary-detail p:first-child,
.tour-itinerary-detail p:last-child {
    margin-top: 0;
    margin-bottom: 0;
}

/* ============================================
   INCLUYE / NO INCLUYE
   ============================================ */
.tour-includes-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.tour-includes-column {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 0.95rem 0;
    border-radius: 0;
    border: 0;
    background: transparent;
}

.tour-includes-column--positive {
    background: transparent;
}

.tour-includes-column--negative {
    background: transparent;
}

.tour-includes-grid > .tour-includes-column {
    border-top: 1px solid rgba(132, 18, 32, 0.08);
}

.tour-includes-title {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--atv-brand-600, #841220);
}

.tour-includes-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.tour-include-item {
    display: flex;
    align-items: flex-start;
    gap: 0.8rem;
    padding-bottom: 0.8rem;
    border-bottom: 1px dashed rgba(132, 18, 32, 0.08);
}

.tour-includes-list > .tour-include-item:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.tour-include-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    flex-shrink: 0;
}

.tour-include-icon--positive {
    color: #15803d;
    background: rgba(22, 163, 74, 0.12);
}

.tour-include-icon--negative {
    color: #dc2626;
    background: rgba(239, 68, 68, 0.12);
}

.tour-include-copy {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.tour-include-name {
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--atv-gray-800, #1f2937);
}

.tour-include-detail {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.65;
    color: var(--atv-gray-600, #4b5563);
}

@media (min-width: 768px) {
    .tour-section-shell {
        padding: 1.25rem;
    }
}

@media (max-width: 767px) {
    .tour-section-shell {
        padding: 0.78rem;
        border-radius: 14px;
        box-shadow: 0 4px 10px rgba(132, 18, 32, 0.03);
    }

    .tour-section-lead {
        font-size: 0.8rem;
        line-height: 1.55;
    }

    .tour-chips-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.52rem;
    }

    .tour-chip {
        gap: 0.45rem;
        padding: 0.58rem 0.62rem;
        border-radius: 12px;
    }

    .tour-chip-icon {
        width: 27px;
        height: 27px;
        border-radius: 8px;
    }

    .tour-chip-icon svg {
        width: 11px;
        height: 11px;
    }

    .tour-chip > div {
        gap: 0.05rem;
    }

    .tour-chip-label {
        font-size: 0.48rem;
        letter-spacing: 0.04em;
    }

    .tour-chip-value {
        font-size: 0.72rem;
        line-height: 1.18;
    }

    .tour-section-kicker {
        padding: 0.34rem 0.62rem;
        font-size: 0.58rem;
        letter-spacing: 0.1em;
    }

    .tour-section-badge {
        padding: 0.3rem 0.62rem;
        font-size: 0.64rem;
    }

    .tour-section-heading-row {
        gap: 0.5rem;
    }

    .tour-panel-main {
        box-shadow: 0 2px 8px rgba(132, 18, 32, 0.025);
    }

    .tour-summary-shell {
        box-shadow: 0 1px 4px rgba(132, 18, 32, 0.02);
    }

    .tour-summary-shell .tour-chip {
        padding: 0.82rem 0.88rem;
        box-shadow: none;
    }

    .tour-info-card {
        padding-left: 0.95rem;
    }

    .tour-info-card-head {
        gap: 0.8rem;
    }

    .tour-info-label {
        font-size: 0.88rem;
    }

    .tour-info-value {
        font-size: 0.86rem;
        line-height: 1.72;
    }

    .tour-itinerary-item {
        grid-template-columns: 2rem minmax(0, 1fr);
        gap: 0.75rem;
    }

    .tour-itinerary-list::before {
        left: 0.97rem;
    }

    .tour-itinerary-step {
        width: 1.85rem;
        height: 1.85rem;
        font-size: 0.74rem;
    }

    .tour-itinerary-card {
        padding: 0.85rem 0 0.9rem;
    }

    .tour-includes-column {
        padding: 0.85rem 0 0;
    }
}

/* ============================================
   QUÉ LLEVAR
   ============================================ */
.tour-packing-grid {
    list-style: none;
    padding: 0;
    margin: 0;
}

.tour-packing-grid li {
    background: var(--atv-white);
    border: 1px solid var(--atv-brand-100);
    border-radius: 14px;
    font-size: 0.84rem;
}

.tour-packing-grid li strong {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--atv-brand-600);
}

.tour-packing-grid li p {
    font-size: 0.78rem;
    color: var(--atv-gray-700);
    line-height: 1.5;
    margin-top: 3px;
}

/* ============================================
   INFO SHELL — MÓDULO DE BOTONES
   ============================================ */
.tour-info-shell .info-module .info-header-section {
    margin-bottom: 0.9rem;
    padding: 1rem 1.1rem;
    background: var(--atv-brand-50);
    border: 1px solid var(--atv-brand-100);
    border-left: 0;
    border-radius: 20px;
}

.tour-info-shell .info-module .info-main-title {
    font-size: 1rem;
    line-height: 1.35;
    margin-bottom: 0.35rem;
}

.tour-info-shell .info-module .info-main-description {
    font-size: 0.88rem;
    line-height: 1.7;
    color: var(--atv-gray-600);
}

.tour-info-shell .info-module .info-buttons-grid {
    gap: 0.75rem;
}

.tour-info-shell .info-module .info-btn {
    min-height: 76px;
    padding: 0.85rem 0.95rem;
    border: 1px solid var(--atv-brand-100);
    border-radius: 18px;
}

.tour-info-shell .info-module .info-btn i {
    color: var(--tour-heading);
}

.tour-info-shell .info-module .info-btn span {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--atv-gray-800);
}

.tour-info-shell .info-module .info-btn:hover:not(.btn-disabled):not(:disabled) {
    transform: none;
    background: var(--tour-surface-muted);
    border-color: var(--tour-border-strong);
    box-shadow: none;
}

.tour-info-shell .info-module .info-btn:hover span,
.tour-info-shell .info-module .info-btn:hover i {
    color: var(--tour-heading);
}

.tour-info-shell .info-module .info-btn.btn-disabled {
    opacity: 0.55;
    background: #faf7f7;
}

@media (max-width: 640px) {
    .tour-info-shell .info-module .info-buttons-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.35rem !important;
    }

    .tour-info-shell .info-module .info-btn {
        min-height: unset !important;
        padding: 0.45rem 0.5rem !important;
        gap: 0.35rem !important;
        border-radius: 0.6rem !important;
        flex-direction: row !important;
        align-items: center !important;
    }

    .tour-info-shell .info-module .info-btn i    { font-size: 0.8rem !important; }
    .tour-info-shell .info-module .info-btn span { font-size: 0.65rem !important; }
}

/* ============================================
   SECCIÓN RECOMENDACIONES
   ============================================ */
.recommendation-section {
    --recommendation-brand-bg:      var(--atv-brand-50, #fff0f2);
    --recommendation-brand-border:  var(--atv-brand-100, #ffdde1);
    --recommendation-neutral-bg:    #ffffff;
    --recommendation-neutral-border: var(--atv-border, #e5e5e5);
    --recommendation-text:          var(--atv-gray-700, #374151);
}

.recommendation-grid { align-items: stretch; }

.recommendation-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 1.2rem 1.25rem;
    border-radius: 28px;
    border: 1px solid transparent;
    box-shadow: 0 10px 24px rgba(17, 24, 39, 0.04);
}

.recommendation-card--primary {
    background: linear-gradient(180deg, #fff7f8 0%, var(--recommendation-brand-bg) 100%);
    border-color: var(--recommendation-brand-border);
}

.recommendation-card--neutral {
    background: var(--recommendation-neutral-bg);
    border-color: var(--recommendation-neutral-border);
}

.recommendation-title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0 0 1rem;
    font-size: 0.96rem;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.01em;
}

.recommendation-title--brand   { color: var(--atv-brand-600, #841220); }
.recommendation-title--neutral { color: var(--atv-gray-900, #111827); }

.recommendation-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.9rem;
    height: 1.9rem;
    border-radius: 999px;
    flex-shrink: 0;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 800;
}

.recommendation-badge--brand  { background: var(--atv-brand-600, #841220); }
.recommendation-badge--accent { background: var(--atv-accent-600, #f4882f); }

.recommendation-list {
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--recommendation-text);
    font-size: 0.9rem;
    line-height: 1.6;
}

.recommendation-item {
    display: flex;
    gap: 0.7rem;
    align-items: flex-start;
}

.recommendation-dot {
    margin-top: 0.2rem;
    flex-shrink: 0;
    font-size: 0.78rem;
    line-height: 1;
}

.recommendation-list--accent .recommendation-dot  { color: var(--atv-accent-600, #f4882f); }
.recommendation-list--success .recommendation-dot { color: #13a36e; }

/* ============================================
   TOURS RELACIONADOS
   ============================================ */
.related-proof-section {
    --related-surface:  var(--atv-accent-50, #fff7ed);
    --related-border:   color-mix(in srgb, var(--atv-accent-600, #f4882f) 20%, white);
    --related-text:     var(--atv-gray-600, #4b5563);
    --related-heading:  var(--atv-brand-600, #841220);
    --related-accent:   var(--atv-accent-600, #f4882f);
}

.related-tours-shell {
    height: 100%;
    padding: 0.85rem;
    background: linear-gradient(180deg, #fffaf5 0%, #fffdfb 100%);
    border: 1px solid var(--related-border);
    border-radius: 24px;
    box-shadow: 0 10px 24px rgba(132, 18, 32, 0.045);
}

.related-tours-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-bottom: 0.75rem;
    margin-bottom: 0.8rem;
    border-bottom: 1px solid color-mix(in srgb, var(--atv-accent-600) 18%, transparent);
}

.related-tours-header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 14px;
    background: var(--related-accent);
    color: #fff;
    box-shadow: 0 8px 18px rgba(244, 136, 47, 0.22);
    flex-shrink: 0;
}

.related-tours-title {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--related-heading);
}

.related-tours-intro {
    margin: 0.25rem 0 0;
    font-size: 0.68rem;
    line-height: 1.45;
    color: var(--related-text);
    font-style: italic;
}

.related-tours-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.1rem;
    padding: 0.28rem 0.48rem;
    border-radius: 999px;
    background: var(--related-accent);
    color: #fff;
    font-size: 0.56rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow: 0 8px 18px rgba(244, 136, 47, 0.18);
}

.related-tours-list {
    display: grid;
    gap: 0.55rem;
    align-content: start;
}

.related-tour-card {
    background: #fff;
    border: 1px solid rgba(244, 136, 47, 0.2);
    border-radius: 18px;
    overflow: hidden;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.related-tour-card:hover {
    border-color: rgba(244, 136, 47, 0.35);
    box-shadow: 0 14px 28px rgba(132, 18, 32, 0.07);
    transform: translateY(-1px);
}

.related-tour-card-inner {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 0.65rem;
    padding: 0.6rem;
}

.related-tour-thumb-link {
    display: block;
    width: 72px;
    min-width: 72px;
}

.related-tour-thumb-frame {
    width: 72px;
    height: 72px;
    overflow: hidden;
    border-radius: 12px;
    border: 1px solid rgba(244, 136, 47, 0.25);
    background: var(--atv-gray-light, #f5f5f5);
}

.related-tour-thumb-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.28s ease;
}
.related-tour-card:hover .related-tour-thumb-img { transform: scale(1.04); }

.related-tour-content {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0.45rem;
}

.related-tour-title {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.22;
    font-weight: 800;
    color: var(--related-heading);
    transition: color 0.18s ease;
}
.related-tour-card:hover .related-tour-title { color: var(--related-accent); }

.related-tour-excerpt {
    margin: 0;
    font-size: 0.68rem;
    line-height: 1.42;
    color: var(--related-text);
    min-height: calc(1.42em * 2);
}

.related-tour-rating {
    display: inline-flex;
    align-items: center;
    gap: 0.22rem;
    padding: 0.22rem 0.45rem;
    border-radius: 999px;
    background: #fff9e8;
    border: 1px solid rgba(245, 181, 10, 0.28);
    color: #9a6b00;
    font-size: 0.66rem;
    font-weight: 800;
    white-space: nowrap;
}
.related-tour-rating--button {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.2);
    color: #fff2c4;
}
.related-tour-rating svg { color: var(--atv-rating, #f5b50a); }

.related-tour-footer { display: grid; gap: 0.38rem; }

.related-tour-actions {
    display: grid;
    grid-template-columns: 1fr;
}

.related-tour-cta-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    min-height: 2.35rem;
    padding: 0.52rem 0.65rem;
    border-radius: 9px;
    font-size: 0.68rem;
    font-weight: 800;
    text-align: left;
    background: var(--atv-brand-600, #841220);
    color: #fff;
    border: 1px solid var(--atv-brand-600, #841220);
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}
.related-tour-cta-btn:hover {
    background: var(--atv-brand-700, #6e0f1b);
    border-color: var(--atv-brand-700, #6e0f1b);
    color: #fff;
}

.related-tour-cta-copy {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    line-height: 1.1;
}

.related-tour-cta-meta {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
    min-width: 0;
    margin-left: auto;
}

.related-tour-cta-price-wrap {
    display: inline-flex;
    align-items: baseline;
    gap: 0.2rem;
    color: #fff;
    white-space: nowrap;
}

.related-tour-cta-price-label {
    font-size: 0.5rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.72);
}

.related-tour-cta-price {
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1;
    color: #fff;
}

.related-tour-cta-contact {
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 1.1;
    color: #fff;
    white-space: nowrap;
}

.related-tours-empty {
    margin: 0;
    padding: 1rem 1.1rem;
    border-radius: 18px;
    background: #fff;
    border: 1px dashed rgba(132, 18, 32, 0.18);
    color: var(--related-text);
    font-size: 0.85rem;
    font-style: italic;
}

/* ============================================
   PRECIOS — ESCRITORIO
   ============================================ */
#precios {
    --planaventura-price-pill-width: 9.25rem;
    --planaventura-price-pill-height: 2.5rem;
    --planaventura-price-action-gap: 0.55rem;
    --planaventura-price-actions-width: calc((var(--planaventura-price-pill-width) * 2) + var(--planaventura-price-action-gap));
}

#precios .planaventura-price-header,
#precios .planaventura-price-row {
    box-shadow: none;
}

#precios .planaventura-price-header {
    gap: 0.85rem;
    padding: 0.82rem 1.15rem !important;
}

#precios .planaventura-price-header > .flex.items-center:first-child {
    flex: 1 1 auto;
    min-width: 0;
}

#precios .planaventura-price-header > .flex.items-center:last-child {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, var(--planaventura-price-pill-width)));
    align-items: center;
    justify-items: center;
    gap: var(--planaventura-price-action-gap);
    min-width: var(--planaventura-price-actions-width);
}

#precios .planaventura-price-header > .flex.items-center:last-child > span {
    justify-content: center;
    width: 100%;
    white-space: nowrap;
    font-size: 0.83rem !important;
    letter-spacing: 0.01em;
}

#precios .planaventura-price-row {
    gap: 0.85rem;
    padding: 0.82rem 1.15rem !important;
    align-items: center;
}

#precios .planaventura-price-row > .flex.flex-col {
    min-width: 0;
    padding-right: 0.35rem;
}

#precios .planaventura-price-row > .flex.flex-col > span:first-child {
    line-height: 1.08;
    letter-spacing: -0.01em;
}

#precios .planaventura-price-row > .flex.flex-col > span:last-child {
    margin-top: 0.18rem;
    line-height: 1.2;
}

#precios .planaventura-price-label-compact {
    font-size: 0.94em !important;
    letter-spacing: -0.015em;
}

#precios .planaventura-price-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, var(--planaventura-price-pill-width)));
    align-items: center;
    justify-content: end;
    gap: var(--planaventura-price-action-gap) !important;
    flex: 0 0 auto;
    min-width: var(--planaventura-price-actions-width);
}

.planaventura-price-chip,
.planaventura-price-booking,
.planaventura-price-note,
.planaventura-price-whatsapp {
    width: 100%;
    min-width: 0;
    min-height: var(--planaventura-price-pill-height);
    padding: 0 0.95rem !important;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
    line-height: 1;
    white-space: nowrap;
}

.planaventura-price-chip {
    font-size: 0.87rem !important;
    font-weight: 900;
    letter-spacing: 0;
}

.planaventura-price-booking,
.planaventura-price-whatsapp,
.planaventura-price-note {
    font-size: 0.75rem !important;
    font-weight: 800;
    letter-spacing: 0.01em;
}

.planaventura-price-booking,
.planaventura-price-whatsapp {
    box-shadow: none !important;
}

.xtravel-booking-btn.planaventura-price-booking {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ============================================
   RESPONSIVE — 767px
   ============================================ */
@media (max-width: 767px) {
    .pa-root,
    .planaventura-hero-section,
    .tour-detail-section,
    .recommendation-section,
    .related-proof-section {
        overflow-x: clip;
    }

    .tour-panel { border-radius: 18px; }

    .tour-detail-section,
    .recommendation-section,
    .related-proof-section {
        padding-top: 0.6rem;
        padding-bottom: 0.6rem;
    }

    .tour-panel-main {
        padding: 0.68rem !important;
    }

    .tour-tabs-nav {
        padding-bottom: 0.65rem;
        margin-bottom: 0.7rem !important;
    }

    .tour-tabs-scroll {
        gap: 0.42rem !important;
    }

    .tab-btn {
        gap: 0.35rem;
        padding: 0.58rem 0.74rem;
        font-size: 0.67rem;
        border-radius: 999px;
    }

    .tab-btn svg {
        width: 0.78rem;
        height: 0.78rem;
    }

    /* Action bar */
    .hero-action-bar {
        padding: 0.7rem 0.8rem;
        border-radius: 12px;
        gap: 0.55rem;
    }
    .hero-action-precio { min-width: 0; flex: 1 1 auto; }
    .hero-action-price  { font-size: 1.35rem; }
    .hero-action-sep    { display: none; }
    .hero-action-rating { gap: 0.3rem; font-size: 0.76rem; }
    .hero-action-rating-val   { font-size: 0.88rem; }
    .hero-action-rating-count { font-size: 0.68rem; white-space: normal; }
    .hero-action-btns   { gap: 0.45rem; }

    .hero-btn-primary,
    .hero-btn-secondary,
    .hero-btn-outline {
        min-height: 2.25rem;
        padding: 0.55rem 0.7rem;
        font-size: 0.72rem;
    }

    /* Descripción + video */
    .hero-desc-section  { padding: 0.9rem; border-radius: 14px; }
    .hero-desc-video    { gap: 0.95rem; }
    .hero-desc-text     { padding-bottom: 0.9rem; }
    .hero-desc-lead     { font-size: 0.82rem; line-height: 1.6; margin-bottom: 0.75rem; }
    .hero-desc-body     { font-size: 0.78rem; line-height: 1.62; }
    .hero-video-title   { font-size: 0.8rem; }
    .hero-video-desc    { font-size: 0.72rem; padding: 0.55rem 0.75rem; }

    /* Paneles */
    .tour-panel-info,
    .tour-panel-pricing { border-radius: 18px; }
    .tour-panel-info    { padding: 0.68rem; }

    .tour-panel-faq {
        padding: 0.65rem 0 0;
        border-radius: 0;
    }

    .tour-faq-title { font-size: 0.86rem; margin-bottom: 0.55rem !important; }
    .tour-faq-intro { font-size: 0.74rem; margin-bottom: 0.6rem !important; }
    .tour-faq-summary { padding: 0.62rem 0; font-size: 0.76rem; }
    .tour-faq-question { gap: 0.55rem; }
    .tour-faq-question-icon { width: 1.55rem; height: 1.55rem; }
    .tour-faq-question-icon svg { width: 0.78rem; height: 0.78rem; }
    .tour-faq-toggle-wrap { width: 1.3rem; height: 1.3rem; }
    .tour-faq-toggle { font-size: 0.86rem; }
    .tour-faq-answer { padding: 0 0.8rem 0.68rem 0; font-size: 0.72rem; line-height: 1.52; }

    .tour-side-title,
    .tour-tab-heading { font-size: 0.86rem; }

    /* Info shell */
    .tour-info-shell .info-module .info-header-section {
        margin-bottom: 0.65rem;
        padding: 0.68rem 0.72rem;
        border-radius: 14px;
    }
    .tour-info-shell .info-module .info-main-title       { font-size: 0.84rem; }
    .tour-info-shell .info-module .info-main-description { font-size: 0.72rem; line-height: 1.45; }
    .tour-info-shell .info-module .info-buttons-grid     { grid-template-columns: 1fr; gap: 0.45rem; }
    .tour-info-shell .info-module .info-btn              { min-height: 54px; padding: 0.58rem 0.68rem; border-radius: 13px; }
    .tour-info-shell .info-module .info-btn span         { font-size: 0.67rem; line-height: 1.2; }


@media (max-width: 359px) {
    .tour-chips-grid {
        grid-template-columns: 1fr;
    }
}
    /* Recomendaciones */
    .recommendation-card  { padding: 0.72rem; border-radius: 18px; }
    .recommendation-title { font-size: 0.76rem; margin-bottom: 0.55rem; gap: 0.45rem; }
    .recommendation-badge { width: 1.45rem; height: 1.45rem; font-size: 0.58rem; }
    .recommendation-list  { font-size: 0.72rem; line-height: 1.4; }
    .recommendation-item  { gap: 0.5rem; }
    .recommendation-dot   { font-size: 0.68rem; margin-top: 0.14rem; }

    /* Tours relacionados */
    .related-tours-shell  { padding: 0.8rem; border-radius: 22px; }
    .related-tours-header { gap: 0.7rem; align-items: flex-start; }
    .related-tours-title  { font-size: 0.96rem; }
    .related-tours-intro  { font-size: 0.66rem; }

    .related-tour-card-inner    { grid-template-columns: 1fr; }
    .related-tour-thumb-link    { width: 100%; min-width: 0; }
    .related-tour-thumb-frame   { width: 100%; height: auto; aspect-ratio: 16 / 9; }

    .related-tour-cta-btn  { min-height: 2.3rem; padding: 0.55rem 0.65rem; font-size: 0.74rem; flex-wrap: wrap; }
    .related-tour-cta-meta { width: 100%; justify-content: space-between; margin-left: 0; }
    .related-tour-cta-price,
    .related-tour-cta-contact { font-size: 0.68rem; }

    /* Precios */
    #precios { font-size: 12px; overflow-x: hidden; }
    #precios, #precios * { min-width: 0; max-width: 100%; }
    #precios > .p-4,
    #precios .p-4:first-child { padding: 0.65rem !important; }
    #precios h2 { font-size: 0.98rem; line-height: 1.15; margin-bottom: 0.45rem; }
    #precios h3 { font-size: 0.76rem; line-height: 1.2;  margin-bottom: 0.45rem; }
    #precios .rounded-2xl,
    #precios .rounded-3xl { border-radius: 12px; }

    #precios {
        --planaventura-price-pill-width: 7rem;
        --planaventura-price-pill-height: 2.15rem;
        --planaventura-price-action-gap: 0.4rem;
        --planaventura-price-actions-width: calc((var(--planaventura-price-pill-width) * 2) + var(--planaventura-price-action-gap));
    }

    #precios .planaventura-price-header,
    #precios .planaventura-price-row {
        padding: 0.7rem 0.8rem !important;
    }

    #precios .planaventura-price-header {
        gap: 0.65rem;
    }

    #precios .planaventura-price-header > .flex.items-center:last-child {
        display: flex;
        min-width: 0;
        gap: 0.55rem;
    }

    #precios .planaventura-price-header > .flex.items-center:last-child > span {
        font-size: 0.7rem !important;
    }

    #precios .planaventura-price-row > .flex.flex-col {
        min-width: 0;
        flex: 1 1 auto;
        padding-right: 0;
    }

    #precios .planaventura-price-row > .flex.flex-col > span:first-child { font-size: 0.82rem !important; }
    #precios .planaventura-price-row > .flex.flex-col > span:last-child  { font-size: 0.68rem !important; }
    #precios .planaventura-price-label-compact { font-size: 0.9em !important; }

    .planaventura-price-chip {
        padding: 0 0.72rem !important;
        font-size: 0.76rem !important;
    }
    .planaventura-price-booking,
    .planaventura-price-note,
    .planaventura-price-whatsapp {
        padding: 0 0.72rem !important;
        font-size: 0.7rem !important;
    }
    .planaventura-price-whatsapp svg,
    .planaventura-price-booking svg,
    .planaventura-price-note svg,
    .planaventura-price-chip svg {
        flex-shrink: 0;
        width: 0.75rem !important;
        height: 0.75rem !important;
    }

    #precios .planaventura-price-row {
        flex-direction: column;
        align-items: stretch;
    }

    #precios .planaventura-price-actions {
        width: 100%;
        flex: 0 0 auto;
        min-width: 0;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: stretch;
        align-items: stretch;
        margin-top: 0.5rem;
        gap: var(--planaventura-price-action-gap) !important;
    }

    #precios .planaventura-price-header {
        gap: 0.75rem;
    }

    #precios .border-t.border-gray-200 { margin-top: 0.8rem; padding-top: 0.8rem; }
    #precios .bg-\[\#fff0f2\].rounded-2xl.p-4.border-2.border-\[\#f4882f\].shadow-md { padding: 0.9rem; }
    #precios .contact-modal-btn,
    #precios a[href*="wa.me/"] {
        min-height: 2.2rem;
        padding: 0.55rem 0.8rem !important;
        font-size: 0.72rem;
        white-space: normal;
        text-align: center;
    }
}

/* ============================================
   RESPONSIVE — 640px
   ============================================ */
@media (max-width: 640px) {
    .recommendation-list,
    .related-tour-excerpt {
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .hero-action-btns,
    .tour-info-shell .info-module .info-buttons-grid { width: 100%; }

    .hero-btn-primary,
    .hero-btn-secondary,
    .hero-btn-outline { width: 100%; max-width: 100%; }

    /* Tours relacionados: 2 columnas */
    .related-tours-list {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.4rem !important;
    }
    .related-tour-card         { border-radius: 12px; }
    .related-tour-card-inner   { grid-template-columns: 1fr !important; padding: 0 !important; gap: 0 !important; }
    .related-tour-thumb-link   { width: 100%; min-width: 0; }
    .related-tour-thumb-frame  { width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: 12px 12px 0 0; }
    .related-tour-body         { padding: 0.35rem 0.4rem 0.4rem !important; }
    .related-tour-title        { font-size: 0.62rem !important; line-height: 1.25; margin-bottom: 0.2rem !important; }
    .related-tour-excerpt {
        font-size: 0.55rem !important;
        line-height: 1.3;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .related-tour-actions      { flex-direction: column; gap: 0.25rem !important; }
    .related-tour-cta-btn      { width: 100%; min-height: unset; padding: 0.3rem 0.4rem !important; font-size: 0.58rem !important; justify-content: center; }
    .related-tour-cta-meta     { width: 100%; justify-content: space-between; margin-left: 0; }
    .related-tour-cta-price,
    .related-tour-cta-contact  { font-size: 0.55rem !important; }

    .tour-info-shell .info-module .info-btn { width: 100%; max-width: 100%; }
}

/* ============================================
   BRAND OVERRIDES — forzar sobre Elementor
   ============================================ */
.xtravel-booking-btn {
    background-color: var(--atv-brand-600) !important;
    color: var(--atv-white) !important;
}
.xtravel-booking-btn:hover { background-color: var(--atv-brand-700) !important; }

.xtravel-booking-btn.planaventura-price-booking {
    background: var(--price-button-bg, var(--price-accent, var(--atv-brand-600))) !important;
    color: #ffffff !important;
    border: 1.5px solid var(--price-accent, var(--atv-brand-600)) !important;
    box-shadow: none !important;
}

.xtravel-booking-btn.planaventura-price-booking:hover {
    background: var(--price-accent-hover, var(--price-accent, var(--atv-brand-600))) !important;
    color: #ffffff !important;
}

.xtravel-booking-btn.bg-orange-600,
.xtravel-booking-btn.bg-\[\#f4882f\] { background-color: var(--atv-accent-600) !important; }
.xtravel-booking-btn.bg-orange-600:hover,
.xtravel-booking-btn.bg-\[\#dd7100\]  { background-color: var(--atv-accent-700) !important; }

/* Botones inline de Tailwind JIT */
button.bg-\[\#841220\] { background-color: var(--atv-brand-600)  !important; }
button.bg-\[\#6e0f1b\] { background-color: var(--atv-brand-700)  !important; }
button.bg-\[\#f4882f\] { background-color: var(--atv-accent-600) !important; }
button.bg-\[\#ffc16e\] { background-color: var(--atv-accent)     !important; }
button.bg-\[\#25D366\] { background-color: #25D366 !important; }
button.bg-\[\#128C7E\] { background-color: #128C7E !important; }

/* Hero btn — override de última cascada */
.hero-btn-primary {
    background-color: var(--atv-brand-600) !important;
    color: var(--atv-white) !important;
}
.hero-btn-primary:hover { background-color: var(--atv-brand-700) !important; }

/* ============================================
   MODAL CONTACTO
   ============================================ */
body.modal-open { overflow: hidden; }

#contactModal {
    display: none;
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 2147483647 !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 1rem !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    transform: none !important;
    background-color: rgba(0, 0, 0, 0.55) !important;
    pointer-events: none;
}
#contactModal.modal-visible {
    display: flex !important;
    pointer-events: auto;
}

#contactModal > div {
    pointer-events: auto;
    max-height: 90vh;
    width: 100%;
    max-width: 24rem;
    overflow-y: auto;
    box-sizing: border-box;
}

/* Utilidades Tailwind que Elementor puede sobreescribir */
#contactModal .grid-cols-2          { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#contactModal .rounded               { border-radius: 0.25rem; }
#contactModal .outline-none:focus    { outline: 2px solid transparent; outline-offset: 2px; }
#contactModal .resize-none           { resize: none; }
#contactModal .leading-snug          { line-height: 1.375; }
#contactModal .transition-colors     { transition-property: color, background-color, border-color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
#contactModal .focus\:ring-1:focus                    { box-shadow: 0 0 0 1px var(--tw-ring-color); }
#contactModal .focus\:ring-\[\#841220\]:focus         { --tw-ring-color: #841220; }
#contactModal .focus\:border-\[\#841220\]:focus       { border-color: #841220; }
#contactModal .hover\:bg-\[\#6e0f1b\]:hover           { background-color: #6e0f1b; }
#contactModal .hover\:underline:hover                 { text-decoration: underline; }
#contactModal .text-white\/90                         { color: rgba(255, 255, 255, 0.9); }

@media (max-width: 640px) {
    #contactModal > div { max-width: calc(100vw - 2rem); }

    #contactModal {
        padding: 0.75rem !important;
    }

    #contactModal > div {
        max-height: 88vh;
        max-width: calc(100vw - 1.5rem);
        border-radius: 0.9rem;
    }

    #contactModal .bg-\[\#841220\] {
        padding: 0.7rem 0.85rem !important;
    }

    #contactModal #modalTitle {
        font-size: 0.82rem !important;
        line-height: 1.2 !important;
    }

    #contactModal #modalSubtitle {
        font-size: 0.68rem !important;
        line-height: 1.2 !important;
    }

    #contactModal #closeModalBtn {
        top: 0.35rem !important;
        right: 0.35rem !important;
        width: 1.5rem !important;
        height: 1.5rem !important;
    }

    #contactModal #closeModalBtn svg {
        width: 0.8rem !important;
        height: 0.8rem !important;
    }

    #contactModal form {
        padding: 0.7rem !important;
        gap: 0.4rem !important;
    }

    #contactModal form > div[style*="grid-template-columns"] {
        gap: 0.3rem !important;
    }

    #contactModal label {
        font-size: 0.68rem !important;
        margin-bottom: 0.08rem !important;
    }

    #contactModal input,
    #contactModal textarea,
    #contactModal button[type="submit"] {
        font-size: 0.72rem !important;
    }

    #contactModal input,
    #contactModal textarea {
        padding: 0.32rem 0.42rem !important;
    }

    #contactModal textarea {
        min-height: 4rem;
    }

    #contactModal .recaptcha-badge {
        padding: 0.45rem 0.55rem;
        gap: 0.35rem;
    }

    #contactModal .recaptcha-badge span,
    #contactModal #formMessage {
        font-size: 0.62rem !important;
        line-height: 1.3;
    }

    #contactModal button[type="submit"] {
        padding: 0.42rem 0.75rem !important;
        min-height: 2.1rem;
    }
}

/* Ocultar scrollbar (utilidad global) */
.scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }
.scrollbar-hide::-webkit-scrollbar { display: none; }

/* ============================================
   reCAPTCHA BADGE
   ============================================ */
.recaptcha-badge {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem;
    background: #f0f9ff;
    border: 1px solid #bfdbfe;
    border-radius: 0.375rem;
    margin-top: 0.5rem;
}
.recaptcha-badge svg  { width: 1rem; height: 1rem; color: #3b82f6; flex-shrink: 0; }
.recaptcha-badge span { font-size: 0.625rem; color: #1e40af; line-height: 1.2; }
.recaptcha-badge a    { color: #1e40af; text-decoration: underline; }
.recaptcha-badge a:hover { color: #1e3a8a; }

/* ============================================
   IMPRESIÓN
   ============================================ */
@media print {
    body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .no-print { display: none; }
}
