:root {
    --rubro-accent: #392481;
    --rubro-ink: #111827;
    --rubro-muted: #667085;
    --rubro-line: #e7e9f0;
    --rubro-soft: #f7f7fb;
    --rubro-white: #fff;
    --rubro-radius-xl: 32px;
    --rubro-radius-lg: 24px;
    --rubro-radius-md: 18px;
    --rubro-shadow: 0 20px 60px rgba(17, 24, 39, .08);
    --rubro-shadow-hover: 0 26px 70px rgba(17, 24, 39, .14);
}

.rubro-direct-page,
.rubro-direct-page * {
    box-sizing: border-box;
}

.rubro-direct-page {
    margin-top: 22px;
    min-height: 70vh;
    padding: 0 0 72px;
    background:
        radial-gradient(circle at 4% 8%, color-mix(in srgb, var(--rubro-accent) 8%, transparent), transparent 24rem),
        linear-gradient(180deg, #fff 0, #fafafd 32%, #f6f7fb 100%);
    color: var(--rubro-ink);
}

.rubro-shell {
    width: min(1380px, calc(100% - 34px));
    margin: 0 auto;
}

/* Empresa / portada ------------------------------------------------------- */
.company-hero {
    --company-hero-cover: none;
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: flex-end;
    min-height: 430px;
    overflow: hidden;
    border-radius: 34px;
    background:
        radial-gradient(circle at 85% 20%, rgba(255, 255, 255, .22), transparent 22rem),
        linear-gradient(130deg, color-mix(in srgb, var(--rubro-accent) 90%, #111827), color-mix(in srgb, var(--rubro-accent) 54%, #111827));
    box-shadow: 0 28px 90px rgba(17, 24, 39, .19);
}

.company-hero--has-cover {
    background-image: var(--company-hero-cover);
    background-position: center;
    background-size: cover;
}

.company-hero__veil {
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(5, 10, 25, .88) 0%, rgba(5, 10, 25, .64) 48%, rgba(5, 10, 25, .18) 100%),
        linear-gradient(0deg, rgba(5, 10, 25, .72) 0%, transparent 55%);
}

.company-hero:not(.company-hero--has-cover) .company-hero__veil {
    background:
        radial-gradient(circle at 82% 25%, rgba(255, 255, 255, .18), transparent 18rem),
        linear-gradient(90deg, rgba(5, 10, 25, .42), rgba(5, 10, 25, .08));
}

.company-hero__content {
    width: min(890px, 100%);
    padding: clamp(28px, 5vw, 64px);
    color: #fff;
}

.company-hero__brand {
    display: flex;
    align-items: flex-start;
    gap: 22px;
}

.company-hero__logo {
    display: grid;
    flex: 0 0 90px;
    place-items: center;
    width: 90px;
    height: 90px;
    overflow: hidden;
    border: 5px solid rgba(255, 255, 255, .82);
    border-radius: 25px;
    background: #fff;
    color: var(--rubro-accent);
    box-shadow: 0 16px 45px rgba(0, 0, 0, .25);
    font-size: 34px;
}

.company-hero__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 5px;
}

.company-hero__copy {
    min-width: 0;
}

.company-hero__eyebrow,
.experience-heading__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 11px;
    color: inherit;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.company-hero__eyebrow {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    backdrop-filter: blur(12px);
}

.company-hero h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(34px, 5vw, 64px);
    font-weight: 650;
    letter-spacing: -.045em;
    line-height: 1.03;
    text-wrap: balance;
}

.company-hero__copy p {
    max-width: 720px;
    margin: 17px 0 0;
    color: rgba(255, 255, 255, .83);
    font-size: clamp(14px, 1.4vw, 17px);
    line-height: 1.7;
}

.company-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 23px;
    color: rgba(255, 255, 255, .82);
    font-size: 13px;
}

.company-hero__meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.company-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 28px;
}

.company-hero__primary,
.company-hero__secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 49px;
    padding: 12px 18px;
    border-radius: 999px;
    color: #fff;
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
    transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
}

.company-hero__primary {
    background: var(--rubro-accent);
    box-shadow: 0 12px 32px color-mix(in srgb, var(--rubro-accent) 45%, transparent);
}

.company-hero__secondary {
    border: 1px solid rgba(255, 255, 255, .25);
    background: rgba(255, 255, 255, .13);
    backdrop-filter: blur(14px);
}

.company-hero__primary:hover,
.company-hero__secondary:hover {
    color: #fff;
    transform: translateY(-2px);
}

.company-hero__secondary:hover {
    background: rgba(255, 255, 255, .21);
}

.company-hero__play {
    display: grid;
    place-items: center;
    width: 29px;
    height: 29px;
    border-radius: 50%;
    background: #fff;
    color: var(--rubro-accent);
    font-size: 10px;
}

.company-hero__accent {
    position: absolute;
    right: -110px;
    bottom: -180px;
    z-index: -1;
    width: 410px;
    height: 410px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 50%;
    box-shadow: 0 0 0 48px rgba(255, 255, 255, .035), 0 0 0 96px rgba(255, 255, 255, .025);
}

/* Encabezados de secciones ------------------------------------------------ */
.experience-section,
.company-content-grid,
.rubro-toolbar {
    margin-top: clamp(34px, 5vw, 68px);
}

.experience-heading,
.rubro-toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 22px;
    margin-bottom: 24px;
}

.experience-heading__eyebrow {
    margin-bottom: 8px;
    color: var(--rubro-accent);
}

.experience-heading h2,
.rubro-toolbar h2,
.feature-panel h2 {
    margin: 0;
    color: #111827;
    font-size: clamp(26px, 3vw, 40px);
    font-weight: 650;
    letter-spacing: -.035em;
    line-height: 1.15;
}

.experience-heading p,
.rubro-toolbar p,
.feature-panel>p {
    max-width: 720px;
    margin: 9px 0 0;
    color: var(--rubro-muted);
    font-size: 14px;
    line-height: 1.7;
}

.experience-heading__count {
    flex: 0 0 auto;
    padding: 9px 14px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--rubro-accent) 9%, #fff);
    color: var(--rubro-accent);
    font-size: 12px;
    font-weight: 800;
}

.experience-heading__link,
.experience-heading__action {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 9px;
    padding: 11px 15px;
    border: 1px solid var(--rubro-line);
    border-radius: 999px;
    background: #fff;
    color: #344054;
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
    cursor: pointer;
    transition: border .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.experience-heading__link:hover,
.experience-heading__action:hover {
    border-color: color-mix(in srgb, var(--rubro-accent) 40%, #ddd);
    color: var(--rubro-accent);
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(17, 24, 39, .08);
}

/* Cards de productos / paquetes / propiedades ---------------------------- */
.listing-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.listing-card {
    overflow: hidden;
    border: 1px solid rgba(229, 231, 235, .9);
    border-radius: var(--rubro-radius-lg);
    background: #fff;
    box-shadow: 0 8px 32px rgba(17, 24, 39, .045);
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.listing-card:hover {
    border-color: transparent;
    box-shadow: var(--rubro-shadow-hover);
    transform: translateY(-6px);
}

.listing-card__media {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #eef0f5;
}

.listing-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease, filter .35s ease;
}

.listing-card:hover .listing-card__media img {
    transform: scale(1.055);
    filter: saturate(1.05);
}

.listing-card__discount,
.listing-card__heart {
    position: absolute;
    top: 14px;
    display: grid;
    place-items: center;
    z-index: 2;
}

.listing-card__discount {
    left: 14px;
    min-height: 28px;
    padding: 5px 10px;
    border-radius: 999px;
    background: #059669;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
}

.listing-card__heart {
    right: 14px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .88);
    color: #344054;
    box-shadow: 0 8px 25px rgba(17, 24, 39, .14);
    backdrop-filter: blur(8px);
}

.listing-card__body {
    padding: 18px;
}

.listing-card__meta {
    display: block;
    min-height: 18px;
    color: #7c8493;
    font-size: 12px;
}

.listing-card__title {
    display: -webkit-box;
    min-height: 48px;
    margin-top: 7px;
    overflow: hidden;
    color: #151923;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.45;
    text-decoration: none;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.listing-card__title:hover {
    color: var(--rubro-accent);
}

.listing-card__location {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 10px 0 0;
    overflow: hidden;
    color: #7c8493;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.listing-card__divider {
    width: 58px;
    margin: 15px 0;
    border-top: 1px solid #eceef3;
}

.listing-card__footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
}

.listing-card__price {
    display: grid;
    gap: 2px;
}

.listing-card__price del {
    color: #98a2b3;
    font-size: 11px;
}

.listing-card__price strong {
    color: #111827;
    font-size: 18px;
    font-weight: 800;
}

.listing-card__cart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 40px;
    padding: 9px 12px;
    border: 0;
    border-radius: 12px;
    background: color-mix(in srgb, var(--rubro-accent) 10%, #fff);
    color: var(--rubro-accent);
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
    transition: background .2s ease, color .2s ease, transform .2s ease;
}

.listing-card__cart:hover,
.listing-card__cart.is-loading {
    background: var(--rubro-accent);
    color: #fff;
    transform: translateY(-1px);
}

.listing-card__cart.is-loading {
    pointer-events: none;
    opacity: .78;
}

/* Hotel ------------------------------------------------------------------- */
.stay-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.stay-card {
    overflow: hidden;
    border: 1px solid var(--rubro-line);
    border-radius: var(--rubro-radius-lg);
    background: #fff;
    transition: transform .28s ease, box-shadow .28s ease;
}

.stay-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--rubro-shadow-hover);
}

.stay-card__visual {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 210px;
    overflow: hidden;
    background:
        radial-gradient(circle at 25% 20%, rgba(255, 255, 255, .34), transparent 11rem),
        linear-gradient(135deg, color-mix(in srgb, var(--rubro-accent) 88%, #111827), color-mix(in srgb, var(--rubro-accent) 44%, #fff));
    color: rgba(255, 255, 255, .88);
}

.stay-card__visual>i {
    font-size: 58px;
    opacity: .9;
}

.stay-card__number {
    position: absolute;
    right: 16px;
    bottom: -14px;
    color: rgba(255, 255, 255, .13);
    font-size: 100px;
    font-weight: 900;
    letter-spacing: -.08em;
}

.stay-card__badge {
    position: absolute;
    top: 14px;
    left: 14px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .88);
    color: var(--rubro-accent);
    font-size: 11px;
    font-weight: 800;
}

.stay-card__body {
    padding: 18px;
}

.stay-card__body>span {
    color: #7c8493;
    font-size: 12px;
}

.stay-card__body h3 {
    margin: 6px 0 0;
    font-size: 18px;
}

.stay-card__body p {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 9px 0 0;
    color: #7c8493;
    font-size: 12px;
}

.stay-card__divider {
    width: 58px;
    margin: 16px 0;
    border-top: 1px solid #eceef3;
}

.stay-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.stay-card__footer strong {
    font-size: 18px;
}

.stay-card__footer strong small {
    color: #7c8493;
    font-size: 11px;
    font-weight: 500;
}

.stay-card__footer a {
    color: var(--rubro-accent);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

/* Programaciones ---------------------------------------------------------- */
.travel-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.travel-card {
    display: flex;
    flex-direction: column;
    min-height: 305px;
    padding: 22px;
    border: 1px solid var(--rubro-line);
    border-radius: var(--rubro-radius-lg);
    background: #fff;
    box-shadow: 0 8px 32px rgba(17, 24, 39, .04);
    transition: transform .28s ease, box-shadow .28s ease, border .28s ease;
}

.travel-card:hover {
    border-color: color-mix(in srgb, var(--rubro-accent) 28%, #ddd);
    box-shadow: var(--rubro-shadow-hover);
    transform: translateY(-5px);
}

.travel-card__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.travel-card__top>span {
    padding: 7px 10px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--rubro-accent) 9%, #fff);
    color: var(--rubro-accent);
    font-size: 11px;
    font-weight: 800;
}

.travel-card__top small {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #7c8493;
}

.travel-card h3 {
    margin: 20px 0 0;
    color: #111827;
    font-size: 20px;
    font-weight: 750;
    letter-spacing: -.02em;
    line-height: 1.35;
}

.travel-card__timeline {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 10px;
    margin-top: 24px;
}

.travel-card__timeline>div {
    display: grid;
    gap: 3px;
}

.travel-card__timeline>div:last-child {
    text-align: right;
}

.travel-card__timeline strong {
    font-size: 18px;
}

.travel-card__timeline span,
.travel-card__date,
.travel-card__footer small {
    color: #7c8493;
    font-size: 11px;
}

.travel-card__timeline>i {
    color: #c1c6d0;
}

.travel-card__date {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 17px;
    text-transform: capitalize;
}

.travel-card__footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid #eef0f4;
}

.travel-card__footer>div {
    display: grid;
    gap: 3px;
}

.travel-card__footer strong {
    font-size: 20px;
}

.schedule-booking-form {
    margin: 0;
}

/* Videos, galería, cupones y testimonios --------------------------------- */
.company-gallery-section,
.company-videos,
.company-testimonials {
    position: relative;
    clear: both;
    scroll-margin-top: 108px;
}

.company-gallery-section,
.company-videos {
    margin-top: clamp(64px, 8vw, 108px);
}

/* Testimonios ------------------------------------------------------------- */
.company-testimonials {
    position: relative;
    isolation: isolate;
    margin: clamp(92px, 10vw, 150px) 0;
    padding: clamp(44px, 5vw, 74px) 0;
}

.company-testimonials::before {
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 100vw;
    content: "";
    background: #fff;
    transform: translateX(-50%);
}

.company-testimonials .experience-heading {
    margin-bottom: clamp(30px, 4vw, 48px);
}

.company-testimonials .experience-heading__eyebrow,
.company-testimonials .experience-heading__eyebrow i {
    color: #7c3aed;
    text-shadow: none;
}

.company-testimonials .experience-heading h2 {
    color: #111827;
    font-size: clamp(32px, 3.6vw, 48px);
    font-weight: 700;
    text-shadow: none;
}

.company-testimonials .experience-heading p {
    color: #475467;
    font-size: 15px;
    text-shadow: none;
}

.company-testimonials__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.company-testimonials__grid>article {
    min-width: 0;
    padding: 28px;
    border: 1px solid #e4e7ec;
    border-radius: 24px;
    background: #fff;
    box-shadow: none;
}

.company-testimonials__stars {
    display: flex;
    gap: 4px;
    color: #f7a928;
    font-size: 13px;
}

.company-testimonials blockquote {
    margin: 20px 0 28px;
    color: #111827;
    font-size: 16px;
    line-height: 1.75;
    text-shadow: none;
}

.company-testimonials footer {
    display: flex;
    align-items: center;
    gap: 12px;
}

.company-testimonials footer img {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
}

.company-testimonials footer strong,
.company-testimonials footer small {
    display: block;
    color: #111827;
    text-shadow: none;
}

.company-testimonials footer small {
    margin-top: 3px;
    color: #475467;
    font-size: 12px;
}

/* Cupones ----------------------------------------------------------------- */
.company-coupons-strip {
    margin-top: clamp(48px, 6vw, 84px);
}

.company-coupons-strip__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 22px;
    margin-bottom: 22px;
}

.company-coupons-strip__head .experience-heading__eyebrow,
.company-coupons-strip__head .experience-heading__eyebrow i {
    color: #7c3aed;
}

.company-coupons-strip__head h2 {
    margin: 0;
    color: #111827;
    font-family: inherit;
    font-size: clamp(28px, 3vw, 42px);
    font-weight: 700;
    letter-spacing: -.035em;
    line-height: 1.15;
    text-shadow: none;
}

.company-coupons-strip__head p {
    margin: 8px 0 0;
    color: #475467;
    font-size: 15px;
}

.company-coupons-strip__head>span {
    flex: 0 0 auto;
    padding: 9px 14px;
    border: 1px solid #dfe3e8;
    border-radius: 999px;
    color: #111827;
    background: #fff;
    font-size: 13px;
    font-weight: 800;
}

.company-coupons-strip__rail {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.company-coupon-ticket {
    position: relative;
    isolation: isolate;
    min-height: 225px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .44);
    border-radius: 26px;
    color: #fff;
    background: #7c3aed;
    box-shadow: none;
}

.company-coupon-ticket::before,
.company-coupon-ticket::after {
    position: absolute;
    z-index: 4;
    top: 50%;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    content: "";
    background: #fff;
    transform: translateY(-50%);
}

.company-coupon-ticket::before {
    left: -12px;
}

.company-coupon-ticket::after {
    right: -12px;
}

.company-coupon-ticket>img {
    position: absolute;
    z-index: -2;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .12;
}

.company-coupon-ticket__veil {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: #7c3aed;
}

.company-coupon-ticket__content {
    display: flex;
    min-height: 225px;
    flex-direction: column;
    padding: 25px 26px;
    color: #fff;
    text-shadow: none;
}

.company-coupon-ticket__content *,
.company-coupon-ticket h3,
.company-coupon-ticket p,
.company-coupon-ticket time,
.company-coupon-ticket button,
.company-coupon-ticket button span,
.company-coupon-ticket button i {
    color: #fff;
    opacity: 1;
    text-shadow: none;
}

.company-coupon-ticket__icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    margin-bottom: auto;
    border: 1px solid rgba(255, 255, 255, .62);
    border-radius: 14px;
    color: #fff;
    background: rgba(255, 255, 255, .12);
    font-size: 18px;
}

.company-coupon-ticket__discount,
.company-coupon-ticket__content>small {
    display: block;
    margin-top: 17px;
    color: #facc15 !important;
    font-size: clamp(18px, 1.45vw, 22px);
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: .01em;
    text-shadow: none !important;
    text-transform: none;
    opacity: 1;
}

.company-coupon-ticket h3 {
    margin: 7px 0 0;
    color: #fff;
    font-size: clamp(27px, 2.4vw, 35px);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -.02em;
}

.company-coupon-ticket p {
    max-width: 36rem;
    margin: 9px 0 0;
    color: #fff;
    font-size: 16px;
    font-weight: 580;
    line-height: 1.5;
}

.company-coupon-ticket__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: 21px;
}

