.logo-site img {
    max-height: 58px;
    object-fit: contain;
}

/* Text logo fallback when no logo image is uploaded */
.logo-site .logo-text {
    font-size: 26px;
    font-weight: 600;
    letter-spacing: 1px;
    color: var(--main);
    white-space: nowrap;
}

/* Header navigation: keep items on one line and allow the row to breathe */
.box-nav-menu {
    flex-wrap: nowrap;
}

.box-nav-menu .menu-item .item-link {
    white-space: nowrap;
}

.box-navigation .box-nav-menu {
    gap: 36px;
}

/* Balance the header: the theme's fixed col-2 / col-8 / col-2 grid centres the
   menu on the page centre, but the logo is wider than the Contact button, so
   the right gap is always larger (obvious on wide/HiDPI screens, hidden on
   narrower ones where the menu fills its column). Instead let the logo and
   Contact columns size to their content and the nav grow to fill the space
   between them — the menu then centres in that gap, so both sides match. */
@media (min-width: 1200px) {
    /* The hero banner uses full-width .container-full-2 (30px side padding).
       The header's .container caps at ~1320px and centres, so on wide/HiDPI
       screens the logo & Contact drift inward from the banner edges. Match the
       banner's width so they line up with it. */
    .tf-header > .container {

    }

    .tf-header .row {
        flex-wrap: nowrap;
    }

    .tf-header .row > .col-xl-2 {
        flex: 0 0 auto;
        width: auto;
        max-width: none;
    }

    .tf-header .row > .col-xl-8 {
        flex: 1 1 auto;
        width: auto;
        max-width: none;
    }
}

/* The theme widens each hovered link with an invisible ::after bridge sized
   for its original 64px gap (100% + 130px). With our tighter gaps that
   bridge overlaps the neighbouring item's text, trapping the hover state.
   Resize it to half our gap per side so bridges meet but never overlap. */
.box-navigation .item-link::after {
    width: calc(100% + 36px);
}

@media (max-width: 1439px) {
    .box-navigation .box-nav-menu {
        gap: 22px;
    }

    .box-navigation .item-link {
        font-size: 15px;
    }

    .box-navigation .item-link::after {
        width: calc(100% + 22px);
    }
}

/* Plain dropdowns (More, custom menu items): anchor to their own nav item.
   The theme positions .sub-menu against the page, which pushes small
   dropdowns off-screen; mega menus keep the theme's full-width placement. */
.box-nav-menu .menu-item.has-dropdown {
    position: relative;
}

.box-nav-menu .menu-item.has-dropdown .sub-menu {
    left: 50%;
    margin-left: -130px;
    min-width: 260px;
    padding: 28px 32px 32px;
}

/* Mega menu: subcategory list split into columns, filled top-to-bottom */
.sub-menu .menu-multi-col {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

.sub-menu .menu-view-all {
    font-weight: 500;
    color: var(--primary);
    gap: 6px;
}

/* Header contact button */
.header-contact-btn {
    white-space: nowrap;
}

/* Phone view: Contact Us as a small circular phone icon */
.header-contact-icon-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid var(--line);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.nav-icon .header-contact-icon-btn .icon {
    font-size: 17px;
}

/* Home categories: circular icon tiles with a subtle backdrop for transparent PNGs */
.home-categories .box_collection--V01.style_2 .image {
    border-radius: 50%;
    background: #f7f4ef;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}

.home-categories .box_collection--V01.style_2 .image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 12%;
}

/* Square (1:1) product images everywhere — catalogue photos are 1200x1200 */
.card_product--V01 .card_product-wrapper {
    aspect-ratio: 1 / 1;
}

.flat-wrap-media-product .tf-product-media-main .item {
    aspect-ratio: 1 / 1;
}

.tf-product-media-thumbs .item {
    aspect-ratio: 1 / 1;
    overflow: hidden;
}

.tf-product-media-thumbs .item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Home highlights: embedded Instagram posts */
.insta-embed-wrap {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    overflow: hidden;
}

.insta-embed-wrap iframe {
    display: block;
    width: 100%;
    height: 560px;
    border: 0;
}

@media (max-width: 767px) {
    .insta-embed-wrap iframe {
        height: 480px;
    }
}

/* Home highlights: large social links under the carousel */
.home-social-links {
    display: flex;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
    margin-top: 40px;
}

/* Product cards everywhere: subtle backdrop so transparent product PNGs don't float on white */
.card_product--V01 .product-img {
    background: #f7f4ef;
}

/* Home reviews: text-only cards (product photo removed) */
.box_testimonial--V01.review-only {
    height: 100%;
}

.box_testimonial--V01.review-only .box_testimonial-content {
    width: 100%;
    max-width: 100%;
}

/* Contact page: large info boxes (no-form layout) */
.contact-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 24px;
}

.contact-info-box {
    display: block;
    text-align: center;
    border: 1px solid var(--line);
    padding: 48px 28px;
    background: #fcfbf9;
    color: inherit;
}

.contact-info-box .icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #f7f4ef;
    font-size: 26px;
    color: var(--primary);
    margin-bottom: 18px;
}

.contact-info-box h4 {
    margin-bottom: 8px;
}

.contact-info-box p {
    margin-bottom: 0;
    word-break: break-word;
}

/* Contact page: map embed */
.map-embed iframe {
    width: 100%;
    height: 460px;
    border: 0;
    display: block;
}

/* Footer: one Browse column + one column per main category */
.footer-menu-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 40px 32px;
    padding: 64px 0;
}

@media (max-width: 767px) {
    .footer-menu-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 32px 24px;
        padding: 40px 0;
    }
}

@media (max-width: 575px) {
    .footer-menu-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }
}

.footer-menu-grid .footer-heading {
    margin-bottom: 16px;
    text-transform: uppercase;
}

.form-newsletter {
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--line);
}

.form-newsletter input {
    width: 100%;
    border: 0;
    outline: 0;
    padding: 14px 0;
    color: var(--main);
    background: transparent;
}

.form-newsletter .btn-submit {
    width: 44px;
    height: 44px;
    border: 0;
    background: transparent;
    color: var(--main);
}

.jrs-whatsapp {
    position: fixed;
    bottom: 22px;
    z-index: 100;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #25d366;
    color: var(--white);
    font-size: 22px;
    box-shadow: 0 10px 25px rgba(37, 211, 102, 0.28);
}

.jrs-whatsapp:hover {
    color: var(--white);
    background: #20ba5f;
}

.jrs-whatsapp-left { left: 22px; }
.jrs-whatsapp-right { right: 22px; }

.content-body {
    font-size: 16px;
    line-height: 1.8;
}

.content-body p {
    margin-bottom: 1.25rem;
}

.content-body h2,
.content-body h3 {
    margin: 1.5rem 0 1rem;
}

.content-body ul,
.content-body ol {
    margin-bottom: 1.25rem;
    padding-left: 2rem;
}

.content-body img {
    max-width: 100%;
    height: auto;
    margin: 1.25rem 0;
}

.content-body blockquote {
    border-left: 3px solid var(--line);
    padding-left: 1.25rem;
    margin: 1.25rem 0;
    font-style: italic;
}

.tally-embed iframe {
    width: 100%;
}

/* Hero banner caption alignment (admin-selectable per slide) */
.slider_wrap .content-sld.caption-left {
    text-align: left;
}
.slider_wrap .content-sld.caption-center {
    text-align: center;
}
.slider_wrap .content-sld.caption-right {
    text-align: right;
}
