/* Final responsive safeguards shared by the completed storefront pages. */
.bottom-menu { display: none !important; }

/* Consistent vertical rhythm for storefront content sections on every device. */
.section-ptb,
.store-products-content,
.store-categories-content,
.vibe-about-hero.vibe-about-introduction,
.vibe-about-section,
.vibe-contact-main,
.vibe-map-section,
.product-detail-main,
.product-information-section,
.related-products-section {
    padding-top: 40px;
    padding-bottom: 40px;
}

.vibeable-site-header img,
.vibe-site-footer img,
.vibeable-site-header svg,
.vibe-site-footer svg { max-width: 100%; }

.vibe-contact-copy,
.vibe-contact-detail-list span,
.vibe-footer-contact a,
.product-summary,
.product-info-grid article { min-width: 0; }

.vibe-contact-copy strong,
.vibe-contact-detail-list strong,
.vibe-contact-detail-list em,
.vibe-footer-contact a,
.product-summary h2,
.product-summary-description p { overflow-wrap: anywhere; }

.vibe-about-quality .vibe-quality-grid h2 { color: #fff; }

.vibe-home-view-details {
    display: inline-flex; width: 100%; min-height: 46px; align-items: center; justify-content: center; gap: 9px;
    margin-top: 20px; padding: 10px 18px; border: 0; border-radius: 10px; color: #fff;
    background: linear-gradient(105deg,#08baf1,#654cf0 58%,#ed24bd);
    box-shadow: 0 10px 22px rgba(91,65,222,.18); font-size: 13px; font-weight: 800;
    text-transform: uppercase; cursor: pointer; transition: transform .25s ease, box-shadow .25s ease;
}
.vibe-home-view-details:hover,
.vibe-home-view-details:focus,
.vibe-home-view-details:visited { color: #fff; }
.vibe-home-view-details:hover { box-shadow: 0 15px 28px rgba(91,65,222,.28); transform: translateY(-2px); }
.vibe-home-view-details i { transition: transform .25s ease; }
.vibe-home-view-details:hover i { transform: translateX(4px); }

/* Keep model names compact on the Home and Products card grids. */
.vibe-products .vibe-product-info h3,
.store-products-page .vibe-product-info h3 {
    display: -webkit-box;
    height: 58px;
    min-height: 58px;
    padding-bottom: 10px;
    overflow: hidden;
    box-sizing: border-box;
    font-size: 18px;
    line-height: 1.3;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

@media (min-width: 768px) {
    .vibe-products .vibe-product-media,
    .store-products-page .vibe-product-media {
        height: 270px;
        flex-basis: 270px;
    }

    .vibe-products .vibe-product-media > img,
    .store-products-page .vibe-product-media > img { padding: 20px 18px 14px; }

    .vibe-products .vibe-product-info,
    .store-products-page .vibe-product-info { padding: 19px 20px 21px; }

    .store-products-page .vibe-product-info { min-height: 230px; }
}

.vibe-quickview-actions { display: grid; width: 100%; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 30px; }
.vibe-quickview-actions .vibe-book-now,
.vibe-quickview-call {
    display: inline-flex; min-width: 0; min-height: 54px; align-items: center; justify-content: center;
    gap: 10px; margin-top: 0; padding: 12px 20px; border-radius: 12px; color: #fff; font-weight: 800;
    text-transform: uppercase;
}
.vibe-quickview-call { background: linear-gradient(105deg,#08baf1,#654cf0 65%,#ed24bd); box-shadow: 0 14px 28px rgba(91,65,222,.22); }
.vibe-quickview-call:hover { color: #fff; box-shadow: 0 18px 34px rgba(91,65,222,.3); transform: translateY(-3px); }

@media (max-width: 767px) {
    html, body { max-width: 100%; overflow-x: clip; }

    /* One compact card per row, allowing two stacked products on screen. */
    .vibe-products .vibe-product-grid,
    .store-products-page .vibe-product-grid {
        display: grid;
        width: 100%;
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .vibe-products .vibe-product-card,
    .store-products-page .vibe-product-card {
        position: relative;
        width: 100%;
        min-width: 0;
        height: auto;
        min-height: 0;
        max-height: none;
        flex-direction: column;
        box-sizing: border-box;
        border-radius: 18px;
        box-shadow: 0 9px 26px rgba(31, 42, 82, .09);
    }

    .vibe-products .vibe-product-media,
    .store-products-page .vibe-product-media {
        width: 100%;
        height: auto;
        flex: none;
        aspect-ratio: 1.65 / 1;
        border-bottom: 1px solid #edf0f6;
        background: #fff;
    }

    .vibe-products .vibe-product-media > img,
    .store-products-page .vibe-product-media > img {
        width: 100%;
        height: 100%;
        max-width: none;
        max-height: none;
        padding: 4px 8px;
        object-fit: contain;
        transform: scale(1.12);
        transform-origin: center;
    }

    .vibe-products .vibe-product-card:hover .vibe-product-media > img,
    .store-products-page .vibe-product-card:hover .vibe-product-media > img {
        transform: scale(1.12);
    }

    .vibe-products .vibe-product-info,
    .store-products-page .vibe-product-info {
        display: grid;
        width: 100%;
        height: auto;
        min-height: 0;
        flex: none;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-rows: auto auto;
        column-gap: 12px;
        align-items: center;
        padding: 12px 14px 14px;
        overflow: visible;
        box-sizing: border-box;
    }

    .vibe-products .vibe-product-meta-row,
    .store-products-page .vibe-product-meta-row {
        position: static;
        display: flex;
        min-width: max-content;
        flex-wrap: nowrap;
        grid-column: 2;
        grid-row: 1;
        width: auto;
        align-self: center;
        justify-content: flex-end;
        gap: 5px;
        margin: 0;
    }

    .vibe-products .vibe-product-info .vibe-product-category,
    .vibe-products .vibe-product-info .vibe-product-brand-badge,
    .store-products-page .vibe-product-info .vibe-product-category,
    .store-products-page .vibe-product-info .vibe-product-brand-badge {
        max-width: none;
        min-height: 22px;
        flex: 0 0 auto;
        padding: 4px 6px;
        overflow: visible;
        border-radius: 6px;
        box-shadow: none;
        font-size: 7px;
        letter-spacing: .03em;
        text-overflow: clip;
        white-space: nowrap;
    }

    .vibe-products .vibe-product-info h3,
    .store-products-page .vibe-product-info h3 {
        display: block;
        grid-column: 1;
        grid-row: 1;
        min-width: 0;
        height: 24px;
        min-height: 24px;
        margin-right: 5px;
        padding: 0;
        overflow: hidden;
        border-bottom: 0;
        font-size: 15px;
        line-height: 24px;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .vibe-products .vibe-product-pricing,
    .store-products-page .vibe-product-pricing {
        width: 100%;
        align-self: center;
        grid-template-columns: minmax(0, auto) minmax(0, 1fr);
        gap: 7px;
        margin-top: 7px;
        padding-top: 7px;
    }

    .vibe-products .vibe-final-price,
    .store-products-page .vibe-final-price { padding-left: 7px; }

    .vibe-products .vibe-mrp-price small,
    .vibe-products .vibe-final-price small,
    .store-products-page .vibe-mrp-price small,
    .store-products-page .vibe-final-price small { font-size: 7px; }

    .vibe-products .vibe-product-pricing s,
    .store-products-page .vibe-product-pricing s { font-size: 11px; }

    .vibe-products .vibe-product-pricing strong,
    .store-products-page .vibe-product-pricing strong { font-size: 15px; }

    .vibe-products .vibe-product-media .vibe-quick-view,
    .store-products-page .vibe-product-media .vibe-quick-view {
        display: none;
    }

    .vibeable-site-header,
    .vibeable-site-header .container,
    .vibeable-header-row,
    .store-categories-page,
    .store-products-page,
    .vibe-contact-page { width: 100%; max-width: 100%; min-width: 0; }

    .vibeable-header-row > *,
    .vibe-contact-layout,
    .vibe-contact-layout > *,
    .store-category-grid,
    .store-category-grid > *,
    .store-product-filters,
    .store-product-filters > *,
    .store-filter-control,
    .store-filter-control input,
    .store-filter-control select { min-width: 0; }

    .vibe-contact-layout,
    .store-category-grid,
    .store-product-filters { grid-template-columns: minmax(0, 1fr); }

    .store-categories-banner-content h1,
    .store-categories-heading h2,
    .store-categories-heading p,
    .store-category-copy,
    .store-products-head,
    .vibe-contact-form-card,
    .vibe-contact-details { max-width: 100%; overflow-wrap: anywhere; }

    .vibeable-site-header .container,
    .vibe-site-footer .container { padding-right: 18px; padding-left: 18px; }

    /* Keep Quick Links and Categories beside each other in the mobile footer. */
    .vibe-site-footer .vibe-footer-main {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 18px;
    }

    .vibe-site-footer .vibe-footer-about,
    .vibe-site-footer .vibe-footer-contact { grid-column: 1 / -1; }

    .vibe-site-footer .vibe-footer-quick-links { grid-column: 1; }
    .vibe-site-footer .vibe-footer-categories { grid-column: 2; }

    .vibe-footer-bottom { align-items: center; text-align: center; }

    .vibe-section-heading,
    .vibe-intro-heading,
    .vibe-about-section-title,
    .vibe-quality-grid > div,
    .vibe-map-heading > div,
    .store-products-head,
    .related-products-heading,
    .product-info-grid article h2,
    .vibe-contact-form-card > h2,
    .vibe-contact-details > h2 {
        align-items: center; text-align: center;
    }

    .vibe-about-quality .vibe-quality-grid h2 { color: #fff; }

    .vibe-about-centered,
    .vibe-section-heading > div,
    .vibe-intro-heading,
    .store-products-head,
    .related-products-heading,
    .vibe-map-heading > div {
        width: 100%; text-align: center;
    }

    .vibe-section-heading { justify-content: center; }
    .vibe-section-heading .vibe-kicker,
    .vibe-intro-heading .vibe-kicker,
    .vibe-about-section-title .vibe-kicker,
    .vibe-map-heading .vibe-kicker { margin-right: auto; margin-left: auto; }

    .vibe-intro-copy > p,
    .vibe-brand-content p,
    .vibe-benefit-grid p,
    .vibe-category-copy p,
    .vibe-contact-copy > span,
    .vibe-about-page p,
    .vibe-contact-form-card > p,
    .product-summary-description p,
    .product-info-grid article > p,
    .product-info-grid li,
    .vibe-quickview-description p {
        text-align: justify; text-justify: inter-word;
    }

    .vibe-footer-about > p,
    .vibe-footer-contact li a {
        text-align: justify; text-justify: inter-word;
    }

    .product-detail-banner nav,
    .vibe-contact-banner nav,
    .store-products-banner nav,
    .vibe-about-breadcrumb { max-width: calc(100vw - 36px); }

    .product-detail-banner nav b,
    .vibe-about-breadcrumb span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

    .product-detail-actions a,
    .vibe-contact-form button,
    .vibe-about-contact { width: 100%; }
    .vibe-quickview-actions { grid-template-columns: 1fr; }
    .vibe-quickview-actions .vibe-book-now,
    .vibe-quickview-call { width: 100%; }

    .vibe-contact-detail-list > a { grid-template-columns: 44px minmax(0, 1fr); padding: 14px; }
    .vibe-contact-detail-list > a > i { width: 44px; height: 44px; }
}

@media (max-width: 479px) {
    body { padding-top: 66px; }
    .vibeable-header-row { min-height: 66px; }
    .vibeable-header-logo img { width: 78px; height: 54px; }

    .vibe-about-hero-copy h1,
    .vibe-about-banner-content h1,
    .vibe-about-breadcrumb-content h1,
    .vibe-contact-banner-content h1,
    .store-products-banner-content h1 { font-size: 34px; }

    .product-gallery-main { height: auto; aspect-ratio: 1; padding: 14px; }
    .product-gallery-main img { padding: 0; }
    .product-summary h2 { font-size: 29px; }
    .product-detail-price { flex-direction: row; gap: 16px; }
    .product-detail-price > span + span { padding-top: 0; padding-left: 16px; border-top: 0; border-left: 1px solid #e1e4ec; }

    .store-products-footer { padding: 16px; }
    .store-products-footer .store-products-pagination { gap: 7px; }
    .pagination-number { width: 38px; height: 38px; }
    .pagination-direction { height: 40px; font-size: 12px; }

    .vibe-products .vibe-product-grid,
    .store-products-page .vibe-product-grid { gap: 8px; }

    .vibe-products .vibe-product-card,
    .store-products-page .vibe-product-card {
        height: auto;
        min-height: 0;
        max-height: none;
    }

    .vibe-products .vibe-product-media,
    .store-products-page .vibe-product-media {
        height: auto;
        flex-basis: auto;
        aspect-ratio: 1.75 / 1;
    }

    .vibe-products .vibe-product-info,
    .store-products-page .vibe-product-info {
        height: auto;
        flex-basis: auto;
    }

    .vibe-products .vibe-product-info,
    .store-products-page .vibe-product-info { padding: 12px 11px 13px; }

    .vibe-products .vibe-product-info h3,
    .store-products-page .vibe-product-info h3 {
        height: 24px;
        min-height: 24px;
        font-size: 14px;
    }

    .vibe-products .vibe-product-pricing strong,
    .store-products-page .vibe-product-pricing strong { font-size: 13px; }
}

@media (max-width: 767px) {
    .vibe-products .vibe-home-view-details,
    .store-products-page .store-product-details-button,
    .product-detail-page .related-products-section .store-product-details-button {
        width: auto;
        align-self: center;
        min-height: 30px;
        margin-top: 8px;
        padding: 5px 8px;
        font-size: 9px;
    }

    .product-detail-page .product-detail-actions a {
        width: auto;
        min-height: 42px;
        justify-self: center;
        padding-right: 14px;
        padding-left: 14px;
    }

    .product-detail-page .product-detail-actions {
        grid-template-columns: repeat(2, auto);
        justify-content: center;
        gap: 10px;
    }
}