.company-coupon-ticket__bottom button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    border: 1px solid #fff;
    border-radius: 10px;
    color: #fff;
    background: transparent;
    box-shadow: none;
    font-size: 14px;
    font-weight: 820;
    letter-spacing: .04em;
    cursor: pointer;
}

.company-coupon-ticket__bottom button:hover {
    color: #7c3aed;
    background: #fff;
}

.company-coupon-ticket__bottom button:hover span,
.company-coupon-ticket__bottom button:hover i {
    color: #7c3aed;
}

.company-coupon-ticket__bottom time {
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

/* Galería ----------------------------------------------------------------- */
.company-gallery-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-auto-flow: dense;
    grid-auto-rows: clamp(82px, 7.4vw, 112px);
    gap: clamp(12px, 1.5vw, 20px);
}

.company-gallery-item {
    position: relative;
    isolation: isolate;
    display: block;
    grid-column: span 4;
    grid-row: span 2;
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: clamp(15px, 1.5vw, 22px);
    background: #0d1727;
    box-shadow: 0 13px 34px rgba(15, 23, 42, .12);
    cursor: pointer;
    transition: transform .22s ease, box-shadow .22s ease;
}

.company-gallery-item--featured,
.company-gallery-item:first-child {
    grid-column: span 8;
    grid-row: span 4;
}

.company-gallery-item:nth-child(2),
.company-gallery-item:nth-child(3),
.company-gallery-item:nth-child(n + 4) {
    grid-column: span 4;
    grid-row: span 2;
}

.company-gallery-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 22px 50px rgba(15, 23, 42, .18);
}

.company-gallery-item::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    pointer-events: none;
    background: linear-gradient(180deg, transparent 42%, rgba(4, 10, 22, .82));
    opacity: .82;
}

.company-gallery-item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform .42s ease;
}

.company-gallery-item:hover img {
    transform: scale(1.045);
}

.company-gallery-item>span,
.company-gallery-item figcaption {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
    padding: clamp(15px, 1.8vw, 24px);
    color: #fff;
    background: transparent;
    text-align: left;
    pointer-events: none;
}

.company-gallery-item>span strong,
.company-gallery-item figcaption strong {
    color: #fff;
    font-size: clamp(.94rem, 1.15vw, 1.12rem);
    font-weight: 850;
    text-shadow: none;
}

.company-gallery-item>span small,
.company-gallery-item figcaption span {
    color: #fff;
    font-size: clamp(.75rem, .9vw, .86rem);
    line-height: 1.4;
    text-shadow: none;
}

/* Videos ------------------------------------------------------------------ */
.company-videos {
    position: relative;
    padding: clamp(24px, 4vw, 48px);
    overflow: hidden;
    border-radius: 30px;
    background: #f3efff;
}

.company-videos::after,
.chisfis-videos__backdrop {
    display: none;
    content: none;
}

.company-videos__stage,
.chisfis-videos__composition {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1.82fr) minmax(280px, .68fr);
    align-items: start;
    gap: clamp(18px, 2.5vw, 32px);
}

.company-videos__main,
.chisfis-videos__main,
[data-video-stage] {
    position: relative;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    border: 5px solid #fff;
    border-radius: 24px;
    background: #070b12;
    box-shadow: none;
    aspect-ratio: 16 / 9;
}

.company-videos__poster,
.chisfis-videos__poster,
[data-video-poster] {
    position: absolute;
    inset: 0;
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    background-color: #101827;
    background-position: center;
    background-size: cover;
}

.company-videos__poster::before,
.chisfis-videos__poster::after {
    position: absolute;
    inset: 0;
    content: "";
    background: rgba(5, 10, 20, .20);
}

.company-videos__play,
.chisfis-videos__play,
[data-video-play] {
    position: absolute;
    z-index: 4;
    inset: 0;
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: #fff;
    background: transparent;
    box-shadow: none;
    cursor: pointer;
    backdrop-filter: none;
}

.company-videos__play i,
.chisfis-videos__play i,
[data-video-play] i {
    margin-left: 6px;
    color: #fff;
    font-size: clamp(50px, 7vw, 78px);
    line-height: 1;
    text-shadow: none;
    transition: transform .18s ease;
}

.company-videos__play:hover i,
.chisfis-videos__play:hover i {
    transform: scale(1.10);
}

.company-videos__player,
.chisfis-videos__player,
[data-video-player] {
    position: absolute;
    z-index: 7;
    inset: 0;
    width: 100%;
    height: 100%;
    background: #000;
}

.company-videos__player[hidden],
.chisfis-videos__player[hidden],
[data-video-player][hidden] {
    display: none;
}

.company-videos__player iframe,
.company-videos__player video,
.chisfis-videos__player iframe,
.chisfis-videos__player video,
[data-video-player] iframe,
[data-video-player] video {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    background: #000;
    object-fit: contain;
}

.company-videos__rail,
.chisfis-videos__rail {
    display: flex;
    overflow: visible;
    max-height: none;
    flex-direction: column;
    gap: 12px;
    padding: 0;
}

.company-video-thumb,
.chisfis-video-thumb {
    display: grid;
    grid-template-columns: minmax(122px, 42%) minmax(0, 1fr);
    align-items: center;
    width: 100%;
    gap: 11px;
    padding: 8px;
    overflow: hidden;
    border: 1px solid #dfe3e8;
    border-radius: 15px;
    color: #111827;
    background: #fff;
    box-shadow: none;
    text-align: left;
    cursor: pointer;
}

.company-video-thumb:hover,
.company-video-thumb.is-active,
.chisfis-video-thumb:hover,
.chisfis-video-thumb.is-active {
    border-color: #7c3aed;
    background: #fff;
    box-shadow: none;
    transform: none;
}

.company-video-thumb__image,
.chisfis-video-thumb__image {
    position: relative;
    display: block;
    width: 100%;
    overflow: hidden;
    border-radius: 11px;
    background-color: #101827;
    background-position: center;
    background-size: cover;
    aspect-ratio: 16 / 9;
}

.company-video-thumb__image::after,
.chisfis-video-thumb__image::after {
    position: absolute;
    inset: 0;
    content: "";
    background: rgba(5, 10, 20, .20);
}

.company-video-thumb__play,
.chisfis-video-thumb__play {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    color: #fff;
    background: transparent;
    font-size: 24px;
    text-shadow: none;
    transform: translate(-50%, -50%);
}

.company-video-thumb__copy,
.chisfis-video-thumb__copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

.company-video-thumb__copy strong,
.chisfis-video-thumb__copy strong {
    color: #111827;
    font-size: 14px;
    font-weight: 750;
    line-height: 1.35;
    text-shadow: none;
}

.company-video-thumb__copy small,
.chisfis-video-thumb__copy small {
    color: #475467;
    font-size: 12px;
    text-shadow: none;
}

@media (max-width: 980px) {
    .company-testimonials__grid {
        grid-template-columns: 1fr;
    }

    .company-coupons-strip__rail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .company-videos__stage,
    .chisfis-videos__composition {
        grid-template-columns: 1fr;
    }

    .company-videos__rail,
    .chisfis-videos__rail {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .company-coupons-strip__head {
        align-items: flex-start;
        flex-direction: column;
    }

    .company-coupons-strip__rail {
        display: flex;
        overflow-x: auto;
        gap: 13px;
        padding-bottom: 10px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .company-coupon-ticket {
        flex: 0 0 min(88vw, 350px);
        scroll-snap-align: start;
    }

    .company-coupon-ticket__bottom {
        align-items: flex-start;
        flex-direction: column;
    }

    .company-gallery-grid {
        grid-template-columns: 1fr;
    }

    .company-gallery-item,
    .company-gallery-item:first-child {
        grid-column: auto;
        grid-row: auto;
        aspect-ratio: 16 / 10;
    }

    .company-videos {
        padding: 17px;
        border-radius: 22px;
    }

    .company-videos__main,
    .chisfis-videos__main,
    [data-video-stage] {
        border-width: 4px;
        border-radius: 17px;
        aspect-ratio: 16 / 9;
    }

    .company-videos__rail,
    .chisfis-videos__rail {
        grid-template-columns: 1fr;
    }

    .company-testimonials {
        margin: 70px 0;
        padding: 34px 0;
    }
}

/* Formularios y bloques laterales ---------------------------------------- */
.company-content-grid {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    gap: 24px;
    align-items: stretch;
}

.feature-panel,
.booking-card,
.rubro-card {
    padding: clamp(22px, 3vw, 34px);
    border: 1px solid var(--rubro-line);
    border-radius: var(--rubro-radius-lg);
    background: #fff;
    box-shadow: 0 10px 36px rgba(17, 24, 39, .045);
}

.feature-panel {
    background:
        radial-gradient(circle at 100% 0, color-mix(in srgb, var(--rubro-accent) 10%, transparent), transparent 18rem),
        #fff;
}

.booking-card__intro {
    margin-bottom: 24px;
}

.booking-card__intro>span {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    margin-bottom: 14px;
    border-radius: 16px;
    background: color-mix(in srgb, var(--rubro-accent) 10%, #fff);
    color: var(--rubro-accent);
    font-size: 20px;
}

.booking-card__intro h3 {
    margin: 0;
    font-size: 24px;
    letter-spacing: -.025em;
}

.booking-card__intro p {
    margin: 7px 0 0;
    color: var(--rubro-muted);
    font-size: 13px;
    line-height: 1.6;
}

.feature-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.feature-list--stack {
    grid-template-columns: 1fr;
    margin-top: 28px;
}

.feature-item {
    display: flex;
    gap: 13px;
    padding: 17px;
    border: 1px solid #eceef3;
    border-radius: 17px;
    background: rgba(255, 255, 255, .8);
}

.feature-item>i {
    flex: 0 0 auto;
    color: var(--rubro-accent);
    font-size: 22px;
}

.feature-item strong {
    display: block;
    color: #1d2432;
    font-size: 14px;
}

.feature-item small {
    display: block;
    margin-top: 4px;
    color: #737d8d;
    line-height: 1.45;
}

.direct-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
}

.direct-field {
    display: grid;
    gap: 7px;
}

.direct-field--full {
    grid-column: 1 / -1;
}

.direct-field label {
    color: #475467;
    font-size: 12px;
    font-weight: 750;
}

.direct-field input,
.direct-field select,
.direct-field textarea {
    width: 100%;
    min-height: 48px;
    padding: 11px 13px;
    border: 1px solid #dfe3ea;
    border-radius: 13px;
    outline: none;
    background: #fff;
    color: #111827;
    font: inherit;
    transition: border .2s ease, box-shadow .2s ease;
}

.direct-field input:focus,
.direct-field select:focus,
.direct-field textarea:focus {
    border-color: color-mix(in srgb, var(--rubro-accent) 58%, #fff);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--rubro-accent) 10%, transparent);
}

.direct-field textarea {
    min-height: 105px;
    resize: vertical;
}

.direct-actions {
    display: flex;
    grid-column: 1 / -1;
    justify-content: flex-end;
    margin-top: 3px;
}

.rubro-btn,
.compact-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 15px;
    border: 0;
    border-radius: 999px;
    background: var(--rubro-accent);
    color: #fff;
    box-shadow: 0 10px 28px color-mix(in srgb, var(--rubro-accent) 25%, transparent);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease;
}

.rubro-btn:hover,
.compact-icon-btn:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 15px 36px color-mix(in srgb, var(--rubro-accent) 34%, transparent);
}

.compact-icon-btn {
    width: 44px;
    padding: 0;
}

.compact-icon-btn--light {
    border: 1px solid var(--rubro-line);
    background: #fff;
    color: #344054;
    box-shadow: none;
}

/* Tabs -------------------------------------------------------------------- */
.rubro-toolbar {
    align-items: flex-end;
}

.rubro-tabs {
    display: flex;
    width: 100%;
    gap: 8px;
    overflow-x: auto;
    padding: 7px;
    border: 1px solid #dfe3e8;
    border-radius: 18px;
    background: #fff;
    box-shadow: none;
    scrollbar-width: none;
}

.rubro-tabs::-webkit-scrollbar {
    display: none;
}

.rubro-tab {
    display: inline-flex;
    flex: 0 0 auto;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 10px 18px;
    border: 1px solid transparent;
    border-radius: 13px;
    color: #111827;
    background: #fff;
    box-shadow: none;
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    text-shadow: none;
    white-space: nowrap;
    cursor: pointer;
}

.rubro-tab i,
.rubro-tab span {
    color: inherit;
    text-shadow: none;
}

.rubro-tab:hover {
    border-color: #d8dee8;
    color: #111827;
    background: #f8fafc;
}

.rubro-tab.is-active {
    border-color: #7c3aed;
    color: #fff;
    background: #7c3aed;
    box-shadow: none;
}

.rubro-panel {
    margin-top: 24px;
}

.rubro-panel[hidden] {
    display: none !important;
}

/* Estado vacío ------------------------------------------------------------ */
.empty-direct {
    padding: 54px 22px;
    border: 1px dashed #cfd4de;
    border-radius: var(--rubro-radius-lg);
    background: rgba(255, 255, 255, .82);
    color: #667085;
    text-align: center;
}

.empty-direct>i {
    display: block;
    margin-bottom: 12px;
    color: var(--rubro-accent);
    font-size: 40px;
}

.empty-direct strong {
    display: block;
    color: #1d2432;
    font-size: 16px;
}

.empty-direct p {
    margin: 7px 0 0;
}

/* Modal propio ------------------------------------------------------------ */
.rubro-modal {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: none;
    place-items: center;
    padding: 18px;
    background: rgba(15, 23, 42, .68);
    backdrop-filter: blur(8px);
}

.rubro-modal.is-open {
    display: grid;
}

.rubro-modal__dialog {
    position: relative;
    width: min(720px, 100%);
    max-height: calc(100vh - 36px);
    overflow: auto;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 28px 90px rgba(0, 0, 0, .3);
}

.rubro-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 17px 20px;
    border-bottom: 1px solid #e8eaf0;
}

.rubro-modal__head h3 {
    margin: 0;
    color: #172033;
    font-size: 18px;
}

.rubro-modal__close {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    background: #f2f4f7;
    color: #344054;
    cursor: pointer;
}

.rubro-modal__body {
    padding: 20px;
}

.rubro-video {
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
    border-radius: 16px;
    background: #0f172a;
}

.tracking-box {
    display: grid;
    gap: 13px;
}

.tracking-box input {
    width: 100%;
    min-height: 48px;
    padding: 11px 13px;
    border: 1px solid #d8dde8;
    border-radius: 13px;
}

/* Resumen de compra: convive con carrito flotante del proyecto ------------ */
.purchase-summary-launcher {
    position: fixed;
    bottom: 88px;
    left: 18px;
    z-index: 2147482000;
}

.purchase-summary-launcher button {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 48px;
    padding: 9px 11px 9px 15px;
    border: 0;
    border-radius: 999px;
    background: #111827;
    color: #fff;
    box-shadow: 0 18px 48px rgba(17, 24, 39, .28);
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.purchase-summary-launcher b {
    display: grid;
    place-items: center;
    min-width: 28px;
    height: 28px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--rubro-accent);
    color: #fff;
    font-size: 11px;
}

.purchase-summary-overlay {
    position: fixed;
    inset: 0;
    z-index: 2147482800;
    background: rgba(15, 23, 42, .48);
    backdrop-filter: blur(3px);
}

.purchase-summary {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 2147482900;
    display: flex;
    flex-direction: column;
    width: min(430px, 94vw);
    background: #fff;
    box-shadow: 30px 0 90px rgba(15, 23, 42, .22);
    transform: translateX(-104%);
    transition: transform .32s cubic-bezier(.22, .61, .36, 1);
}

.purchase-summary.is-open {
    transform: translateX(0);
}

.purchase-summary__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 24px;
    border-bottom: 1px solid #eceef3;
}

