@media (min-width: 768px) {
    .product-single__meta {
        padding-left: 75px;
    }	
}

.product-single__title {
		font-size: 24px;
		line-height: 1.4;
}

.js-qty__num:active, .js-qty__num:focus {
		border: 1px solid;
		border-color: var(--colorBorder);
}

.product-block.product-block--sales-point {
    display: none;
}
.product-block.has-review {
    padding: 10px 0;
}

.woocommerce .woocommerce-product-rating .star-rating {
    margin: 5px 5px 0 0;
}

/* ==========================================================================
   Google Maps Reviews — Pre-footer
   Colour palette mirrors Google Maps / Material Design Light theme
   ========================================================================== */

/* Section wrapper */
.gmaps-prefooter {
    background: #ffffff;
    border-top: 3px solid #d5d5d5;
    padding: 48px 0 40px;
    font-family: 'Roboto', 'Google Sans', Arial, sans-serif;
}

/* ── Header ── */
.gmaps-prefooter__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 20px;
    padding-bottom: 28px;
    margin-bottom: 32px;
    border-bottom: 1px solid #e8eaed;
}

/* Brand block (logo + text) */
.gmaps-prefooter__brand {
    display: flex;
    align-items: center;
    gap: 14px;
}

.gmaps-g-logo {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
}

.gmaps-prefooter__brand-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.gmaps-prefooter__powered-by {
    font-size: 11px;
    color: #80868b;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    line-height: 1;
}

.gmaps-prefooter__google-wordmark {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.5px;
}

.gmaps-prefooter__business-name {
    font-size: 14px;
    font-weight: 500;
    color: #3c4043;
    margin: 0;
    line-height: 1.3;
}

