/* Keep slide height driven by its content rather than a fixed, overflowing table. */
.home-slides .single-banner-item {
    height: auto;
    padding: 32px 0;
}
.home-slides .single-banner-item > .d-table {
    height: auto;
}

/* Full shop/doctor photos stay visible, but portrait images cannot stretch the banner. */
.home-slides .banner-image .main-image {
    max-height: 480px;
    object-fit: contain;
}

@media (min-width: 992px) {
    /* A modest minimum keeps short slides balanced beside the carousel arrows. */
    .home-slides .single-banner-item .row {
        min-height: 420px;
    }
}

/* Branded photo cards unify store, delivery and healthcare images without baked-in text. */
.carex-photo-card {
    position: relative;
    margin: 0;
    overflow: hidden;
    border: 1px solid #dcece9;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(23, 77, 77, .10);
    text-align: left;
}
.home-slides .carex-photo-card {
    max-width: 640px;
    margin: 0 auto;
}
.home-slides .carex-photo-card .main-image,
.carex-gallery-grid .carex-photo-card > img {
    display: block !important;
    width: 100% !important;
    height: auto;
    max-height: none;
    aspect-ratio: 3 / 2;
    object-fit: cover;
}
.home-slides .carex-photo-card .carex-lab-image {
    object-position: 78% center;
}
.carex-photo-label {
    position: absolute;
    z-index: 2;
    top: 16px;
    left: 16px;
    max-width: calc(100% - 32px);
    padding: 7px 11px;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 6px;
    background: #f8fcfa;
    color: #18574f;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.5;
    letter-spacing: 1.3px;
}
.carex-photo-brand {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px 16px;
    min-height: 64px;
    padding: 15px 20px;
    border-top: 3px solid #149b89;
    background: #fff;
    color: #526b66;
    font-size: 12px;
    line-height: 1.5;
}
.carex-photo-brand strong {
    flex: 0 0 auto;
    color: #087d70;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -.8px;
}
.carex-photo-brand > span {
    text-align: right;
}

/* A compact gallery replaces the old full-bleed, randomly repeated shop photos. */
.carex-store-gallery {
    padding: 52px 0 40px;
    background: #f5faf8;
}
.carex-gallery-heading {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 16px 32px;
    margin-bottom: 24px;
}
.carex-gallery-eyebrow {
    color: #087d70;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.6px;
}
.carex-gallery-heading h2 {
    margin: 8px 0 0;
    color: #173e38;
    font-size: clamp(26px, 3vw, 36px);
    letter-spacing: -.7px;
}
.carex-gallery-heading p {
    margin: 0 0 3px;
    color: #617c74;
}
.carex-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}
.carex-gallery-grid .carex-photo-brand {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
}
.carex-gallery-grid .carex-photo-brand > span {
    text-align: left;
}
.carex-gallery-note {
    margin: 16px 0 0;
    color: #62776f;
    font-size: 11px;
}

/* Keep the existing lab booking action integrated with a contained, rounded photo. */
.carex-lab-promo {
    max-width: 1140px;
    margin: 0 auto 44px;
    border: 1px solid #deece8;
    border-radius: 22px;
    box-shadow: 0 12px 32px rgba(23, 77, 77, .07);
}