.purchase-summary__head span {
    display: block;
    margin-bottom: 3px;
    color: var(--rubro-accent);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.purchase-summary__head h2 {
    margin: 0;
    font-size: 23px;
    letter-spacing: -.03em;
}

.purchase-summary__head button {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: #f2f4f7;
    color: #344054;
    cursor: pointer;
}

.purchase-summary__body {
    flex: 1;
    overflow: auto;
    padding: 20px 24px;
}

.purchase-summary__empty {
    display: grid;
    place-items: center;
    min-height: 340px;
    color: #667085;
    text-align: center;
}

.purchase-summary__empty>span {
    display: grid;
    place-items: center;
    width: 84px;
    height: 84px;
    margin-bottom: 15px;
    border-radius: 26px;
    background: color-mix(in srgb, var(--rubro-accent) 9%, #fff);
    color: var(--rubro-accent);
    font-size: 31px;
}

.purchase-summary__empty strong {
    color: #1d2432;
    font-size: 16px;
}

.purchase-summary__empty p {
    max-width: 290px;
    margin: 7px 0 0;
    font-size: 12px;
    line-height: 1.6;
}

.purchase-summary__items {
    display: grid;
    gap: 13px;
}

.purchase-item {
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 10px;
    border: 1px solid #eceef3;
    border-radius: 17px;
}

.purchase-item img {
    width: 70px;
    height: 70px;
    border-radius: 13px;
    object-fit: cover;
    background: #f2f4f7;
}

.purchase-item__copy {
    min-width: 0;
}

.purchase-item__copy strong {
    display: -webkit-box;
    overflow: hidden;
    color: #1d2432;
    font-size: 12px;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.purchase-item__copy span {
    display: block;
    margin-top: 5px;
    color: #7c8493;
    font-size: 10px;
}

.purchase-item>strong {
    color: #111827;
    font-size: 12px;
    white-space: nowrap;
}

.purchase-summary__footer {
    padding: 20px 24px 24px;
    border-top: 1px solid #eceef3;
    background: #fff;
}

.purchase-summary__row,
.purchase-summary__total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #667085;
    font-size: 12px;
}

.purchase-summary__row+.purchase-summary__row {
    margin-top: 8px;
}

.purchase-summary__row strong {
    color: #344054;
}

.purchase-summary__total {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px dashed #d5d9e1;
    color: #111827;
    font-size: 16px;
    font-weight: 800;
}

.purchase-summary__total strong {
    font-size: 22px;
}

.purchase-summary__checkout {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 51px;
    margin-top: 18px;
    border-radius: 999px;
    background: var(--rubro-accent);
    color: #fff;
    font-size: 13px;
    font-weight: 850;
    text-decoration: none;
    box-shadow: 0 14px 32px color-mix(in srgb, var(--rubro-accent) 29%, transparent);
}

.purchase-summary__checkout:hover {
    color: #fff;
}

.purchase-summary__footer>small {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin-top: 13px;
    color: #7c8493;
    font-size: 10px;
    line-height: 1.5;
}

.rubro-toast {
    position: fixed;
    right: 22px;
    bottom: 96px;
    z-index: 2147483100;
    max-width: min(360px, calc(100vw - 34px));
    padding: 13px 16px;
    border-radius: 14px;
    background: #111827;
    color: #fff;
    box-shadow: 0 18px 50px rgba(17, 24, 39, .25);
    font-size: 12px;
    font-weight: 700;
    opacity: 0;
    pointer-events: none;
    transform: translateY(14px);
    transition: opacity .22s ease, transform .22s ease;
}

.rubro-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.rubro-toast.is-error {
    background: #b42318;
}

/* Responsive -------------------------------------------------------------- */
@media (max-width: 1180px) {
    .listing-card-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .travel-card-grid,
    .stay-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .company-hero {
        min-height: 390px;
    }

    .company-hero__content {
        width: 100%;
    }


    .company-content-grid {
        grid-template-columns: 1fr;
    }

    .feature-list:not(.feature-list--stack) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .rubro-direct-page {
        margin-top: 12px;
        padding-bottom: 92px;
    }

    .rubro-shell {
        width: min(100% - 18px, 1380px);
    }

    .company-hero {
        min-height: 430px;
        border-radius: 25px;
    }

    .company-hero__veil {
        background: linear-gradient(0deg, rgba(5, 10, 25, .91) 0%, rgba(5, 10, 25, .44) 74%, rgba(5, 10, 25, .2) 100%);
    }

    .company-hero__content {
        padding: 22px;
    }

    .company-hero__brand {
        display: block;
    }

    .company-hero__logo {
        width: 68px;
        height: 68px;
        margin-bottom: 17px;
        border-radius: 19px;
        border-width: 4px;
        font-size: 26px;
    }

    .company-hero h1 {
        font-size: 34px;
    }

    .company-hero__copy p {
        display: -webkit-box;
        overflow: hidden;
        font-size: 13px;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    .company-hero__meta {
        gap: 8px 13px;
        font-size: 11px;
    }

    .company-hero__meta span:nth-child(3) {
        display: none;
    }

    .company-hero__actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .company-hero__primary,
    .company-hero__secondary {
        padding: 10px 12px;
        font-size: 11px;
    }

    .experience-section,
    .company-content-grid,
    .rubro-toolbar {
        margin-top: 38px;
    }

    .experience-heading,
    .rubro-toolbar {
        align-items: flex-start;
        flex-direction: column;
        margin-bottom: 18px;
    }

    .experience-heading h2,
    .rubro-toolbar h2,
    .feature-panel h2 {
        font-size: 28px;
    }

    .experience-heading__count {
        display: none;
    }

    .listing-card-grid,
    .travel-card-grid,
    .stay-card-grid,
    .feature-list,
    .feature-list:not(.feature-list--stack) {
        grid-template-columns: 1fr;
    }

    .listing-card-grid {
        gap: 15px;
    }

    .listing-card {
        display: grid;
        grid-template-columns: 42% 58%;
        min-height: 180px;
        border-radius: 20px;
    }

    .listing-card__media {
        height: 100%;
        aspect-ratio: auto;
    }

    .listing-card__body {
        padding: 14px;
    }

    .listing-card__title {
        min-height: 42px;
        font-size: 14px;
    }

    .listing-card__location {
        display: none;
    }

    .listing-card__divider {
        margin: 11px 0;
    }

    .listing-card__footer {
        align-items: center;
    }

    .listing-card__cart span {
        display: none;
    }

    .listing-card__cart {
        width: 39px;
        padding: 0;
    }


    .feature-panel,
    .booking-card,
    .rubro-card {
        padding: 18px;
        border-radius: 20px;
    }

    .direct-form {
        grid-template-columns: 1fr;
    }

    .direct-field--full,
    .direct-actions {
        grid-column: auto;
    }

    .direct-actions .rubro-btn {
        width: 100%;
    }

    .rubro-tabs {
        width: 100%;
        border-radius: 18px;
    }

    .rubro-tab {
        flex: 1;
        justify-content: center;
        padding: 8px 11px;
    }

    .purchase-summary-launcher {
        bottom: 74px;
        left: 10px;
    }

    .purchase-summary-launcher button>span {
        display: none;
    }

    .purchase-summary-launcher button {
        width: 50px;
        padding: 0;
        justify-content: center;
    }

    .purchase-summary-launcher b {
        position: absolute;
        top: -7px;
        right: -5px;
        min-width: 23px;
        height: 23px;
        font-size: 9px;
    }

    .rubro-toast {
        right: 10px;
        bottom: 76px;
    }
}

@media (prefers-reduced-motion: reduce) {

    .rubro-direct-page *,
    .rubro-direct-page *::before,
    .rubro-direct-page *::after,
    .purchase-summary,
    .rubro-toast {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
}

/* Catálogo app-ventas: cards del catálogo con lenguaje visual Next -------- */
.catalog-only-page #products-grid .catalog-product-card {
    overflow: hidden !important;
    border: 1px solid rgba(229, 231, 235, .92) !important;
    border-radius: 24px !important;
    background: #fff !important;
    box-shadow: 0 8px 32px rgba(17, 24, 39, .045) !important;
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease !important;
}

.catalog-only-page #products-grid .catalog-product-card:hover {
    border-color: transparent !important;
    box-shadow: 0 26px 70px rgba(17, 24, 39, .14) !important;
    transform: translateY(-6px) !important;
}

.catalog-only-page #products-grid .catalog-product-card .mn-product-img,
.catalog-only-page #products-grid .catalog-product-card .mn-img,
.catalog-only-page #products-grid .catalog-product-card .image {
    width: 100% !important;
    overflow: hidden !important;
    border-radius: 0 !important;
}

.catalog-only-page #products-grid .catalog-product-card .mn-img,
.catalog-only-page #products-grid .catalog-product-card .image {
    display: block !important;
    aspect-ratio: 4 / 3 !important;
    background: #eef0f5 !important;
}

.catalog-only-page #products-grid .catalog-product-card .main-img,
.catalog-only-page #products-grid .catalog-product-card .hover-img {
    width: 100% !important;
    height: 100% !important;
    padding: 0 !important;
    object-fit: cover !important;
    transition: opacity .35s ease, transform .5s ease !important;
}

.catalog-only-page #products-grid .catalog-product-card:hover .main-img,
.catalog-only-page #products-grid .catalog-product-card:hover .hover-img {
    transform: scale(1.055) !important;
}

.catalog-only-page #products-grid .catalog-product-card .mn-options {
    right: 14px !important;
    bottom: 14px !important;
    left: auto !important;
}

.catalog-only-page #products-grid .catalog-product-card .mn-options ul {
    display: flex !important;
    gap: 7px !important;
}

.catalog-only-page #products-grid .catalog-product-card .mn-options li a {
    display: grid !important;
    place-items: center !important;
    width: 38px !important;
    height: 38px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, .92) !important;
    color: #344054 !important;
    box-shadow: 0 10px 28px rgba(17, 24, 39, .18) !important;
    backdrop-filter: blur(8px) !important;
}

.catalog-only-page #products-grid .catalog-product-card .mn-options li a:hover {
    background: #2563eb !important;
    color: #fff !important;
}

.catalog-only-page #products-grid .catalog-product-card .mn-product-detail {
    padding: 18px !important;
}

.catalog-only-page #products-grid .catalog-product-card .cat {
    margin-bottom: 7px !important;
}

.catalog-only-page #products-grid .catalog-product-card .cat a {
    color: #7c8493 !important;
    font-size: 12px !important;
    text-decoration: none !important;
}

.catalog-only-page #products-grid .catalog-product-card h5 {
    min-height: 46px !important;
    margin: 0 !important;
    font-size: 16px !important;
    line-height: 1.45 !important;
}

.catalog-only-page #products-grid .catalog-product-card h5 a {
    color: #151923 !important;
    font-weight: 700 !important;
}

.catalog-only-page #products-grid .catalog-product-card .mn-price {
    margin-top: 14px !important;
    padding-top: 14px !important;
    border-top: 1px solid #eceef3 !important;
}

.catalog-only-page #products-grid .catalog-product-card .mn-price-new {
    color: #111827 !important;
    font-size: 19px !important;
    font-weight: 800 !important;
}

.catalog-only-page #products-grid .catalog-product-card .catalog-product-stock {
    display: inline-flex !important;
    margin-top: 9px !important;
    padding: 5px 9px !important;
    border-radius: 999px !important;
    background: #ecfdf3 !important;
    color: #027a48 !important;
    font-size: 10px !important;
    font-weight: 800 !important;
}

.catalog-only-page #products-grid .catalog-product-card .catalog-product-stock.is-empty {
    background: #fef3f2 !important;
    color: #b42318 !important;
}

@media (max-width: 720px) {
    .catalog-only-page #products-grid .catalog-product-card {
        border-radius: 20px !important;
    }
}

/* ========================================================================== 
   PÁGINA INDIVIDUAL DE EMPRESA · DISTRIBUCIÓN TIPO CHISFIS
   ========================================================================== */
.company-showcase-page {
    padding-top: 0;
}

.company-showcase-hero {
    position: relative;
    isolation: isolate;
    min-height: clamp(590px, 72vh, 790px);
    overflow: hidden;
    border-radius: 0 0 38px 38px;
    background: #0b1020;
    box-shadow: 0 30px 90px rgba(15, 23, 42, .2);
}

.company-showcase-hero__media,
.company-showcase-hero__overlay {
    position: absolute;
    inset: 0;
}

.company-showcase-hero__media {
    z-index: -3;
    overflow: hidden;
    background: #10182d;
}

.company-showcase-hero__media video,
.company-showcase-hero__media iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: max(100%, 178vh);
    height: max(100%, 56.25vw);
    border: 0;
    object-fit: cover;
    pointer-events: none;
    transform: translate(-50%, -50%) scale(1.02);
}

.company-showcase-hero__fallback {
    position: absolute;
    inset: -8%;
    overflow: hidden;
    background:
        radial-gradient(circle at 75% 25%, color-mix(in srgb, var(--rubro-accent) 75%, #fff), transparent 24%),
        radial-gradient(circle at 26% 75%, color-mix(in srgb, var(--rubro-accent) 58%, #111827), transparent 29%),
        linear-gradient(130deg, #121a31, color-mix(in srgb, var(--rubro-accent) 62%, #111827));
    animation: companyHeroDrift 16s ease-in-out infinite alternate;
}

.company-showcase-hero__fallback--cover {
    background-image: var(--company-cover);
    background-position: center;
    background-size: cover;
    filter: saturate(.92);
    animation: companyHeroZoom 18s ease-in-out infinite alternate;
}

.company-showcase-hero__fallback:not(.company-showcase-hero__fallback--cover) span {
    position: absolute;
    width: 30vw;
    height: 30vw;
    min-width: 260px;
    min-height: 260px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    box-shadow: 0 0 0 50px rgba(255, 255, 255, .035), 0 0 0 100px rgba(255, 255, 255, .025);
}

.company-showcase-hero__fallback span:nth-child(1) {
    top: 8%;
    right: 8%;
}

.company-showcase-hero__fallback span:nth-child(2) {
    bottom: -18%;
    left: 12%;
    transform: scale(.7);
}

.company-showcase-hero__fallback span:nth-child(3) {
    top: 35%;
    left: 50%;
    transform: scale(.35);
}

@keyframes companyHeroZoom {
    from {
        transform: scale(1.03) translate3d(-1%, -1%, 0);
    }

    to {
        transform: scale(1.12) translate3d(1%, 1%, 0);
    }
}

@keyframes companyHeroDrift {
    from {
        transform: scale(1.04) rotate(-1deg);
    }

    to {
        transform: scale(1.12) rotate(1deg);
    }
}

.company-showcase-hero__overlay {
    z-index: -2;
    background:
        linear-gradient(90deg, rgba(5, 10, 25, .9) 0%, rgba(5, 10, 25, .7) 43%, rgba(5, 10, 25, .2) 78%, rgba(5, 10, 25, .1) 100%),
        linear-gradient(0deg, rgba(5, 10, 25, .9) 0%, transparent 52%),
        radial-gradient(circle at 80% 25%, transparent 0, rgba(5, 10, 25, .12) 45%, rgba(5, 10, 25, .35) 100%);
}

.company-showcase-hero__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: min(880px, 74%);
    min-height: clamp(520px, 65vh, 700px);
    padding: clamp(46px, 7vw, 94px) clamp(28px, 6vw, 78px) 118px;
    color: #fff;
}

.company-showcase-hero__identity {
    display: flex;
    align-items: center;
    gap: 18px;
}

.company-showcase-hero__logo {
    display: grid;
    flex: 0 0 76px;
    place-items: center;
    width: 76px;
    height: 76px;
    overflow: hidden;
    border: 4px solid rgba(255, 255, 255, .85);
    border-radius: 22px;
    background: #fff;
    color: var(--rubro-accent);
    box-shadow: 0 16px 42px rgba(0, 0, 0, .28);
    font-size: 30px;
}

.company-showcase-hero__logo img {
    width: 100%;
    height: 100%;
    padding: 5px;
    object-fit: contain;
}

.company-showcase-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 7px;
    padding: 7px 11px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    background: rgba(255, 255, 255, .12);
    color: rgba(255, 255, 255, .9);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    backdrop-filter: blur(12px);
}

.company-showcase-hero h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(34px, 5vw, 66px);
    font-weight: 680;
    letter-spacing: -.05em;
    line-height: 1.02;
    text-wrap: balance;
}

.company-showcase-hero__lead {
    max-width: 760px;
    margin: 25px 0 0;
    color: #fff;
    font-size: clamp(23px, 3vw, 42px);
    font-weight: 650;
    letter-spacing: -.035em;
    line-height: 1.12;
    text-wrap: balance;
}

.company-showcase-hero__description {
    max-width: 680px;
    margin: 15px 0 0;
    color: rgba(255, 255, 255, .78);
    font-size: 14px;
    line-height: 1.7;
}

.company-showcase-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 17px;
    margin-top: 22px;
    color: rgba(255, 255, 255, .78);
    font-size: 12px;
}

.company-showcase-hero__meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.company-showcase-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 27px;
}

.company-showcase-hero__primary,
.company-showcase-hero__glass {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 48px;
    padding: 12px 18px;
    border-radius: 999px;
    color: #fff;
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
    transition: transform .22s ease, background .22s ease, box-shadow .22s ease;
}

.company-showcase-hero__primary {
    background: var(--rubro-accent);
    box-shadow: 0 13px 34px color-mix(in srgb, var(--rubro-accent) 48%, transparent);
}

.company-showcase-hero__glass {
    border: 1px solid rgba(255, 255, 255, .25);
    background: rgba(255, 255, 255, .12);
    backdrop-filter: blur(12px);
}

.company-showcase-hero__primary:hover,
.company-showcase-hero__glass:hover {
    color: #fff;
    transform: translateY(-2px);
}

.company-showcase-hero__glass:hover {
    background: rgba(255, 255, 255, .2);
}

.company-showcase-hero__nav {
    position: absolute;
    right: clamp(24px, 4vw, 60px);
    bottom: 74px;
    z-index: 3;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px;
    max-width: 48%;
}

.company-showcase-hero__nav a {
    display: inline-flex;
    align-items: center;
    min-height: 37px;
    padding: 8px 13px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    background: rgba(8, 13, 27, .26);
    color: rgba(255, 255, 255, .78);
    font-size: 11px;
    font-weight: 750;
    text-decoration: none;
    backdrop-filter: blur(12px);
}

.company-showcase-hero__nav a:hover,
.company-showcase-hero__nav a.is-active {
    background: #fff;
    color: #111827;
}

/* Buscador principal ------------------------------------------------------ */
.company-search-wrap {
    position: relative;
    z-index: 5;
    width: min(1240px, calc(100% - 46px));
    margin: -54px auto 0;
}

.company-search {
    display: flex;
    align-items: stretch;
    min-height: 108px;
    padding: 13px;
    border: 1px solid rgba(229, 231, 235, .9);
    border-radius: 28px;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 26px 70px rgba(15, 23, 42, .17);
    backdrop-filter: blur(20px);
}

.company-search__field {
    display: flex;
    flex: 1 1 150px;
    align-items: center;
    gap: 12px;
    min-width: 0;
    padding: 12px 14px;
    border-radius: 19px;
    cursor: text;
    transition: background .2s ease;
}

.company-search__field--wide {
    flex-grow: 1.35;
}

.company-search__field:hover,
.company-search__field:focus-within {
    background: #f6f7fb;
}

