
:root {
    --alpe-blue: #164b70;
    --alpe-blue-dark: #103b59;
    --alpe-coral: #e75b45;
    --alpe-ink: #18232c;
    --alpe-muted: #66737d;
    --alpe-line: #d8e1e7;
    --alpe-soft: #eef3f6;
}

.alpebus-real-trips-grid,
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px !important;
    margin: 28px 0 !important;
}

.alpebus-trip-card,
.woocommerce ul.products li.product {
    width: auto !important;
    margin: 0 !important;
    float: none !important;
    background: #fff;
    border: 1px solid var(--alpe-line);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 10px 28px rgba(17, 53, 76, .06);
    transition: transform .18s ease, box-shadow .18s ease;
}

.alpebus-trip-card:hover,
.woocommerce ul.products li.product:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 34px rgba(17, 53, 76, .11);
}

.alpebus-trip-card__image,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
    text-decoration: none;
}

.alpebus-trip-card__image {
    display: flex;
    min-height: 205px;
    background: var(--alpe-soft);
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.alpebus-trip-card__image img {
    width: 100%;
    height: 205px;
    object-fit: cover;
    display: block;
}

.alpebus-trip-card__placeholder {
    color: #91a9b7;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
}

.alpebus-trip-card__body {
    padding: 20px 20px 18px;
}

.alpebus-trip-card__type {
    margin-bottom: 8px;
    color: var(--alpe-coral);
    font-size: 11px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: .08em;
}

.alpebus-trip-card__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    margin: 0 0 12px !important;
    padding: 0 !important;
    color: var(--alpe-ink);
    font-size: 20px !important;
    line-height: 1.22 !important;
    font-weight: 600 !important;
}

.alpebus-trip-card__title a {
    color: inherit;
    text-decoration: none;
}

.alpebus-trip-card__localities,
.alpebus-variantes-loop {
    margin: 10px 0 16px;
    color: var(--alpe-ink);
    font-size: 14px;
    line-height: 1.45;
}

.alpebus-trip-card__localities span {
    color: var(--alpe-coral);
    font-size: 9px;
    vertical-align: 2px;
}

.alpebus-variantes-titulo {
    margin-bottom: 3px;
    color: var(--alpe-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.alpebus-variante-linea {
    color: var(--alpe-ink);
    font-weight: 600;
}

.alpebus-trip-card__footer {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    margin-top: 16px;
    padding-top: 15px;
    border-top: 1px solid #edf1f3;
}

.alpebus-trip-card__price,
.woocommerce ul.products li.product .price {
    color: var(--alpe-ink) !important;
    font-size: 17px !important;
    font-weight: 800 !important;
}

.alpebus-trip-card__button,
.woocommerce ul.products li.product .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px !important;
    border-radius: 999px !important;
    background: var(--alpe-coral) !important;
    color: #fff !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

.woocommerce ul.products li.product img {
    margin: 0 0 16px !important;
    background: var(--alpe-soft);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .alpebus-variantes-loop,
.woocommerce ul.products li.product .button {
    margin-left: 18px !important;
    margin-right: 18px !important;
}

.woocommerce ul.products li.product .button {
    margin-bottom: 18px !important;
}

@media (max-width: 980px) {
    .alpebus-real-trips-grid,
    .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .alpebus-real-trips-grid,
    .woocommerce ul.products {
        grid-template-columns: 1fr;
    }

    .alpebus-trip-card__image,
    .alpebus-trip-card__image img {
        min-height: 180px;
        height: 180px;
    }
}


/* Filtros de Próximas salidas */
.alpebus-trip-filters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
    align-items: stretch;
    gap: 0;
    margin: 26px 0 22px;
    padding: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--alpe-line);
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(17, 53, 76, .05);
}
.alpebus-trip-filter {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 15px 20px;
    border-right: 1px solid var(--alpe-line);
}
.alpebus-trip-filter > span {
    margin-bottom: 3px;
    color: #597083;
    font-size: 10px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: .08em;
}
.alpebus-trip-filter select {
    width: 100%;
    min-height: 32px;
    padding: 0 26px 0 0;
    border: 0;
    outline: 0;
    background-color: transparent;
    color: var(--alpe-ink);
    font-size: 14px;
    line-height: 1.3;
    font-weight: 700;
    box-shadow: none;
}
.alpebus-trip-filter-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
}
.alpebus-trip-filter-actions button {
    min-height: 42px;
    padding: 10px 18px;
    border: 0;
    border-radius: 999px;
    background: var(--alpe-coral);
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}
.alpebus-trip-filter-actions a {
    color: var(--alpe-blue);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}
.alpebus-trip-card__date {
    margin: -4px 0 8px;
    color: var(--alpe-muted);
    font-size: 13px;
    font-weight: 600;
}
.alpebus-no-trips {
    margin: 28px 0;
    padding: 28px;
    border: 1px solid var(--alpe-line);
    border-radius: 16px;
    background: #fff;
    color: var(--alpe-muted);
    text-align: center;
}
@media (max-width: 850px) {
    .alpebus-trip-filters {
        grid-template-columns: 1fr;
    }
    .alpebus-trip-filter {
        border-right: 0;
        border-bottom: 1px solid var(--alpe-line);
    }
    .alpebus-trip-filter-actions {
        justify-content: flex-start;
        padding: 14px 18px;
    }
}


/* 0.8.9 · Un solo viaje aunque existan varias expediciones/autobuses */
.alpebus-trip-card__from {
    font-size: .72em;
    font-weight: 700;
    color: var(--alpe-muted);
}
.alpebus-trip-card__departures {
    margin: 12px 0 2px;
    border: 1px solid var(--alpe-line);
    border-radius: 12px;
    background: #f8fafb;
}
.alpebus-trip-card__departures summary {
    padding: 10px 12px;
    cursor: pointer;
    color: var(--alpe-blue);
    font-size: 13px;
    font-weight: 800;
    list-style-position: inside;
}
.alpebus-trip-card__departure-links {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    padding: 0 12px 12px;
}
.alpebus-trip-card__departure-links a {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    padding: 6px 10px;
    border: 1px solid var(--alpe-line);
    border-radius: 999px;
    background: #fff;
    color: var(--alpe-ink);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
}
.alpebus-trip-card__departure-links a:hover {
    border-color: var(--alpe-blue);
    color: var(--alpe-blue);
}
.alpebus-trip-card__multi-note {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #f3f6f8;
    color: var(--alpe-muted);
    font-size: 12px;
    font-weight: 800;
}


/* 0.9.0 · Elección explícita de autobús y plazas disponibles */
.alpebus-trip-card__buses {
    margin: 13px 0 2px;
    border: 1px solid var(--alpe-line);
    border-radius: 12px;
    background: #f8fafb;
    overflow: hidden;
}
.alpebus-trip-card__buses summary {
    padding: 11px 12px;
    cursor: pointer;
    color: var(--alpe-blue);
    font-size: 13px;
    font-weight: 800;
    list-style-position: inside;
}
.alpebus-trip-card__bus-list {
    border-top: 1px solid var(--alpe-line);
}
.alpebus-trip-card__bus {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 10px;
    padding: 11px 12px;
    border-bottom: 1px solid var(--alpe-line);
    background: #fff;
}
.alpebus-trip-card__bus:last-child {
    border-bottom: 0;
}
.alpebus-trip-card__bus.is-soldout {
    opacity: .62;
}
.alpebus-trip-card__bus-main {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 2px;
}
.alpebus-trip-card__bus-main strong {
    color: var(--alpe-ink);
    font-size: 13px;
}
.alpebus-trip-card__bus-localities {
    color: var(--alpe-muted);
    font-size: 11px;
    line-height: 1.3;
}
.alpebus-trip-card__bus-availability {
    color: var(--alpe-blue);
    font-size: 11px;
    font-weight: 800;
}
.alpebus-trip-card__bus-price {
    white-space: nowrap;
    color: var(--alpe-ink);
    font-size: 13px;
    font-weight: 800;
}
.alpebus-trip-card__bus-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 7px 10px;
    border-radius: 999px;
    background: var(--alpe-coral);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.1;
    text-decoration: none;
    white-space: nowrap;
}
.alpebus-trip-card__bus-button:hover {
    color: #fff;
}
.alpebus-trip-card__bus-button.is-disabled {
    background: #d7dde1;
    color: #697983;
}
@media (max-width:640px) {
    .alpebus-trip-card__bus {
        grid-template-columns: 1fr auto;
    }
    .alpebus-trip-card__bus-button {
        grid-column: 1 / -1;
        width: 100%;
    }
}


/* 0.9.1 · Viaje → Ruta → Autobús */
.alpebus-trip-card__route-list {
    border-top: 1px solid var(--alpe-line);
}
.alpebus-trip-card__route {
    border-bottom: 1px solid var(--alpe-line);
    background: #fff;
}
.alpebus-trip-card__route:last-child {
    border-bottom: 0;
}
.alpebus-trip-card__route-head {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 11px 12px 9px;
    background: #f4f7f9;
}
.alpebus-trip-card__route-head strong {
    color: var(--alpe-blue);
    font-size: 13px;
    line-height: 1.25;
}
.alpebus-trip-card__route-head span {
    color: var(--alpe-muted);
    font-size: 11px;
    line-height: 1.35;
}
.alpebus-trip-card__route .alpebus-trip-card__bus-list {
    border-top: 1px solid var(--alpe-line);
}


/* 0.9.2 · Tarjeta enlazable, stickers por autobús y selector en ficha */
.alpebus-trip-card__image{
    position:relative;
}
.alpebus-trip-card__footer-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex-wrap:wrap;
}
.alpebus-auto-badges--group{
    top:10px;
    right:10px;
}
.alpebus-auto-badges--group .alpebus-auto-badge{
    max-width:230px;
    overflow:hidden;
    text-overflow:ellipsis;
}