/* Replace the generic offer stock photo with the same pharmacy packing artwork. */
.carex-store-offer {
    background-image: linear-gradient(90deg, #f0f8f4 0%, rgba(240,248,244,.96) 36%, rgba(240,248,244,.18) 78%), url('/assets/img/home-carex24/dispatch.webp');
    background-position: center, right 56%;
}
.carex-store-offer .hot-deal-content {
    padding: 24px;
}

@media (max-width: 1199px) {
    /* Match Bootstrap's content gutters without making the photo edge touch the screen. */
    .carex-lab-promo {
        margin-right: 24px;
        margin-left: 24px;
    }
}
@media (max-width: 767px) {
    /* Stack gallery cards and keep every branding line readable on small phones. */
    .carex-store-gallery { padding: 32px 0; }
    .carex-gallery-heading { display: block; }
    .carex-gallery-heading p { margin-top: 12px; }
    .carex-gallery-grid { grid-template-columns: 1fr; gap: 20px; }
    .carex-photo-card { border-radius: 16px; }
    .carex-photo-label { top: 12px; left: 12px; font-size: 9px; letter-spacing: 1px; }
    .carex-photo-brand { padding: 12px 14px; font-size: 11px; }
    .carex-photo-brand strong { font-size: 22px; }
    .carex-photo-brand > span { max-width: 185px; }
    .carex-lab-promo { margin: 0 15px 28px; border-radius: 16px; }
    .carex-store-offer {
        background-image: linear-gradient(90deg, rgba(240,248,244,.94), rgba(240,248,244,.86)), url('/assets/img/home-carex24/dispatch-768.webp');
    }
}

@media (max-width: 991px) {
    /* Stacked tablet content needs less image height than a two-column desktop slide. */
    .home-slides .banner-image .main-image {
        max-height: 360px;
    }
}

@media (max-width: 767px) {
    /* Leave room for the existing bottom arrows without the old 120px footer gap. */
    .home-slides .single-banner-item {
        padding: 24px 0 76px;
    }
    .home-slides .banner-image {
        margin-top: 20px;
    }
    .home-slides .banner-image .main-image {
        max-height: 280px;
    }
}
/* Service attribution sits outside the logo, immediately before delivery partners. */
.carex-service-providers {
    padding: 28px 0;
    background: #f3f9f8;
    scroll-margin-top: 100px;
}
.carex-service-providers-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}
.carex-service-provider {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
    padding: 22px 24px;
    border: 1px solid #dbeae5;
    border-radius: 16px;
    background: #fff;
    color: #17675f;
    text-decoration: none;
}
.carex-service-provider--doctor { color: #0756a7; border-color: #dae7f2; }
.carex-service-provider:hover { color: #12534c; border-color: currentColor; }
.carex-service-provider--doctor:hover { color: #06498e; }
.carex-service-provider:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
.carex-service-provider-icon {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    border-radius: 14px;
    background: #edf7f5;
}
.carex-service-provider--doctor .carex-service-provider-icon { background: #edf6fc; }
.carex-service-provider-icon svg { width: 30px; height: 30px; }
.carex-service-provider-copy { min-width: 0; }
.carex-service-provider-copy > span { font-size: 14px; font-weight: 600; }
.carex-service-provider-copy h2 {
    margin: 4px 0 0;
    color: #173e38;
    font-family: var(--fontFamily);
    font-size: 24px;
    font-weight: 800;
    line-height: 1.25;
}
.carex-service-provider--doctor h2 { color: #153d62; }
/* Stack the two names on phones so both remain comfortably readable. */
@media (max-width: 767px) {
    .carex-service-providers { padding: 24px 0; }
    .carex-service-providers-grid { grid-template-columns: 1fr; gap: 12px; }
    .carex-service-provider { gap: 14px; padding: 18px; }
    .carex-service-provider-icon { width: 44px; height: 44px; flex-basis: 44px; }
    .carex-service-provider-icon svg { width: 26px; height: 26px; }
    .carex-service-provider-copy h2 { font-size: 21px; }
}

/* Keep delivery logos and names in a single balanced row, scoped to the homepage. */
.carex-delivery-partners {
    padding: 24px 0;
    background: #fff;
    border-bottom: 1px solid #e5eeeb;
    scroll-margin-top: 100px;
}
.carex-delivery-partners-inner {
    display: flex;
    align-items: center;
    gap: 32px;
}
.carex-delivery-partners-heading {
    flex: 0 0 240px;
}
.carex-delivery-partners-heading h2 {
    margin: 0 0 6px;
    color: #174d4d;
    font-size: 22px;
    font-weight: 700;
}
.carex-delivery-partners-heading p {
    margin: 0;
    color: #60716c;
    font-size: 14px;
}
.carex-delivery-partners-list {
    display: grid;
    /* Give all five partners equal columns without wrapping the row. */
    grid-template-columns: repeat(5, minmax(0, 1fr));
    flex: 1;
    min-width: 0;
    gap: 24px;
    padding: 0;
    margin: 0;
    list-style: none;
}
.carex-delivery-partners-list:focus-visible {
    /* Make keyboard scrolling easy to discover when the row overflows on phones. */
    outline: 2px solid #087d70;
    outline-offset: 4px;
}
.carex-delivery-partners-list li {
    display: flex;
    flex-direction: column;
    align-items: center;
    /* Align logos even when a longer partner name wraps on a narrow phone. */
    justify-content: flex-start;
    min-width: 0;
    text-align: center;
}
.carex-delivery-partners-list .carex-partner-logo {
    /* Equal visible logo widths create equal gaps, regardless of asset padding. */
    position: relative;
    display: block;
    width: 100%;
    max-width: 160px;
    height: 72px;
    flex: 0 0 auto;
    overflow: hidden;
}
.carex-partner-logo img {
    /* Preserve each logo's proportions while centering its visible artwork. */
    position: absolute;
    display: block;
    width: var(--partner-image-width, 100%);
    max-width: none;
    height: auto;
    left: var(--partner-image-left, 50%);
    top: 50%;
    transform: translate(-50%, -50%);
}
.carex-partner-logo--delhivery {
    /* Visible artwork spans x=64..292 of the original 350px image. */
    --partner-image-width: 153.509%;
    --partner-image-left: 48.684%;
}
.carex-partner-logo--ekart {
    /* Visible artwork spans x=138..365 of the original 512px image. */
    --partner-image-width: 225.551%;
    --partner-image-left: 51.982%;
}
.carex-partner-logo--shadowfax {
    /* Remove only the small horizontal inset; retain the complete tagline. */
    --partner-image-width: 102.679%;
    --partner-image-left: 50.015%;
}
.carex-delivery-partners-list span {
    color: #334541;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
}

/* Move only the heading above the logos on small screens; keep all partners horizontal. */
@media (max-width: 991px) {
    .carex-delivery-partners { padding: 22px 0; }
    .carex-delivery-partners-inner { flex-direction: column; gap: 14px; }
    .carex-delivery-partners-heading { flex: none; text-align: center; }
    .carex-delivery-partners-heading h2 { font-size: 20px; }
    .carex-delivery-partners-list {
        /* Keep names readable in one horizontal row; touch and keyboard can scroll. */
        width: 100%;
        grid-template-columns: repeat(5, minmax(112px, 1fr));
        gap: 16px;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        /* Hide the scroll track while retaining touch, trackpad and keyboard scrolling. */
        scrollbar-width: none;
        padding-bottom: 0;
    }
    .carex-delivery-partners-list::-webkit-scrollbar {
        /* Cover Safari and older Chromium versions without disabling overflow. */
        display: none;
        width: 0;
        height: 0;
    }
    .carex-delivery-partners-list .carex-partner-logo { height: 56px; }
    .carex-delivery-partners-list span { font-size: 12px; }
}


/* Both languages may wrap; service names and actions must never force horizontal scrolling. */
.quick-service-card, .carex-service-provider-copy { min-width: 0; }
.quick-service-action { flex-wrap: wrap; }
.home-slides .banner-content h1 { overflow-wrap: break-word; }