.company-search__icon {
    display: grid;
    flex: 0 0 36px;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 12px;
    background: color-mix(in srgb, var(--rubro-accent) 9%, #fff);
    color: var(--rubro-accent);
    font-size: 15px;
}

.company-search__copy {
    display: grid;
    min-width: 0;
    gap: 4px;
}

.company-search__copy small {
    color: #1f2937;
    font-size: 12px;
    font-weight: 800;
}

.company-search__copy input,
.company-search__copy select {
    width: 100%;
    min-width: 0;
    height: 28px;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #6b7280;
    font: inherit;
    font-size: 12px;
}

.company-search__copy input[type="date"],
.company-search__copy input[type="time"] {
    color-scheme: light;
}

.company-search__divider {
    align-self: center;
    width: 1px;
    height: 44px;
    background: #e7e9ef;
}

.company-search__submit {
    display: grid;
    flex: 0 0 68px;
    place-items: center;
    align-self: center;
    width: 68px;
    height: 68px;
    margin-left: 8px;
    border: 0;
    border-radius: 22px;
    background: var(--rubro-accent);
    color: #fff;
    box-shadow: 0 15px 34px color-mix(in srgb, var(--rubro-accent) 38%, transparent);
    cursor: pointer;
    font-size: 21px;
    transition: transform .22s ease, box-shadow .22s ease;
}

.company-search__submit span {
    display: none;
}

.company-search__submit:hover {
    transform: translateY(-2px) scale(1.02);
    box-shadow: 0 20px 42px color-mix(in srgb, var(--rubro-accent) 45%, transparent);
}

.company-search__feedback {
    width: max-content;
    max-width: 100%;
    margin: 11px 0 0 18px;
    padding: 9px 13px;
    border-radius: 999px;
    background: #fff;
    color: #475467;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .09);
    font-size: 12px;
    font-weight: 700;
}

/* Resumen general -------------------------------------------------------- */
.company-summary-section {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(30px, 5vw, 72px);
    align-items: center;
    margin-top: clamp(68px, 8vw, 108px);
    padding: clamp(28px, 5vw, 66px);
    border: 1px solid rgba(229, 231, 235, .85);
    border-radius: 32px;
    background:
        radial-gradient(circle at 90% 0, color-mix(in srgb, var(--rubro-accent) 8%, transparent), transparent 22rem),
        #fff;
    box-shadow: 0 18px 60px rgba(15, 23, 42, .07);
}

.company-summary-section__copy h2 {
    margin: 0;
    color: #111827;
    font-size: clamp(29px, 4vw, 48px);
    font-weight: 650;
    letter-spacing: -.045em;
    line-height: 1.1;
    text-wrap: balance;
}

.company-summary-section__copy>p {
    margin: 18px 0 0;
    color: #667085;
    font-size: 14px;
    line-height: 1.8;
}

.company-summary-section__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 25px;
}

.company-summary-section__actions a,
.company-map-open {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 43px;
    padding: 10px 15px;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    background: #fff;
    color: #344054;
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
    transition: transform .2s ease, border-color .2s ease, color .2s ease;
}

.company-summary-section__actions a:hover,
.company-map-open:hover {
    border-color: var(--rubro-accent);
    color: var(--rubro-accent);
    transform: translateY(-2px);
}

.company-summary-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
}

.company-summary-card {
    display: flex;
    gap: 14px;
    min-height: 142px;
    padding: 20px;
    border: 1px solid #e8eaf0;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .045);
}

.company-summary-card:first-child {
    grid-column: 1 / -1;
}

.company-summary-card>span {
    display: grid;
    flex: 0 0 48px;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    background: color-mix(in srgb, var(--rubro-accent) 10%, #fff);
    color: var(--rubro-accent);
    font-size: 20px;
}

.company-summary-card strong {
    display: block;
    color: #111827;
    font-size: 15px;
}

.company-summary-card p {
    margin: 7px 0 0;
    color: #667085;
    font-size: 12px;
    line-height: 1.6;
}

/* Galería ---------------------------------------------------------------- */
.company-map-section {
    margin-top: clamp(54px, 7vw, 96px);
}


/* Mapa ------------------------------------------------------------------- */
.company-map-layout {
    display: grid;
    grid-template-columns: minmax(320px, .75fr) minmax(0, 1.25fr);
    min-height: 560px;
    overflow: hidden;
    border: 1px solid #e5e7eb;
    border-radius: 30px;
    background: #fff;
    box-shadow: 0 22px 70px rgba(15, 23, 42, .09);
}

.company-map-panel {
    display: flex;
    flex-direction: column;
    padding: 24px;
    border-right: 1px solid #e8eaf0;
}

.company-map-search {
    display: grid;
    gap: 10px;
}

.company-map-search label {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    padding: 8px 12px;
    border: 1px solid #dfe3ea;
    border-radius: 16px;
    background: #f9fafb;
}

.company-map-search label span {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: #fff;
    color: var(--rubro-accent);
}

.company-map-search input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: #344054;
    font: inherit;
    font-size: 12px;
}

.company-map-search button {
    min-height: 47px;
    border: 0;
    border-radius: 15px;
    background: var(--rubro-accent);
    color: #fff;
    cursor: pointer;
    font-size: 12px;
    font-weight: 750;
}

.company-branch-list {
    display: grid;
    gap: 9px;
    max-height: 330px;
    margin-top: 20px;
    overflow: auto;
    padding-right: 3px;
}

.company-branch {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 30px;
    gap: 11px;
    align-items: center;
    padding: 13px;
    border: 1px solid #e7e9ef;
    border-radius: 17px;
    background: #fff;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.company-branch:hover,
.company-branch.is-active {
    border-color: color-mix(in srgb, var(--rubro-accent) 42%, #ddd);
    background: color-mix(in srgb, var(--rubro-accent) 5%, #fff);
    transform: translateX(2px);
}

.company-branch__icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: color-mix(in srgb, var(--rubro-accent) 10%, #fff);
    color: var(--rubro-accent);
}

.company-branch strong {
    display: block;
    color: #1f2937;
    font-size: 13px;
}

.company-branch p {
    margin: 4px 0 0;
    color: #667085;
    font-size: 11px;
    line-height: 1.45;
}

.company-branch small {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 5px;
    color: #7c8493;
    font-size: 10px;
}

.company-branch button {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 10px;
    background: #f2f4f7;
    color: #667085;
    cursor: pointer;
}

.company-map-open {
    justify-content: center;
    margin-top: auto;
    border-radius: 14px;
}

.company-map-frame {
    min-height: 560px;
    background: #e9ecef;
}

.company-map-frame iframe {
    width: 100%;
    height: 100%;
    min-height: 560px;
    border: 0;
}

/* Filtro ----------------------------------------------------------------- */
[data-search-card][hidden] {
    display: none !important;
}

/* Ajustes de anclaje ------------------------------------------------------ */
#company-summary,
#company-schedules,
#company-rooms,
#company-products,
#company-booking,
#company-location {
    scroll-margin-top: 120px;
}

@media (max-width: 1180px) {
    .company-showcase-hero__content {
        width: 86%;
    }

    .company-showcase-hero__nav {
        max-width: 65%;
    }

    .company-search {
        flex-wrap: wrap;
    }

    .company-search__field {
        flex: 1 1 220px;
    }

    .company-search__divider {
        display: none;
    }

    .company-search__submit {
        flex: 0 0 58px;
        width: 58px;
        height: 58px;
    }

}

@media (max-width: 900px) {
    .company-showcase-hero {
        min-height: 650px;
    }

    .company-showcase-hero__content {
        width: 100%;
        min-height: 590px;
        padding: 48px 30px 146px;
    }

    .company-showcase-hero__nav {
        right: 22px;
        bottom: 86px;
        left: 22px;
        max-width: none;
        justify-content: flex-start;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 4px;
    }

    .company-search-wrap {
        width: calc(100% - 32px);
        margin-top: -60px;
    }

    .company-summary-section {
        grid-template-columns: 1fr;
    }

    .company-map-layout {
        grid-template-columns: 1fr;
    }

    .company-map-panel {
        border-right: 0;
        border-bottom: 1px solid #e8eaf0;
    }

    .company-map-open {
        margin-top: 20px;
    }

}

@media (max-width: 640px) {
    .rubro-shell {
        width: min(100% - 18px, 1380px);
    }

    .company-showcase-hero {
        min-height: 670px;
        border-radius: 0 0 28px 28px;
    }

    .company-showcase-hero__content {
        justify-content: flex-start;
        min-height: 610px;
        padding: 38px 20px 156px;
    }

    .company-showcase-hero__identity {
        align-items: flex-start;
        gap: 12px;
    }

    .company-showcase-hero__logo {
        flex-basis: 58px;
        width: 58px;
        height: 58px;
        border-radius: 17px;
        font-size: 22px;
    }

    .company-showcase-hero h1 {
        font-size: 34px;
    }

    .company-showcase-hero__lead {
        margin-top: 19px;
        font-size: 25px;
    }

    .company-showcase-hero__description {
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    .company-showcase-hero__meta {
        display: grid;
        gap: 7px;
    }

    .company-showcase-hero__actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .company-showcase-hero__primary,
    .company-showcase-hero__glass {
        min-height: 44px;
        padding: 10px 12px;
        font-size: 11px;
    }

    .company-showcase-hero__actions a:last-child:nth-child(3) {
        grid-column: 1 / -1;
    }

    .company-showcase-hero__nav {
        bottom: 93px;
    }

    .company-search-wrap {
        width: calc(100% - 22px);
        margin-top: -74px;
    }

    .company-search {
        display: grid;
        grid-template-columns: 1fr;
        min-height: 0;
        padding: 10px;
        border-radius: 24px;
    }

    .company-search__field {
        min-height: 60px;
        padding: 8px 10px;
    }

    .company-search__field:nth-of-type(n

        /**/
        +4) {
        display: none;
    }

    .company-search__submit {
        display: flex;
        width: 100%;
        height: 48px;
        margin: 6px 0 0;
        border-radius: 16px;
        font-size: 14px;
    }

    .company-search__submit span {
        display: inline;
        margin-left: 8px;
    }

    .company-search__feedback {
        margin-left: 0;
    }

    .company-summary-section {
        margin-top: 58px;
        padding: 24px 18px;
        border-radius: 25px;
    }

    .company-summary-cards {
        grid-template-columns: 1fr;
    }

    .company-summary-card:first-child {
        grid-column: auto;
    }

    .company-summary-card {
        min-height: 0;
    }


    .company-map-layout {
        min-height: 0;
        border-radius: 24px;
    }

    .company-map-panel {
        padding: 16px;
    }

    .company-map-frame,
    .company-map-frame iframe {
        min-height: 390px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .company-showcase-hero__fallback {
        animation: none;
    }
}

/* ========================================================================
   SOFIAPPS COMPANY PAGE V5 — adaptación visual Chisfis
   La cabecera del ERP/Django permanece fuera de este bloque.
   ======================================================================== */
.company-showcase-page {
    --chisfis-ink: #111827;
    --chisfis-muted: #64748b;
    --chisfis-line: #e8ebf0;
    --chisfis-panel: #f7f8fa;
    --chisfis-white: #fff;
    --chisfis-primary: var(--rubro-accent, #4f46e5);
    --chisfis-primary-soft: color-mix(in srgb, var(--chisfis-primary) 10%, #fff);
    overflow: hidden;
    color: var(--chisfis-ink);
    background:
        radial-gradient(circle at 8% 5%, rgba(255, 226, 229, .45), transparent 23rem),
        radial-gradient(circle at 94% 16%, rgba(207, 236, 255, .48), transparent 24rem),
        #fff;
}

.company-showcase-page .rubro-shell {
    width: min(calc(100% - 40px), 1320px);
    margin-inline: auto;
}

/* Hero: fotografía estática 1 grande + 2 laterales ----------------------- */
.chisfis-company-hero {
    display: grid;
    grid-template-columns: minmax(0, .88fr) minmax(520px, 1.12fr);
    gap: clamp(32px, 5vw, 78px);
    align-items: center;
    min-height: 610px;
    padding: clamp(46px, 6vw, 86px) 0 76px;
}

.chisfis-company-hero__copy {
    position: relative;
    z-index: 2;
    max-width: 590px;
}

.chisfis-company-hero__eyebrow,
.experience-heading__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #5b6474;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.chisfis-company-hero__eyebrow i,
.experience-heading__eyebrow i {
    color: var(--chisfis-primary);
}

.chisfis-company-hero__brand {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 24px;
}

.chisfis-company-hero__logo {
    display: grid;
    flex: 0 0 58px;
    width: 58px;
    height: 58px;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 18px;
    color: var(--chisfis-primary);
    background: #fff;
    box-shadow: 0 12px 34px rgba(15, 23, 42, .09);
}

.chisfis-company-hero__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 7px;
}

.chisfis-company-hero__logo i {
    font-size: 24px;
}

.chisfis-company-hero__brand h1 {
    margin: 0;
    font-size: clamp(18px, 2vw, 27px);
    line-height: 1.15;
}

.chisfis-company-hero__brand small {
    display: block;
    margin-top: 5px;
    color: var(--chisfis-muted);
}

.chisfis-company-hero__copy>h2 {
    max-width: 720px;
    margin: 26px 0 0;
    font-size: clamp(43px, 5.25vw, 76px);
    font-weight: 800;
    line-height: .98;
    letter-spacing: -.055em;
}

.chisfis-company-hero__copy>p {
    max-width: 570px;
    margin: 23px 0 0;
    color: #5f6878;
    font-size: clamp(15px, 1.4vw, 19px);
    line-height: 1.75;
}

.chisfis-company-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    margin-top: 24px;
    color: #4b5563;
    font-size: 13px;
}

.chisfis-company-hero__meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.chisfis-company-hero__meta i {
    color: var(--chisfis-primary);
}

.chisfis-company-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 28px;
}

.chisfis-btn {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 12px 21px;
    border: 1px solid #e4e7ec;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none !important;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.chisfis-btn:hover {
    transform: translateY(-2px);
}

.chisfis-btn--dark {
    color: #fff !important;
    border-color: #111827;
    background: #111827;
    box-shadow: 0 14px 28px rgba(17, 24, 39, .18);
}

.chisfis-btn--light {
    color: #111827 !important;
    background: #fff;
}

.chisfis-company-hero__gallery {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(170px, .86fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 8px;
    height: min(520px, 49vw);
    min-height: 450px;
}

.chisfis-company-hero__gallery::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: -18% -18% -15% -20%;
    background: radial-gradient(circle, rgba(255, 225, 226, .8), rgba(220, 245, 255, .54) 42%, transparent 68%);
    filter: blur(16px);
}

.chisfis-company-hero__photo {
    position: relative;
    display: block;
    overflow: hidden;
    padding: 0;
    border: 0;
    background: #eef1f5;
    cursor: pointer;
}

.chisfis-company-hero__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}

.chisfis-company-hero__photo:hover img {
    transform: scale(1.035);
}

.chisfis-company-hero__photo--main {
    grid-row: 1 / 3;
    border-radius: 30px 8px 8px 30px;
}

.chisfis-company-hero__photo--top {
    border-radius: 8px 30px 8px 8px;
}

.chisfis-company-hero__photo--bottom {
    border-radius: 8px 8px 30px 8px;
}

.media-placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    color: #94a3b8;
    font-size: 42px;
}

.chisfis-company-hero__show-all {
    position: absolute;
    right: 18px;
    bottom: 18px;
    display: inline-flex;
    min-height: 39px;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 999px;
    color: #111827;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .14);
    font-size: 12px;
    font-weight: 800;
    backdrop-filter: blur(12px);
}

/* Buscador y navegación --------------------------------------------------- */
.company-search-wrap--floating {
    position: relative;
    z-index: 12;
    width: min(94%, 1120px);
    margin: -47px auto 0;
}

.company-search-wrap--floating .company-search {
    border: 1px solid rgba(15, 23, 42, .06);
    border-radius: 25px;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 25px 70px rgba(15, 23, 42, .13);
    backdrop-filter: blur(16px);
}

.company-section-nav {
    position: sticky;
    z-index: 30;
    top: 74px;
    display: flex;
    gap: 8px;
    overflow-x: auto;
    margin: 36px 0 0;
    padding: 8px;
    border: 1px solid #edf0f3;
    border-radius: 999px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 12px 36px rgba(15, 23, 42, .06);
    scrollbar-width: none;
    backdrop-filter: blur(18px);
}

.company-section-nav::-webkit-scrollbar {
    display: none;
}

.company-section-nav a {
    display: inline-flex;
    flex: 0 0 auto;
    min-height: 39px;
    align-items: center;
    gap: 8px;
    padding: 9px 15px;
    border-radius: 999px;
    color: #566071;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none !important;
}

.company-section-nav a.is-active {
    color: #fff;
    background: #111827;
}

/* Bloques generales ------------------------------------------------------- */
.company-showcase-page section[id] {
    scroll-margin-top: 145px;
}

.experience-section,
.company-summary-section,
.company-map-section,
.company-tracking-section,
.erp-page-sections,
.erp-additional-content {
    margin-top: clamp(72px, 9vw, 126px);
}

.experience-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 30px;
}

.experience-heading h2,
.company-summary-section h2,
.company-tracking-section h2,
.erp-page-section h2 {
    margin: 9px 0 0;
    font-size: clamp(29px, 3.2vw, 46px);
    line-height: 1.08;
    letter-spacing: -.038em;
}

.experience-heading p {
    max-width: 690px;
    margin: 10px 0 0;
    color: var(--chisfis-muted);
    line-height: 1.7;
}

.experience-heading__count {
    flex: 0 0 auto;
    padding: 9px 13px;
    border-radius: 999px;
    color: #555f70;
    background: #f3f4f6;
    font-size: 12px;
    font-weight: 800;
}

.company-summary-section {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr);
    gap: clamp(28px, 5vw, 70px);
    align-items: center;
    padding: clamp(32px, 5vw, 66px);
    border-radius: 42px;
    background: #f7f8fa;
}

.company-summary-section__copy>p,
.erp-rich-content {
    color: #596273;
    line-height: 1.82;
}

.erp-rich-content h2,
.erp-rich-content h3 {
    color: #111827;
}

.erp-rich-content img {
    max-width: 100%;
    height: auto;
    border-radius: 22px;
}

.company-summary-section__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.company-summary-section__actions a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 15px;
    border: 1px solid #e3e6ea;
    border-radius: 999px;
    color: #172033;
    background: #fff;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.company-summary-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 13px;
}

.company-summary-card {
    display: flex;
    min-height: 124px;
    gap: 13px;
    padding: 20px;
    border: 1px solid #eef0f3;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .04);
}

.company-summary-card>span {
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 14px;
    color: var(--chisfis-primary);
    background: var(--chisfis-primary-soft);
}

.company-summary-card strong {
    font-size: 14px;
}

.company-summary-card p {
    margin: 6px 0 0;
    color: #70798a;
    font-size: 12px;
    line-height: 1.55;
}

/* Cards estilo listing de Chisfis ---------------------------------------- */
.company-catalog-section {
    position: relative;
}

.company-catalog-section:nth-child(even) {
    margin-inline: calc(50% - 50vw);
    padding: clamp(54px, 6vw, 84px) max(20px, calc((100vw - 1320px)/2));
    border-radius: 36px;
    background: #f7f8fa;
}