.alpebus-single-trip-switcher{
    clear:both;
    margin:0 0 24px;
    padding:18px;
    border:1px solid var(--alpe-line);
    border-radius:16px;
    background:#f8fafb;
}
.alpebus-single-trip-switcher__intro{
    margin-bottom:12px;
}
.alpebus-single-trip-switcher__eyebrow{
    display:block;
    margin-bottom:4px;
    color:var(--alpe-coral);
    font-size:10px;
    font-weight:800;
    letter-spacing:.09em;
}
.alpebus-single-trip-switcher h2{
    margin:0 0 5px!important;
    color:var(--alpe-ink);
    font-size:20px!important;
    line-height:1.2!important;
}
.alpebus-single-trip-switcher p{
    margin:0!important;
    color:var(--alpe-muted);
    font-size:13px;
}
.alpebus-single-route{
    margin-top:10px;
    overflow:hidden;
    border:1px solid var(--alpe-line);
    border-radius:12px;
    background:#fff;
}
.alpebus-single-route__head{
    display:flex;
    flex-direction:column;
    gap:2px;
    padding:10px 12px;
    background:#f2f6f8;
}
.alpebus-single-route__head strong{
    color:var(--alpe-blue);
    font-size:13px;
}
.alpebus-single-route__head span{
    color:var(--alpe-muted);
    font-size:11px;
}
.alpebus-single-route__buses{
    display:grid;
    gap:0;
}
.alpebus-single-bus{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    border-top:1px solid var(--alpe-line);
}
.alpebus-single-bus:first-child{border-top:0}
.alpebus-single-bus>div{
    display:flex;
    flex-direction:column;
    gap:2px;
}
.alpebus-single-bus>div strong{
    color:var(--alpe-ink);
    font-size:13px;
}
.alpebus-single-bus>div span{
    color:var(--alpe-muted);
    font-size:11px;
}
.alpebus-single-bus.is-current{
    box-shadow:inset 3px 0 0 var(--alpe-blue);
}
.alpebus-single-bus.is-soldout{
    opacity:.62;
}
.alpebus-single-bus__button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    padding:7px 10px;
    border-radius:999px;
    background:var(--alpe-coral);
    color:#fff;
    font-size:11px;
    font-weight:800;
    text-decoration:none;
    white-space:nowrap;
}
.alpebus-single-bus__button:hover{color:#fff}
.alpebus-single-bus__button.is-current{
    background:var(--alpe-blue);
}
.alpebus-single-bus__button.is-disabled{
    background:#d7dde1;
    color:#697983;
}
@media(max-width:640px){
    .alpebus-auto-badges--group{
        top:7px;
        right:7px;
        max-width:calc(100% - 14px);
    }
    .alpebus-auto-badges--group .alpebus-auto-badge{
        max-width:190px;
        font-size:9px;
    }
    .alpebus-trip-card__footer{
        align-items:flex-start;
    }
    .alpebus-trip-card__footer-actions{
        justify-content:flex-end;
    }
    .alpebus-single-trip-switcher{
        margin-bottom:18px;
        padding:12px;
    }
}


/* 0.9.3 · Ficha de viaje más compacta en móvil */
@media (max-width: 767px) {
    .single-product div.product .summary {
        width: 100% !important;
        float: none !important;
    }

    .alpebus-single-trip-switcher {
        margin: 10px 0 18px;
        padding: 12px;
        border-radius: 14px;
    }

    .alpebus-single-trip-switcher__intro h2 {
        font-size: 18px !important;
    }

    .alpebus-single-trip-switcher__intro p {
        font-size: 12px;
        line-height: 1.4;
    }

    .alpebus-single-route {
        margin-top: 8px;
    }

    .alpebus-single-route__head {
        padding: 9px 10px;
    }

    .alpebus-single-route__buses {
        display: block;
    }

    .alpebus-single-bus {
        grid-template-columns: minmax(0,1fr) auto;
        padding: 9px 10px;
    }

    .alpebus-single-bus__button {
        min-height: 32px;
        padding: 6px 10px;
    }

    /* Migas de pan: que no ocupen media pantalla en títulos largos. */
    .single-product .woocommerce-breadcrumb {
        font-size: 13px !important;
        line-height: 1.35 !important;
        margin-bottom: 14px !important;
    }
}


/* 0.9.4 · Respaldo para navegadores móviles con viewport de escritorio */
@media (pointer: coarse) and (max-width: 1100px) {
    .single-product div.product .woocommerce-product-gallery,
    .single-product div.product .summary {
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
        clear: both !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .single-product div.product .woocommerce-product-gallery {
        margin-bottom: 18px !important;
    }

    .single-product .woocommerce-breadcrumb {
        font-size: 13px !important;
        line-height: 1.35 !important;
        margin-bottom: 14px !important;
    }

    .alpebus-single-trip-switcher {
        margin: 10px 0 18px !important;
        padding: 12px !important;
        border-radius: 14px !important;
    }

    .alpebus-single-trip-switcher__intro h2 {
        font-size: 18px !important;
    }

    .alpebus-single-trip-switcher__intro p {
        font-size: 12px !important;
        line-height: 1.4 !important;
    }

    .alpebus-single-bus {
        grid-template-columns: minmax(0,1fr) auto !important;
        padding: 9px 10px !important;
    }

    .alpebus-single-bus__button {
        min-height: 32px !important;
        padding: 6px 10px !important;
    }
}


/* 0.9.5 · Viajes reservables solo en oficina */
.alpebus-office-only-notice{
    margin:14px 0!important;
    border-radius:10px;
}


/* 0.9.7 · Acabado visual de la ficha de viaje */
.single-product .alpebus-single-trip-title {
    margin-bottom: 12px !important;
}

/* El autobús actual debe quedar inequívocamente marcado. */
.alpebus-single-bus.is-current {
    background: #164B70 !important;
    color: #fff !important;
    box-shadow: inset 4px 0 0 #E75B45 !important;
}

.alpebus-single-bus.is-current > div strong,
.alpebus-single-bus.is-current > div span {
    color: #fff !important;
}

.alpebus-single-bus.is-current .alpebus-single-bus__button.is-current {
    background: #fff !important;
    color: #164B70 !important;
    box-shadow: 0 0 0 1px rgba(255,255,255,.35);
}

/* SKU, categorías y etiquetas son información secundaria para el cliente. */
.single-product div.product .product_meta {
    margin-top: 18px !important;
    color: #788792 !important;
    font-size: 11px !important;
    line-height: 1.5 !important;
}

.single-product div.product .product_meta a {
    color: #607986 !important;
    font-size: inherit !important;
}

/* Separación real entre miniaturas de la galería. */
.single-product .woocommerce-product-gallery .flex-control-thumbs {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-top: 10px !important;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li {
    float: none !important;
    width: calc(25% - 6px) !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    border-radius: 5px;
}

/* Una sola sección de información, sin pestañas WooCommerce. */
.alpebus-trip-information {
    clear: both;
    margin: 30px 0 10px;
    padding: 24px 0 8px;
    border-top: 1px solid var(--alpe-line);
}

.alpebus-trip-information h2 {
    margin: 0 0 14px !important;
    color: var(--alpe-ink);
    font-size: 24px !important;
    line-height: 1.2 !important;
}

.alpebus-trip-information__description {
    color: var(--alpe-ink);
    font-size: 15px;
    line-height: 1.65;
}

.alpebus-trip-information__description p:last-child {
    margin-bottom: 0;
}

.alpebus-trip-information__details {
    display: grid;
    gap: 0;
    margin-top: 16px;
    border: 1px solid var(--alpe-line);
    border-radius: 12px;
    overflow: hidden;
}

.alpebus-trip-information__row {
    display: grid;
    grid-template-columns: minmax(130px, .35fr) minmax(0, 1fr);
    gap: 14px;
    padding: 10px 12px;
    border-top: 1px solid var(--alpe-line);
    font-size: 13px;
}

.alpebus-trip-information__row:first-child {
    border-top: 0;
}

.alpebus-trip-information__row strong {
    color: var(--alpe-blue);
}

.alpebus-trip-information__row span {
    color: var(--alpe-muted);
}

@media (max-width: 640px) {
    .single-product .woocommerce-product-gallery .flex-control-thumbs {
        gap: 6px !important;
    }

    .single-product .woocommerce-product-gallery .flex-control-thumbs li {
        width: calc(33.333% - 4px) !important;
    }

    .alpebus-trip-information {
        margin-top: 22px;
        padding-top: 18px;
    }

    .alpebus-trip-information h2 {
        font-size: 20px !important;
    }

    .alpebus-trip-information__row {
        grid-template-columns: 1fr;
        gap: 3px;
    }
}


/* 0.9.8 · Pase visual móvil/desktop de la ficha de viaje */

/* Precio: más integrado con el inicio de la reserva. */
.single-product div.product .summary > p.price,
.single-product div.product .summary > span.price {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    margin: 12px 0 16px !important;
    padding: 8px 12px;
    border-radius: 10px;
    background: #f7fafb;
    color: var(--alpe-blue) !important;
    font-size: 20px !important;
    font-weight: 800 !important;
}

/* Guía visual del proceso. No altera el motor ni los pasos reales. */
.alpebus-booking-progress {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 4px 0 14px;
    padding: 9px 11px;
    border: 1px solid var(--alpe-line);
    border-radius: 12px;
    background: #fbfcfd;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.alpebus-booking-progress__step {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex: 0 0 auto;
    color: #657986;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.alpebus-booking-progress__step b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #164B70;
    color: #fff;
    font-size: 10px;
    line-height: 1;
}

/* Cabecera compacta solo en la ficha de producto móvil. */
@media (max-width: 767px) {
    body.single-product .site-header .inside-header {
        min-height: 0 !important;
        padding: 9px 12px !important;
        gap: 9px !important;
    }

    body.single-product .site-header .site-logo img,
    body.single-product .site-header .site-branding-container img {
        width: auto !important;
        max-width: 62px !important;
        max-height: 62px !important;
    }

    body.single-product .site-header .site-branding {
        min-width: 0;
    }

    body.single-product .site-header .main-title,
    body.single-product .site-header .site-title {
        margin: 0 !important;
        font-size: 20px !important;
        line-height: 1.08 !important;
    }

    body.single-product .site-header .site-description {
        margin-top: 2px !important;
        font-size: 10px !important;
        line-height: 1.2 !important;
    }

    body.single-product .menu-toggle {
        min-width: 44px !important;
        min-height: 44px !important;
        padding: 8px 10px !important;
    }

    /* Las migas aportan poco en móvil y consumían varias líneas. */
    body.single-product .woocommerce-breadcrumb {
        display: none !important;
    }

    body.single-product .alpebus-single-trip-title {
        margin: 6px 0 10px !important;
        font-size: 26px !important;
        line-height: 1.08 !important;
        letter-spacing: -.015em;
    }

    body.single-product div.product .summary > p.price,
    body.single-product div.product .summary > span.price {
        margin: 8px 0 12px !important;
        padding: 7px 10px;
        font-size: 18px !important;
    }

    .alpebus-booking-progress {
        gap: 7px;
        margin: 2px 0 12px;
        padding: 8px 9px;
    }

    .alpebus-booking-progress__step {
        font-size: 10px;
    }

    .alpebus-booking-progress__step b {
        width: 18px;
        height: 18px;
        font-size: 9px;
    }

    /* Compactar un poco las tarjetas de pasos sin hacerlas incómodas. */
    .single-product .alpebus-booking-card {
        margin-bottom: 12px !important;
    }

    .single-product .alpebus-booking-step-title {
        margin-bottom: 8px !important;
    }

    .single-product .alpebus-booking-step-copy h3 {
        font-size: 16px !important;
        line-height: 1.15 !important;
    }

    .single-product .alpebus-booking-step-copy p {
        font-size: 11px !important;
        line-height: 1.35 !important;
    }
}


/* 0.9.9 · Carrito, checkout y gracias */

/* Márgenes laterales: ningún texto de compra debe tocar el borde del móvil. */
@media (max-width: 767px) {
    body.woocommerce-cart .site-content,
    body.woocommerce-checkout .site-content,
    body.woocommerce-order-received .site-content {
        box-sizing: border-box !important;
        width: 100% !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    body.woocommerce-cart .content-area,
    body.woocommerce-checkout .content-area,
    body.woocommerce-order-received .content-area,
    body.woocommerce-cart main#main,
    body.woocommerce-checkout main#main,
    body.woocommerce-order-received main#main,
    body.woocommerce-cart .entry-content,
    body.woocommerce-checkout .entry-content,
    body.woocommerce-order-received .entry-content {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    body.woocommerce-cart .wp-block-woocommerce-cart,
    body.woocommerce-checkout .wp-block-woocommerce-checkout {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Cabecera compacta también fuera de la ficha de producto. */
    body.woocommerce-cart .site-header .inside-header,
    body.woocommerce-checkout .site-header .inside-header,
    body.woocommerce-order-received .site-header .inside-header {
        min-height: 0 !important;
        padding: 9px 0 !important;
        gap: 9px !important;
    }

    body.woocommerce-cart .site-header .site-logo img,
    body.woocommerce-checkout .site-header .site-logo img,
    body.woocommerce-order-received .site-header .site-logo img,
    body.woocommerce-cart .site-header .site-branding-container img,
    body.woocommerce-checkout .site-header .site-branding-container img,
    body.woocommerce-order-received .site-header .site-branding-container img {
        width: auto !important;
        max-width: 62px !important;
        max-height: 62px !important;
    }

    body.woocommerce-cart .site-header .main-title,
    body.woocommerce-checkout .site-header .main-title,
    body.woocommerce-order-received .site-header .main-title,
    body.woocommerce-cart .site-header .site-title,
    body.woocommerce-checkout .site-header .site-title,
    body.woocommerce-order-received .site-header .site-title {
        margin: 0 !important;
        font-size: 20px !important;
        line-height: 1.08 !important;
    }

    body.woocommerce-cart .site-header .site-description,
    body.woocommerce-checkout .site-header .site-description,
    body.woocommerce-order-received .site-header .site-description {
        margin-top: 2px !important;
        font-size: 10px !important;
        line-height: 1.2 !important;
    }

    body.woocommerce-cart .menu-toggle,
    body.woocommerce-checkout .menu-toggle,
    body.woocommerce-order-received .menu-toggle {
        min-width: 44px !important;
        min-height: 44px !important;
        padding: 8px 10px !important;
    }

    /* Woo Blocks: respiración y lectura en móvil. */
    body.woocommerce-cart .wc-block-cart,
    body.woocommerce-checkout .wc-block-checkout {
        font-size: 14px;
    }

    body.woocommerce-cart .wc-block-cart-item__product,
    body.woocommerce-checkout .wc-block-components-order-summary-item__description {
        min-width: 0 !important;
    }

    body.woocommerce-cart .wc-block-components-product-name,
    body.woocommerce-checkout .wc-block-components-product-name {
        line-height: 1.3 !important;
    }

    body.woocommerce-cart .wc-block-components-product-details,
    body.woocommerce-checkout .wc-block-components-product-details {
        margin-top: 7px !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
        color: #586a76 !important;
    }

    body.woocommerce-cart .wc-block-components-totals-wrapper,
    body.woocommerce-checkout .wc-block-components-totals-wrapper {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    body.woocommerce-checkout .wc-block-components-checkout-step {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    body.woocommerce-checkout .wc-block-components-text-input input,
    body.woocommerce-checkout .wc-block-components-combobox .components-combobox-control__input {
        box-sizing: border-box !important;
        max-width: 100% !important;
    }

    /* Página de pedido recibido. */
    body.woocommerce-order-received .woocommerce-order {
        box-sizing: border-box;
        width: 100%;
        max-width: 100%;
    }

    body.woocommerce-order-received .woocommerce-thankyou-order-received {
        margin-top: 8px !important;
        font-size: 22px !important;
        line-height: 1.25 !important;
    }

    body.woocommerce-order-received .woocommerce-order-overview {
        box-sizing: border-box !important;
        width: 100% !important;
        margin: 18px 0 24px !important;
    }

    body.woocommerce-order-received .alpebus-thankyou-reservation {
        box-sizing: border-box !important;
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding: 18px !important;
    }
}

/* Algo más de aire también en tablets. */
@media (min-width: 768px) and (max-width: 1024px) {
    body.woocommerce-cart .site-content,
    body.woocommerce-checkout .site-content,
    body.woocommerce-order-received .site-content {
        padding-left: 24px !important;
        padding-right: 24px !important;
        box-sizing: border-box !important;
    }
}


/* 0.10.0 · Cierre visual de carrito / checkout / gracias */

/* El selector no debe parecer editable: mostramos la cantidad como "X plazas". */
body.woocommerce-cart .wc-block-components-quantity-selector {
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    min-width: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector::after {
    content: " plazas";
    margin-left: 4px;
    color: #25333c;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

body.woocommerce-cart .wc-block-components-quantity-selector input {
    width: auto !important;
    min-width: 1.2em !important;
    max-width: 3em !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #25333c !important;
    font-weight: 800 !important;
    text-align: right !important;
    pointer-events: none !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector button {
    display: none !important;
}

/* Bloque superior repetido de resumen: solo se marca desde JS si hay dos. */
@media (max-width: 767px) {
    .alpebus-duplicate-order-summary {
        display: none !important;
    }

    /* Reducir el hueco entre cabecera y contenido de compra. */
    body.woocommerce-cart .site-content,
    body.woocommerce-checkout .site-content,
    body.woocommerce-order-received .site-content {
        padding-top: 14px !important;
    }

    body.woocommerce-cart .inside-article,
    body.woocommerce-checkout .inside-article,
    body.woocommerce-order-received .inside-article {
        padding-top: 0 !important;
    }

    body.woocommerce-cart .entry-content,
    body.woocommerce-checkout .entry-content,
    body.woocommerce-order-received .entry-content {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    body.woocommerce-cart .wp-block-woocommerce-cart,
    body.woocommerce-checkout .wp-block-woocommerce-checkout {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    body.woocommerce-order-received .woocommerce {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    /* Datos secundarios del viaje, más compactos y legibles. */
    body.woocommerce-cart .wc-block-components-product-details,
    body.woocommerce-checkout .wc-block-components-product-details {
        display: grid !important;
        gap: 3px !important;
        margin-top: 8px !important;
    }

    body.woocommerce-cart .wc-block-components-product-details__name,
    body.woocommerce-checkout .wc-block-components-product-details__name {
        font-weight: 700 !important;
    }

    body.woocommerce-cart .wc-block-components-product-details__value,
    body.woocommerce-checkout .wc-block-components-product-details__value {
        color: #536672 !important;
    }
}


/* 0.10.2 · Woo Blocks: transición más ligera y último pulido móvil */
@media (max-width: 767px) {
    .alpebus-mobile-summary-toggle-hidden {
        display: none !important;
    }
}


/* 0.10.5 · Márgenes y ancho de lectura en escritorio */
@media (min-width: 1025px) {
    body.woocommerce-cart .site-content,
    body.woocommerce-checkout .site-content {
        box-sizing: border-box !important;
        width: calc(100% - 64px) !important;
        max-width: 1480px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    body.woocommerce-cart .content-area,
    body.woocommerce-checkout .content-area,
    body.woocommerce-cart main#main,
    body.woocommerce-checkout main#main,
    body.woocommerce-cart .entry-content,
    body.woocommerce-checkout .entry-content,
    body.woocommerce-cart .wp-block-woocommerce-cart,
    body.woocommerce-checkout .wp-block-woocommerce-checkout {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    body.woocommerce-checkout .wc-block-checkout__main {
        padding-right: 28px !important;
        box-sizing: border-box !important;
    }

    body.woocommerce-checkout .wc-block-checkout__sidebar {
        padding-left: 28px !important;
        box-sizing: border-box !important;
    }

    body.woocommerce-order-received .site-content {
        box-sizing: border-box !important;
        width: calc(100% - 64px) !important;
        max-width: 1320px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    body.woocommerce-order-received .content-area,
    body.woocommerce-order-received main#main,
    body.woocommerce-order-received .entry-content,
    body.woocommerce-order-received .woocommerce,
    body.woocommerce-order-received .woocommerce-order {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    body.woocommerce-order-received .alpebus-thankyou-reservation {
        width: 100% !important;
        max-width: 1260px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

@media (min-width: 768px) and (max-width: 1024px) {
    body.woocommerce-cart .site-content,
    body.woocommerce-checkout .site-content,
    body.woocommerce-order-received .site-content {
        width: calc(100% - 48px) !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}


/* 0.10.8 · Carrito/Checkout: una columna en ventanas de escritorio estrechas
 * Evita cortes y scroll horizontal cuando el navegador ocupa media pantalla.
 */
@media (min-width: 768px) and (max-width: 1199px) {

    body.woocommerce-cart,
    body.woocommerce-checkout {
        overflow-x: hidden !important;
    }

    body.woocommerce-cart .site-content,
    body.woocommerce-checkout .site-content {
        width: calc(100% - 48px) !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        overflow-x: visible !important;
    }

    /* WooCommerce Cart Block */
    body.woocommerce-cart .wp-block-woocommerce-cart,
    body.woocommerce-cart .wc-block-cart {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 28px !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body.woocommerce-cart .wc-block-cart__main,
    body.woocommerce-cart .wc-block-cart__sidebar {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        float: none !important;
    }

    /* WooCommerce Checkout Block */
    body.woocommerce-checkout .wp-block-woocommerce-checkout,
    body.woocommerce-checkout .wc-block-checkout {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 30px !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body.woocommerce-checkout .wc-block-checkout__main,
    body.woocommerce-checkout .wc-block-checkout__sidebar {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        float: none !important;
    }

    body.woocommerce-checkout .wc-block-checkout__sidebar {
        order: 2 !important;
    }

    body.woocommerce-checkout .wc-block-checkout__main {
        order: 1 !important;
    }

    /* Evita que tablas/resúmenes internos ensanchen la ventana. */
    body.woocommerce-cart .wc-block-components-sidebar-layout,
    body.woocommerce-checkout .wc-block-components-sidebar-layout,
    body.woocommerce-cart .wc-block-components-main,
    body.woocommerce-checkout .wc-block-components-main,
    body.woocommerce-cart .wc-block-components-sidebar,
    body.woocommerce-checkout .wc-block-components-sidebar {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }
}

/* A partir de 1200 px se conserva la presentación de dos columnas de Woo. */
@media (min-width: 1200px) {
    body.woocommerce-cart .wc-block-cart__main,
    body.woocommerce-cart .wc-block-cart__sidebar,
    body.woocommerce-checkout .wc-block-checkout__main,
    body.woocommerce-checkout .wc-block-checkout__sidebar {
        min-width: 0 !important;
    }
}


/* 0.10.9 · Corrección de recorte lateral en ventanas partidas
 * En anchos intermedios usamos padding interno real en lugar de desplazar
 * el bloque con cálculos de ancho. Así ningún título/tabla empieza fuera
 * del viewport en Chrome/Edge cuando la ventana ocupa media pantalla.
 */
@media (min-width: 768px) and (max-width: 1199px) {

    html,
    body.woocommerce-cart,
    body.woocommerce-checkout {
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    body.woocommerce-cart .site,
    body.woocommerce-checkout .site,
    body.woocommerce-cart .site-content,
    body.woocommerce-checkout .site-content,
    body.woocommerce-cart .content-area,
    body.woocommerce-checkout .content-area,
    body.woocommerce-cart main#main,
    body.woocommerce-checkout main#main,
    body.woocommerce-cart article,
    body.woocommerce-checkout article,
    body.woocommerce-cart .inside-article,
    body.woocommerce-checkout .inside-article,
    body.woocommerce-cart .entry-content,
    body.woocommerce-checkout .entry-content {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    body.woocommerce-cart .site-content,
    body.woocommerce-checkout .site-content {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    body.woocommerce-cart .wp-block-woocommerce-cart,
    body.woocommerce-checkout .wp-block-woocommerce-checkout,
    body.woocommerce-cart .wc-block-cart,
    body.woocommerce-checkout .wc-block-checkout,
    body.woocommerce-cart .wc-block-components-sidebar-layout,
    body.woocommerce-checkout .wc-block-components-sidebar-layout,
    body.woocommerce-cart .wc-block-components-main,
    body.woocommerce-checkout .wc-block-components-main,
    body.woocommerce-cart .wc-block-components-sidebar,
    body.woocommerce-checkout .wc-block-components-sidebar {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        transform: none !important;
    }

    body.woocommerce-cart .wc-block-cart-items,
    body.woocommerce-cart .wc-block-cart-items table,
    body.woocommerce-cart table.wc-block-cart-items,
    body.woocommerce-checkout .wc-block-components-order-summary,
    body.woocommerce-checkout .wc-block-components-order-summary-item {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    body.woocommerce-cart .wc-block-cart-items__header,
    body.woocommerce-cart .wc-block-cart-item__product,
    body.woocommerce-cart .wc-block-cart-item__total,
    body.woocommerce-checkout .wc-block-components-order-summary-item__description {
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    body.woocommerce-cart .wc-block-components-product-name,
    body.woocommerce-cart .wc-block-components-product-metadata,
    body.woocommerce-checkout .wc-block-components-product-name,
    body.woocommerce-checkout .wc-block-components-product-metadata {
        overflow-wrap: anywhere !important;
        word-break: normal !important;
    }
}

/* Un poco más de aire cuando la ventana ya es casi móvil. */
@media (min-width: 768px) and (max-width: 900px) {
    body.woocommerce-cart .site-content,
    body.woocommerce-checkout .site-content {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }
}


/* 0.11.2 · Viaje sencillo para cliente: localidad → autobús → reserva */

/* En la tarjeta agrupada ya no mostramos un sticker por autobús. */
.alpebus-trip-card__summary-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    max-width: calc(100% - 20px);
    min-height: 28px;
    padding: 6px 9px;
    border-radius: 999px;
    background: rgba(22,75,112,.94);
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.15;
    box-shadow: 0 3px 10px rgba(0,0,0,.14);
}

.alpebus-trip-card__compact-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 11px;
}

.alpebus-trip-card__compact-summary span {
    display: inline-flex;
    align-items: center;
    min-height: 29px;
    padding: 5px 9px;
    border-radius: 999px;
    background: #f3f6f8;
    color: var(--alpe-muted);
    font-size: 11px;
    font-weight: 700;
}

.alpebus-trip-card__compact-summary strong {
    margin-right: 4px;
    color: var(--alpe-blue);
}

.alpebus-trip-card__localities.is-filtered {
    padding: 8px 10px;
    border-radius: 9px;
    background: #eef5fa;
    color: var(--alpe-blue);
}

/* Selector principal de localidad */
.alpebus-locality-choices {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 12px 0 0;
}

.alpebus-locality-choice {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid var(--alpe-line);
    border-radius: 999px;
    background: #fff;
    color: var(--alpe-ink);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none;
}

.alpebus-locality-choice:hover {
    border-color: var(--alpe-blue);
    color: var(--alpe-blue);
}

.alpebus-locality-choice.is-selected {
    border-color: var(--alpe-blue);
    background: var(--alpe-blue);
    color: #fff;
}

.alpebus-locality-choice.is-selected span {
    padding-left: 7px;
    border-left: 1px solid rgba(255,255,255,.35);
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.alpebus-locality-required {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 13px;
    padding: 11px 12px;
    border-radius: 10px;
    background: #fff4ef;
    color: #78402f;
    font-size: 12px;
}

.alpebus-selected-trip-context {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-top: 14px;
    padding: 12px 13px;
    border-left: 4px solid var(--alpe-blue);
    border-radius: 10px;
    background: #eef5fa;
}

.alpebus-selected-trip-context__label {
    color: var(--alpe-muted);
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
}

.alpebus-selected-trip-context strong {
    color: var(--alpe-blue);
    font-size: 14px;
    line-height: 1.35;
}

.alpebus-selected-trip-context small {
    color: var(--alpe-muted);
    font-size: 11px;
}

.alpebus-after-bus-note {
    margin-top: 10px;
    color: var(--alpe-muted);
    font-size: 11px;
    line-height: 1.4;
}

.alpebus-single-trip-switcher.has-locality .alpebus-single-route {
    margin-top: 10px;
}

.alpebus-single-bus.is-current {
    background: var(--alpe-blue);
    box-shadow: none !important;
}

.alpebus-single-bus.is-current .alpebus-single-bus__copy strong,
.alpebus-single-bus.is-current .alpebus-single-bus__copy span {
    color: #fff !important;
}

.alpebus-single-bus__button.is-current {
    background: #fff !important;
    color: var(--alpe-blue) !important;
}

.alpebus-locality-departure-note {
    margin-top: 7px;
    color: var(--alpe-blue);
    font-size: 11px;
    font-weight: 700;
}

@media (max-width: 767px) {
    .alpebus-locality-choices {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 7px;
    }

    .alpebus-locality-choice {
        justify-content: center;
        min-width: 0;
        padding: 8px 9px;
        text-align: center;
    }

    .alpebus-selected-trip-context strong {
        font-size: 13px;
    }
}

@media (max-width: 420px) {
    .alpebus-locality-choices {
        grid-template-columns: 1fr;
    }
}


/* 0.11.5 · Tarjetas más limpias */
.alpebus-trip-card__summary-badge {
    display: none !important;
}

.alpebus-trip-card__compact-summary {
    margin-top: 12px;
    gap: 8px;
}

.alpebus-trip-card__compact-summary span {
    min-height: 30px;
    padding: 6px 10px;
    font-size: 11px;
}

.alpebus-trip-card__footer {
    margin-top: 14px;
}


/* 0.11.6 · Buscador conectado visualmente a Próximas salidas */
#proximas-salidas {
    scroll-margin-top: 34px;
}

.alpebus-active-filters {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: -10px 0 24px;
    padding: 10px 14px;
    border: 1px solid var(--alpe-line);
    border-radius: 12px;
    background: #f5f8fa;
    color: var(--alpe-blue);
    font-size: 12px;
    font-weight: 700;
}

.alpebus-active-filters a {
    flex: 0 0 auto;
    color: var(--alpe-coral);
    font-weight: 800;
    text-decoration: none;
}

.alpebus-active-filters a:hover {
    text-decoration: underline;
}

@media (max-width: 640px) {
    .alpebus-active-filters {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }
}


/* ==========================================================
   0.12.0 · PORTADA FUNCIONAL [alpe_inicio]
   Portada compacta, sin dependencia de maquetación Gutenberg.
========================================================== */

.alpebus-home-shell {
    --alpe-home-blue: var(--alpe-blue, #123f5f);
    --alpe-home-ink: var(--alpe-ink, #183447);
    --alpe-home-muted: var(--alpe-muted, #687b89);
    --alpe-home-line: var(--alpe-line, #dbe4ea);
    --alpe-home-coral: var(--alpe-coral, #ef5a43);
    width: 100%;
    color: var(--alpe-home-ink);
}

.alpebus-home-shell *,
.alpebus-home-shell *::before,
.alpebus-home-shell *::after {
    box-sizing: border-box;
}

.alpebus-home-hero {
    padding: 54px 24px 42px;
    background:
        radial-gradient(circle at 85% 20%, rgba(255,255,255,.12), transparent 32%),
        linear-gradient(135deg, #123f5f 0%, #195372 100%);
    color: #fff;
}

.alpebus-home-hero__inner,
.alpebus-home-quick,
.alpebus-home-results,
.alpebus-home-trust,
.alpebus-home-links {
    width: min(1180px, calc(100% - 32px));
    margin-left: auto;
    margin-right: auto;
}

.alpebus-home-kicker,
.alpebus-home-section-kicker {
    display: block;
    margin-bottom: 8px;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.alpebus-home-kicker {
    color: #ff9c83;
}

.alpebus-home-hero h1 {
    max-width: 760px;
    margin: 0;
    color: #fff;
    font-size: clamp(34px, 5vw, 60px);
    line-height: 1.02;
    letter-spacing: -.035em;
}

.alpebus-home-lead {
    max-width: 720px;
    margin: 15px 0 24px;
    color: rgba(255,255,255,.88);
    font-size: clamp(16px, 2vw, 20px);
    line-height: 1.45;
}

.alpebus-home-search {
    max-width: 980px;
}

.alpebus-home-search .alpebus-trip-filters {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto;
    gap: 10px;
    margin: 0;
    padding: 10px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 16px 35px rgba(0,0,0,.14);
}

.alpebus-home-search .alpebus-trip-filter {
    min-width: 0;
    margin: 0;
    padding: 7px 12px;
    border: 0;
}

.alpebus-home-search .alpebus-trip-filter + .alpebus-trip-filter {
    border-left: 1px solid var(--alpe-home-line);
}

.alpebus-home-search .alpebus-trip-filter > span {
    display: block;
    margin-bottom: 2px;
    color: #6b7d89;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .09em;
}

.alpebus-home-search .alpebus-trip-filter select {
    width: 100%;
    min-width: 0;
    height: 35px;
    padding: 0 30px 0 0;
    border: 0 !important;
    background-color: transparent;
    box-shadow: none !important;
    color: var(--alpe-home-ink);
    font-size: 15px;
    font-weight: 750;
}

.alpebus-home-search .alpebus-trip-filter-actions {
    display: flex;
    align-items: stretch;
    gap: 8px;
}

.alpebus-home-search .alpebus-trip-filter-actions button {
    min-width: 132px;
    min-height: 50px;
    margin: 0;
    padding: 0 20px;
    border: 0;
    border-radius: 12px;
    background: var(--alpe-home-coral);
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}

.alpebus-home-search .alpebus-trip-filter-actions a {
    display: flex;
    align-items: center;
    padding: 0 8px;
    color: var(--alpe-home-blue);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.alpebus-home-assurance {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 15px;
    color: rgba(255,255,255,.78);
    font-size: 12px;
}

.alpebus-home-assurance span::before {
    content: "✓";
    margin-right: 6px;
    color: #ff9c83;
    font-weight: 900;
}

.alpebus-home-quick,
.alpebus-home-results {
    padding-top: 34px;
    padding-bottom: 34px;
}

.alpebus-home-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.alpebus-home-section-kicker {
    color: var(--alpe-home-coral);
}

.alpebus-home-section-head h2 {
    margin: 0;
    color: var(--alpe-home-blue);
    font-size: clamp(25px, 3vw, 38px);
    line-height: 1.08;
    letter-spacing: -.025em;
}

.alpebus-home-reset {
    flex: 0 0 auto;
    color: var(--alpe-home-coral);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.alpebus-home-filter-group + .alpebus-home-filter-group {
    margin-top: 14px;
}

.alpebus-home-filter-label {
    display: block;
    margin-bottom: 7px;
    color: var(--alpe-home-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.alpebus-home-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.alpebus-home-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 7px 13px;
    border: 1px solid #bfcdd6;
    border-radius: 999px;
    background: transparent;
    color: var(--alpe-home-blue);
    font-size: 12px;
    font-weight: 750;
    line-height: 1.15;
    text-decoration: none;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}

.alpebus-home-chip:hover {
    border-color: var(--alpe-home-blue);
    background: #f5f8fa;
    color: var(--alpe-home-blue);
}

.alpebus-home-chip.is-active {
    border-color: var(--alpe-home-blue);
    background: var(--alpe-home-blue);
    color: #fff;
}

.alpebus-home-results {
    border-top: 1px solid var(--alpe-home-line);
}

.alpebus-home-section-head--results {
    align-items: center;
}

.alpebus-home-results-note {
    max-width: 360px;
    color: var(--alpe-home-muted);
    font-size: 12px;
    line-height: 1.4;
    text-align: right;
}

.alpebus-home-results #proximas-salidas {
    scroll-margin-top: 28px;
}

.alpebus-home-trust {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    margin-top: 8px;
    margin-bottom: 30px;
    border: 1px solid var(--alpe-home-line);
    border-radius: 16px;
    background: #f7f9fa;
    overflow: hidden;
}

.alpebus-home-trust > div {
    padding: 18px 20px;
}

.alpebus-home-trust > div + div {
    border-left: 1px solid var(--alpe-home-line);
}

.alpebus-home-trust strong,
.alpebus-home-trust span {
    display: block;
}

.alpebus-home-trust strong {
    color: var(--alpe-home-blue);
    font-size: 13px;
}

.alpebus-home-trust span {
    margin-top: 3px;
    color: var(--alpe-home-muted);
    font-size: 11px;
    line-height: 1.35;
}

.alpebus-home-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 18px;
    margin-bottom: 28px;
    padding-top: 18px;
    border-top: 1px solid var(--alpe-home-line);
}

.alpebus-home-links a {
    color: var(--alpe-home-muted);
    font-size: 11px;
    font-weight: 700;
    text-decoration: none;
}

.alpebus-home-links a:hover {
    color: var(--alpe-home-blue);
}

/* Evitar que estilos antiguos de la página contenedora añadan aire innecesario. */
.entry-content > .alpebus-home-shell {
    margin-top: 0;
    margin-bottom: 0;
}

@media (max-width: 900px) {
    .alpebus-home-hero {
        padding-top: 38px;
        padding-bottom: 32px;
    }

    .alpebus-home-search .alpebus-trip-filters {
        grid-template-columns: 1fr 1fr;
    }

    .alpebus-home-search .alpebus-trip-filter-actions {
        grid-column: 1 / -1;
    }

    .alpebus-home-search .alpebus-trip-filter-actions button {
        width: 100%;
    }

    .alpebus-home-trust {
        grid-template-columns: 1fr;
    }

    .alpebus-home-trust > div + div {
        border-top: 1px solid var(--alpe-home-line);
        border-left: 0;
    }
}

@media (max-width: 640px) {
    .alpebus-home-hero__inner,
    .alpebus-home-quick,
    .alpebus-home-results,
    .alpebus-home-trust,
    .alpebus-home-links {
        width: min(100% - 24px, 1180px);
    }

    .alpebus-home-hero {
        padding: 30px 0 26px;
    }

    .alpebus-home-lead {
        margin-top: 11px;
        margin-bottom: 18px;
    }

    .alpebus-home-search .alpebus-trip-filters {
        grid-template-columns: 1fr;
        padding: 8px;
        border-radius: 14px;
    }

    .alpebus-home-search .alpebus-trip-filter {
        padding: 7px 9px;
        border: 1px solid var(--alpe-home-line) !important;
        border-radius: 9px;
    }

    .alpebus-home-search .alpebus-trip-filter-actions {
        grid-column: auto;
    }

    .alpebus-home-search .alpebus-trip-filter-actions button {
        min-height: 46px;
    }

    .alpebus-home-assurance {
        gap: 5px 12px;
        margin-top: 11px;
    }

    .alpebus-home-quick,
    .alpebus-home-results {
        padding-top: 25px;
        padding-bottom: 25px;
    }

    .alpebus-home-section-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 7px;
        margin-bottom: 14px;
    }

    .alpebus-home-results-note {
        max-width: none;
        text-align: left;
    }

    .alpebus-home-chips {
        gap: 6px;
    }

    .alpebus-home-chip {
        min-height: 34px;
        padding: 6px 11px;
        font-size: 11px;
    }

    .alpebus-home-trust {
        margin-bottom: 22px;
    }

    .alpebus-home-trust > div {
        padding: 14px 16px;
    }
}


/* ==========================================================
   0.12.1 · PIE GLOBAL ALPEBUS
========================================================== */

.alpebus-global-footer {
    width: 100%;
    padding: 8px 0 4px;
    background: #fff;
}

.alpebus-global-footer .alpebus-home-links {
    margin-bottom: 8px;
}

.alpebus-global-footer__identity {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto 12px;
    color: #7b8a95;
    font-size: 10px;
    line-height: 1.3;
}

.alpebus-global-footer__identity strong {
    color: var(--alpe-blue, #123f5f);
    font-size: 10px;
    letter-spacing: .04em;
}

.alpebus-global-footer__identity span::before {
    content: "·";
    margin-right: 7px;
}


/* ==========================================================
   0.12.1 · CONTACTO [alpe_contacto]
========================================================== */

.alpebus-contact {
    width: min(1120px, calc(100% - 32px));
    margin: 0 auto;
    padding: 42px 0 48px;
    color: var(--alpe-ink, #183447);
}

.alpebus-contact__intro {
    max-width: 720px;
    margin-bottom: 24px;
}

.alpebus-contact__intro h1 {
    margin: 0;
    color: var(--alpe-blue, #123f5f);
    font-size: clamp(32px, 4vw, 48px);
    line-height: 1.04;
    letter-spacing: -.03em;
}

.alpebus-contact__intro p {
    margin: 11px 0 0;
    color: var(--alpe-muted, #687b89);
    font-size: 16px;
    line-height: 1.5;
}

.alpebus-contact__grid {
    display: grid;
    grid-template-columns: minmax(240px, .72fr) minmax(0, 1.5fr);
    gap: 22px;
    align-items: start;
}

.alpebus-contact__details {
    display: grid;
    gap: 10px;
}

.alpebus-contact-card {
    padding: 16px 17px;
    border: 1px solid var(--alpe-line, #dbe4ea);
    border-radius: 13px;
    background: #f7f9fa;
}

.alpebus-contact-card span,
.alpebus-contact-card strong,
.alpebus-contact-card small,
.alpebus-contact-card a {
    display: block;
}

.alpebus-contact-card span {
    margin-bottom: 4px;
    color: var(--alpe-muted, #687b89);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.alpebus-contact-card a,
.alpebus-contact-card strong {
    color: var(--alpe-blue, #123f5f);
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
}

.alpebus-contact-card small {
    margin-top: 3px;
    color: var(--alpe-muted, #687b89);
    font-size: 11px;
    line-height: 1.4;
}

.alpebus-contact-card--company {
    border-color: #cddce5;
    background: #eef5fa;
}

.alpebus-contact__form-wrap {
    padding: 22px;
    border: 1px solid var(--alpe-line, #dbe4ea);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(17,61,90,.05);
}

.alpebus-contact-form {
    display: grid;
    gap: 14px;
}

.alpebus-contact-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.alpebus-contact-form label > span:not(.screen-reader-text) {
    display: block;
    margin-bottom: 6px;
    color: var(--alpe-blue, #123f5f);
    font-size: 11px;
    font-weight: 800;
}

.alpebus-contact-form label > span small {
    color: var(--alpe-muted, #687b89);
    font-weight: 600;
}

.alpebus-contact-form input[type="text"],
.alpebus-contact-form input[type="email"],
.alpebus-contact-form input[type="tel"],
.alpebus-contact-form select,
.alpebus-contact-form textarea {
    width: 100%;
    min-width: 0;
    border: 1px solid #cbd7df;
    border-radius: 10px;
    background: #fff;
    color: var(--alpe-ink, #183447);
    box-shadow: none;
    font: inherit;
}

.alpebus-contact-form input[type="text"],
.alpebus-contact-form input[type="email"],
.alpebus-contact-form input[type="tel"],
.alpebus-contact-form select {
    min-height: 44px;
    padding: 8px 11px;
}

.alpebus-contact-form textarea {
    min-height: 128px;
    padding: 10px 11px;
    resize: vertical;
}

.alpebus-contact-form input:focus,
.alpebus-contact-form select:focus,
.alpebus-contact-form textarea:focus {
    outline: 2px solid rgba(18,63,95,.12);
    border-color: var(--alpe-blue, #123f5f);
}

.alpebus-contact-form__privacy {
    display: flex !important;
    align-items: flex-start;
    gap: 8px;
    color: var(--alpe-muted, #687b89);
    font-size: 11px;
    line-height: 1.4;
}

.alpebus-contact-form__privacy input {
    margin-top: 2px;
    flex: 0 0 auto;
}

.alpebus-contact-form__privacy span {
    margin: 0 !important;
    color: var(--alpe-muted, #687b89) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
}

.alpebus-contact-form__privacy a {
    color: var(--alpe-blue, #123f5f);
    font-weight: 800;
}

.alpebus-contact-form__legal {
    margin: -3px 0 0;
    color: #7b8a95;
    font-size: 10px;
    line-height: 1.45;
}

.alpebus-contact-form button[type="submit"] {
    justify-self: start;
    min-height: 44px;
    padding: 0 20px;
    border: 0;
    border-radius: 999px;
    background: var(--alpe-coral, #ef5a43);
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}

.alpebus-contact-form button[type="submit"]:hover {
    filter: brightness(.94);
}

.alpebus-contact-notice {
    margin-bottom: 14px;
    padding: 11px 13px;
    border-radius: 10px;
    font-size: 12px;
    line-height: 1.45;
}

.alpebus-contact-notice.is-success {
    background: #edf7f0;
    color: #2d6640;
}

.alpebus-contact-notice.is-error {
    background: #fff2ef;
    color: #803e32;
}

.alpebus-contact-notice ul {
    margin: 5px 0 0 18px;
}

.alpebus-contact-hp {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

@media (max-width: 820px) {
    .alpebus-contact {
        padding-top: 30px;
        padding-bottom: 34px;
    }

    .alpebus-contact__grid {
        grid-template-columns: 1fr;
    }

    .alpebus-contact__details {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 560px) {
    .alpebus-contact {
        width: min(100% - 24px, 1120px);
        padding-top: 24px;
    }

    .alpebus-contact__details,
    .alpebus-contact-form__row {
        grid-template-columns: 1fr;
    }

    .alpebus-contact__form-wrap {
        padding: 15px;
    }

    .alpebus-contact-form button[type="submit"] {
        width: 100%;
    }

    .alpebus-global-footer__identity {
        flex-direction: column;
        gap: 2px;
        text-align: center;
    }

    .alpebus-global-footer__identity span::before {
        display: none;
    }
}


/* ==========================================================
   0.12.2 · PREGUNTAS FRECUENTES [alpe_faq]
========================================================== */

.alpebus-faq {
    width: min(980px, calc(100% - 32px));
    margin: 0 auto;
    padding: 42px 0 48px;
    color: var(--alpe-ink, #183447);
}

.alpebus-faq__intro {
    max-width: 720px;
    margin-bottom: 24px;
}

.alpebus-faq__intro h1 {
    margin: 0;
    color: var(--alpe-blue, #123f5f);
    font-size: clamp(32px, 4vw, 48px);
    line-height: 1.04;
    letter-spacing: -.03em;
}

.alpebus-faq__intro p {
    margin: 11px 0 0;
    color: var(--alpe-muted, #687b89);
    font-size: 16px;
    line-height: 1.5;
}

.alpebus-faq__list {
    overflow: hidden;
    border: 1px solid var(--alpe-line, #dbe4ea);
    border-radius: 16px;
    background: #fff;
}

.alpebus-faq__item {
    margin: 0;
    border: 0;
}

.alpebus-faq__item + .alpebus-faq__item {
    border-top: 1px solid var(--alpe-line, #dbe4ea);
}

.alpebus-faq__item summary {
    position: relative;
    display: grid;
    grid-template-columns: 150px minmax(0,1fr) 22px;
    gap: 16px;
    align-items: center;
    min-height: 64px;
    padding: 14px 18px;
    list-style: none;
    cursor: pointer;
}

.alpebus-faq__item summary::-webkit-details-marker {
    display: none;
}

.alpebus-faq__category {
    color: var(--alpe-coral, #ef5a43);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .07em;
}

.alpebus-faq__item summary strong {
    color: var(--alpe-blue, #123f5f);
    font-size: 14px;
    line-height: 1.35;
}

.alpebus-faq__plus {
    position: relative;
    width: 20px;
    height: 20px;
}

.alpebus-faq__plus::before,
.alpebus-faq__plus::after {
    content: "";
    position: absolute;
    top: 9px;
    left: 4px;
    width: 12px;
    height: 2px;
    border-radius: 2px;
    background: var(--alpe-blue, #123f5f);
    transition: transform .18s ease;
}

.alpebus-faq__plus::after {
    transform: rotate(90deg);
}

.alpebus-faq__item[open] .alpebus-faq__plus::after {
    transform: rotate(0deg);
}

.alpebus-faq__item[open] summary {
    background: #f7f9fa;
}

.alpebus-faq__answer {
    padding: 0 56px 17px 184px;
}

.alpebus-faq__answer p {
    margin: 0;
    color: var(--alpe-muted, #687b89);
    font-size: 13px;
    line-height: 1.55;
}

.alpebus-faq__answer a {
    display: inline-block;
    margin-top: 9px;
    color: var(--alpe-blue, #123f5f);
    font-size: 12px;
    font-weight: 800;
}

.alpebus-faq__help {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 18px;
    padding: 16px 18px;
    border-radius: 14px;
    background: #eef5fa;
}

.alpebus-faq__help span,
.alpebus-faq__help strong {
    display: block;
}

.alpebus-faq__help span {
    color: var(--alpe-muted, #687b89);
    font-size: 11px;
}

.alpebus-faq__help strong {
    margin-top: 2px;
    color: var(--alpe-blue, #123f5f);
    font-size: 15px;
}

.alpebus-faq__help a {
    flex: 0 0 auto;
    min-height: 38px;
    padding: 9px 14px;
    border-radius: 999px;
    background: var(--alpe-blue, #123f5f);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
}

@media (max-width: 700px) {
    .alpebus-faq {
        width: min(100% - 24px, 980px);
        padding-top: 28px;
        padding-bottom: 34px;
    }

    .alpebus-faq__item summary {
        grid-template-columns: minmax(0,1fr) 22px;
        gap: 5px 12px;
        padding: 13px 14px;
    }

    .alpebus-faq__category {
        grid-column: 1;
    }

    .alpebus-faq__item summary strong {
        grid-column: 1;
    }

    .alpebus-faq__plus {
        grid-column: 2;
        grid-row: 1 / span 2;
    }

    .alpebus-faq__answer {
        padding: 0 46px 15px 14px;
    }

    .alpebus-faq__help {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .alpebus-faq__help a {
        width: 100%;
        text-align: center;
    }
}


/* ==========================================================
   0.12.3 · PÁGINAS LEGALES
========================================================== */

.alpebus-legal {
    width: min(980px, calc(100% - 32px));
    margin: 0 auto;
    padding: 42px 0 48px;
    color: var(--alpe-ink, #183447);
}

.alpebus-legal__header {
    max-width: 760px;
    margin-bottom: 22px;
}

.alpebus-legal__header h1 {
    margin: 0;
    color: var(--alpe-blue, #123f5f);
    font-size: clamp(32px, 4vw, 48px);
    line-height: 1.04;
    letter-spacing: -.03em;
}

.alpebus-legal__header > p {
    margin: 11px 0 0;
    color: var(--alpe-muted, #687b89);
    font-size: 15px;
    line-height: 1.55;
}

.alpebus-legal__notice {
    margin-bottom: 18px;
    padding: 12px 14px;
    border: 1px solid #ecd8aa;
    border-radius: 11px;
    background: #fff9e9;
    color: #725c2a;
    font-size: 11px;
    line-height: 1.5;
}

.alpebus-legal__content {
    overflow: hidden;
    border: 1px solid var(--alpe-line, #dbe4ea);
    border-radius: 16px;
    background: #fff;
}

.alpebus-legal__section {
    display: grid;
    grid-template-columns: minmax(210px, .48fr) minmax(0, 1.52fr);
    gap: 26px;
    padding: 20px 22px;
}

.alpebus-legal__section + .alpebus-legal__section {
    border-top: 1px solid var(--alpe-line, #dbe4ea);
}

.alpebus-legal__section h2 {
    margin: 0;
    color: var(--alpe-blue, #123f5f);
    font-size: 14px;
    line-height: 1.35;
}

.alpebus-legal__text {
    color: var(--alpe-muted, #687b89);
    font-size: 12px;
    line-height: 1.6;
}

.alpebus-legal__text p {
    margin: 0 0 9px;
}

.alpebus-legal__text p:last-child {
    margin-bottom: 0;
}

.alpebus-legal__text ul {
    margin: 0 0 10px 18px;
}

.alpebus-legal__text li + li {
    margin-top: 5px;
}

.alpebus-legal__text strong {
    color: var(--alpe-ink, #183447);
}

.alpebus-legal__updated {
    margin-top: 13px;
    color: #8b99a3;
    font-size: 10px;
    text-align: right;
}

.alpebus-legal-table-wrap {
    width: 100%;
    margin: 9px 0 12px;
    overflow-x: auto;
    border: 1px solid var(--alpe-line, #dbe4ea);
    border-radius: 10px;
}

.alpebus-legal-table {
    width: 100%;
    min-width: 620px;
    margin: 0;
    border-collapse: collapse;
    background: #fff;
    font-size: 11px;
}

.alpebus-legal-table th,
.alpebus-legal-table td {
    padding: 9px 10px;
    border-bottom: 1px solid var(--alpe-line, #dbe4ea);
    text-align: left;
    vertical-align: top;
}

.alpebus-legal-table tr:last-child td {
    border-bottom: 0;
}

.alpebus-legal-table th {
    background: #f5f8fa;
    color: var(--alpe-blue, #123f5f);
    font-size: 10px;
}

.alpebus-legal-table code {
    color: var(--alpe-blue, #123f5f);
    font-size: 10px;
}

@media (max-width: 720px) {
    .alpebus-legal {
        width: min(100% - 24px, 980px);
        padding-top: 28px;
        padding-bottom: 34px;
    }

    .alpebus-legal__section {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 16px 15px;
    }

    .alpebus-legal__section h2 {
        font-size: 13px;
    }

    .alpebus-legal__updated {
        text-align: left;
    }
}


/* ==========================================================
   0.12.4 · VIAJES PROMOCIONALES / SOLO OFICINA
========================================================== */

.alpebus-trip-card--office {
    border-color: #e5d4bd;
}

.alpebus-trip-card--office .alpebus-trip-card__image {
    background: #f5f1e9;
}

.alpebus-trip-card__office-badge {
    position: absolute;
    top: 11px;
    right: 11px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    min-height: 27px;
    padding: 5px 9px;
    border-radius: 999px;
    background: #7b3d79;
    color: #fff;
    box-shadow: 0 3px 10px rgba(0,0,0,.14);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .04em;
}

.alpebus-trip-card--office .alpebus-trip-card__type strong {
    color: #7b3d79;
    font-weight: 900;
}

.alpebus-trip-card--office .alpebus-trip-card__button {
    background: #7b3d79;
}

.alpebus-trip-card--office .alpebus-trip-card__button:hover {
    filter: brightness(.94);
}

.alpebus-trip-card__consult {
    color: #7b3d79;
    font-weight: 900;
}


/* Ficha individual */
.alpebus-office-promo {
    margin: 8px 0 20px;
    padding: 18px 19px;
    border: 1px solid #d9c6d8;
    border-left: 5px solid #7b3d79;
    border-radius: 14px;
    background: #fbf7fb;
    color: var(--alpe-ink, #183447);
}

.alpebus-office-promo__eyebrow {
    display: block;
    margin-bottom: 5px;
    color: #7b3d79;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .09em;
}

.alpebus-office-promo h2 {
    margin: 0;
    color: var(--alpe-blue, #123f5f);
    font-size: 21px;
    line-height: 1.18;
}

.alpebus-office-promo > p {
    margin: 8px 0 0;
    color: var(--alpe-muted, #687b89);
    font-size: 13px;
    line-height: 1.5;
}

.alpebus-office-promo__departures {
    margin-top: 11px;
    padding: 9px 11px;
    border-radius: 9px;
    background: #fff;
    color: var(--alpe-muted, #687b89);
    font-size: 12px;
}

.alpebus-office-promo__departures strong {
    color: var(--alpe-blue, #123f5f);
}

.alpebus-office-promo__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 13px;
}

.alpebus-office-promo__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 14px;
    border-radius: 999px;
    color: #fff;
    font-size: 11px;
    font-weight: 850;
    line-height: 1.2;
    text-decoration: none;
}

.alpebus-office-promo__button.is-whatsapp {
    background: #267a48;
}

.alpebus-office-promo__button.is-phone {
    background: var(--alpe-blue, #123f5f);
}

.alpebus-office-promo__button.is-secondary {
    border: 1px solid #c7d3da;
    background: #fff;
    color: var(--alpe-blue, #123f5f);
}

.alpebus-office-promo > small {
    display: block;
    margin-top: 10px;
    color: #7b8a95;
    font-size: 10px;
    line-height: 1.4;
}

@media (max-width: 560px) {
    .alpebus-office-promo {
        padding: 15px;
    }

    .alpebus-office-promo h2 {
        font-size: 18px;
    }

    .alpebus-office-promo__actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .alpebus-office-promo__button {
        width: 100%;
    }
}


/* 0.12.5 · Rango de fechas de promociones */
.alpebus-office-promo__date {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    margin-top: 9px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #fff;
    color: #7b3d79;
    box-shadow: inset 0 0 0 1px #decfdd;
    font-size: 12px;
    font-weight: 900;
}


/* ==========================================================
   0.12.6 · MÁRGENES DE FICHA DE VIAJE
   Evita que breadcrumb, producto y descripción toquen los bordes
========================================================== */

body.single-product .site-content {
    width: calc(100% - 48px) !important;
    max-width: 1680px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Un poco de aire antes de la descripción / pestañas */
body.single-product .woocommerce-tabs {
    margin-top: 24px !important;
}

/* Texto largo más cómodo de leer */
body.single-product .woocommerce-Tabs-panel {
    padding-left: 4px !important;
    padding-right: 4px !important;
}

@media (max-width: 900px) {
    body.single-product .site-content {
        width: calc(100% - 32px) !important;
    }
}

@media (max-width: 600px) {
    body.single-product .site-content {
        width: calc(100% - 20px) !important;
    }

    body.single-product .woocommerce-tabs {
        margin-top: 16px !important;
    }
}


/* ==========================================================
   0.12.8 · INFORMACIÓN DE PROMOCIÓN EN COLUMNA DERECHA
========================================================== */

.single-product div.product .summary .alpebus-trip-information--office {
    clear: none;
    width: 100%;
    margin: 18px 0 8px;
    padding: 18px 0 0;
    border-top: 1px solid var(--alpe-line);
}

.single-product div.product .summary .alpebus-trip-information--office h2 {
    margin: 0 0 10px !important;
    font-size: 20px !important;
    line-height: 1.2 !important;
}

.single-product div.product .summary .alpebus-trip-information--office .alpebus-trip-information__description {
    font-size: 13px;
    line-height: 1.55;
}

.single-product div.product .summary .alpebus-trip-information--office .alpebus-trip-information__description p {
    margin-top: 0;
    margin-bottom: 10px;
}

.single-product div.product .summary .alpebus-trip-information--office .alpebus-trip-information__details {
    margin-top: 12px;
}

.single-product div.product .summary .alpebus-trip-information--office .alpebus-trip-information__row {
    grid-template-columns: minmax(105px, .34fr) minmax(0, 1fr);
    gap: 10px;
    padding: 8px 10px;
    font-size: 11px;
}

/* En móvil WooCommerce coloca primero la imagen y luego toda la columna
   de resumen. No usamos columnas internas adicionales. */
@media (max-width: 768px) {
    .single-product div.product .summary .alpebus-trip-information--office {
        margin-top: 16px;
        padding-top: 15px;
    }

    .single-product div.product .summary .alpebus-trip-information--office h2 {
        font-size: 19px !important;
    }

    .single-product div.product .summary .alpebus-trip-information--office .alpebus-trip-information__description {
        font-size: 14px;
        line-height: 1.6;
    }

    .single-product div.product .summary .alpebus-trip-information--office .alpebus-trip-information__row {
        grid-template-columns: 1fr;
        gap: 2px;
    }
}


/* ==========================================================
   0.12.11 · ESTÁNDAR VISUAL DE PÁGINAS INTERIORES
   La portada pasa a ser la referencia visual del resto del sitio.
========================================================== */

/* Hero compacto reutilizado en Viajes, Contacto, FAQ y legales */
.alpebus-interior-hero,
.alpebus-contact__intro,
.alpebus-faq__intro,
.alpebus-legal__header {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0 0 24px;
    padding: 28px 32px 30px;
    border-radius: 18px;
    background: linear-gradient(118deg, var(--alpe-blue-dark), var(--alpe-blue));
    box-shadow: 0 12px 30px rgba(17, 53, 76, .10);
}

.alpebus-interior-hero .alpebus-home-section-kicker,
.alpebus-contact__intro .alpebus-home-section-kicker,
.alpebus-faq__intro .alpebus-home-section-kicker,
.alpebus-legal__header .alpebus-home-section-kicker {
    color: #ff9a87;
}

.alpebus-interior-hero h1,
.alpebus-contact__intro h1,
.alpebus-faq__intro h1,
.alpebus-legal__header h1 {
    margin: 4px 0 0 !important;
    color: #fff !important;
    font-size: clamp(30px, 4vw, 46px) !important;
    line-height: 1.04 !important;
    letter-spacing: -.03em;
}

.alpebus-interior-hero p,
.alpebus-contact__intro p,
.alpebus-faq__intro p,
.alpebus-legal__header > p {
    max-width: 760px;
    margin: 10px 0 0 !important;
    color: rgba(255,255,255,.84) !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
}

.alpebus-viajes-intro {
    width: min(1180px, calc(100% - 32px));
    margin: 26px auto 18px;
}

/* Contacto, FAQ y legales: mismo ancho, ritmo y fondo de contenido */
.alpebus-contact,
.alpebus-faq,
.alpebus-legal {
    box-sizing: border-box;
    padding-top: 30px;
}

.alpebus-contact__form-wrap,
.alpebus-faq__list,
.alpebus-legal__content {
    box-shadow: 0 10px 28px rgba(17, 53, 76, .055);
}

/* Pie común: una separación visual equivalente en todas las páginas */
.alpebus-global-footer {
    border-top: 1px solid #e6ecef;
    background: #fafbfc;
}

/* ==========================================================
   ARCHIVOS / CATEGORÍAS WOO: que no parezcan una plantilla distinta
========================================================== */

body.tax-product_cat .site-content,
body.post-type-archive-product .site-content {
    box-sizing: border-box;
    width: min(1180px, calc(100% - 48px));
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-top: 26px;
    padding-bottom: 42px;
}

body.tax-product_cat #primary,
body.post-type-archive-product #primary {
    width: 100% !important;
}

body.tax-product_cat .woocommerce-breadcrumb,
body.post-type-archive-product .woocommerce-breadcrumb {
    margin: 0 0 12px !important;
    color: var(--alpe-muted);
    font-size: 11px;
}

body.tax-product_cat .woocommerce-products-header,
body.post-type-archive-product .woocommerce-products-header {
    margin: 0 0 22px;
    padding: 24px 28px 26px;
    border-radius: 17px;
    background: linear-gradient(118deg, var(--alpe-blue-dark), var(--alpe-blue));
    color: #fff;
}

body.tax-product_cat .woocommerce-products-header::before,
body.post-type-archive-product .woocommerce-products-header::before {
    content: "VIAJES Y EXCURSIONES";
    display: block;
    margin-bottom: 5px;
    color: #ff9a87;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .10em;
}

body.tax-product_cat .woocommerce-products-header__title,
body.post-type-archive-product .woocommerce-products-header__title {
    margin: 0 !important;
    color: #fff !important;
    font-size: clamp(30px, 4vw, 42px) !important;
    line-height: 1.05 !important;
    letter-spacing: -.025em;
}

body.tax-product_cat .term-description,
body.post-type-archive-product .term-description {
    max-width: 760px;
    margin-top: 9px;
    color: rgba(255,255,255,.84);
    font-size: 13px;
    line-height: 1.5;
}

/* En categorías el orden por precio/resultados aporta poco y rompe el diseño.
   La página principal de Viajes ya contiene los filtros útiles de ALPEBUS. */
body.tax-product_cat .woocommerce-result-count,
body.tax-product_cat .woocommerce-ordering {
    display: none !important;
}

body.tax-product_cat .woocommerce ul.products,
body.post-type-archive-product .woocommerce ul.products {
    width: 100%;
    margin-top: 0 !important;
}

body.tax-product_cat .woocommerce ul.products::before,
body.tax-product_cat .woocommerce ul.products::after,
body.post-type-archive-product .woocommerce ul.products::before,
body.post-type-archive-product .woocommerce ul.products::after {
    display: none !important;
    content: none !important;
}

/* Evita que los carteles verticales hagan tarjetas de 700-900 px de alto. */
body.tax-product_cat .woocommerce ul.products li.product img,
body.post-type-archive-product .woocommerce ul.products li.product img {
    width: 100% !important;
    height: 235px !important;
    margin: 0 0 16px !important;
    object-fit: cover !important;
    object-position: center 32% !important;
}

body.tax-product_cat .woocommerce ul.products li.product,
body.post-type-archive-product .woocommerce ul.products li.product {
    align-self: start;
}

/* ==========================================================
   FICHAS DE VIAJE
========================================================== */

body.single-product .woocommerce-breadcrumb {
    margin-bottom: 14px !important;
    color: var(--alpe-muted);
    font-size: 11px;
}

body.single-product div.product {
    border-radius: 0;
}

body.single-product .alpebus-trip-information,
body.single-product .alpebus-office-promo {
    box-shadow: 0 8px 24px rgba(17, 53, 76, .045);
}

/* ==========================================================
   RESPONSIVE
========================================================== */

@media (max-width: 900px) {
    body.tax-product_cat .site-content,
    body.post-type-archive-product .site-content {
        width: calc(100% - 32px);
    }

    .alpebus-interior-hero,
    .alpebus-contact__intro,
    .alpebus-faq__intro,
    .alpebus-legal__header {
        padding: 24px 24px 26px;
    }
}

@media (max-width: 600px) {
    .alpebus-viajes-intro {
        width: calc(100% - 24px);
        margin-top: 18px;
    }

    .alpebus-interior-hero,
    .alpebus-contact__intro,
    .alpebus-faq__intro,
    .alpebus-legal__header,
    body.tax-product_cat .woocommerce-products-header,
    body.post-type-archive-product .woocommerce-products-header {
        padding: 20px 18px 22px;
        border-radius: 14px;
    }

    body.tax-product_cat .site-content,
    body.post-type-archive-product .site-content {
        width: calc(100% - 20px);
        padding-top: 18px;
    }

    body.tax-product_cat .woocommerce ul.products li.product img,
    body.post-type-archive-product .woocommerce ul.products li.product img {
        height: 210px !important;
    }
}


/* ==========================================================
   0.12.12 · PULIDO PRE-CLIENTE
========================================================== */

/* SKU, categorías y etiquetas son útiles en administración, pero ensucian
   la ficha pública y duplican información ya resuelta por navegación/filtros. */
body.single-product .product_meta {
    display: none !important;
}

/* Unifica el fondo y el ritmo visual de páginas interiores. */
body.single-product .site-main,
body.tax-product_cat .site-main,
body.post-type-archive-product .site-main {
    margin-bottom: 0;
}

/* Evita separación excesiva antes del pie en fichas y archivos cortos. */
body.single-product .site-content,
body.tax-product_cat .site-content,
body.post-type-archive-product .site-content {
    min-height: 0;
}

/* Botones/links de archivo alineados con la portada. */
body.tax-product_cat .woocommerce ul.products li.product .button,
body.post-type-archive-product .woocommerce ul.products li.product .button {
    min-height: 40px;
    font-size: 13px;
}

/* Título de tarjeta Woo algo más contenido para que no compita con
   los títulos del catálogo principal. */
body.tax-product_cat .woocommerce ul.products li.product .woocommerce-loop-product__title,
body.post-type-archive-product .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 18px !important;
    line-height: 1.25 !important;
}

/* Móvil: evitar que hero y formulario queden pegados a los extremos. */
@media (max-width: 600px) {
    .alpebus-contact,
    .alpebus-faq,
    .alpebus-legal {
        width: calc(100% - 20px);
    }
}


/* ==========================================================
   0.12.13 · ARCHIVOS WOO AGRUPADOS COMO VIAJES ALPEBUS
========================================================== */
body.post-type-archive-product .alpebus-grouped-archive-primary,
body.tax-product_cat .alpebus-grouped-archive-primary,
body.tax-product_tag .alpebus-grouped-archive-primary,
body[class*="tax-pa_"] .alpebus-grouped-archive-primary {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

.alpebus-grouped-archive {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
    padding: 24px 0 44px;
}

.alpebus-grouped-archive__breadcrumb .woocommerce-breadcrumb {
    margin: 0 0 12px !important;
    color: var(--alpe-muted);
    font-size: 11px;
}

.alpebus-grouped-archive__hero {
    width: 100%;
    margin: 0 0 24px;
}

.alpebus-grouped-archive__description,
.alpebus-grouped-archive__description p {
    margin-bottom: 0;
    color: rgba(255,255,255,.86);
}

/* El template propio no necesita los márgenes del archive Woo clásico. */
body.post-type-archive-product .site-content,
body.tax-product_cat .site-content,
body.tax-product_tag .site-content,
body[class*="tax-pa_"] .site-content {
    width: 100% !important;
    max-width: none !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

@media (max-width: 900px) {
    .alpebus-grouped-archive {
        width: calc(100% - 32px);
    }
}

@media (max-width: 600px) {
    .alpebus-grouped-archive {
        width: calc(100% - 20px);
        padding-top: 18px;
    }
}


/* ==========================================================
   0.12.14 · FRANJA INTERIOR GLOBAL ALPEBUS
   Mismo remate visual en TODAS las páginas interiores:
   gris 20 px + línea azul 4 px + contenido blanco.
   La portada queda intacta.
========================================================== */

/* Base blanca y ancla para la franja decorativa */
body:not(.home):not(.front-page) .site-content {
    position: relative;
    background: #fff !important;
    padding-top: 0;
}

/* Franja gris de lado a lado, sin depender del ancho del contenedor */
body:not(.home):not(.front-page) .site-content::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 100vw;
    height: 20px;
    transform: translateX(-50%);
    background: #eef1f4;
    border-bottom: 4px solid #1f5d8c;
    z-index: 0;
    pointer-events: none;
}

/* El contenido público queda por encima de la franja */
body:not(.home):not(.front-page) .content-area,
body:not(.home):not(.front-page) .site-main,
body:not(.home):not(.front-page) .inside-article,
body:not(.home):not(.front-page) .woocommerce,
body:not(.home):not(.front-page) .alpebus-grouped-archive,
body:not(.home):not(.front-page) .alpebus-contact,
body:not(.home):not(.front-page) .alpebus-faq,
body:not(.home):not(.front-page) .alpebus-legal {
    position: relative;
    z-index: 1;
}

/* Los contenedores estructurales no vuelven a pintar gris */
body:not(.home):not(.front-page) .inside-article,
body:not(.home):not(.front-page) .woocommerce {
    background: transparent !important;
}

/* En las fichas de viaje mantenemos el blanco limpio */
body.single-product div.product {
    background: #fff !important;
    padding-top: 20px;
}

/* Breadcrumb Woo con el mismo comportamiento que la ficha elegida */
body:not(.home):not(.front-page) .woocommerce-breadcrumb {
    height: 78px;
    margin: 0 !important;
    display: flex;
    align-items: center;
    background: transparent !important;
    font-size: 13px;
}

/* Footer global y footer GeneratePress siguen en gris */
body:not(.home):not(.front-page) .alpebus-global-footer,
body:not(.home):not(.front-page) .site-footer,
body:not(.home):not(.front-page) .footer-widgets,
body:not(.home):not(.front-page) .site-info {
    background: #eef1f4 !important;
}

/* Evita una posible barra horizontal por el 100vw en algunos navegadores */
html,
body {
    overflow-x: clip;
}

/* En móvil mantenemos exactamente la misma banda:
   20 px gris + 4 px azul, de borde a borde. */
@media (max-width: 768px) {
    body:not(.home):not(.front-page) .site-content::before {
        height: 20px;
        border-bottom-width: 4px;
    }
}


/* ==========================================================
   0.12.15 · FRANJA TAMBIÉN EN PORTADA
   La portada muestra la misma transición:
   banda gris + línea azul justo antes del contenido.
========================================================== */

/* Portada: reservamos el hueco para que la banda se vea
   y no quede tapada por el hero azul */
body.home .site-content,
body.front-page .site-content {
    position: relative;
    background: #fff !important;
    padding-top: 24px !important; /* 20 px gris + 4 px azul */
}

/* La banda en portada también va de borde a borde */
body.home .site-content::before,
body.front-page .site-content::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 100vw;
    height: 20px;
    transform: translateX(-50%);
    background: #eef1f4;
    border-bottom: 4px solid #1f5d8c;
    z-index: 0;
    pointer-events: none;
}

/* En portada el contenido también debe ir por encima */
body.home .content-area,
body.home .site-main,
body.home .inside-article,
body.home .woocommerce,
body.front-page .content-area,
body.front-page .site-main,
body.front-page .inside-article,
body.front-page .woocommerce {
    position: relative;
    z-index: 1;
}

/* El pie sigue en gris también en portada */
body.home .alpebus-global-footer,
body.home .site-footer,
body.home .footer-widgets,
body.home .site-info,
body.front-page .alpebus-global-footer,
body.front-page .site-footer,
body.front-page .footer-widgets,
body.front-page .site-info {
    background: #eef1f4 !important;
}


/* ==========================================================
   0.12.16 · DESCRIPCIÓN CORTA = TEXTO DE TARJETA
========================================================== */

.alpebus-trip-card__footer-copy{
    flex:1 1 auto;
    min-width:0;
}

.alpebus-trip-card__short-description{
    margin-top:7px;
    max-width:270px;
    color:var(--alpe-muted);
    font-size:12px;
    line-height:1.42;
    font-weight:400;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    overflow:hidden;
}

.alpebus-trip-card__footer-actions{
    flex:0 0 auto;
    align-self:flex-start;
}

/* En móvil dejamos algo más de ancho al texto comercial. */
@media (max-width:640px){
    .alpebus-trip-card__short-description{
        max-width:none;
    }
}


/* ==========================================================
   0.12.17 · TARJETA: PRECIO/BOTÓN + SEPARADOR + DESCRIPCIÓN
========================================================== */

.alpebus-trip-card__footer{
    display:block !important;
    padding-top:0;
}

/* La primera línea separadora sigue siendo la que ya delimita
   itinerarios/salidas del bloque de compra. */
.alpebus-trip-card__footer-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    width:100%;
}

.alpebus-trip-card__price{
    flex:1 1 auto;
    min-width:0;
}

.alpebus-trip-card__footer-actions{
    flex:0 0 auto;
    align-self:center;
}

/* Segunda línea separadora, justo bajo precio + botón */
.alpebus-trip-card__short-separator{
    width:100%;
    border-top:1px solid #d9e1e8;
    margin:14px 0 10px;
}

/* Descripción corta: ocupa todo el ancho útil de la tarjeta */
.alpebus-trip-card__short-description{
    width:100%;
    max-width:none !important;
    margin:0 !important;
    color:var(--alpe-muted);
    font-size:12px;
    line-height:1.45;
    font-weight:400;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    overflow:hidden;
}

/* Eliminamos el antiguo comportamiento en columna */
.alpebus-trip-card__footer-copy{
    display:contents;
}

@media (max-width:640px){
    .alpebus-trip-card__footer-row{
        gap:10px;
    }

    .alpebus-trip-card__short-description{
        font-size:12px;
        -webkit-line-clamp:4;
    }
}


/* ==========================================================
   0.12.18 · AIRE ENTRE SEPARADOR SUPERIOR Y PRECIO/BOTÓN
========================================================== */

.alpebus-trip-card__footer-row{
    padding-top:14px;
}

@media (max-width:640px){
    .alpebus-trip-card__footer-row{
        padding-top:12px;
    }
}


/* ==========================================================
   0.12.19 · IDENTIDAD VERDE ALPE
   Color principal tomado del SVG definitivo: #2b9644
========================================================== */

:root{
    --alpe-blue:#237a39;
    --alpe-blue-dark:#145526;
    --alpe-coral:#2b9644;
    --alpe-ink:#1d2921;
    --alpe-muted:#607066;
    --alpe-line:#d8e5db;
    --alpe-soft:#eef7f0;

    --alpe-green:#2b9644;
    --alpe-green-dark:#237a39;
    --alpe-green-deep:#145526;
    --alpe-green-light:#edf7ef;
    --alpe-green-line:#cfe3d4;
}

/* Navegación principal */
.main-navigation .main-nav ul li.current-menu-item > a,
.main-navigation .main-nav ul li.current_page_item > a,
.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li a:focus{
    color:var(--alpe-green) !important;
}

/* Franja corporativa que separa cabecera y contenido */
body:not(.home):not(.front-page) .site-content::before,
body.home .site-content::before,
body.front-page .site-content::before{
    border-bottom-color:var(--alpe-green) !important;
}

/* Hero principal */
.alpebus-home-hero{
    background:
        radial-gradient(circle at 85% 20%, rgba(255,255,255,.11), transparent 32%),
        linear-gradient(135deg, var(--alpe-green-deep) 0%, var(--alpe-green) 100%) !important;
}

.alpebus-home-kicker,
.alpebus-home-assurance span::before{
    color:#c8edcf !important;
}

/* Hero de páginas interiores */
.alpebus-inner-hero,
.alpebus-archive-hero{
    background:
        radial-gradient(circle at 86% 18%, rgba(255,255,255,.10), transparent 34%),
        linear-gradient(135deg, var(--alpe-green-deep) 0%, var(--alpe-green-dark) 100%) !important;
}

/* Botones principales ALPE */
.alpebus-trip-card__button,
.alpebus-home-search .alpebus-trip-filter-actions button,
.alpebus-contact button,
.alpebus-contact input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit{
    background:var(--alpe-green) !important;
    color:#fff !important;
}

.alpebus-trip-card__button:hover,
.alpebus-home-search .alpebus-trip-filter-actions button:hover,
.alpebus-contact button:hover,
.alpebus-contact input[type="submit"]:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover{
    background:var(--alpe-green-dark) !important;
    color:#fff !important;
}

/* Chips/filtros activos */
.alpebus-home-chip.is-active,
.alpebus-locality-choice.is-selected{
    border-color:var(--alpe-green-dark) !important;
    background:var(--alpe-green-dark) !important;
    color:#fff !important;
}

/* Viajes solo oficina: mantenemos diferencia funcional,
   pero dentro de la misma familia visual */
.alpebus-office-promo{
    border-color:var(--alpe-green-line) !important;
    border-left-color:var(--alpe-green-dark) !important;
    background:#f7fbf8 !important;
}
.alpebus-office-promo__eyebrow,
.alpebus-office-promo__date{
    color:var(--alpe-green-dark) !important;
}
.alpebus-office-promo__date{
    box-shadow:inset 0 0 0 1px var(--alpe-green-line) !important;
}
.alpebus-office-promo__button.is-whatsapp,
.alpebus-office-promo__button.is-phone{
    background:var(--alpe-green-dark) !important;
}
.alpebus-office-promo__button.is-secondary{
    border-color:var(--alpe-green-line) !important;
    color:var(--alpe-green-dark) !important;
}

/* ==========================================================
   SELECTOR DE AUTOBÚS MÁS EVIDENTE
========================================================== */

.alpebus-selected-trip-context{
    margin-top:16px !important;
    padding:14px 15px !important;
    border-left:5px solid var(--alpe-green) !important;
    background:var(--alpe-green-light) !important;
}
.alpebus-selected-trip-context__label{
    color:var(--alpe-green-dark) !important;
}
.alpebus-selected-trip-context strong{
    color:var(--alpe-green-deep) !important;
    font-size:15px !important;
}
.alpebus-selected-trip-context small{
    color:#476453 !important;
    font-weight:700;
}

.alpebus-single-route{
    margin-top:14px !important;
    border-color:var(--alpe-green-line) !important;
    border-radius:14px !important;
}

.alpebus-single-route__head{
    padding:12px 14px !important;
    background:#f3f8f4 !important;
}
.alpebus-single-route__head > span{
    margin-bottom:3px;
    color:var(--alpe-green) !important;
    font-size:9px;
    font-weight:900;
    letter-spacing:.09em;
}
.alpebus-single-route__head strong{
    color:var(--alpe-green-deep) !important;
    font-size:14px !important;
}

.alpebus-bus-selection-heading{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:10px;
    padding:12px 14px 4px;
    background:#fff;
}
.alpebus-bus-selection-heading strong{
    color:var(--alpe-ink);
    font-size:14px;
}
.alpebus-bus-selection-heading span{
    color:var(--alpe-muted);
    font-size:11px;
}

.alpebus-single-route__buses{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px !important;
    padding:10px 12px 14px;
    background:#fff;
}

.alpebus-single-bus{
    display:grid !important;
    grid-template-columns:auto minmax(0,1fr) auto !important;
    align-items:center;
    gap:11px !important;
    min-height:76px;
    padding:11px 12px !important;
    border:1px solid var(--alpe-green-line) !important;
    border-radius:12px;
    background:#fff !important;
    transition:border-color .16s ease, box-shadow .16s ease, background .16s ease, transform .16s ease;
}
.alpebus-single-bus:first-child{
    border-top:1px solid var(--alpe-green-line) !important;
}
.alpebus-single-bus:not(.is-soldout):not(.is-current):hover{
    border-color:var(--alpe-green) !important;
    box-shadow:0 5px 16px rgba(43,150,68,.10);
    transform:translateY(-1px);
}

.alpebus-single-bus__marker{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:48px;
    height:48px;
    border-radius:11px;
    background:#f0f7f2;
    color:var(--alpe-green-dark);
    line-height:1;
}
.alpebus-single-bus__marker span{
    margin-bottom:2px;
    color:#66806d !important;
    font-size:8px !important;
    font-weight:900;
    letter-spacing:.08em;
}
.alpebus-single-bus__marker strong{
    color:var(--alpe-green-dark) !important;
    font-size:20px !important;
    line-height:1 !important;
}

.alpebus-single-bus__copy{
    min-width:0;
}
.alpebus-single-bus__copy strong{
    color:var(--alpe-ink) !important;
    font-size:14px !important;
}
.alpebus-single-bus__copy span{
    color:var(--alpe-muted) !important;
    font-size:11px !important;
}

.alpebus-single-bus__button{
    min-height:36px !important;
    padding:8px 12px !important;
    background:var(--alpe-green) !important;
    font-size:11px !important;
}
.alpebus-single-bus__button:hover{
    background:var(--alpe-green-dark) !important;
}

.alpebus-single-bus.is-current{
    border:2px solid var(--alpe-green) !important;
    background:var(--alpe-green-light) !important;
    box-shadow:0 6px 18px rgba(43,150,68,.12) !important;
}
.alpebus-single-bus.is-current .alpebus-single-bus__marker{
    background:var(--alpe-green) !important;
}
.alpebus-single-bus.is-current .alpebus-single-bus__marker span,
.alpebus-single-bus.is-current .alpebus-single-bus__marker strong{
    color:#fff !important;
}
.alpebus-single-bus.is-current .alpebus-single-bus__copy strong{
    color:var(--alpe-green-deep) !important;
}
.alpebus-single-bus.is-current .alpebus-single-bus__copy span{
    color:#476453 !important;
}
.alpebus-single-bus__button.is-current{
    background:var(--alpe-green-dark) !important;
    color:#fff !important;
}

.alpebus-single-bus.is-soldout{
    opacity:.64;
    background:#f5f6f5 !important;
    border-color:#dde2de !important;
}
.alpebus-single-bus.is-soldout .alpebus-single-bus__marker{
    background:#e9ecea !important;
    color:#77827a !important;
}
.alpebus-single-bus.is-soldout .alpebus-single-bus__marker span,
.alpebus-single-bus.is-soldout .alpebus-single-bus__marker strong{
    color:#77827a !important;
}

.alpebus-after-bus-note{
    margin-top:12px !important;
    padding:9px 11px;
    border-radius:9px;
    background:#f6f9f7;
}

/* Mantener la selección de localidad dentro de la misma identidad */
.alpebus-locality-choice:hover{
    border-color:var(--alpe-green) !important;
    color:var(--alpe-green-dark) !important;
}
.alpebus-locality-required{
    background:#f4f8f5 !important;
    color:#476453 !important;
}

/* Etiquetas y pequeños acentos que antes eran coral */
.alpebus-trip-card__type,
.alpebus-single-trip-switcher__eyebrow,
.alpebus-home-section-kicker{
    color:var(--alpe-green) !important;
}

@media(max-width:767px){
    .alpebus-bus-selection-heading{
        align-items:flex-start;
        flex-direction:column;
        gap:2px;
    }
    .alpebus-single-route__buses{
        grid-template-columns:1fr !important;
    }
}

@media(max-width:420px){
    .alpebus-single-bus{
        grid-template-columns:auto minmax(0,1fr) !important;
    }
    .alpebus-single-bus__button{
        grid-column:1 / -1;
        width:100%;
    }
}


/* ==========================================================
   0.12.20 · CIERRE DE IDENTIDAD ALPE / RAMÍREZ
========================================================== */

/* Footer: ALPE protagonista, Ramírez como respaldo empresarial */
.alpebus-global-footer__identity{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:14px !important;
    width:min(1180px,calc(100% - 32px)) !important;
    margin:0 auto 12px !important;
    color:#718077 !important;
}

.alpebus-global-footer__service{
    display:flex;
    align-items:center;
    gap:7px;
    min-width:0;
    font-size:10px;
    line-height:1.3;
}

.alpebus-global-footer__service strong{
    color:var(--alpe-green-dark,#237a39) !important;
    font-size:10px;
    letter-spacing:.04em;
}

.alpebus-global-footer__service span::before{
    content:"·";
    margin-right:7px;
}

.alpebus-global-footer__ramirez-logo{
    display:block;
    width:auto;
    height:31px;
    max-width:125px;
    object-fit:contain;
}

/* Anula el antiguo punto generado sobre el span de identidad */
.alpebus-global-footer__identity > span::before{
    content:none !important;
}

/* Solo oficina sigue siendo inequívoco, pero dentro de la familia verde */
.alpebus-trip-card--office{
    border-color:#cfe3d4 !important;
}
.alpebus-trip-card--office .alpebus-trip-card__image{
    background:#f3f8f4 !important;
}
.alpebus-trip-card__office-badge{
    background:#145526 !important;
}
.alpebus-trip-card--office .alpebus-trip-card__type strong,
.alpebus-trip-card__consult{
    color:#145526 !important;
}
.alpebus-trip-card--office .alpebus-trip-card__button{
    background:#145526 !important;
}

/* Carrito / checkout: eliminar el aspecto negro genérico de Woo Blocks */
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-cart .wc-block-components-button:not(.is-link),
body.woocommerce-checkout .wc-block-components-button:not(.is-link){
    border-color:var(--alpe-green,#2b9644) !important;
    background:var(--alpe-green,#2b9644) !important;
    color:#fff !important;
}

body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
body.woocommerce-cart .wc-block-components-button:not(.is-link):hover,
body.woocommerce-checkout .wc-block-components-button:not(.is-link):hover{
    background:var(--alpe-green-dark,#237a39) !important;
    color:#fff !important;
}

body.woocommerce-cart .wc-block-components-product-name,
body.woocommerce-checkout .wc-block-components-product-name,
body.woocommerce-cart a,
body.woocommerce-checkout a{
    color:var(--alpe-green-dark,#237a39);
}

body.woocommerce-checkout .wc-block-components-checkout-step__heading,
body.woocommerce-cart .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-item__label{
    color:var(--alpe-ink,#1d2921) !important;
}

/* Página de gracias / reserva confirmada */
body.woocommerce-order-received .alpebus-thankyou-reservation{
    border-color:#d4e4d7 !important;
}
body.woocommerce-order-received .alpebus-thankyou-reservation h2,
body.woocommerce-order-received .alpebus-thankyou-reservation h3{
    color:var(--alpe-green-deep,#145526) !important;
}

/* Móvil: Ramírez no debe apretar ni partir el pie */
@media(max-width:640px){
    .alpebus-global-footer__identity{
        flex-direction:column !important;
        gap:7px !important;
        text-align:center;
    }

    .alpebus-global-footer__service{
        justify-content:center;
        flex-wrap:wrap;
    }

    .alpebus-global-footer__ramirez-logo{
        height:27px;
        max-width:115px;
    }
}


/* ==========================================================
   0.12.21 · RAMÍREZ CONTROLADO EN FOOTER
   El SVG queda dentro de una caja física para impedir que reglas
   de Woo/GeneratePress lo amplíen en carrito o checkout.
========================================================== */

.alpebus-global-footer__ramirez-mark{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 112px !important;
    width:112px !important;
    height:48px !important;
    max-width:112px !important;
    max-height:48px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    line-height:0 !important;
}

.alpebus-global-footer__ramirez-mark > img.alpebus-global-footer__ramirez-logo{
    display:block !important;
    width:105px !important;
    height:auto !important;
    max-width:105px !important;
    max-height:46px !important;
    min-width:0 !important;
    min-height:0 !important;
    margin:0 auto !important;
    padding:0 !important;
    object-fit:contain !important;
    transform:none !important;
}

/* Woo Blocks aplica algunas reglas muy agresivas a las imágenes.
   Repetimos con contexto para carrito y finalizar compra. */
body.woocommerce-cart .alpebus-global-footer__ramirez-mark,
body.woocommerce-checkout .alpebus-global-footer__ramirez-mark{
    flex-basis:100px !important;
    width:100px !important;
    max-width:100px !important;
    height:44px !important;
    max-height:44px !important;
}

body.woocommerce-cart .alpebus-global-footer__ramirez-mark > img.alpebus-global-footer__ramirez-logo,
body.woocommerce-checkout .alpebus-global-footer__ramirez-mark > img.alpebus-global-footer__ramirez-logo{
    width:94px !important;
    max-width:94px !important;
    height:auto !important;
    max-height:42px !important;
}

@media(max-width:640px){
    .alpebus-global-footer__ramirez-mark{
        flex-basis:96px !important;
        width:96px !important;
        max-width:96px !important;
        height:42px !important;
        max-height:42px !important;
    }
    .alpebus-global-footer__ramirez-mark > img.alpebus-global-footer__ramirez-logo{
        width:90px !important;
        max-width:90px !important;
        max-height:40px !important;
    }
}


/* ==========================================================
   0.12.22 · PRESENTACIÓN CORPORATIVA + FOTOS + CARTELES ENTEROS
========================================================== */

/* PRESENTACIÓN PREVIA EN PORTADA */
.alpebus-home-intro{
    padding:44px 0 24px;
    background:#fff;
}
.alpebus-home-intro__inner,
.alpebus-home-intro__features,
.alpebus-home-fleet{
    width:min(1180px,calc(100% - 32px));
    margin-left:auto;
    margin-right:auto;
}
.alpebus-home-intro__inner{
    display:grid;
    grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);
    align-items:center;
    gap:42px;
}
.alpebus-home-intro__copy h1{
    max-width:680px;
    margin:0 0 18px;
    color:var(--alpe-green-deep,#145526);
    font-size:clamp(36px,4.4vw,58px);
    line-height:1.02;
    letter-spacing:-.04em;
}
.alpebus-home-intro__copy p{
    max-width:650px;
    margin:0 0 12px;
    color:#52645a;
    font-size:16px;
    line-height:1.62;
}
.alpebus-home-intro__support{
    font-size:14px !important;
}
.alpebus-home-intro__actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:22px;
}
.alpebus-home-intro__button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:10px 17px;
    border:1px solid #bdd8c4;
    border-radius:999px;
    background:#fff;
    color:var(--alpe-green-dark,#237a39);
    font-size:13px;
    font-weight:800;
    text-decoration:none;
}
.alpebus-home-intro__button.is-primary{
    border-color:var(--alpe-green,#2b9644);
    background:var(--alpe-green,#2b9644);
    color:#fff;
}
.alpebus-home-intro__button:hover{
    border-color:var(--alpe-green-dark,#237a39);
    background:#edf7ef;
    color:var(--alpe-green-dark,#237a39);
}
.alpebus-home-intro__button.is-primary:hover{
    background:var(--alpe-green-dark,#237a39);
    color:#fff;
}
.alpebus-home-intro__visual{
    position:relative;
    min-width:0;
}
.alpebus-home-intro__main-image{
    display:block;
    width:100%;
    height:360px;
    border-radius:22px;
    object-fit:cover;
    object-position:center 58%;
    box-shadow:0 20px 48px rgba(20,85,38,.14);
}
.alpebus-home-intro__mini{
    position:absolute;
    right:-12px;
    bottom:-18px;
    width:190px;
    padding:7px;
    border-radius:14px;
    background:#fff;
    box-shadow:0 14px 34px rgba(16,50,28,.18);
}
.alpebus-home-intro__mini img{
    display:block;
    width:100%;
    height:108px;
    border-radius:9px;
    object-fit:cover;
}
.alpebus-home-intro__mini span{
    display:block;
    padding:7px 4px 3px;
    color:var(--alpe-green-deep,#145526);
    font-size:11px;
    font-weight:800;
}
.alpebus-home-intro__features{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    margin-top:34px;
    border-top:1px solid #d7e5da;
    border-bottom:1px solid #d7e5da;
}
.alpebus-home-intro__features span{
    padding:13px 14px;
    color:#52645a;
    font-size:11px;
    font-weight:750;
    text-align:center;
}
.alpebus-home-intro__features span + span{
    border-left:1px solid #d7e5da;
}

/* El buscador sigue siendo protagonista, pero ya después de presentar la empresa. */
.alpebus-home-hero{
    margin-top:26px;
}

/* BLOQUE DE FLOTA / CONFIANZA */
.alpebus-home-fleet{
    margin-top:14px;
    margin-bottom:36px;
    padding-top:34px;
    border-top:1px solid var(--alpe-home-line,#dbe4ea);
    scroll-margin-top:30px;
}
.alpebus-home-fleet__head{
    max-width:760px;
    margin-bottom:20px;
}
.alpebus-home-fleet__head h2{
    margin:0 0 10px;
    color:var(--alpe-green-deep,#145526);
    font-size:clamp(27px,3vw,40px);
    line-height:1.08;
    letter-spacing:-.03em;
}
.alpebus-home-fleet__head p{
    margin:0;
    color:#607066;
    font-size:14px;
    line-height:1.55;
}
.alpebus-home-fleet__grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
}
.alpebus-home-fleet-card{
    overflow:hidden;
    border:1px solid #d4e4d7;
    border-radius:16px;
    background:#fff;
    box-shadow:0 10px 28px rgba(20,85,38,.06);
}
.alpebus-home-fleet-card img{
    display:block;
    width:100%;
    height:205px;
    object-fit:cover;
}
.alpebus-home-fleet-card:nth-child(2) img{
    object-position:center 62%;
}
.alpebus-home-fleet-card > div{
    padding:16px 17px 18px;
}
.alpebus-home-fleet-card strong,
.alpebus-home-fleet-card span{
    display:block;
}
.alpebus-home-fleet-card strong{
    color:var(--alpe-green-deep,#145526);
    font-size:15px;
}
.alpebus-home-fleet-card span{
    margin-top:5px;
    color:#607066;
    font-size:12px;
    line-height:1.45;
}

/* TARJETAS: EL CARTEL DEBE RECONOCERSE COMPLETO */
.alpebus-trip-card__image{
    height:275px !important;
    min-height:275px !important;
    padding:10px !important;
    background:#f3f7f4 !important;
}
.alpebus-trip-card__image img{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    object-position:center !important;
}

/* También para cualquier loop Woo residual que pudiera aparecer. */
body.tax-product_cat .woocommerce ul.products li.product img,
body.post-type-archive-product .woocommerce ul.products li.product img{
    width:100% !important;
    height:255px !important;
    padding:8px !important;
    margin:0 0 16px !important;
    background:#f3f7f4 !important;
    object-fit:contain !important;
    object-position:center !important;
}

/* FICHA: CARTEL COMPLETO EN LA IMAGEN PRINCIPAL */
.single-product .woocommerce-product-gallery__wrapper{
    background:#f4f7f5;
}
.single-product .woocommerce-product-gallery__image > a{
    display:flex !important;
    align-items:center;
    justify-content:center;
    min-height:420px;
    padding:10px;
    background:#f4f7f5;
}
.single-product .woocommerce-product-gallery__image img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    max-height:760px !important;
    margin:0 auto !important;
    object-fit:contain !important;
    object-position:center !important;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li{
    border:1px solid #dbe6dd;
    border-radius:7px;
    background:#f4f7f5;
    overflow:hidden;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs img{
    width:100% !important;
    height:92px !important;
    padding:4px;
    object-fit:contain !important;
    background:#f4f7f5;
}

@media(max-width:900px){
    .alpebus-home-intro__inner{
        grid-template-columns:1fr;
        gap:24px;
    }
    .alpebus-home-intro__visual{
        max-width:760px;
    }
    .alpebus-home-intro__features{
        grid-template-columns:repeat(2,1fr);
    }
    .alpebus-home-intro__features span:nth-child(3){
        border-left:0;
        border-top:1px solid #d7e5da;
    }
    .alpebus-home-intro__features span:nth-child(4){
        border-top:1px solid #d7e5da;
    }
    .alpebus-home-fleet__grid{
        grid-template-columns:1fr 1fr;
    }
    .alpebus-home-fleet-card:last-child{
        grid-column:1 / -1;
    }
}

@media(max-width:640px){
    .alpebus-home-intro{
        padding-top:28px;
    }
    .alpebus-home-intro__inner,
    .alpebus-home-intro__features,
    .alpebus-home-fleet{
        width:min(100% - 24px,1180px);
    }
    .alpebus-home-intro__copy h1{
        font-size:36px;
    }
    .alpebus-home-intro__copy p{
        font-size:14px;
    }
    .alpebus-home-intro__main-image{
        height:245px;
        border-radius:16px;
    }
    .alpebus-home-intro__mini{
        position:static;
        width:100%;
        margin-top:10px;
        padding:0;
        background:transparent;
        box-shadow:none;
    }
    .alpebus-home-intro__mini img{
        height:165px;
    }
    .alpebus-home-intro__features{
        grid-template-columns:1fr 1fr;
        margin-top:22px;
    }
    .alpebus-home-intro__features span{
        padding:11px 8px;
    }
    .alpebus-home-hero{
        margin-top:20px;
    }
    .alpebus-home-fleet__grid{
        grid-template-columns:1fr;
    }
    .alpebus-home-fleet-card:last-child{
        grid-column:auto;
    }
    .alpebus-home-fleet-card img{
        height:190px;
    }
    .alpebus-trip-card__image{
        height:245px !important;
        min-height:245px !important;
        padding:8px !important;
    }
    .single-product .woocommerce-product-gallery__image > a{
        min-height:280px;
        padding:6px;
    }
    .single-product .woocommerce-product-gallery__image img{
        max-height:70vh !important;
    }
}


/* 0.12.23 · Precio con tarifas diferenciadas */
.alpebus-fare-summary{
    display:inline-flex;
    flex-wrap:wrap;
    align-items:baseline;
    gap:4px;
    color:var(--alpe-muted,#607066);
    font-size:12px;
    line-height:1.35;
}

.alpebus-fare-summary strong{
    color:var(--alpe-ink,#1d2921);
    font-size:15px;
}

.alpebus-fare-summary__sep{
    margin:0 2px;
    color:#9aaca0;
}


/* ==========================================================
   0.12.25 · CARRITO CON TARIFAS MIXTAS
   No mostrar el precio medio por plaza: no representa ninguna tarifa real.
========================================================== */

/* WooCommerce Blocks: la propia línea "Tarifas" identifica una reserva mixta. */
body.woocommerce-cart .wc-block-cart-items__row:has([class*="product-details__tarifas"]) .wc-block-components-product-price,
body.woocommerce-cart .wc-block-cart-items__row:has([class*="product-details__tarifas"]) .wc-block-components-product-price__value{
    display:none !important;
}

/* El total real de la línea y el total del carrito permanecen visibles. */


/* ==========================================================
   0.12.26 · CHECKOUT CON TARIFAS MIXTAS
   La media interna tampoco se muestra en Finalizar compra.
========================================================== */

body.woocommerce-checkout .wc-block-components-order-summary-item:has([class*="product-details__asiento-"]) .wc-block-components-product-price,
body.woocommerce-checkout .wc-block-components-order-summary-item:has([class*="product-details__asiento-"]) .wc-block-components-product-price__value,
body.woocommerce-checkout .wc-block-components-order-summary-item__description:has([class*="product-details__asiento-"]) > .wc-block-components-product-price,
body.woocommerce-checkout .wc-block-components-order-summary-item__description:has([class*="product-details__asiento-"]) .wc-block-components-product-price{
    display:none !important;
}

/* Compatibilidad con reservas creadas con la versión anterior. */
body.woocommerce-checkout .wc-block-components-order-summary-item:has([class*="product-details__asientos"]) .wc-block-components-product-price,
body.woocommerce-checkout .wc-block-components-order-summary-item:has([class*="product-details__asientos"]) .wc-block-components-product-price__value{
    display:none !important;
}