/* Aggregate score block */
.gmaps-prefooter__aggregate {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.gmaps-prefooter__aggregate-score {
    font-size: 52px;
    font-weight: 300;
    color: #202124;
    line-height: 1;
}

.gmaps-prefooter__aggregate-meta {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.gmaps-prefooter__total-link {
    font-size: 13px;
    color: #1a73e8;
    text-decoration: none;
    line-height: 1;
}

.gmaps-prefooter__total-link:hover {
    text-decoration: underline;
    color: #1557b0;
}

/* ── Stars ── */
.gmaps-stars {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    vertical-align: middle;
}

.gmaps-star--full  path { fill: #FBBC04; }
.gmaps-star--half  path { /* gradient applied inline */ }
.gmaps-star--empty path { fill: #dadce0; }

/* ── Reviews Carousel (Flickity) ── */
.gmaps-reviews-carousel {
    margin-bottom: 0;
    /* Flickity manages its own overflow/viewport */
}

/*
 * FOUC prevention: before Flickity adds .flickity-enabled, the raw cards
 * stack vertically as block elements. Hide them instantly so the user
 * never sees the unstyled vertical stack, then fade in once Flickity
 * has laid everything out horizontally.
 */
.gmaps-reviews-carousel:not(.flickity-enabled) {
    opacity: 0;
    overflow: hidden;
}
.gmaps-reviews-carousel.flickity-enabled {
    opacity: 1;
    transition: opacity 0.25s ease;
}

/* Each card is a Flickity cell — box-sizing critical for calc() widths */
.gmaps-reviews-carousel .gmaps-review-card {
    width: calc(33.333% - 12px);
    margin-right: 16px;
    box-sizing: border-box;
    /* ensure equal card heights inside Flickity viewport */
    height: auto;
    align-self: stretch;
}

/* Give Flickity viewport a reliable height baseline */
.gmaps-reviews-carousel .flickity-viewport {
    transition: height 0.3s ease;
}

/* ── Carousel navigation row ── */
.gmaps-carousel-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 16px 0 26px;
}

/* ── Custom prev / next buttons ── */
.gmaps-nav-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1.5px solid #dadce0;
    background: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
    flex-shrink: 0;
    padding: 0;
    line-height: 1;
}

.gmaps-nav-btn:hover {
    background: #e8f0fe;
    border-color: #4285F4;
    box-shadow: 0 1px 4px rgba(66,133,244,0.25);
}

.gmaps-nav-btn:disabled {
    opacity: 0.35;
    cursor: default;
    pointer-events: none;
}

.gmaps-nav-btn svg {
    width: 18px;
    height: 18px;
    fill: #4285F4;
    display: block;
}

/* ── Dots wrapper — sits between the two nav buttons ── */
.gmaps-dots-wrap {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 60px;
    justify-content: center;
}

/* Reset Flickity absolute positioning once dots are moved outside */
.gmaps-dots-wrap .flickity-page-dots {
    position: static !important;
    width: auto;
    bottom: auto;
    display: inline-flex;
    gap: 6px;
    align-items: center;
    padding: 0;
    margin: 0;
    list-style: none;
}

.gmaps-dots-wrap .flickity-page-dots .dot {
    width: 8px;
    height: 8px;
    margin: 0;
    background: #dadce0;
    opacity: 1;
    border-radius: 50%;
    transition: background 0.2s ease, transform 0.2s ease;
    display: inline-block;
}

.gmaps-dots-wrap .flickity-page-dots .dot.is-selected {
    background: #4285F4;
    transform: scale(1.35);
}

/* ── Review card ── */
.gmaps-review-card {
    background: #fff;
    border: 1px solid #dadce0;
    border-radius: 10px;
    padding: 18px 18px 14px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
    position: relative;
}

.gmaps-review-card:hover {
    box-shadow: 0 2px 8px rgba(60, 64, 67, 0.18), 0 1px 3px rgba(60, 64, 67, 0.12);
    border-color: #c5c8cd;
}

.gmaps-review-card__header {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

/* Avatar */
.gmaps-review-card__avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    background: linear-gradient(135deg, #4285F4 0%, #34A853 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.gmaps-review-card__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.gmaps-review-card__avatar-initial {
    color: #fff;
    font-size: 19px;
    font-weight: 500;
    line-height: 1;
}

/* Author info */
.gmaps-review-card__author {
    flex: 1;
    min-width: 0;
}

.gmaps-review-card__name {
    font-size: 14px;
    font-weight: 500;
    color: #202124;
    text-decoration: none;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.4;
}

.gmaps-review-card__name:hover {
    color: #1a73e8;
}

.gmaps-review-card__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    flex-wrap: wrap;
}

.gmaps-review-card__time {
    font-size: 12px;
    color: #80868b;
    line-height: 1;
}

/* Review body text */
.gmaps-review-card__body {
    font-size: 14px;
    color: #3c4043;
    line-height: 1.65;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Google badge on each card */
.gmaps-review-card__badge {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: auto;
    padding-top: 8px;
    border-top: 1px solid #f1f3f4;
    font-size: 11px;
    color: #80868b;
}

/* ── CTA "View all reviews" ── */
.gmaps-prefooter__cta {
    text-align: center;
    padding-top: 8px;
}

.gmaps-prefooter__cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 14px;
    font-weight: 500;
    color: #1a73e8;
    text-decoration: none;
    padding: 10px 22px;
    border: 1px solid #dadce0;
    border-radius: 24px;
    background: #fff;
    transition: background 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
    letter-spacing: 0.25px;
}

.gmaps-prefooter__cta-btn:hover {
    background: #e8f0fe;
    border-color: #4285F4;
    box-shadow: 0 1px 3px rgba(66, 133, 244, 0.3);
    text-decoration: none;
    color: #1557b0;
}

/* ── Responsive ── */
@media (max-width: 767px) {
    .gmaps-prefooter {
        padding: 32px 0 28px;
    }

    .gmaps-prefooter__header {
        flex-direction: column;
        align-items: flex-start;
    }

    .gmaps-prefooter__aggregate {
        flex-direction: row;
        align-items: center;
    }

    .gmaps-prefooter__aggregate-score {
        font-size: 40px;
    }

    .gmaps-reviews-carousel .gmaps-review-card {
        width: calc(88% - 8px);
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .gmaps-reviews-carousel .gmaps-review-card {
        width: calc(50% - 10px);
    }
}

/* ==========================================================================
   Footer Copyright Bar
   ========================================================================== */

.footer__copyright-text {
    font-size: 13px;
    line-height: 1.6;
    letter-spacing: 0.15px;
    opacity: 0.82;
    margin: 0;
    padding: 6px 0;
}

/* Ensure inline HTML tags inside copyright (links, spans) are styled cleanly */
.footer__copyright-text a {
    text-decoration: none;
    opacity: 0.75;
    transition: opacity 0.15s ease;
}

.footer__copyright-text a:hover {
    opacity: 1;
    text-decoration: underline;
}

.footer__copyright-text strong,
.footer__copyright-text b {
    font-weight: 600;
    opacity: 1;
}

@media (max-width: 767px) {
    .footer__copyright-text {
        font-size: 12px;
        text-align: center;
    }
}

/* ==========================================================================
   Product Page — Review Count Badge (below title)
   ========================================================================== */

/* Ensure title ends cleanly on its own line before the badge */
.product_title.entry-title {
    margin-bottom: 6px !important;
    display: block;
}

.tp-gmaps-review-count {
    display: block;
    clear: both;
    margin: 0 0 14px;
    line-height: 1;
}

.tp-gmaps-review-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    cursor: pointer;
    transition: opacity 0.15s ease;
    vertical-align: middle;
}

.tp-gmaps-review-link:hover {
    opacity: 0.75;
    text-decoration: none;
}

/* Star row — 16 px stars */
.tp-grating-stars {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    line-height: 1;
    vertical-align: middle;
}

.tp-grating-stars svg {
    display: block;
    flex-shrink: 0;
}

/* "X,XXX Reviews" text */
.tp-gmaps-count {
    font-size: 13px;
    color: #70757a;
    line-height: 1;
    vertical-align: middle;
}

@media (max-width: 767px) {
    .tp-gmaps-count {
        font-size: 12px;
    }
}

/* ==========================================================================
   Product Page — Modern Buttons (Add to Cart + Buy Now)
   ========================================================================== */

/* Add to Cart — original theme layout restored (no flex overrides) */

/* ==========================================================================
   Product Page — Estimated Delivery Bar
   Hooked via woocommerce_after_add_to_cart_button — fires INSIDE form.cart,
   INSIDE .product-single__meta, so it correctly aligns with the buttons.
   form.cart is display:flex; flex-wrap:wrap, so the bar needs flex:0 0 100%
   to occupy a full row of its own beneath the buy-now button.
   ========================================================================== */

.tp-estimated-delivery {
    /* flex item: take a full row in the form's flex-wrap layout */
    flex: 0 0 100%;
    min-width: 0;
    /* internal layout: icon + text row */
    display: flex;
    align-items: center;
    gap: 10px;
    box-sizing: border-box;
    padding: 12px 16px;
    margin: 8px 0 4px;
    background: #111;
    border: 1px solid #111;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.18);
    font-size: 13.5px;
    color: #fff;
    line-height: 1.4;
}

.tp-delivery-icon {
    flex-shrink: 0;
    color: #fff;
}

.tp-estimated-delivery strong {
    font-weight: 600;
    color: #fff;
}

.tp-delivery-date {
    color: rgba(255,255,255,0.85);
    font-weight: 500;
}

@media (max-width: 767px) {
    .tp-estimated-delivery {
        font-size: 13px;
        padding: 10px 13px;
    }
}

/* ==========================================================================
   Product Page — Full-width Description Section (below product grid)
   Rendered via woocommerce_after_single_product_summary so it never
   conflicts with the right-column layout.
   ========================================================================== */

.tp-product-desc-section {
    /* clear:both forces this below the floated image+meta grid columns */
    clear: both;
    width: 100%;
    box-sizing: border-box;
    margin-top: 32px;
    padding: 22px 24px;
    background: #f8f9fa;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}

.tp-product-desc-inner {
    width: 100%;
    max-width: none;   /* was 860px — caused left-half overflow */
}

.tp-product-desc-heading {
    font-size: 15px;
    font-weight: 700;
    color: #111;
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e0e0e0;
    letter-spacing: 0.2px;
    text-transform: uppercase;
}

.tp-product-desc-body.rte {
    font-size: 14px;
    line-height: 1.75;
    color: #3c4043;
}

.tp-product-desc-body.rte p {
    margin-bottom: 12px;
}

.tp-product-desc-body.rte p:last-child {
    margin-bottom: 0;
}

.tp-product-desc-body.rte img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
    margin: 8px 0;
}

.tp-product-desc-body.rte ul,
.tp-product-desc-body.rte ol {
    padding-left: 20px;
    margin-bottom: 12px;
}

.tp-product-desc-body.rte li {
    margin-bottom: 5px;
}

@media (max-width: 767px) {
    .tp-product-desc-section {
        margin-top: 24px;
        padding: 18px 16px;
    }

    .tp-product-desc-heading {
        font-size: 14px;
    }

    .tp-product-desc-body.rte {
        font-size: 13.5px;
    }
}

/* Buy Now — solid black */
.btn-buy-it-now {
    display: block;
    width: 100%;
    margin-top: 60px;
    padding: 14px 24px !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0.4px;
    background: #111 !important;
    color: #fff !important;
    border: 2px solid #111 !important;
    text-align: center;
    cursor: pointer;
    margin-bottom: 0;
    transition: background 0.2s ease, box-shadow 0.2s ease !important;
}

.btn-buy-it-now:hover,
.btn-buy-it-now:focus {
    background: #333 !important;
    color: #fff !important;
    box-shadow: 0 4px 14px rgba(0,0,0,0.2) !important;
}