.company-category-pills {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    margin: -8px 0 24px;
    padding-bottom: 4px;
    scrollbar-width: none;
}

.company-category-pills::-webkit-scrollbar {
    display: none;
}

.company-category-pills button {
    flex: 0 0 auto;
    padding: 9px 15px;
    border: 1px solid #e3e6ea;
    border-radius: 999px;
    color: #475569;
    background: #fff;
    font-size: 12px;
    font-weight: 800;
}

.company-category-pills button.is-active {
    color: #fff;
    border-color: #111827;
    background: #111827;
}

.listing-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 26px 20px;
}

.listing-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #e9ebef;
    border-radius: 25px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .04);
    transition: transform .25s ease, box-shadow .25s ease;
}

.listing-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 22px 48px rgba(15, 23, 42, .11);
}

.listing-card[hidden] {
    display: none !important;
}

.listing-card__media {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1.32;
    overflow: hidden;
    padding: 0;
    border: 0;
    background: #eceff3;
}

.listing-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .55s ease;
}

.listing-card:hover .listing-card__media img {
    transform: scale(1.045);
}

.listing-card__discount,
.listing-card__type {
    position: absolute;
    z-index: 2;
    top: 13px;
    padding: 7px 10px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 900;
}

.listing-card__discount {
    left: 13px;
    color: #e94658;
    background: #fff;
}

.listing-card__type {
    right: 13px;
    color: #334155;
    background: rgba(255, 255, 255, .92);
}

.listing-card__body {
    padding: 17px;
}

.listing-card__meta {
    display: block;
    overflow: hidden;
    color: #7a8392;
    font-size: 11px;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.listing-card__title {
    display: block;
    width: 100%;
    margin: 8px 0 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    color: #111827;
    background: transparent;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.35;
    text-align: left;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.listing-card__excerpt {
    display: -webkit-box;
    min-height: 38px;
    margin: 8px 0 0;
    overflow: hidden;
    color: #6b7280;
    font-size: 11px;
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.listing-card__location {
    display: -webkit-box;
    min-height: 34px;
    margin: 8px 0 0;
    overflow: hidden;
    color: #697386;
    font-size: 11px;
    line-height: 1.45;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.listing-card__location i {
    margin-right: 6px;
    color: var(--chisfis-primary);
}

.listing-card__rating {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 10px;
    font-size: 11px;
}

.listing-card__rating i {
    color: #ff9f1c;
}

.listing-card__rating small {
    color: #8a93a2;
}

.listing-card__divider {
    height: 1px;
    margin: 13px 0;
    background: #eef0f3;
}

.listing-card__footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
}

.listing-card__price {
    min-width: 0;
}

.listing-card__price del {
    display: block;
    color: #98a1ad;
    font-size: 10px;
}

.listing-card__price strong {
    display: block;
    margin-top: 2px;
    font-size: 15px;
}

.listing-card__actions {
    display: flex;
    gap: 7px;
}

.listing-card__details,
.listing-card__cart {
    display: inline-flex;
    min-height: 35px;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 1px solid #e2e5e9;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
}

.listing-card__details {
    width: 35px;
    padding: 0;
    color: #111827;
    background: #fff;
}

.listing-card__cart {
    padding: 8px 12px;
    color: #fff;
    border-color: #111827;
    background: #111827;
}

.property-card__features {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.property-card__features span {
    color: #586273;
    font-size: 10px;
}

.property-card__features i {
    margin-right: 4px;
    color: var(--chisfis-primary);
}

.empty-direct {
    padding: 40px;
    border: 1px dashed #d8dde5;
    border-radius: 24px;
    text-align: center;
}

/* Rastreo integrado ------------------------------------------------------- */
.company-tracking-section {
    display: grid;
    grid-template-columns: minmax(0, .88fr) minmax(420px, 1.12fr);
    gap: clamp(28px, 5vw, 70px);
    align-items: stretch;
    padding: clamp(30px, 5vw, 62px);
    border-radius: 42px;
    background: linear-gradient(135deg, #f8fafc, #eef4ff);
}

.company-tracking-section__intro p {
    color: #667085;
    line-height: 1.7;
}

.company-tracking-form {
    display: flex;
    gap: 10px;
    margin-top: 24px;
}

.company-tracking-form label {
    display: flex;
    flex: 1;
    min-height: 53px;
    align-items: center;
    gap: 10px;
    padding: 0 15px;
    border: 1px solid #e1e5ea;
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 10px 25px rgba(15, 23, 42, .05);
}

.company-tracking-form label span {
    color: var(--chisfis-primary);
}

.company-tracking-form input {
    width: 100%;
    border: 0;
    outline: 0;
    color: #111827;
    background: transparent;
    font-weight: 700;
}

.company-tracking-form button {
    min-width: 150px;
    border: 0;
    border-radius: 17px;
    color: #fff;
    background: #111827;
    font-size: 12px;
    font-weight: 800;
}

.company-tracking-message {
    margin-top: 12px;
    padding: 11px 13px;
    border-radius: 13px;
    color: #155e75;
    background: #ecfeff;
    font-size: 12px;
}

.company-tracking-message.is-error {
    color: #b42318;
    background: #fff1f2;
}

.company-tracking-result {
    padding: 25px;
    border: 1px solid rgba(255, 255, 255, .9);
    border-radius: 28px;
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
}

.company-tracking-result__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 17px;
    border-bottom: 1px solid #edf0f3;
}

.company-tracking-result__head small,
.company-tracking-route small {
    display: block;
    color: #8992a2;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.company-tracking-result__head strong {
    font-size: 18px;
}

.company-tracking-result__head>span {
    padding: 8px 12px;
    border-radius: 999px;
    color: var(--track-color, #2f6fed);
    background: color-mix(in srgb, var(--track-color, #2f6fed) 12%, #fff);
    font-size: 11px;
    font-weight: 900;
}

.company-tracking-route {
    display: grid;
    grid-template-columns: 1fr 45px 1fr;
    gap: 12px;
    align-items: center;
    padding: 20px 0;
    text-align: center;
}

.company-tracking-route>i {
    color: var(--chisfis-primary);
    font-size: 22px;
}

.company-tracking-timeline {
    display: grid;
    gap: 0;
}

.company-tracking-event {
    position: relative;
    display: grid;
    grid-template-columns: 30px 1fr;
    gap: 12px;
    padding: 0 0 19px;
}

.company-tracking-event:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 28px;
    bottom: 0;
    width: 2px;
    background: #e5e9ef;
}

.company-tracking-event__dot {
    position: relative;
    z-index: 2;
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #94a3b8;
    font-size: 10px;
}

.company-tracking-event.is-current .company-tracking-event__dot {
    background: var(--chisfis-primary);
    box-shadow: 0 0 0 6px var(--chisfis-primary-soft);
}

.company-tracking-event__head {
    display: flex;
    justify-content: space-between;
    gap: 15px;
}

.company-tracking-event__head time {
    color: #8892a2;
    font-size: 10px;
}

.company-tracking-event p {
    margin: 5px 0;
    color: #677184;
    font-size: 12px;
}

.company-tracking-event small {
    color: #8791a1;
    font-size: 10px;
}

.company-tracking-event small i {
    margin-right: 5px;
}

/* Video: réplica estructural de SectionVideos de Chisfis ----------------- */


/* Google Maps ------------------------------------------------------------- */
.company-map-layout {
    display: grid;
    grid-template-columns: minmax(340px, .72fr) minmax(0, 1.28fr);
    min-height: 600px;
    overflow: hidden;
    border: 1px solid #e6e9ed;
    border-radius: 34px;
    background: #fff;
    box-shadow: 0 20px 55px rgba(15, 23, 42, .08);
}

.company-map-panel {
    display: flex;
    flex-direction: column;
    padding: 26px;
    border-right: 1px solid #e8ebef;
}

.company-map-search {
    display: grid;
    gap: 10px;
}

.company-map-search label {
    display: flex;
    min-height: 52px;
    align-items: center;
    gap: 10px;
    padding: 0 14px;
    border: 1px solid #e2e6eb;
    border-radius: 16px;
}

.company-map-search input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
}

.company-map-search button,
.company-map-open {
    display: inline-flex;
    min-height: 47px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 0;
    border-radius: 16px;
    color: #fff !important;
    background: #111827;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none !important;
}

.company-branch-list {
    display: grid;
    gap: 9px;
    margin-top: 18px;
    overflow: auto;
}

.company-branch {
    display: grid;
    grid-template-columns: 42px 1fr 28px;
    gap: 10px;
    align-items: center;
    padding: 13px;
    border: 1px solid #e9ecf0;
    border-radius: 18px;
    background: #fff;
}

.company-branch.is-active {
    border-color: color-mix(in srgb, var(--chisfis-primary) 32%, #e5e7eb);
    background: var(--chisfis-primary-soft);
}

.company-branch__icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 13px;
    color: var(--chisfis-primary);
    background: #fff;
}

.company-branch p {
    margin: 4px 0;
    color: #697386;
    font-size: 11px;
}

.company-branch small {
    color: #7b8595;
    font-size: 10px;
}

.company-branch button {
    border: 0;
    color: #64748b;
    background: transparent;
}

.company-map-open {
    margin-top: auto;
}

.company-map-frame iframe {
    width: 100%;
    min-height: 600px;
    border: 0;
}

/* Secciones editables del constructor web -------------------------------- */
.erp-page-sections {
    display: grid;
    gap: 36px;
}

.erp-page-section {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
    align-items: center;
    padding: clamp(28px, 5vw, 62px);
    border-radius: 38px;
    background: #f7f8fa;
}

.erp-page-section--with-image {
    grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr);
}

.erp-page-section>img {
    width: 100%;
    max-height: 430px;
    object-fit: cover;
    border-radius: 30px;
}

.erp-page-section:nth-child(even) .erp-page-section__copy {
    order: 2;
}

.erp-page-section:nth-child(even)>img {
    order: 1;
}

.erp-additional-content {
    padding: clamp(28px, 5vw, 60px);
    border: 1px solid #e8ebef;
    border-radius: 38px;
}

/* Galería --------------------------------------------------------------- */


/* Modal detalle inspirado en listing detail ------------------------------ */
.company-detail-modal {
    position: fixed;
    z-index: 999999;
    inset: 0;
    display: none;
    overflow: auto;
    padding: 22px;
}

.company-detail-modal.is-open {
    display: block;
}

.company-detail-modal__backdrop {
    position: fixed;
    inset: 0;
    background: rgba(9, 14, 24, .7);
    backdrop-filter: blur(8px);
}

.company-detail-modal__dialog {
    position: relative;
    z-index: 2;
    width: min(1120px, 100%);
    margin: 20px auto;
    overflow: hidden;
    border-radius: 30px;
    background: #fff;
    box-shadow: 0 35px 100px rgba(0, 0, 0, .28);
}

.company-detail-modal__dialog,
.company-detail-modal__dialog .company-detail-content,
.company-detail-modal__dialog .company-detail-booking {
    color: #111827;
    background-color: #fff;
    text-shadow: none;
}

.company-detail-modal__dialog h1,
.company-detail-modal__dialog h2,
.company-detail-modal__dialog h3,
.company-detail-modal__dialog h4,
.company-detail-modal__dialog p,
.company-detail-modal__dialog li,
.company-detail-modal__dialog span,
.company-detail-modal__dialog strong,
.company-detail-modal__dialog small,
.company-detail-modal__dialog label {
    color: #111827;
    text-shadow: none;
}

.company-detail-modal__close {
    position: absolute;
    z-index: 8;
    top: 17px;
    right: 17px;
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 0;
    border-radius: 50%;
    color: #111827;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 8px 22px rgba(15, 23, 42, .18);
}

.company-detail-gallery {
    position: relative;
    display: grid;
    grid-template-columns: 1.72fr 1fr;
    grid-template-rows: repeat(2, 225px);
    gap: 5px;
    padding: 18px 18px 0;
}

.company-detail-gallery__main {
    grid-row: 1 / 3;
    overflow: hidden;
    border-radius: 20px 5px 5px 20px;
}

.company-detail-gallery__side {
    display: contents;
}

.company-detail-gallery__side img:first-child {
    border-radius: 5px 20px 5px 5px;
}

.company-detail-gallery__side img:last-child {
    border-radius: 5px 5px 20px 5px;
}

.company-detail-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.company-detail-gallery>button {
    position: absolute;
    right: 35px;
    bottom: 17px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 13px;
    border: 1px solid #d9dde4;
    border-radius: 999px;
    background: #fff;
    font-size: 11px;
    font-weight: 800;
}

.company-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 38px;
    padding: 34px;
}

.company-detail-content {
    min-width: 0;
}

.company-detail-badge {
    display: inline-flex;
    padding: 7px 10px;
    border-radius: 999px;
    color: #4f46e5;
    background: #eef2ff;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}

.company-detail-content h2 {
    margin: 12px 0 0;
    font-size: clamp(25px, 3vw, 38px);
    line-height: 1.12;
    letter-spacing: -.035em;
}

.company-detail-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 15px;
    margin-top: 15px;
    color: #667085;
    font-size: 11px;
}

.company-detail-meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.company-detail-meta i {
    color: var(--chisfis-primary);
}

.company-detail-description {
    margin-top: 25px;
    padding-top: 25px;
    border-top: 1px solid #eceff2;
}

.company-detail-booking {
    position: sticky;
    top: 20px;
    align-self: start;
    padding: 22px;
    border: 1px solid #e5e8ec;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .12);
}

.company-detail-price {
    display: flex;
    align-items: baseline;
    gap: 7px;
}

.company-detail-price del {
    color: #9aa3af;
    font-size: 13px;
}

.company-detail-price strong {
    font-size: 25px;
}

.company-detail-price small {
    color: #818a98;
    font-size: 11px;
}

.company-detail-booking__summary {
    margin-top: 17px;
    overflow: hidden;
    border: 1px solid #e8ebef;
    border-radius: 15px;
}

.company-detail-booking__summary div {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 12px;
}

.company-detail-booking__summary div+div {
    border-top: 1px solid #e8ebef;
}

.company-detail-booking__summary span {
    color: #8791a0;
    font-size: 10px;
}

.company-detail-booking__summary strong {
    font-size: 11px;
}

.company-detail-add,
.company-detail-contact,
.company-detail-link {
    display: flex;
    width: 100%;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 11px;
    border-radius: 14px;
    font-size: 11px;
    font-weight: 900;
    text-decoration: none !important;
}

.company-detail-add {
    border: 0;
    color: #fff;
    background: #111827;
}

.company-detail-contact {
    color: #087b4b !important;
    border: 1px solid #ccebdd;
    background: #edfff6;
}

.company-detail-link {
    color: #111827 !important;
    border: 1px solid #e2e6eb;
    background: #fff;
}

.company-gallery-lightbox {
    position: fixed;
    z-index: 1000000;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(4, 8, 16, .93);
}

.company-gallery-lightbox.is-open {
    display: flex;
}

.company-gallery-lightbox figure {
    width: min(1100px, 86vw);
    margin: 0;
    text-align: center;
}

.company-gallery-lightbox figure img {
    max-width: 100%;
    max-height: 82vh;
    border-radius: 20px;
    object-fit: contain;
}

.company-gallery-lightbox figcaption {
    display: grid;
    gap: 3px;
    margin-top: 12px;
    color: #fff;
}

.company-gallery-lightbox figcaption span {
    color: rgba(255, 255, 255, .65);
    font-size: 11px;
}

.company-gallery-lightbox__close,
.company-gallery-lightbox__nav {
    position: fixed;
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border: 0;
    border-radius: 50%;
    color: #fff;
    background: rgba(255, 255, 255, .14);
    backdrop-filter: blur(10px);
}

.company-gallery-lightbox__close {
    top: 22px;
    right: 22px;
}

.company-gallery-lightbox__nav {
    top: 50%;
    transform: translateY(-50%);
}

.company-gallery-lightbox__nav--prev {
    left: 22px;
}

.company-gallery-lightbox__nav--next {
    right: 22px;
}

/* Responsive -------------------------------------------------------------- */
@media (max-width: 1180px) {
    .chisfis-company-hero {
        grid-template-columns: .9fr 1.1fr;
        gap: 36px;
    }

    .listing-card-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

}

@media (max-width: 960px) {
    .company-showcase-page .rubro-shell {
        width: min(calc(100% - 28px), 1320px);
    }

    .chisfis-company-hero {
        grid-template-columns: 1fr;
        padding-top: 40px;
    }

    .chisfis-company-hero__copy {
        max-width: 760px;
    }

    .chisfis-company-hero__gallery {
        height: 520px;
        min-height: 0;
    }

    .company-summary-section,
    .company-tracking-section {
        grid-template-columns: 1fr;
    }

    .listing-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }



    .company-map-layout {
        grid-template-columns: 1fr;
    }

    .company-map-panel {
        border-right: 0;
        border-bottom: 1px solid #e8ebef;
    }

    .company-map-open {
        margin-top: 20px;
    }

    .erp-page-section--with-image {
        grid-template-columns: 1fr;
    }

    .erp-page-section:nth-child(even) .erp-page-section__copy,
    .erp-page-section:nth-child(even)>img {
        order: initial;
    }

    .company-detail-layout {
        grid-template-columns: 1fr;
    }

    .company-detail-booking {
        position: static;
    }
}

@media (max-width: 680px) {
    .company-showcase-page .rubro-shell {
        width: min(calc(100% - 18px), 1320px);
    }

    .chisfis-company-hero {
        gap: 28px;
        min-height: 0;
        padding: 30px 2px 70px;
    }

    .chisfis-company-hero__copy>h2 {
        font-size: 42px;
    }

    .chisfis-company-hero__gallery {
        grid-template-columns: 1.48fr .92fr;
        height: 340px;
        gap: 5px;
    }

    .chisfis-company-hero__photo--main {
        border-radius: 22px 5px 5px 22px;
    }

    .chisfis-company-hero__photo--top {
        border-radius: 5px 22px 5px 5px;
    }

    .chisfis-company-hero__photo--bottom {
        border-radius: 5px 5px 22px 5px;
    }

    .chisfis-company-hero__show-all {
        right: 10px;
        bottom: 10px;
        font-size: 0;
    }

    .chisfis-company-hero__show-all i {
        font-size: 13px;
    }

    .company-section-nav {
        top: 62px;
        margin-top: 22px;
        border-radius: 20px;
    }

    .company-summary-section,
    .company-tracking-section {
        padding: 25px 18px;
        border-radius: 28px;
    }

    .company-summary-cards {
        grid-template-columns: 1fr;
    }

    .experience-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .experience-heading__count {
        align-self: flex-start;
    }

    .listing-card-grid {
        grid-template-columns: 1fr 1fr;
        gap: 13px 9px;
    }

    .listing-card {
        border-radius: 17px;
    }

    .listing-card__media {
        aspect-ratio: 1.12;
    }

    .listing-card__body {
        padding: 12px;
    }

    .listing-card__excerpt {
        display: none;
    }

    .listing-card__cart span {
        display: none;
    }

    .listing-card__cart {
        width: 35px;
        padding: 0;
    }

    .company-tracking-form {
        flex-direction: column;
    }

    .company-tracking-form button {
        min-height: 50px;
    }









    .company-detail-modal {
        padding: 0;
    }

    .company-detail-modal__dialog {
        min-height: 100%;
        margin: 0;
        border-radius: 0;
    }

    .company-detail-gallery {
        grid-template-columns: 1.45fr .9fr;
        grid-template-rows: repeat(2, 145px);
        padding: 9px 9px 0;
    }

    .company-detail-gallery__main {
        border-radius: 16px 4px 4px 16px;
    }

    .company-detail-layout {
        gap: 24px;
        padding: 24px 17px 30px;
    }

    .company-detail-modal__close {
        top: 14px;
        right: 14px;
    }

    .company-gallery-lightbox__nav {
        width: 38px;
        height: 38px;
    }

    .company-gallery-lightbox__nav--prev {
        left: 8px;
    }

    .company-gallery-lightbox__nav--next {
        right: 8px;
    }
}

@media (max-width: 575.98px) {}

/* Categorías visuales tipo Chisfis --------------------------------------- */
.company-category-showcase {
    margin-top: clamp(48px, 7vw, 92px);
}

.company-category-showcase__heading {
    margin-bottom: 24px;
}

.company-category-showcase__all {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #111827 !important;
    font-size: 11px;
    font-weight: 850;
    text-decoration: none !important;
}

.company-category-showcase__rail {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: clamp(12px, 1.6vw, 22px);
}

.company-category-tile {
    display: block;
    min-width: 0;
    color: #111827 !important;
    text-decoration: none !important;
}

.company-category-tile__media {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 1.12;
    margin-bottom: 12px;
    border-radius: 22px;
    background: #eef1f5;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .06);
}

.company-category-tile__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease, filter .3s ease;
}

.company-category-tile:hover .company-category-tile__media img {
    transform: scale(1.045);
    filter: brightness(.9);
}

.company-category-tile strong {
    display: block;
    overflow: hidden;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.company-category-tile small {
    display: block;
    overflow: hidden;
    margin-top: 4px;
    color: #7c8697;
    font-size: 9px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 1100px) {
    .company-category-showcase__rail {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .company-category-showcase__heading {
        align-items: flex-end;
    }

    .company-category-showcase__rail {
        display: flex;
        overflow-x: auto;
        gap: 12px;
        padding-bottom: 8px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .company-category-showcase__rail::-webkit-scrollbar {
        display: none;
    }

    .company-category-tile {
        flex: 0 0 145px;
        scroll-snap-align: start;
    }

    .company-category-tile__media {
        border-radius: 18px;
    }
}

/* ========================================================================
   SOFIAPPS COMPANY PAGE V8 — datos automáticos y composición Chisfis
   ======================================================================== */
.company-showcase-page.rubro-direct-page {
    position: relative;
    isolation: isolate;
    margin-top: 0 !important;
    overflow-x: clip;
    background: #fff !important;
}

.company-showcase-page.rubro-direct-page::before {
    content: "";
    position: absolute;
    z-index: -2;
    top: 0;
    left: 50%;
    width: 100vw;
    height: min(760px, 72vw);
    transform: translateX(-50%);
    background:
        radial-gradient(circle at 0% 18%, rgba(255, 219, 225, .72), transparent 30rem),
        radial-gradient(circle at 100% 32%, rgba(207, 239, 255, .72), transparent 32rem),
        linear-gradient(180deg, #fff 0%, #fff 76%, rgba(255, 255, 255, 0) 100%);
    pointer-events: none;
}

.company-showcase-page>.rubro-shell {
    position: relative;
    z-index: 1;
}

/* Redes oficiales visibles en cabecera ---------------------------------- */
.chisfis-company-hero__socials {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 18px;
}

.chisfis-company-hero__socials a,
.company-social-timeline__networks a {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 50%;
    color: #344054 !important;
    background: rgba(255, 255, 255, .88);
    box-shadow: none;
    text-decoration: none !important;
    backdrop-filter: blur(12px);
    transition: color .2s ease, border-color .2s ease, background .2s ease;
}

.chisfis-company-hero__socials a:hover,
.company-social-timeline__networks a:hover {
    color: var(--chisfis-primary) !important;
    border-color: color-mix(in srgb, var(--chisfis-primary) 35%, #fff);
    background: #fff;
}

/* Cupones inmediatamente debajo de la cabecera -------------------------- */


/* Testimonios y preguntas ------------------------------------------------ */
.company-faq,
.company-social-timeline {
    margin-top: clamp(72px, 9vw, 126px);
}


.company-faq__list {
    overflow: hidden;
    border: 1px solid #eceef2;
    border-radius: 25px;
    background: #fff;
}

.company-faq details+details {
    border-top: 1px solid #eceef2;
}

.company-faq summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 24px;
    color: #172033;
    font-size: 14px;
    font-weight: 850;
    cursor: pointer;
    list-style: none;
}

.company-faq summary::-webkit-details-marker {
    display: none;
}

.company-faq details[open] summary i {
    transform: rotate(45deg);
}

.company-faq details>div {
    padding: 0 24px 22px;
    color: #667085;
    font-size: 13px;
    line-height: 1.7;
}

/* Timeline social al final ---------------------------------------------- */
.company-social-timeline__networks {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.company-social-timeline__line {
    position: relative;
    display: grid;
    gap: 22px;
    padding-left: 52px;
}

.company-social-timeline__line::before {
    content: "";
    position: absolute;
    top: 16px;
    bottom: 16px;
    left: 18px;
    width: 1px;
    background: #dfe3e9;
}

.company-social-post {
    position: relative;
}

.company-social-post__marker {
    position: absolute;
    z-index: 2;
    top: 20px;
    left: -52px;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 5px solid #fff;
    border-radius: 50%;
    color: #fff;
    background: #111827;
    box-shadow: 0 0 0 1px #e4e7ec;
}

.company-social-post__card {
    display: grid;
    grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid #eceef2;
    border-radius: 25px;
    background: #fff;
}

.company-social-post--text-only .company-social-post__card {
    grid-template-columns: 1fr;
}

.company-social-post__image {
    display: block;
    min-height: 190px;
    background: #eef1f5;
}

.company-social-post__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.company-social-post__body {
    padding: 24px 26px;
}

.company-social-post__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: #87909f;
    font-size: 10px;
    font-weight: 750;
    text-transform: uppercase;
}

.company-social-post__meta span {
    color: var(--chisfis-primary);
}

.company-social-post h3 {
    margin: 13px 0 0;
    font-size: 20px;
    letter-spacing: -.025em;
}

.company-social-post p {
    margin: 10px 0 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.7;
}

.company-social-post__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 17px;
    color: #111827 !important;
    font-size: 11px;
    font-weight: 850;
    text-decoration: none !important;
}

.erp-page-section__button {
    margin-top: 20px;
}

@media (max-width: 1100px) {

    .company-schedule-row {
        grid-template-columns: minmax(160px, 1fr) minmax(140px, .8fr) minmax(180px, 1fr) minmax(120px, .7fr) 42px;
    }

    .company-schedule-row__availability {
        display: none;
    }
}

@media (max-width: 820px) {
    .company-schedule-row {
        grid-template-columns: 1fr 1fr 42px;
        gap: 12px;
    }

    .company-schedule-row__operator {
        grid-column: 1 / 3;
    }

    .company-schedule-row__route {
        grid-column: 1 / 3;
    }

    .company-schedule-row__price {
        text-align: left;
    }

    .company-schedule-row__action {
        grid-column: 3;
        grid-row: 1 / 4;
        align-self: center;
    }

    .company-social-post__card {
        grid-template-columns: minmax(0, 190px) minmax(0, 1fr);
    }
}

@media (max-width: 680px) {
    .company-showcase-page.rubro-direct-page::before {
        height: 690px;
    }




    .company-schedule-row {
        padding: 16px;
        border-radius: 18px;
    }

    .company-schedule-row__time strong,
    .company-schedule-row__route strong {
        white-space: normal;
    }

    .company-social-timeline__line {
        padding-left: 38px;
    }

    .company-social-timeline__line::before {
        left: 13px;
    }

    .company-social-post__marker {
        left: -38px;
        width: 28px;
        height: 28px;
        border-width: 4px;
        font-size: 10px;
    }

    .company-social-post__card {
        grid-template-columns: 1fr;
    }

    .company-social-post__image {
        min-height: 210px;
    }
}

/* ========================================================================
   V10 — PÁGINA EMPRESARIAL DINÁMICA / CHISFIS
   Fondo full-bleed, contenido contenido, datos reales y lectura clara.
   ======================================================================== */

html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

body:has(.company-showcase-page) .store-site-header,
body:has(.company-showcase-page) header.store-site-header,
body:has(.company-showcase-page) .store-site-header .mn-header {
    position: relative !important;
    inset: auto !important;
    transform: none !important;
}

body:has(.company-showcase-page) .store-content-wrap,
body:has(.company-showcase-page) .store-main-content,
body:has(.company-showcase-page) .mn-main-content {
    position: relative;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: visible !important;
}

.company-showcase-page.rubro-direct-page {
    position: relative;
    z-index: 1;
    isolation: isolate;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 0 0 !important;
    overflow: visible !important;
    color: var(--chisfis-ink, #111827);
    background: transparent !important;
}

/* El fondo sale hasta los bordes del viewport sin sacar el contenido
   del contenedor. No se usan márgenes negativos en el main. */
.company-showcase-page.rubro-direct-page::before {
    content: "";
    position: absolute;
    z-index: -2;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    background:
        radial-gradient(circle at 0% 7%, rgba(255, 218, 226, .86) 0, rgba(255, 218, 226, .44) 16rem, transparent 34rem),
        radial-gradient(circle at 100% 18%, rgba(202, 236, 255, .88) 0, rgba(202, 236, 255, .46) 17rem, transparent 37rem),
        linear-gradient(180deg, #fff 0, #fff 720px, #f8fafc 1040px, #fff 1450px);
    pointer-events: none;
}

.company-showcase-page>.rubro-shell {
    position: relative;
    z-index: 1;
    width: min(100%, 1440px) !important;
    max-width: 1440px !important;
    min-width: 0;
    margin-inline: auto !important;
    padding-inline: clamp(24px, 3.2vw, 48px) !important;
}

.company-showcase-page>.rubro-shell,
.company-showcase-page>.rubro-shell>*,
.company-showcase-page section,
.company-showcase-page nav,
.company-showcase-page form {
    min-width: 0;
    max-width: 100%;
}

/* HERO ------------------------------------------------------------------ */
.chisfis-company-hero {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(330px, .88fr) minmax(0, 1.42fr);
    gap: clamp(34px, 5vw, 76px);
    align-items: center;
    min-height: 600px;
    padding: clamp(42px, 5vw, 76px) 0 78px;
}

.chisfis-company-hero__copy {
    position: relative;
    z-index: 3;
    min-width: 0;
}

.chisfis-company-hero__copy>h2 {
    max-width: 690px;
    font-size: clamp(34px, 4.6vw, 67px);
    line-height: 1.02;
}

.chisfis-company-hero__copy>p {
    max-width: 650px;
    font-size: 15px;
    line-height: 1.75;
}

.chisfis-company-hero__meta {
    font-size: 12px;
    line-height: 1.55;
}

.chisfis-company-hero__socials {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 20px;
}

.chisfis-company-hero__socials a {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid rgba(15, 23, 42, .10);
    border-radius: 50%;
    color: #172033 !important;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 8px 22px rgba(15, 23, 42, .06);
    text-decoration: none !important;
}

.chisfis-company-hero__socials a:hover {
    color: #fff !important;
    border-color: #111827;
    background: #111827;
    transform: translateY(-2px);
}

.chisfis-company-hero__gallery {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1.62fr) minmax(170px, .82fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
    height: clamp(430px, 43vw, 570px);
    min-height: 430px;
    overflow: visible;
}

.chisfis-company-hero__gallery::before {
    inset: -12% -10% -10% -12%;
}

.chisfis-company-hero__gallery--count-0,
.chisfis-company-hero__gallery--count-1 {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
}

.chisfis-company-hero__gallery--count-2 {
    grid-template-columns: minmax(0, 1.55fr) minmax(190px, .75fr);
    grid-template-rows: minmax(0, 1fr);
}

.chisfis-company-hero__gallery--count-1 .chisfis-company-hero__photo--main,
.chisfis-company-hero__gallery--count-0 .chisfis-company-hero__photo--main {
    grid-row: 1;
    border-radius: 34px;
}

.chisfis-company-hero__gallery--count-2 .chisfis-company-hero__photo--main {
    grid-row: 1;
    border-radius: 34px 8px 8px 34px;
}

.chisfis-company-hero__gallery--count-2 .chisfis-company-hero__photo--top {
    border-radius: 8px 34px 34px 8px;
}

.chisfis-company-hero__photo {
    min-width: 0;
    min-height: 0;
}

.chisfis-company-hero__photo img {
    transition: opacity .18s ease, transform .55s ease;
}

.chisfis-company-hero__photo img.is-changing {
    opacity: .25;
}

.chisfis-company-hero__carousel-controls {
    position: absolute;
    z-index: 8;
    right: 18px;
    bottom: 18px;
    left: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    pointer-events: none;
}

.chisfis-company-hero__carousel-controls>button {
    display: grid;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 50%;
    color: #111827;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 8px 24px rgba(15, 23, 42, .15);
    cursor: pointer;
    pointer-events: auto;
}

.chisfis-company-hero__dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 10px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .42);
    backdrop-filter: blur(10px);
    pointer-events: auto;
}

.chisfis-company-hero__dots button {
    width: 7px;
    height: 7px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .58);
}

.chisfis-company-hero__dots button.is-active {
    width: 20px;
    border-radius: 999px;
    background: #fff;
}

.chisfis-company-hero__show-all {
    right: 18px;
    bottom: auto;
    top: 18px;
}

/* MENÚ INTERNO: navegación clara, sin sombras ni tipografía pequeña. */
.company-section-nav {
    position: relative !important;
    top: auto !important;
    z-index: 5;
    display: flex;
    width: min(1120px, 100%);
    gap: 8px;
    overflow-x: auto;
    margin: 28px auto 0;
    padding: 8px;
    border: 1px solid #dfe3e8;
    border-radius: 18px;
    background: #fff;
    box-shadow: none;
    scrollbar-width: none;
}

.company-section-nav::-webkit-scrollbar {
    display: none;
}

.company-section-nav a {
    display: inline-flex;
    flex: 0 0 auto;
    min-height: 45px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 16px;
    border: 1px solid transparent;
    border-radius: 12px;
    color: #111827 !important;
    background: #fff;
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
    text-shadow: none;
    white-space: nowrap;
}

.company-section-nav a i,
.company-section-nav a span {
    color: inherit !important;
    text-shadow: none;
}

.company-section-nav a:hover {
    border-color: #d8dee8;
    color: #111827 !important;
    background: #f8fafc;
}

.company-section-nav a.is-active {
    border-color: #7c3aed;
    color: #fff !important;
    background: #7c3aed;
    box-shadow: none;
}

/* BUSCADORES ------------------------------------------------------------- */
.company-search-wrap--floating {
    position: relative;
    width: 100%;
    margin: 0;
}

.company-search-wrap--schedules,
.company-search-wrap--options {
    width: min(1120px, 100%);
    margin: clamp(58px, 7vw, 96px) auto 28px;
}

.company-search-wrap--schedules .company-search,
.company-search-wrap--options .company-search {
    border: 1px solid #e5e8ed;
    border-radius: 26px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 22px 60px rgba(15, 23, 42, .09);
}

.company-search__submit {
    min-width: 118px;
}

/* CONTENIDO EDITORIAL: solo existe si la empresa lo registró. */
.company-summary-section {
    margin-top: clamp(60px, 8vw, 108px);
}

.company-summary-section:not(:has(.company-summary-cards)) {
    grid-template-columns: minmax(0, 1fr);
}

.company-summary-section__copy {
    max-width: 900px;
}

/* PROGRAMACIONES --------------------------------------------------------- */
.company-schedule-section,
.company-schedule-section * {
    font-family: inherit;
    font-style: normal;
    text-shadow: none;
}

.company-schedule-section {
    position: relative;
    isolation: isolate;
    margin-top: clamp(54px, 7vw, 96px);
    padding: clamp(42px, 5.5vw, 70px) 0;
    scroll-margin-top: 108px;
}

.company-schedule-section::before {
    position: absolute;
    z-index: -1;
    inset: 0 50%;
    width: 100vw;
    content: "";
    background: #7c3aed;
    transform: translateX(-50%);
}

.company-schedule-heading {
    width: min(1080px, 100%);
    align-items: flex-end;
    margin: 0 auto clamp(28px, 3.5vw, 42px);
}

.company-schedule-heading .experience-heading__eyebrow,
.company-schedule-heading .experience-heading__eyebrow i {
    color: #fff;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .06em;
}

.company-schedule-heading h2 {
    margin-top: 8px;
    color: #fff;
    font-family: inherit;
    font-size: clamp(34px, 4.2vw, 50px);
    font-weight: 700;
    letter-spacing: -.035em;
    line-height: 1.08;
}

.company-schedule-count {
    flex: 0 0 auto;
    padding: 10px 16px;
    border: 1px solid #fff;
    border-radius: 999px;
    color: #fff;
    background: transparent;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
}

.company-schedule-list {
    display: grid;
    width: min(1080px, 100%);
    gap: 16px;
    margin: 0 auto;
    padding: 0;
}

.company-schedule-row {
    display: grid;
    grid-template-columns:
        minmax(180px, 1.04fr) minmax(150px, .84fr) minmax(220px, 1.28fr) minmax(135px, .76fr) minmax(120px, .66fr) 118px;
    align-items: center;
    width: min(1020px, calc(100% - 32px));
    min-height: 154px;
    gap: 18px;
    margin: 0 auto;
    padding: 25px 26px;
    border: 1px solid rgba(255, 255, 255, .76);
    border-radius: 22px;
    color: #fff;
    background: rgba(255, 255, 255, .10);
    box-shadow: none;
    text-align: center;
    transition: background-color .18s ease, transform .18s ease;
}

.company-schedule-row:hover {
    border-color: #fff;
    background: rgba(255, 255, 255, .17);
    box-shadow: none;
    transform: translateY(-2px);
}

.company-schedule-row>div {
    min-width: 0;
    text-align: center;
}

.company-schedule-row strong {
    display: block;
    overflow: visible;
    color: #fff;
    font-family: inherit;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: normal;
    text-overflow: clip;
    text-shadow: none;
    white-space: normal;
}

.company-schedule-row small,
.company-schedule-row small span {
    display: block;
    overflow: visible;
    margin-top: 7px;
    color: #111827;
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: normal;
    text-overflow: clip;
    text-shadow: none;
    white-space: normal;
}

.company-schedule-row small span {
    display: inline;
    margin-top: 0;
}

.company-schedule-row__operator {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.company-schedule-row__mark {
    display: grid;
    flex: 0 0 56px;
    width: 56px;
    height: 56px;
    place-items: center;
    border: 1px solid #fff;
    border-radius: 16px;
    color: #fff;
    background: transparent;
}

.company-schedule-row__mark i {
    color: #fff;
    font-size: 23px;
}

.company-schedule-row__operator strong {
    font-size: 20px;
}

.company-schedule-row__time strong,
.company-schedule-row__route strong,
.company-schedule-row__availability strong {
    color: #fff;
    font-size: 22px;
    line-height: 1.25;
}

.company-schedule-row__route strong {
    overflow-wrap: anywhere;
}

.company-schedule-row__price strong {
    color: #fff;
    font-size: 26px;
    font-weight: 750;
}

.company-schedule-row__action {
    display: flex;
    align-items: center;
    justify-content: center;
}

.company-schedule-row__action form {
    margin: 0;
}

.company-schedule-row__action a,
.company-schedule-row__action button {
    position: relative;
    display: flex;
    width: 108px;
    height: 74px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 2px;
    padding: 8px;
    border: 2px solid #fff;
    border-radius: 18px;
    color: #7c3aed;
    background: #fff;
    box-shadow: none;
    cursor: pointer;
    text-decoration: none;
    transition: transform .18s ease;
}

.company-schedule-row__action a:hover,
.company-schedule-row__action button:hover {
    color: #7c3aed;
    background: #fff;
    transform: scale(1.06);
}

.company-schedule-row__action i {
    display: none;
}

.company-schedule-row__action a::before,
.company-schedule-row__action button::before {
    content: "→";
    color: #7c3aed;
    font-family: inherit;
    font-size: 34px;
    font-weight: 800;
    line-height: .9;
    animation: company-seat-arrow 1.15s ease-in-out infinite;
}

.company-schedule-row__action-label {
    display: block;
    color: #7c3aed;
    font-family: inherit;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.1;
    text-shadow: none;
}

.company-schedule-row__action button:disabled {
    opacity: .76;
    cursor: not-allowed;
}

.company-schedule-row__action button:disabled::before {
    content: "×";
    animation: none;
}

@keyframes company-seat-arrow {

    0%,
    100% {
        transform: translateX(0);
    }

    50% {
        transform: translateX(7px);
    }
}

@media (max-width: 1100px) {

    .company-schedule-heading,
    .company-schedule-list {
        width: min(940px, 100%);
    }

    .company-schedule-row {
        grid-template-columns:
            minmax(170px, 1fr) minmax(135px, .82fr) minmax(190px, 1.10fr) minmax(115px, .68fr) 112px;
    }

    .company-schedule-row__availability {
        display: none;
    }
}

@media (max-width: 820px) {
    .company-schedule-section {
        padding-block: 34px;
    }

    .company-schedule-heading {
        width: min(680px, calc(100% - 24px));
    }

    .company-schedule-list {
        width: min(680px, 100%);
        gap: 14px;
    }

    .company-schedule-row {
        grid-template-columns: 1fr 1fr 100px;
        width: min(680px, calc(100% - 24px));
        min-height: 0;
        gap: 16px;
        padding: 22px;
        text-align: left;
    }

    .company-schedule-row>div {
        text-align: left;
    }

    .company-schedule-row__operator {
        grid-column: 1 / 3;
        justify-content: flex-start;
    }

    .company-schedule-row__route {
        grid-column: 1 / 3;
    }

    .company-schedule-row__action {
        grid-column: 3;
        grid-row: 1 / 4;
        align-self: center;
    }
}

@media (max-width: 560px) {
    .company-schedule-heading {
        align-items: flex-start;
        flex-direction: column;
        width: calc(100% - 18px);
    }

    .company-schedule-heading h2 {
        font-size: 33px;
    }

    .company-schedule-count {
        display: inline-flex;
    }

    .company-schedule-row {
        grid-template-columns: 1fr 88px;
        width: calc(100% - 18px);
        gap: 14px;
        padding: 20px;
    }

    .company-schedule-row__operator,
    .company-schedule-row__time,
    .company-schedule-row__route,
    .company-schedule-row__availability,
    .company-schedule-row__price {
        grid-column: 1;
    }

    .company-schedule-row__action {
        grid-column: 2;
        grid-row: 1 / 6;
    }

    .company-schedule-row__action a,
    .company-schedule-row__action button {
        width: 82px;
        height: 70px;
    }

    .company-schedule-row strong {
        font-size: 18px;
    }

    .company-schedule-row small {
        font-size: 14px;
    }

    .company-schedule-row__time strong,
    .company-schedule-row__route strong,
    .company-schedule-row__price strong {
        font-size: 21px;
    }
}

/* RASTREO --------------------------------------------------------------- */
.company-tracking-section {
    display: block;
    width: min(940px, 100%);
    margin: clamp(64px, 8vw, 108px) auto 0;
    padding: clamp(30px, 5vw, 54px);
    border-radius: 36px;
    text-align: center;
    background:
        radial-gradient(circle at 0% 0%, rgba(79, 70, 229, .10), transparent 22rem),
        linear-gradient(135deg, #f8fafc, #eef4ff);
}

.company-tracking-section__intro {
    width: min(740px, 100%);
    margin-inline: auto;
}

.company-tracking-section h2 {
    font-size: clamp(30px, 4vw, 48px);
}

.company-tracking-section__intro p {
    max-width: 650px;
    margin: 12px auto 0;
}

.company-tracking-form {
    width: min(700px, 100%);
    margin: 24px auto 0;
}

.company-tracking-form label {
    text-align: left;
}

.company-tracking-result {
    width: min(760px, 100%);
    margin: 28px auto 0;
    text-align: left;
}

.company-tracking-message {
    width: min(700px, 100%);
    margin: 12px auto 0;
}

/* REDES Y PUBLICACIONES -------------------------------------------------- */
.company-social-timeline {
    margin-top: clamp(72px, 9vw, 126px);
    padding-top: clamp(48px, 6vw, 78px);
    padding-bottom: clamp(48px, 6vw, 78px);
}

.company-social-timeline::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    background:
        radial-gradient(circle at 100% 0%, rgba(202, 236, 255, .56), transparent 30rem),
        #f7f8fa;
}

.company-social-widgets {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.company-social-widget {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) 24px;
    gap: 12px;
    align-items: center;
    min-height: 86px;
    padding: 16px;
    border: 1px solid #e7ebf0;
    border-radius: 21px;
    color: #172033 !important;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .04);
    text-decoration: none !important;
}

.company-social-widget:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 38px rgba(15, 23, 42, .09);
}

.company-social-widget__icon {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 15px;
    color: #fff;
    background: #111827;
    font-size: 18px;
}

.company-social-widget--facebook .company-social-widget__icon {
    background: #1877f2;
}

.company-social-widget--instagram .company-social-widget__icon {
    background: #c13584;
}

.company-social-widget--tiktok .company-social-widget__icon {
    background: #111;
}

.company-social-widget--youtube .company-social-widget__icon {
    background: #ff0000;
}

.company-social-widget--linkedin .company-social-widget__icon {
    background: #0a66c2;
}

.company-social-widget--x .company-social-widget__icon,
.company-social-widget--twitter .company-social-widget__icon {
    background: #111;
}

.company-social-widget--whatsapp .company-social-widget__icon {
    background: #25d366;
}

.company-social-widget__copy small,
.company-social-widget__copy strong {
    display: block;
}

.company-social-widget__copy small {
    color: #8a94a4;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .07em;
}

.company-social-widget__copy strong {
    margin-top: 3px;
    font-size: 14px;
}

.company-social-widget__arrow {
    color: #98a2b3;
}

.company-social-feed {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin-top: 28px;
}

.company-social-post {
    min-width: 0;
}

.company-social-post__card {
    display: flex;
    height: 100%;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #e7ebf0;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .045);
}

.company-social-post__image {
    min-height: 220px;
    aspect-ratio: 16 / 10;
}

.company-social-post__body {
    flex: 1;
    padding: 22px;
}

.company-social-post__meta span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

/* MAPA ------------------------------------------------------------------ */
.company-map-section {
    margin-top: clamp(72px, 9vw, 126px);
}

/* Las filas de catálogo antiguas usaban márgenes negativos y sacaban
   también los datos hasta el borde. V10 deja solamente el fondo full-bleed. */
.company-catalog-section:nth-child(even) {
    margin-inline: 0 !important;
    padding: clamp(48px, 6vw, 78px) 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.company-catalog-section:nth-child(even)::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    background: #f7f8fa;
}

/* FULL-BLEED PARA FONDOS, NO PARA DATOS --------------------------------- */
.company-category-showcase,
.company-social-timeline {
    position: relative;
    z-index: 1;
    isolation: isolate;
}

.company-category-showcase::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    background: #f7f8fa;
}

/* PROTECCIÓN DE CONTENIDO ------------------------------------------------ */
.company-showcase-page h1,
.company-showcase-page h2,
.company-showcase-page h3,
.company-showcase-page h4,
.company-showcase-page p,
.company-showcase-page span,
.company-showcase-page strong,
.company-showcase-page small,
.company-showcase-page a {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.company-showcase-page img,
.company-showcase-page iframe,
.company-showcase-page video {
    max-width: 100%;
}

/* RESPONSIVE ------------------------------------------------------------ */
@media (max-width: 1180px) {
    .chisfis-company-hero {
        grid-template-columns: minmax(290px, .82fr) minmax(0, 1.18fr);
        gap: 34px;
    }


    .company-social-widgets {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .company-social-feed {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .company-showcase-page>.rubro-shell {
        padding-inline: 20px !important;
    }

    .chisfis-company-hero {
        grid-template-columns: 1fr;
        min-height: 0;
        padding-top: 34px;
    }

    .chisfis-company-hero__copy {
        max-width: 780px;
    }

    .chisfis-company-hero__gallery {
        height: 520px;
        min-height: 0;
    }

    .company-search {
        flex-wrap: wrap;
    }

    .company-search__divider {
        display: none;
    }

    .company-search__field {
        flex: 1 1 220px;
    }

    .company-search__submit {
        flex: 1 1 150px;
    }


}

@media (max-width: 640px) {
    .company-showcase-page>.rubro-shell {
        padding-inline: 14px !important;
    }

    .company-showcase-page.rubro-direct-page::before {
        background:
            radial-gradient(circle at 0% 5%, rgba(255, 218, 226, .82), transparent 23rem),
            radial-gradient(circle at 100% 22%, rgba(202, 236, 255, .82), transparent 25rem),
            linear-gradient(180deg, #fff 0, #fff 760px, #f8fafc 1050px, #fff 1350px);
    }

    .chisfis-company-hero {
        gap: 26px;
        padding: 26px 0 62px;
    }

    .chisfis-company-hero__copy>h2 {
        font-size: 38px;
    }

    .chisfis-company-hero__gallery {
        grid-template-columns: minmax(0, 1.42fr) minmax(0, .78fr);
        height: 345px;
        gap: 5px;
    }

    .chisfis-company-hero__gallery--count-0,
    .chisfis-company-hero__gallery--count-1 {
        grid-template-columns: 1fr;
    }

    .chisfis-company-hero__gallery--count-2 {
        grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr);
    }

    .chisfis-company-hero__photo--main {
        border-radius: 22px 5px 5px 22px;
    }

    .chisfis-company-hero__gallery--count-1 .chisfis-company-hero__photo--main {
        border-radius: 22px;
    }

    .chisfis-company-hero__carousel-controls {
        right: 8px;
        bottom: 8px;
        left: 8px;
    }

    .chisfis-company-hero__show-all {
        top: 10px;
        right: 10px;
        font-size: 0;
    }

    .chisfis-company-hero__show-all i {
        font-size: 13px;
    }

    .company-section-nav {
        margin-top: 16px;
    }

    .company-search-wrap--schedules,
    .company-search-wrap--options {
        margin-top: 48px;
    }

    .company-search {
        display: grid;
        grid-template-columns: 1fr;
        padding: 10px;
    }

    .company-search__field,
    .company-search__submit {
        width: 100%;
    }

    .company-search__submit {
        min-height: 50px;
    }


    .company-tracking-section {
        padding: 26px 16px;
        border-radius: 26px;
    }

    .company-tracking-form {
        flex-direction: column;
    }

    .company-tracking-form button {
        min-height: 52px;
    }

    .company-social-widgets,
    .company-social-feed {
        grid-template-columns: 1fr;
    }

    .company-map-layout {
        grid-template-columns: 1fr;
    }

    .company-map-panel {
        border-right: 0;
        border-bottom: 1px solid #e8ebef;
    }
}

@supports (width: 100dvw) {

    .company-showcase-page.rubro-direct-page::before,
    .company-category-showcase::before,
    .company-social-timeline::before {
        width: 100dvw;
    }
}


/* ========================================================================
   CORRECCIÓN FINAL — PROGRAMACIONES Y MENÚ
   Agregar al FINAL de rubro-direct.css
   ======================================================================== */

/* Misma tipografía limpia de los títulos */
.company-schedule-section,
.company-schedule-section *,
.company-section-nav,
.company-section-nav * {
    font-family: inherit !important;
    font-style: normal !important;
    text-shadow: none !important;
}

/* ------------------------------------------------------------------------
   MENÚ: Empresa / Cupones / Programaciones / Rastreo / Videos / Mapa
   ------------------------------------------------------------------------ */

.company-section-nav {
    display: flex !important;
    width: min(1120px, 100%) !important;
    gap: 8px !important;
    overflow-x: auto !important;
    margin: 36px auto 0 !important;
    padding: 8px !important;
    border: 1px solid #e4e7ec !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    scrollbar-width: none;
}

.company-section-nav::-webkit-scrollbar {
    display: none;
}

.company-section-nav a {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    min-height: 46px !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    padding: 10px 17px !important;
    border: 1px solid transparent !important;
    border-radius: 13px !important;
    color: #111827 !important;
    background: #fff !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: -.01em !important;
    text-decoration: none !important;
    text-shadow: none !important;
}

.company-section-nav a i,
.company-section-nav a span {
    color: inherit !important;
    font-size: 15px !important;
    text-shadow: none !important;
}

.company-section-nav a:hover {
    border-color: #7c3aed !important;
    color: #7c3aed !important;
    background: #fff !important;
}

.company-section-nav a.is-active {
    border-color: #7c3aed !important;
    color: #fff !important;
    background: #7c3aed !important;
}

/* ------------------------------------------------------------------------
   PROGRAMACIONES
   ------------------------------------------------------------------------ */

.company-schedule-heading h2,
.company-schedule-heading p,
.company-schedule-heading span,
.company-schedule-heading i {
    font-family: inherit !important;
    text-shadow: none !important;
}

/* Valores principales blancos */
.company-schedule-row strong,
.company-schedule-row__operator strong,
.company-schedule-row__time strong,
.company-schedule-row__route strong,
.company-schedule-row__availability strong,
.company-schedule-row__price strong {
    color: #fff !important;
    font-family: inherit !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    letter-spacing: -.01em !important;
    text-shadow: none !important;
}

/* Precio más visible */
.company-schedule-row__price strong {
    font-size: 26px !important;
    font-weight: 750 !important;
}

/*
 * Detalles secundarios NEGROS:
 * HIUNDAY · GT3000
 * miércoles 05 de agosto
 * 4h 00m · TMI-789
 * BUS
 * Precio desde
 */
.company-schedule-row small,
.company-schedule-row__operator small,
.company-schedule-row__date small,
.company-schedule-row__time small,
.company-schedule-row__route small,
.company-schedule-row__availability small,
.company-schedule-row__price small {
    display: block !important;
    margin-top: 7px !important;
    color: #111827 !important;
    opacity: 1 !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    letter-spacing: -.005em !important;
    text-shadow: none !important;
}

/* Evitar cualquier gris heredado */
.company-schedule-row__operator,
.company-schedule-row__date,
.company-schedule-row__time,
.company-schedule-row__route,
.company-schedule-row__availability,
.company-schedule-row__price {
    font-family: inherit !important;
    text-shadow: none !important;
}

/* ------------------------------------------------------------------------
   ÍCONO IZQUIERDO: elimina la X y dibuja un bus con CSS
   ------------------------------------------------------------------------ */

.company-schedule-row__mark {
    position: relative !important;
    display: grid !important;
    flex: 0 0 58px !important;
    width: 58px !important;
    height: 58px !important;
    place-items: center !important;
    overflow: visible !important;
    border: 1px solid #fff !important;
    border-radius: 16px !important;
    color: #fff !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* Oculta el icono roto/X que llega del HTML */
.company-schedule-row__mark>i,
.company-schedule-row__mark>svg,
.company-schedule-row__mark>span {
    display: none !important;
}

/* Carrocería del bus */
.company-schedule-row__mark::before {
    position: absolute;
    top: 15px;
    left: 11px;
    width: 32px;
    height: 22px;
    border: 2px solid #fff;
    border-radius: 6px 6px 4px 4px;
    content: "";
    background:
        linear-gradient(#fff, #fff) 5px 5px / 8px 6px no-repeat,
        linear-gradient(#fff, #fff) 19px 5px / 8px 6px no-repeat;
    box-sizing: border-box;
}

/* Ruedas del bus */
.company-schedule-row__mark::after {
    position: absolute;
    bottom: 13px;
    left: 15px;
    width: 7px;
    height: 7px;
    border: 2px solid #fff;
    border-radius: 50%;
    content: "";
    background: #111827;
    box-shadow: 21px 0 0 -2px #111827,
        21px 0 0 0 #fff;
    box-sizing: border-box;
}

/* ------------------------------------------------------------------------
   BOTÓN DERECHO: flecha garantizada aunque Font Awesome falle
   ------------------------------------------------------------------------ */

.company-schedule-row__action a,
.company-schedule-row__action button {
    position: relative !important;
    display: grid !important;
    width: 88px !important;
    height: 88px !important;
    place-items: center !important;
    padding: 0 !important;
    border: 2px solid #fff !important;
    border-radius: 50% !important;
    color: #7c3aed !important;
    background: #fff !important;
    box-shadow: none !important;
    font-size: 0 !important;
    text-decoration: none !important;
    cursor: pointer !important;
}

/* Oculta cualquier icono roto */
.company-schedule-row__action a>i,
.company-schedule-row__action button>i {
    display: none !important;
}

/* Flecha siempre visible */
.company-schedule-row__action a::before,
.company-schedule-row__action button::before {
    display: block;
    content: "→";
    color: #7c3aed;
    font-family: Arial, sans-serif;
    font-size: 42px;
    font-weight: 500;
    line-height: 1;
    animation: schedule-arrow-move 1.1s ease-in-out infinite;
}

.company-schedule-row__action a:hover,
.company-schedule-row__action button:hover {
    color: #7c3aed !important;
    background: #fff !important;
    transform: scale(1.06) !important;
}

@keyframes schedule-arrow-move {

    0%,
    100% {
        transform: translateX(0);
    }

    50% {
        transform: translateX(6px);
    }
}

/* ------------------------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------------------------ */

@media (max-width: 900px) {
    .company-section-nav {
        width: 100% !important;
    }

    .company-schedule-row {
        grid-template-columns: 1fr 1fr 78px !important;
    }

    .company-schedule-row__action {
        grid-column: 3 !important;
        grid-row: 1 / 5 !important;
    }

    .company-schedule-row__action a,
    .company-schedule-row__action button {
        width: 72px !important;
        height: 72px !important;
    }

    .company-schedule-row__action a::before,
    .company-schedule-row__action button::before {
        font-size: 34px !important;
    }
}

@media (max-width: 640px) {
    .company-section-nav a {
        min-height: 43px !important;
        padding: 9px 14px !important;
        font-size: 14px !important;
    }

    .company-schedule-row {
        grid-template-columns: minmax(0, 1fr) 66px !important;
    }

    .company-schedule-row__operator,
    .company-schedule-row__date,
    .company-schedule-row__time,
    .company-schedule-row__route,
    .company-schedule-row__availability,
    .company-schedule-row__price {
        grid-column: 1 !important;
    }

    .company-schedule-row__action {
        grid-column: 2 !important;
        grid-row: 1 / 7 !important;
    }

    .company-schedule-row strong,
    .company-schedule-row__operator strong,
    .company-schedule-row__time strong,
    .company-schedule-row__route strong,
    .company-schedule-row__availability strong {
        font-size: 18px !important;
    }

    .company-schedule-row small {
        font-size: 14px !important;
    }

    .company-schedule-row__action a,
    .company-schedule-row__action button {
        width: 62px !important;
        height: 62px !important;
    }

    .company-schedule-row__action a::before,
    .company-schedule-row__action button::before {
        font-size: 30px !important;
    }
}

/* ========================================================================
   PARCHE PUNTUAL — MENÚ, CUPÓN Y FLECHA DE ASIENTOS
   Pegar al FINAL de static/assets/css/rubro-direct.css
   ======================================================================== */

/* ------------------------------------------------------------------------
   1. MENÚ DE SECCIONES
   Misma fuente visual del título "Ofertas y cupones".
   Los íconos se dibujan con caracteres CSS y no dependen de Font Awesome.
   ------------------------------------------------------------------------ */

.company-coupons-strip__head h2,
.company-section-nav,
.company-section-nav a {
    font-family:
        "Poppins",
        "Inter",
        "Segoe UI",
        Arial,
        sans-serif !important;
}

.company-section-nav {
    gap: 8px !important;
    padding: 8px !important;
    border: 1px solid #e4e7ec !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
}

.company-section-nav a {
    display: inline-flex !important;
    min-height: 46px !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    padding: 10px 16px !important;
    border: 1px solid transparent !important;
    border-radius: 13px !important;
    color: #111827 !important;
    background: #fff !important;
    box-shadow: none !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: -.02em !important;
    text-shadow: none !important;
}

/* Oculta los Font Awesome rotos que muestran una X */
.company-section-nav a>i {
    display: none !important;
}

/* Ícono general */
.company-section-nav a::before {
    display: inline-grid !important;
    width: 22px !important;
    height: 22px !important;
    place-items: center !important;
    flex: 0 0 22px !important;
    color: #7c3aed !important;
    font-family: Arial, sans-serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-shadow: none !important;
}

/* Empresa */
.company-section-nav a[href="#company-summary"]::before {
    content: "\25A3";
    /* ▣ */
}

/* Cupones */
.company-section-nav a[href="#company-coupons"]::before {
    content: "\25C8";
    /* ◆ */
}

/* Programaciones */
.company-section-nav a[href="#company-schedules"]::before {
    content: "\2194";
    /* ↔ */
}

/* Rastreo */
.company-section-nav a[href="#company-tracking"]::before {
    content: "\25CE";
    /* ◎ */
}

/* Videos */
.company-section-nav a[href="#company-videos"]::before {
    content: "\25B6";
    /* ▶ */
}

/* Mapa */
.company-section-nav a[href="#company-location"]::before {
    content: "\2316";
    /* ⌖ */
}

.company-section-nav a:hover {
    border-color: #7c3aed !important;
    color: #7c3aed !important;
    background: #fff !important;
}

.company-section-nav a.is-active {
    border-color: #7c3aed !important;
    color: #fff !important;
    background: #7c3aed !important;
}

.company-section-nav a.is-active::before {
    color: #fff !important;
}

/* ------------------------------------------------------------------------
   2. CUPÓN
   Reemplaza el cuadro vacío por un símbolo de descuento.
   "PEN 10.00 de descuento" queda amarillo real, no naranja.
   ------------------------------------------------------------------------ */

.company-coupon-ticket__icon {
    display: grid !important;
    width: 48px !important;
    height: 48px !important;
    place-items: center !important;
    margin-bottom: auto !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #fff !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
}

/* Oculta el ícono roto o el cuadrado interno */
.company-coupon-ticket__icon>i,
.company-coupon-ticket__icon>svg,
.company-coupon-ticket__icon>span {
    display: none !important;
}

/* Símbolo de descuento visible */
.company-coupon-ticket__icon::before {
    display: block !important;
    content: "%" !important;
    color: #fff !important;
    font-family:
        "Poppins",
        "Inter",
        "Segoe UI",
        Arial,
        sans-serif !important;
    font-size: 35px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    text-shadow: none !important;
}

/* PEN 10.00 de descuento */
.company-coupon-ticket__content>small,
.company-coupon-ticket small {
    color: #ffeb00 !important;
    opacity: 1 !important;
    font-family:
        "Poppins",
        "Inter",
        "Segoe UI",
        Arial,
        sans-serif !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    text-shadow: none !important;
}

/* ------------------------------------------------------------------------
   3. FLECHA PARA VER ASIENTOS
   Ícono naranja generado por CSS, aunque Font Awesome falle.
   ------------------------------------------------------------------------ */

.company-schedule-row__action a,
.company-schedule-row__action button {
    position: relative !important;
    display: grid !important;
    width: 88px !important;
    height: 88px !important;
    place-items: center !important;
    padding: 0 !important;
    border: 2px solid #fff !important;
    border-radius: 50% !important;
    color: #f97316 !important;
    background: #fff !important;
    box-shadow: none !important;
    font-size: 0 !important;
    text-decoration: none !important;
}

/* Oculta cualquier X o ícono roto */
.company-schedule-row__action a>i,
.company-schedule-row__action button>i,
.company-schedule-row__action a>svg,
.company-schedule-row__action button>svg {
    display: none !important;
}

/* Flecha naranja garantizada */
.company-schedule-row__action a::before,
.company-schedule-row__action button::before {
    display: block !important;
    content: "\2192" !important;
    /* → */
    color: #f97316 !important;
    font-family: Arial, sans-serif !important;
    font-size: 44px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-shadow: none !important;
    animation: schedule-orange-arrow 1.1s ease-in-out infinite;
}

.company-schedule-row__action a:hover,
.company-schedule-row__action button:hover {
    border-color: #f97316 !important;
    color: #fff !important;
    background: #f97316 !important;
    transform: scale(1.06) !important;
}

.company-schedule-row__action a:hover::before,
.company-schedule-row__action button:hover::before {
    color: #fff !important;
}

@keyframes schedule-orange-arrow {

    0%,
    100% {
        transform: translateX(0);
    }

    50% {
        transform: translateX(6px);
    }
}

@media (max-width: 720px) {
    .company-section-nav a {
        min-height: 43px !important;
        padding: 9px 13px !important;
        font-size: 14px !important;
    }

    .company-schedule-row__action a,
    .company-schedule-row__action button {
        width: 64px !important;
        height: 64px !important;
    }

    .company-schedule-row__action a::before,
    .company-schedule-row__action button::before {
        font-size: 34px !important;
    }
}

/* ========================================================================
   PARCHE FINAL — MENÚ, FLECHA DE ASIENTOS Y ESTILOS CONSOLIDADOS
   Pegar al FINAL de static/assets/css/rubro-direct.css
   ======================================================================== */

/* ------------------------------------------------------------------------
   1. MENÚ DE SECCIONES (Empresa, Cupones, Programaciones...)
   Corrección definitiva de tipografía e iconos.
   ------------------------------------------------------------------------ */
.company-section-nav,
.company-section-nav a {
    /* Forzamos la misma familia de los títulos (Poppins, Inter...) */
    font-family: "Poppins", "Inter", "Segoe UI", Arial, sans-serif !important;
    font-style: normal !important;
    text-shadow: none !important;
}

.company-section-nav {
    display: flex !important;
    gap: 8px !important;
    overflow-x: auto !important;
    padding: 8px !important;
    border: 1px solid #e4e7ec !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    scrollbar-width: none;
}

.company-section-nav::-webkit-scrollbar {
    display: none;
}

.company-section-nav a {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    min-height: 46px !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    padding: 10px 17px !important;
    border: 1px solid transparent !important;
    border-radius: 13px !important;
    color: #111827 !important;
    background: #fff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: -.01em !important;
    text-decoration: none !important;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* Oculta cualquier ícono roto (X de Font Awesome) */
.company-section-nav a>i,
.company-section-nav a>svg {
    display: none !important;
}

/* Iconos CSS independientes para cada sección */
.company-section-nav a::before {
    display: inline-grid !important;
    width: 22px;
    height: 22px;
    place-items: center !important;
    flex: 0 0 22px !important;
    color: #7c3aed !important;
    font-family: Arial, sans-serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-shadow: none !important;
}

.company-section-nav a[href="#company-summary"]::before {
    content: "\25A3";
}

/* ▣ */
.company-section-nav a[href="#company-coupons"]::before {
    content: "\25C8";
}

/* ◆ */
.company-section-nav a[href="#company-schedules"]::before {
    content: "\2194";
}

/* ↔ */
.company-section-nav a[href="#company-tracking"]::before {
    content: "\25CE";
}

/* ◎ */
.company-section-nav a[href="#company-videos"]::before {
    content: "\25B6";
}

/* ▶ */
.company-section-nav a[href="#company-location"]::before {
    content: "\2316";
}

/* ⌖ */
.company-section-nav a[href="#company-social"]::before {
    content: "\2605";
}

/* ★ */

/* Estados hover y activo */
.company-section-nav a:hover {
    border-color: #7c3aed !important;
    color: #7c3aed !important;
    background: #fff !important;
}

.company-section-nav a:hover::before {
    color: #7c3aed !important;
}

.company-section-nav a.is-active {
    border-color: #7c3aed !important;
    color: #fff !important;
    background: #7c3aed !important;
}

.company-section-nav a.is-active::before {
    color: #fff !important;
}

/* ------------------------------------------------------------------------
   2. CUPÓN (Descuento)
   Reemplaza el cuadro vacío por un EMOJI DE BILLETES CON ALAS 💸
   ------------------------------------------------------------------------ */
.company-coupon-ticket__icon {
    display: grid !important;
    width: 56px !important;
    height: 56px !important;
    place-items: center !important;
    margin-bottom: auto !important;
    border: none !important;
    border-radius: 0 !important;
    color: #fff !important;
    background: transparent !important;
    box-shadow: none !important;
    position: relative !important;
    font-size: 42px !important;
    line-height: 1 !important;
}

/* Oculta el ícono roto o el cuadrado interno */
.company-coupon-ticket__icon>i,
.company-coupon-ticket__icon>svg,
.company-coupon-ticket__icon>span {
    display: none !important;
}

/* Emoji de billete con alas volando */
.company-coupon-ticket__icon::before {
    display: block !important;
    content: "\01F4B8" !important;
    /* 💸 Billete volando con alas */
    color: #ffffff !important;
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif !important;
    font-size: 44px !important;
    font-weight: normal !important;
    line-height: 1 !important;
    text-shadow: none !important;
}

/* Texto del descuento (PEN 10.00 de descuento) */
.company-coupon-ticket__content>small,
.company-coupon-ticket small {
    color: #ffeb00 !important;
    /* Amarillo */
    opacity: 1 !important;
    font-family: inherit !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    text-shadow: none !important;
}

/* ------------------------------------------------------------------------
   3. BOTÓN DE ASIENTOS EN PROGRAMACIONES
   Flecha BLANCA, 2 VECES MÁS GRUESA y GRANDE, sin círculo.
   ------------------------------------------------------------------------ */
.company-schedule-row__action a,
.company-schedule-row__action button,
.company-schedule-row__action form button {
    position: relative !important;
    display: grid !important;
    place-items: center !important;
    width: 80px !important;
    height: 80px !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    /* Sin círculo */
    color: #ffffff !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 0 !important;
    /* Oculta cualquier texto */
    text-decoration: none !important;
    cursor: pointer !important;
    transition: transform 0.2s ease;
}

/* Oculta cualquier ícono o texto roto */
.company-schedule-row__action a>*,
.company-schedule-row__action button>*,
.company-schedule-row__action i,
.company-schedule-row__action svg,
.company-schedule-row__action .company-schedule-row__action-label {
    display: none !important;
}

/* Flecha BLANCA, GRUESA y GRANDE */
.company-schedule-row__action a::before,
.company-schedule-row__action button::before {
    display: block !important;
    content: "\27A4" !important;
    /* ➤ Flecha negra gruesa (se pinta de blanco abajo) */
    color: #ffffff !important;
    font-family: "Arial Black", "Impact", Arial, sans-serif !important;
    font-size: 68px !important;
    /* Más grande */
    font-weight: 900 !important;
    /* Más negrita */
    line-height: 1 !important;
    text-shadow: 0 0 8px rgba(255, 255, 255, 0.5) !important;
    /* Pequeño brillo */
    animation: flecha-blanca-latido 1.2s ease-in-out infinite;
}

/* Flecha de respaldo con Unicode más grueso */
@supports (-webkit-text-stroke: 2px white) {

    .company-schedule-row__action a::before,
    .company-schedule-row__action button::before {
        content: "\2192" !important;
        /* → */
        -webkit-text-stroke: 3px #ffffff !important;
        /* Borde blanco = más gruesa */
        color: #ffffff !important;
        font-size: 74px !important;
        text-shadow: none !important;
    }
}

/* Animación de la flecha */
@keyframes flecha-blanca-latido {

    0%,
    100% {
        transform: translateX(0) scale(1);
    }

    50% {
        transform: translateX(8px) scale(1.1);
    }
}

/* Estados hover */
.company-schedule-row__action a:hover,
.company-schedule-row__action button:hover {
    transform: scale(1.15);
    background: transparent !important;
}

.company-schedule-row__action a:hover::before,
.company-schedule-row__action button:hover::before {
    color: #ffffff !important;
    text-shadow: 0 0 14px rgba(255, 255, 255, 0.8) !important;
}

/* ------------------------------------------------------------------------
   4. RESPONSIVE: Ajustes para pantallas pequeñas
   ------------------------------------------------------------------------ */
@media (max-width: 720px) {
    .company-section-nav a {
        min-height: 42px;
        padding: 8px 14px;
        font-size: 14px !important;
        gap: 6px;
    }

    .company-section-nav a::before {
        font-size: 16px !important;
        width: 20px;
        flex-basis: 20px;
    }

    .company-coupon-ticket__icon {
        width: 48px !important;
        height: 48px !important;
    }

    .company-coupon-ticket__icon::before {
        font-size: 38px !important;
    }

    .company-schedule-row__action a,
    .company-schedule-row__action button {
        width: 66px !important;
        height: 66px !important;
    }

    .company-schedule-row__action a::before,
    .company-schedule-row__action button::before {
        font-size: 56px !important;
    }

    @supports (-webkit-text-stroke: 2px white) {

        .company-schedule-row__action a::before,
        .company-schedule-row__action button::before {
            font-size: 62px !important;
            -webkit-text-stroke: 2.5px #ffffff !important;
        }
    }
}