/*
Theme Name: Flower Power
Author: AI Assistant
Description: Custom WordPress theme generated from Figma design.
Version: 1.0
Text Domain: flower-power
*/

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
@font-face {
    font-family: 'Angie Pro';
    src: url('./assets/fonts/7ffdf13e63b725e544250c054b425455.eot'); /* IE9 Compat Modes */
    src: url('./assets/fonts/7ffdf13e63b725e544250c054b425455.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
         url('./assets/fonts/7ffdf13e63b725e544250c054b425455.woff2') format('woff2'), /* Super Modern Browsers */
         url('./assets/fonts/7ffdf13e63b725e544250c054b425455.woff') format('woff'), /* Pretty Modern Browsers */
         url('./assets/fonts/7ffdf13e63b725e544250c054b425455.ttf')  format('truetype'), /* Safari, Android, iOS */
         url('./assets/fonts/7ffdf13e63b725e544250c054b425455.svg#AngiePro') format('svg'); /* Legacy iOS */
    font-weight: normal;
    font-style: normal;
}

body {
    font-family: 'Jost', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    color: #333;
    overflow-x: hidden;
}

/* Prevent scrolling on the homepage */
body.home {
    overflow: hidden;
    height: 100vh;
    height: 100dvh; /* Better handling for mobile browser address bars */
}

/* Header */
.site-header { position: absolute; top: 0; left: 0; width: 100%; z-index: 100; padding: 15px 40px; }
.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Hamburger */
.menu-toggle {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 10px;
    z-index: 101;
}
.hamburger-box {
    width: 30px;
    height: 2px;
    display: block;
    position: relative;
    background: #fff;
}
.hamburger-box::before, .hamburger-box::after {
    content: '';
    position: absolute;
    width: 30px;
    height: 2px;
    background: inherit;
    left: 0;
}
.hamburger-box::before { top: -8px; }
.hamburger-box::after { top: 8px; }

/* Icons */
.header-icons {
    display: flex;
    gap: 20px;
}
.header-icons a {
    color: #fff;
    text-decoration: none;
}
.header-icons svg {
    width: 24px;
    height: 24px;
}

/* Sidebar Navigation */
.sidebar-navigation {
    position: fixed;
    top: 0;
    left: -350px;
    width: 300px;
    height: 100vh;
    background: #fff;
    z-index: 200;
    transition: left 0.3s ease;
    padding: 80px 40px;
    box-shadow: 2px 0 10px rgba(0,0,0,0.1);
}
.sidebar-navigation.open {
    left: 0;
}
.close-menu {
    position: absolute;
    top: 30px;
    right: 30px;
    background: none;
    border: none;
    font-size: 30px;
    cursor: pointer;
}
.sidebar-navigation ul {
    list-style: none;
}
.sidebar-navigation ul li {
    margin-bottom: 20px;
}
.sidebar-navigation ul li a {
    text-decoration: none;
    color: #333;
    font-size: 18px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 500;
}
.sidebar-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0,0,0,0.5);
    z-index: 150;
    display: none;
}
.sidebar-menu-overlay.show {
    display: block;
}

/* Hero Section */
.hero-section {
    position: fixed; /* Changed to fixed so it takes the whole screen */
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh; /* Restored back to 100vh */
    display: flex;
    align-items: flex-start;
    justify-content: center;
    overflow: hidden;
}

/* Slider */
.hero-slider {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}
.hero-slider .slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center bottom !important; /* Ground flowers at the bottom */
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 1.5s ease-in-out;
}
@media (min-width: 769px) {
    .hero-slider .slide {
        height: calc(100% + 50px); /* Lower flowers slightly on desktop */
    }
}
.hero-slider .slide.active {
    opacity: 1;
}

/* Content */
.hero-content {
    position: relative;
    z-index: 10;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 100%;
    padding: 105px 20px 0; /* Positioned just beneath header */
    box-sizing: border-box;
}
.main-logo-img {
    max-width: 580px;
    width: 100%;
    height: auto;
}
.hero-emblem {
    max-width: 85px;
    width: 100%;
    height: auto;
}
.hero-btn {
    display: inline-block;
    padding: 10px 36px;
    border: 1px solid #333;
    color: #333;
    text-decoration: none;
    font-size: 1.15rem;
    background: rgba(255, 255, 255, 0.6); /* Semi-transparent background */
    backdrop-filter: blur(4px); /* Elegant blur effect */
    transition: all 0.3s ease;
    /* Angie Pro fallback to serif */
    font-family: 'Angie Pro', Georgia, serif; 
}
.hero-btn:hover {
    background: #333;
    color: #fff;
}

@media (max-width: 768px) {
    .site-header,
    header.site-header {
        padding-top: max(16px, env(safe-area-inset-top, 16px)) !important;
        padding-left: max(18px, env(safe-area-inset-left, 18px)) !important;
        padding-right: max(18px, env(safe-area-inset-right, 18px)) !important;
        padding-bottom: 12px !important;
        box-sizing: border-box !important;
    }

    .hero-content {
        /* Account for notch dynamically so distance beneath header is always uniform */
        padding-top: calc(max(16px, env(safe-area-inset-top, 16px)) + 95px) !important;
        transform: none !important;
        gap: 18px !important;
    }
    .main-logo-img {
        max-width: 82% !important; /* Make logo comfortable on mobile */
        width: 100% !important;
    }
    .hero-emblem {
        max-width: 82px !important; /* Enlarged emblem on mobile */
        width: 100% !important;
    }
    .hero-btn {
        font-size: 1.15rem !important; /* Enlarged button text on mobile */
        padding: 12px 34px !important; /* Enlarged button size on mobile */
    }
    .hero-slider .slide {
        height: 100% !important;
        background-position: center bottom !important;
    }
}

@media (max-width: 768px) and (max-height: 700px) {
    .hero-content {
        padding-top: calc(max(12px, env(safe-area-inset-top, 12px)) + 70px) !important;
        gap: 14px !important;
    }
    .hero-emblem {
        max-width: 72px !important;
    }
    .hero-btn {
        font-size: 1.05rem !important;
        padding: 10px 28px !important;
    }
}

/* Add at the bottom of style.css */

/* --- Sidebar Menu Animations --- */
.sidebar-navigation ul li a {
    position: relative;
    display: inline-block;
    transition: transform 0.2s ease, color 0.3s ease;
}

.sidebar-navigation ul li a::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0%;
    height: 2px;
    background-color: #333;
    transition: width 0.3s ease-in-out;
}

.sidebar-navigation ul li a:hover::after {
    width: 100%;
}

.sidebar-navigation ul li a:active {
    transform: scale(0.95); /* subtle click effect */
}


/* --- Cart & Account Drawers (Off-Canvas) --- */
.side-drawer {
    position: fixed;
    top: 0;
    right: -400px; /* Hidden by default */
    width: 400px;
    max-width: 100vw;
    height: 100vh;
    background: #fff; /* Elegant light beige */
    z-index: 9999;
    transition: right 0.4s cubic-bezier(0.77, 0, 0.175, 1);
    box-shadow: -5px 0 15px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
}
.side-drawer.open {
    right: 0;
}

.drawer-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0,0,0,0.4);
    backdrop-filter: blur(2px);
    z-index: 9998;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease, visibility 0.4s ease;
}
.drawer-overlay.show {
    opacity: 1;
    visibility: visible;
}

.drawer-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 30px 40px;
    border-bottom: 1px solid #eaeaea;
}
.drawer-title {
    font-size: 1.5rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 0;
}
.close-drawer {
    background: none;
    border: none;
    font-size: 28px;
    cursor: pointer;
    color: #333;
    transition: transform 0.3s ease;
}
.close-drawer:hover {
    transform: rotate(90deg);
}

.drawer-content {
    padding: 40px;
    flex-grow: 1;
    overflow-y: auto;
}

/* Header Icons Cart Badge */
.header-icons {
    position: relative;
    display: flex;
    gap: 15px;
    align-items: center;
}
.cart-icon {
    position: relative;
}
.cart-count {
    position: absolute;
    top: -8px;
    right: -10px;
    background: #333;
    color: #fff;
    font-size: 10px;
    font-weight: bold;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Account Links inside Drawer */
.account-links {
    list-style: none;
    padding: 0;
}
.account-links li {
    margin-bottom: 15px;
}
.account-links li a {
    color: #333;
    text-decoration: none;
    font-size: 1.1rem;
    transition: color 0.3s;
}
.account-links li a:hover {
    color: #777;
}

/* Mini Cart Widget Styling inside Drawer */
.widget_shopping_cart_content .woocommerce-mini-cart__empty-message {
    text-align: center;
    color: #777;
    margin-top: 30px !important;
}
.woocommerce-mini-cart-item {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid #eaeaea;
}
.woocommerce-mini-cart-item img {
    width: 60px;
    height: auto;
    margin-right: 15px;
}


/* --- Custom Auth Forms --- */
.auth-tabs {
    display: flex;
    margin-bottom: 20px;
    border-bottom: 1px solid #ddd;
}
.auth-tab {
    flex: 1;
    background: none;
    border: none;
    padding: 10px;
    font-size: 1.1rem;
    font-weight: 500;
    cursor: pointer;
    opacity: 0.5;
    transition: all 0.3s;
    font-family: inherit;
}
.auth-tab.active {
    opacity: 1;
    border-bottom: 2px solid #333;
}
.auth-input {
    width: 100%;
    padding: 12px 15px;
    margin-bottom: 15px;
    border: 1px solid #ddd;
    font-family: inherit;
    font-size: 1rem;
    background: #fff;
}
.auth-submit {
    width: 100%;
    padding: 12px;
    background: #333;
    color: #fff;
    border: none;
    cursor: pointer;
    font-size: 1.1rem;
    transition: background 0.3s;
    font-family: inherit;
}
.auth-submit:hover {
    background: #555;
}
.auth-msg {
    margin-bottom: 15px;
    font-size: 0.9rem;
}
.auth-msg.error {
    color: #d32f2f;
}
.auth-msg.success {
    color: #388e3c;
}


/* --- Inner Pages Header --- */
.header-inner {
    position: relative;
    background: #fff;
    border-bottom: 1px solid #eaeaea;
}
.header-inner .header-container {
    justify-content: space-between;
}
.header-left, .header-right {
    flex: 1;
}
.header-center {
    flex: 2;
    text-align: center;
}
.header-logo-img {
    max-width: 250px;
    height: auto;
}
.header-right {
    display: flex;
    justify-content: flex-end;
}
.header-inner .hamburger-box {
    background: #666;
}
.header-inner svg {
    stroke: #666 !important;
}

/* --- Shop Page Styles --- */

.shop-main {
    background: #fff;
    padding-top: 50px;
    padding-bottom: 100px;
}

.shop-container {
    max-width: 1300px; /* slightly narrower for better alignment */
    margin: 0 auto;
    padding: 0 40px;
}

/* Shop Header */
.shop-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 50px;
    border-bottom: 1px solid #eee;
    margin-bottom: 40px;
}
.shop-title-wrapper {
    position: relative;
    padding-bottom: 25px; /* space for the line */
}
.shop-title-wrapper::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60px;
    height: 1px;
    background-color: #ddd;
}
.shop-title {
    font-family: 'Angie Pro', Georgia, serif;
    font-size: 4.2rem;
    font-weight: 400;
    color: #555;
    margin: 0;
    line-height: 1;
    letter-spacing: -1px;
}
.shop-desc {
    font-size: 1.05rem;
    color: #666;
    margin: 0;
    max-width: 380px;
    text-align: left;
    font-style: italic;
    font-family: 'Angie Pro', Georgia, serif;
    line-height: 1.5;
}

/* Shop Filters */
.shop-filters {
    padding-bottom: 40px;
    border-bottom: 1px solid #eee;
    margin-bottom: 15px !important;
}
.filter-columns {
    display: flex;
    justify-content: space-between;
}
.filter-col {
    flex: 1;
}
.filter-title {
    font-size: 0.75rem;
    color: #a0a0a0;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 25px;
    font-weight: 400;
}
.filter-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.filter-list li {
    margin-bottom: 12px;
}
.filter-list input[type="checkbox"] {
    display: none;
}
.filter-list label {
    font-size: 0.95rem;
    color: #777;
    cursor: pointer;
    transition: color 0.3s;
    letter-spacing: 0.5px;
}
.filter-list label:hover {
    color: #333;
}
.filter-list input[type="checkbox"]:checked + label {
    color: #333;
    font-weight: 500;
}

/* Toolbar */
.shop-toolbar {
    display: flex;
    justify-content: space-between;
    font-size: 0.75rem;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 60px;
}
.toolbar-left span, .toolbar-left a {
    color: #999;
    text-decoration: none;
}
.toolbar-right a {
    color: #aaa;
    text-decoration: none;
    margin-left: 20px;
}
.toolbar-right a.active, .toolbar-right a:hover {
    color: #555;
}

/* Products Grid */
.custom-product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 50px 40px;
    margin-bottom: 100px;
}
.product-card {
    display: flex;
    flex-direction: column;
}
.product-img-link {
    display: block;
    overflow: hidden;
    margin-bottom: 20px;
}
.product-img-link img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.5s ease;
}
.product-card:hover .product-img-link img {
    transform: scale(1.03);
}
.product-meta-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}
.product-text-left {
    flex: 1;
    padding-right: 15px;
}
.product-action-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
}
.custom-add-cart {
    color: #777;
    transition: color 0.3s ease;
    display: block;
    cursor: pointer;
}
.custom-add-cart:hover {
    color: #000;
}
.product-title {
    font-family: 'Angie Pro', Georgia, serif;
    font-size: 1.8rem;
    font-weight: 400;
    margin: 0 0 5px 0;
}
.product-title a {
    color: #333;
    text-decoration: none;
}
.product-price {
    font-size: 1.1rem;
    color: #333;
}
.product-short-desc {
    font-size: 0.75rem;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Shop Footer Banner */
.shop-footer-banner {
    padding-top: 80px;
}
.quote-section {
    text-align: center;
    margin-bottom: 120px;
}
.quote-section h2 {
    font-family: 'Jost', sans-serif;
    font-size: 2.2rem;
    font-weight: 400; /* Increased weight for better visibility */
    color: #444; /* Darker color */
    margin-bottom: 25px;
    line-height: 1.5;
    letter-spacing: 0.5px;
}
.philosophy-link {
    font-size: 1.1rem;
    color: #666; /* Darker color */
    text-decoration: none;
    font-family: 'Jost', sans-serif;
    font-weight: 400; /* Increased weight */
}
.philosophy-link:hover {
    color: #333;
}

.personal-section {
    display: flex;
    align-items: center;
    background: #fdfbf7; /* matching drawer bg for consistency, or white */
    padding: 60px;
}
.personal-text {
    flex: 1;
    padding-right: 50px;
}
.personal-text .sub-label {
    font-size: 0.75rem;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 20px;
}
.personal-text h3 {
    font-family: 'Angie Pro', Georgia, serif;
    font-size: 2.8rem;
    font-weight: 400;
    color: #333;
    margin: 0 0 20px;
    line-height: 1.2;
}
.personal-text p {
    font-size: 1.1rem;
    color: #555;
    line-height: 1.5;
    margin: 0;
}
.personal-img {
    flex: 1;
}
.img-placeholder {
    width: 100%;
    height: 400px;
    background: #ccc;
    background-image: url('https://images.unsplash.com/photo-1591886960571-74d43a9d4166?q=80&w=2000&auto=format&fit=crop');
    background-size: cover;
    background-position: center;
}

/* Mobile Adjustments for Shop */
@media (max-width: 768px) {
    .shop-header {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }
    .shop-title {
        font-size: 3rem;
    }
    .filter-columns {
        flex-direction: column;
        gap: 30px;
    }
    .custom-product-grid {
        grid-template-columns: 1fr;
    }
    .personal-section {
        flex-direction: column;
        padding: 30px 20px;
        gap: 40px;
    }
    .personal-text {
        padding-right: 0;
    }
}


.bespoke-contact-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 40px;
    font-size: 0.9rem;
    color: #555;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    padding-bottom: 3px;
    transition: all 0.3s ease;
}
.bespoke-contact-btn svg {
    transition: transform 0.3s ease;
}
.bespoke-contact-btn:hover {
    color: #000;
    border-bottom-color: #000;
}
.bespoke-contact-btn:hover svg {
    transform: translateX(5px);
}


/* Hide WooCommerce View Cart link */
a.added_to_cart.wc-forward {
    display: none !important;
}

/* Professional Mini Cart Styling */
.widget_shopping_cart_content {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.woocommerce-mini-cart {
    flex: 1;
    overflow-y: auto;
    padding: 0;
    margin: 0;
    list-style: none;
}
.woocommerce-mini-cart-item {
    display: flex;
    align-items: center;
    padding: 15px 0;
    border-bottom: 1px solid #eaeaea;
    position: relative;
}
.woocommerce-mini-cart-item a.remove {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
    color: #999 !important;
    font-size: 1.2rem;
    font-weight: 300;
    text-decoration: none;
    background: transparent !important;
}
.woocommerce-mini-cart-item a.remove:hover {
    color: #000 !important;
}
.woocommerce-mini-cart-item img {
    width: 60px;
    height: auto;
    margin-right: 15px;
    margin-left: 0;
}
.woocommerce-mini-cart__total {
    padding: 20px 0;
    border-top: 1px solid #eaeaea;
    text-align: right;
    font-size: 1.2rem;
    font-weight: 500;
}
.woocommerce-mini-cart__buttons {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.woocommerce-mini-cart__buttons .button {
    text-align: center;
    padding: 15px;
    background: #fff;
    border: 1px solid #333;
    color: #333;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 0.8rem;
    transition: all 0.3s;
    text-decoration: none;
    display: block;
}
.woocommerce-mini-cart__buttons .checkout {
    background: #333;
    color: #fff;
}
.woocommerce-mini-cart__buttons .button:hover {
    background: #555;
    color: #fff;
}


/* Custom Mini Cart Layout */
.woocommerce-mini-cart-item {
    display: flex !important;
    align-items: flex-start !important;
    padding: 20px 0 !important;
    border-bottom: 1px solid #eee !important;
}
.cart-item-img {
    width: 80px;
    flex-shrink: 0;
    margin-right: 20px;
}
.cart-item-img img {
    width: 100%;
    height: auto;
    display: block;
}
.cart-item-details {
    flex: 1;
    display: flex;
    flex-direction: column;
}
.cart-item-title {
    font-size: 1rem;
    font-weight: 500;
    margin: 0 0 5px 0;
}
.cart-item-title a {
    color: #333;
    text-decoration: none;
}
.cart-item-price {
    font-size: 1rem;
    font-weight: 500;
    color: #333;
    margin-bottom: 15px;
}
.cart-item-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.cart-item-qty {
    display: flex;
    align-items: center;
    border: 1px solid #eee;
    background: #f9f9f9;
    border-radius: 4px;
    overflow: hidden;
}
.cart-item-qty button {
    background: transparent;
    border: none;
    padding: 5px 12px;
    cursor: pointer;
    font-size: 1.1rem;
    color: #555;
}
.cart-item-qty input {
    width: 40px;
    text-align: center;
    border: none;
    background: transparent;
    font-size: 0.9rem;
    padding: 0;
    -moz-appearance: textfield;
}
.cart-item-qty input::-webkit-outer-spin-button,
.cart-item-qty input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.cart-item-actions .remove {
    color: #999;
    background: transparent;
}
.cart-item-actions .remove:hover {
    color: #d00;
}

/* Tools Footer */
.cart-drawer-tools {
    display: flex;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
    margin: 20px -20px 20px -20px; /* pull out of padding */
}
.cart-drawer-tools button {
    flex: 1;
    background: transparent;
    border: none;
    padding: 15px 0;
    cursor: pointer;
    color: #555;
    transition: background 0.3s;
}
.cart-drawer-tools button:first-child {
    border-right: 1px solid #eee;
}
.cart-drawer-tools button:hover {
    background: #f9f9f9;
}
.cart-drawer-note-field, .cart-drawer-coupon-field {
    margin-bottom: 20px;
}
.cart-drawer-note-field textarea, .cart-drawer-coupon-field input {
    width: 100%;
    padding: 10px;
    border: 1px solid #ddd;
    margin-bottom: 10px;
    font-family: inherit;
}
.cart-drawer-note-field button, .cart-drawer-coupon-field button {
    width: 100%;
    background: #f0f0f0;
    border: 1px solid #ddd;
    padding: 8px;
    cursor: pointer;
}
.woocommerce-mini-cart__total.total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: none;
    padding: 0 0 20px 0;
}
.woocommerce-mini-cart__total.total strong {
    font-size: 1.1rem;
    color: #000;
}
.woocommerce-mini-cart__buttons .button {
    border-radius: 0 !important;
    font-weight: 500;
}
.woocommerce-mini-cart__buttons .checkout {
    background: #111;
    border-color: #111;
}


/* Force Mini Cart Overrides */
.cart-drawer, .account-drawer {
    background-color: #fff !important;
}
ul.woocommerce-mini-cart {
    padding: 0 20px !important;
}
li.woocommerce-mini-cart-item {
    padding: 20px 0 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    background: transparent !important;
}
.cart-item-img {
    width: 80px !important;
    margin-right: 15px !important;
}
.cart-item-details {
    padding-left: 0 !important;
}
.woocommerce-mini-cart__buttons {
    padding: 0 20px 20px 20px !important;
    gap: 15px !important;
}
.woocommerce-mini-cart__buttons a.button {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    padding: 15px !important;
    border-radius: 0 !important !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    text-transform: capitalize !important;
    letter-spacing: normal !important;
    margin: 0 !important;
}
.woocommerce-mini-cart__buttons a.button:not(.checkout) {
    background: #fff !important;
    color: #000 !important;
    border: 1px solid #000 !important;
}
.woocommerce-mini-cart__buttons a.button.checkout {
    background: #111 !important;
    color: #fff !important;
    border: 1px solid #111 !important;
}
.cart-drawer-tools button {
    background: transparent !important;
}
.cart-drawer-tools button svg {
    stroke: #000 !important;
}
.woocommerce-mini-cart__total {
    padding: 20px !important;
}


/* Kill WooCommerce Default Widget Styles for our Mini Cart */
.widget_shopping_cart_content ul.cart_list li {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.widget_shopping_cart_content ul.cart_list li img {
    float: none !important;
    width: 80px !important;
    height: auto !important;
    margin-left: 0 !important;
    box-shadow: none !important;
}
.widget_shopping_cart_content ul.cart_list li a {
    font-weight: 500 !important;
    display: block !important;
}
.widget_shopping_cart_content ul.cart_list li a.remove {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    display: inline-flex !important;
    background: transparent !important;
    color: #999 !important;
    width: auto !important;
    height: auto !important;
}
.widget_shopping_cart_content ul.cart_list li a.remove:hover {
    color: #d00 !important;
    background: transparent !important;
}
.cart-item-actions {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
}
.cart-item-qty {
    display: inline-flex !important;
    align-items: center !important;
    background: #f4f4f4 !important;
    
    padding: 5px !important;
}
.cart-item-qty button {
    border: none !important;
    background: transparent !important;
    padding: 0 10px !important;
    font-size: 1.2rem !important;
    cursor: pointer !important;
}
.cart-item-qty input {
    width: 30px !important;
    text-align: center !important;
    background: transparent !important;
    border: none !important;
}


/* Product Card Layout Update */
.product-meta-row {
    display: flex;
    justify-content: space-between;
    width: 100%;
}
.product-meta-row.top-row {
    align-items: baseline;
    margin-bottom: 5px;
}
.product-meta-row.bottom-row {
    align-items: flex-end;
}
.product-short-desc {
    flex: 1;
    padding-right: 15px;
}
.custom-add-cart {
    display: block;
    color: #777;
    transition: color 0.3s ease;
}
.custom-add-cart:hover {
    color: #000;
}


/* Filter Selected State */
.filter-list label:has(input[type="checkbox"]:checked) {
    font-weight: 600;
    color: #000;
}
.filter-list label {
    display: block;
}


/* --- Cart Page Styles --- */
.custom-cart-container {
    display: flex;
    flex-wrap: wrap;
    gap: 50px;
    margin: 50px auto;
    max-width: 1200px;
    padding: 0 20px;
}
.custom-cart-left {
    flex: 1;
    min-width: 60%;
}
.custom-cart-right {
    width: 380px;
    background: #f7f7f7;
    padding: 40px;
    border-radius: 12px;
}
.woocommerce-cart-form__contents {
    width: 100%;
    border-collapse: collapse;
}
.woocommerce-cart-form__contents th {
    text-align: left;
    padding-bottom: 20px;
    border-bottom: 1px solid #eee;
    font-weight: 700;
    text-transform: capitalize;
}
.woocommerce-cart-form__contents td {
    padding: 30px 0;
    border-bottom: 1px solid #eee;
    vertical-align: middle;
}
.woocommerce-cart-form__cart-item .product-thumbnail img {
    width: 80px;
    border-radius: 8px;
}
.woocommerce-cart-form__cart-item .product-name {
    padding-left: 20px;
}
.woocommerce-cart-form__cart-item .product-name a {
    font-weight: 600;
    color: #111;
    text-decoration: none;
    display: block;
    margin-bottom: 5px;
}
.product-remove .remove-text {
    font-size: 0.85rem;
    color: #666;
    text-decoration: underline;
}
.product-remove .remove-text:hover {
    color: #d00;
}
.woocommerce-cart-form__cart-item .product-price, 
.woocommerce-cart-form__cart-item .product-subtotal {
    font-weight: 600;
}

/* Coupon Row */
.cart-actions-row {
    margin-top: 30px;
    padding-bottom: 30px;
    border-bottom: 1px solid #eee;
}
.cart-actions-row .coupon {
    display: flex;
    gap: 15px;
}
.cart-actions-row .coupon input {
    border: 1px solid #eee;
    padding: 12px 20px;
    border-radius: 0 !important;
    width: 200px;
    outline: none;
}
.cart-actions-row .coupon button {
    background: #111;
    color: #fff;
    border: none;
    padding: 12px 30px;
    border-radius: 0 !important;
    cursor: pointer;
    font-weight: 600;
}

/* Features Row */
.cart-features-row {
    display: flex;
    gap: 20px;
    margin-top: 40px;
}
.feature-box {
    flex: 1;
    background: #fafafa;
    padding: 30px 20px;
    border-radius: 12px;
    text-align: center;
}
.feature-box svg {
    margin-bottom: 15px;
    color: #333;
}
.feature-box h4 {
    font-size: 0.95rem;
    margin: 0 0 10px 0;
}
.feature-box p {
    font-size: 0.8rem;
    color: #777;
    margin: 0;
    line-height: 1.4;
}

/* Right Side (Totals) */
.cart-note-box h4 {
    font-size: 1.1rem;
    margin-bottom: 15px;
}
.cart-note-box textarea {
    width: 100%;
    min-height: 100px;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 15px;
    margin-bottom: 15px !important;
    font-family: inherit;
    resize: vertical;
}
.cart_totals h2 {
    font-size: 1.3rem;
    margin-bottom: 25px;
}
.cart_totals table {
    width: 100%;
    border-collapse: collapse;
}
.cart_totals th {
    text-align: left;
    padding: 15px 0;
    font-weight: 600;
}
.cart_totals td {
    text-align: right;
    padding: 15px 0;
}
.cart_totals tr.order-total th, 
.cart_totals tr.order-total td {
    font-size: 1.2rem;
    font-weight: 700;
    border-top: 1px solid #ddd;
    padding-top: 25px;
}
.wc-proceed-to-checkout {
    margin-top: 30px;
}
.wc-proceed-to-checkout a.checkout-button {
    display: block;
    width: 100%;
    text-align: center;
    background: #111;
    color: #fff;
    padding: 18px;
    border-radius: 0 !important;
    text-decoration: none;
    font-weight: 600;
}

/* Empty Cart */
.custom-empty-cart {
    text-align: center;
    padding: 100px 20px;
}
.custom-empty-cart h2 {
    font-size: 2rem;
    margin-bottom: 40px;
}
.custom-empty-cart .button {
    background: #111;
    color: #fff;
    padding: 15px 40px;
    border-radius: 0 !important;
    text-decoration: none;
    font-weight: 600;
    display: inline-block;
}

/* Qty pill override for cart */
.woocommerce-cart-form .quantity {
    display: flex;
    align-items: center;
    background: #f4f4f4;
    border-radius: 0 !important;
    width: max-content;
    padding: 5px 10px;
}
.woocommerce-cart-form .quantity input.qty {
    width: 30px;
    text-align: center;
    background: transparent;
    border: none;
    padding: 0;
    font-weight: 600;
}


.custom-empty-cart h2 {
    font-family: "Angie Pro", sans-serif !important;
}
.custom-continue-btn {
    background-color: #111 !important;
    color: #fff !important;
    font-family: "Jost", sans-serif !important;
    padding: 15px 40px !important;
    border-radius: 0 !important !important;
    border: none !important;
    font-size: 1rem !important;
}
.custom-continue-btn:hover {
    background-color: #333 !important;
    color: #fff !important;
}


/* ----- AGGRESSIVE WOOCOMMERCE CART OVERRIDES ----- */
.woocommerce table.shop_table, 
.woocommerce table.shop_table th, 
.woocommerce table.shop_table td {
    border: none !important;
    border-radius: 0 !important;
}
.woocommerce table.shop_table tbody td {
    border-top: 1px solid #eee !important;
}
.woocommerce table.shop_table thead th {
    border-bottom: 1px solid #eee !important;
}

/* Proceed to Checkout Button */
.woocommerce .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button {
    background-color: #111 !important;
    color: #fff !important;
    border-radius: 0 !important !important;
    padding: 15px !important;
    font-weight: 600 !important;
    font-family: "Jost", sans-serif !important;
}
.woocommerce .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button:hover {
    background-color: #333 !important;
}

/* Quantity Selector Override */
.woocommerce .quantity .qty {
    width: 40px !important;
    height: 40px !important;
    border: none !important;
    background: transparent !important;
    text-align: center !important;
    font-weight: 600 !important;
    font-family: "Jost", sans-serif !important;
    -moz-appearance: textfield !important;
}
.woocommerce .quantity .qty::-webkit-outer-spin-button,
.woocommerce .quantity .qty::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}
.woocommerce .quantity.custom-qty-wrapper {
    background: #f4f4f4 !important;
    border-radius: 0 !important !important;
    display: inline-flex !important;
    align-items: center !important;
    padding: 0 5px !important;
    border: none !important;
}
.woocommerce .quantity.custom-qty-wrapper .qty-btn {
    background: transparent !important;
    border: none !important;
    font-size: 1.2rem !important;
    color: #333 !important;
    cursor: pointer !important;
    width: 30px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: none !important;
}

/* Fix product row layout */
.woocommerce-cart-form__cart-item td.product-name {
    display: table-cell !important;
    vertical-align: middle !important;
}


/* --- PERFECTING CART TOTALS (RIGHT SIDEBAR) --- */
.custom-cart-right h4, .cart_totals h2 {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 1.5rem !important;
    text-align: left !important;
    margin-bottom: 20px !important;
    color: #111 !important;
    font-weight: 500 !important;
}

.cart_totals table.shop_table {
    width: 100% !important;
    border: none !important;
    border-collapse: collapse !important;
    margin-bottom: 30px !important;
}
.cart_totals table.shop_table th, 
.cart_totals table.shop_table td {
    border: none !important;
    background: transparent !important;
    padding: 15px 0 !important;
    font-family: "Jost", sans-serif !important;
    color: #111 !important;
}
.cart_totals table.shop_table th {
    text-align: left !important;
    font-weight: 600 !important;
    font-size: 1.1rem !important;
}
.cart_totals table.shop_table td {
    text-align: right !important;
    font-weight: 600 !important;
    font-size: 1.1rem !important;
}
.cart_totals table.shop_table tr.order-total th, 
.cart_totals table.shop_table tr.order-total td {
    border-top: 1px solid #ddd !important;
    padding-top: 25px !important;
    font-size: 1.3rem !important;
    font-weight: 700 !important;
}

/* Fix Proceed to Checkout Button */
.woocommerce .cart-collaterals .cart_totals .wc-proceed-to-checkout {
    padding: 0 !important;
    margin-top: 20px !important;
}
.woocommerce .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button {
    display: block !important;
    width: 100% !important;
    background-color: #111 !important;
    color: #fff !important;
    border-radius: 0 !important !important;
    padding: 18px 20px !important;
    font-weight: 600 !important;
    font-family: "Jost", sans-serif !important;
    font-size: 1.1rem !important;
    text-align: center !important;
    box-sizing: border-box !important;
}
.woocommerce .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button:hover {
    background-color: #333 !important;
}

/* Order Note Textarea */
.cart-note-box textarea {
    width: 100% !important;
    box-sizing: border-box !important;
    background: #fff !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 12px !important;
    font-family: "Jost", sans-serif !important;
    font-size: 0.95rem !important;
    padding: 15px !important;
    color: #333 !important;
}


/* ----- NUKE WOOCOMMERCE CART COLLATERALS DEFAULTS ----- */
.woocommerce .cart-collaterals .cart_totals, 
.woocommerce-page .cart-collaterals .cart_totals {
    float: none !important;
    width: 100% !important;
    text-align: left !important;
}

.woocommerce .cart-collaterals, 
.woocommerce-page .cart-collaterals {
    width: 100% !important;
    display: block !important;
}

.custom-cart-right {
    display: flex !important;
    flex-direction: column !important;
}

.cart_totals table.shop_table th {
    text-align: left !important;
}
.cart_totals table.shop_table td {
    text-align: right !important;
}


/* ----- MINI CART INPUTS STYLING ----- */
.cart-drawer-coupon-field input,
.cart-drawer-note-field textarea {
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 12px 15px !important;
    border: 1px solid #ddd !important;
    
    font-family: "Jost", sans-serif !important;
    font-size: 0.95rem !important;
    margin-bottom: 10px !important;
    outline: none !important;
    background: #fff !important;
    color: #333 !important;
}
.cart-drawer-note-field textarea {
    min-height: 80px !important;
    resize: vertical !important;
}
.cart-drawer-coupon-field button,
.cart-drawer-note-field button {
    width: 100% !important;
    background: #111 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 0 !important !important;
    padding: 12px !important;
    font-family: "Jost", sans-serif !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: background 0.3s !important;
    text-transform: capitalize !important;
}
.cart-drawer-coupon-field button:hover,
.cart-drawer-note-field button:hover {
    background: #333 !important;
}
.cart-drawer-coupon-field,
.cart-drawer-note-field {
    padding: 0 20px 20px 20px !important;
}


/* ----- MINI CART BUTTONS ANIMATION ----- */
.woocommerce-mini-cart__buttons .button {
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    position: relative !important;
    transform: translateY(0) !important;
    will-change: transform, box-shadow !important;
}
.woocommerce-mini-cart__buttons .button:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 10px 20px rgba(0,0,0,0.12) !important;
}
.woocommerce-mini-cart__buttons .button:active {
    transform: translateY(-1px) !important;
    box-shadow: 0 5px 10px rgba(0,0,0,0.1) !important;
}
.woocommerce-mini-cart__buttons .button.checkout {
    background: #111 !important;
    color: #fff !important;
}
.woocommerce-mini-cart__buttons .button.checkout:hover {
    background: #333 !important;
    box-shadow: 0 10px 20px rgba(0,0,0,0.25) !important;
}


/* ----- SINGLE PRODUCT PAGE ----- */
.custom-single-product {
    max-width: 1200px;
    margin: 40px auto 100px auto;
    padding: 0 20px;
}

/* Breadcrumb */
.custom-single-breadcrumb {
    margin-bottom: 40px;
}
.custom-single-breadcrumb .woocommerce-breadcrumb {
    font-family: "Jost", sans-serif;
    font-size: 0.75rem;
    text-transform: uppercase;
    color: #999;
    letter-spacing: 1px;
}
.custom-single-breadcrumb .woocommerce-breadcrumb a {
    color: #999;
    text-decoration: none;
}
.custom-single-breadcrumb .woocommerce-breadcrumb a:hover {
    color: #111;
}

/* Top Section */
.custom-single-top {
    display: flex;
    gap: 80px;
    margin-bottom: 100px;
}
.custom-single-image {
    flex: 1;
}
.custom-single-image img {
    width: 100%;
    height: auto;
    display: block;
}
.custom-single-summary {
    flex: 1;
    padding-top: 15px !important;
}

/* Summary Typography */
.product-cat-label {
    font-family: "Jost", sans-serif;
    font-size: 0.75rem;
    text-transform: uppercase;
    color: #999;
    letter-spacing: 1px;
    margin-bottom: 15px;
}
.custom-single-summary .product-title {
    font-family: "Angie Pro", sans-serif;
    font-size: 3.5rem;
    color: #222;
    margin: 0 0 10px 0;
    line-height: 1.1;
}
.custom-single-summary .product-short-desc {
    font-family: "Jost", sans-serif;
    font-size: 1.1rem;
    color: #666;
    margin-bottom: 15px !important;
    font-style: normal;
}
.custom-single-summary .product-description {
    font-family: "Jost", sans-serif;
    font-size: 0.95rem;
    color: #444;
    line-height: 1.6;
    margin-bottom: 40px;
    max-width: 90%;
}

/* Price & Stock */
.product-price-stock {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 40px;
}
.product-price-stock .price {
    font-family: "Jost", sans-serif;
    font-size: 1.2rem;
    color: #222;
}
.product-price-stock .stock {
    font-family: "Jost", sans-serif;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.product-price-stock .in-stock {
    color: #222;
}
.product-price-stock .in-stock .dot {
    width: 6px;
    height: 6px;
    background: #0a0;
    border-radius: 50%;
    display: inline-block;
}
.product-price-stock .out-of-stock {
    color: #d00;
}

/* Add to Cart Form */
.product-add-to-cart-wrap {
    margin-bottom: 60px;
}
.product-add-to-cart-wrap form.cart {
    display: flex;
    flex-direction: column;
}
.product-add-to-cart-wrap form.cart .quantity {
    display: flex;
    align-items: center;
    margin-bottom: 15px !important;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
    padding: 15px 0;
    width: 100%;
    justify-content: space-between;
    border-radius: 0 !important;
    background: transparent !important;
}
.product-add-to-cart-wrap form.cart .quantity::before {
    content: "QUANTITY";
    font-family: "Jost", sans-serif;
    font-size: 0.75rem;
    color: #999;
    letter-spacing: 1px;
}
.product-add-to-cart-wrap form.cart button.single_add_to_cart_button {
    width: 100%;
    background: #fff;
    color: #111;
    border: 1px solid #111;
    border-radius: 0 !important;
    padding: 18px;
    font-family: "Jost", sans-serif;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    cursor: pointer;
    transition: all 0.3s ease;
    margin-bottom: 15px;
}
.product-add-to-cart-wrap form.cart button.single_add_to_cart_button:hover {
    background: #111;
    color: #fff;
}
/* Buy Now Button (Faux for now, can be hooked later) */
.product-add-to-cart-wrap form.cart::after {
    content: "BUY NOW";
    display: block;
    width: 100%;
    text-align: center;
    font-family: "Jost", sans-serif;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #111;
    padding: 15px;
    cursor: pointer;
}

/* Meta Custom */
.product-meta-custom .meta-row {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid #eee;
    padding: 15px 0;
    font-family: "Jost", sans-serif;
    font-size: 0.8rem;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.product-meta-custom .meta-row:last-child {
    border-bottom: 1px solid #eee;
}

/* Banner Section */
.custom-single-banner {
    margin-bottom: 100px;
}
.label-small {
    font-family: "Jost", sans-serif;
    font-size: 0.75rem;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 10px;
}
.label-large {
    font-family: "Angie Pro", sans-serif;
    font-size: 2.5rem;
    color: #222;
    margin: 0 0 30px 0;
    font-weight: 400;
}
.banner-image-wrap {
    position: relative;
    width: 100%;
    height: 600px;
    overflow: hidden;
}
.banner-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.banner-overlay-text {
    position: absolute;
    bottom: 50px;
    left: 50px;
    font-family: "Angie Pro", sans-serif;
    font-size: 3.5rem;
    color: #fff;
    font-style: italic;
    margin: 0;
    max-width: 600px;
    line-height: 1.1;
}

/* Related Products */
.custom-single-related {
    margin-bottom: 100px;
}
.custom-single-related h2.label-large {
    display: block !important;
}
/* Override woo commerce default related heading */
.custom-single-related > section.related > h2 {
    display: none !important;
}
.explore-all-wrap {
    text-align: center;
    margin-top: 30px !important;
}
.btn-explore-all {
    font-family: "Jost", sans-serif;
    font-size: 0.9rem;
    color: #444;
    text-decoration: none;
}
.btn-explore-all:hover {
    color: #000;
}

/* Bespoke Section */
.custom-single-bespoke {
    display: flex;
    gap: 80px;
    align-items: center;
    padding: 0 100px;
    margin-bottom: 50px;
}
.bespoke-left {
    flex: 1;
}
.bespoke-title {
    font-family: "Angie Pro", sans-serif;
    font-size: 2.5rem;
    color: #444;
    line-height: 1.2;
    margin-bottom: 20px;
    font-weight: 400;
}
.bespoke-text {
    font-family: "Jost", sans-serif;
    font-size: 1.1rem;
    color: #777;
    line-height: 1.6;
}
.bespoke-right {
    flex: 1;
    text-align: right;
}
.bespoke-right img {
    max-width: 450px;
    width: 100%;
    height: auto;
}


/* ----- PERFECTING SINGLE PRODUCT ADD TO CART SECTION ----- */

/* Force Fonts */
.custom-single-product * {
    font-family: "Jost", sans-serif;
}
.custom-single-summary .product-title,
.custom-single-banner .label-large,
.banner-overlay-text,
.custom-single-related .label-large,
.bespoke-title {
    font-family: "Angie Pro", sans-serif !important;
}

/* Force Description to be uppercase and italic based on screenshot */
.custom-single-summary .product-short-desc, 
.custom-single-summary .product-description {
    font-family: "Jost", sans-serif !important;
    font-style: normal;
    letter-spacing: 1px !important;
    color: #666 !important;
    font-size: 0.85rem !important;
    line-height: 1.6 !important;
}

.product-add-to-cart-wrap {
    margin-bottom: 40px !important;
}

.product-add-to-cart-wrap form.cart {
    display: flex !important;
    flex-direction: column !important;
}

.product-add-to-cart-wrap form.cart .quantity {
    display: flex !important;
    align-items: center !important;
    margin-bottom: 20px !important;
    border-top: 1px solid #ddd !important;
    border-bottom: 1px solid #ddd !important;
    padding: 20px 0 !important;
    width: 100% !important;
    justify-content: space-between !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.product-add-to-cart-wrap form.cart .quantity::before {
    content: "QUANTITY" !important;
    font-family: "Jost", sans-serif !important;
    font-size: 0.85rem !important;
    color: #666 !important;
    letter-spacing: 1px !important;
    
}

.product-add-to-cart-wrap form.cart .quantity .qty-btn {
    font-size: 1.2rem !important;
    color: #666 !important;
    background: transparent !important;
    border: none !important;
    padding: 0 15px !important;
    cursor: pointer !important;
}

.product-add-to-cart-wrap form.cart .quantity .qty {
    border: none !important;
    background: transparent !important;
    width: 40px !important;
    text-align: center !important;
    font-weight: 400 !important;
    font-size: 1rem !important;
    color: #666 !important;
    -moz-appearance: textfield !important;
}

/* ADD TO CART Button Square */
.product-add-to-cart-wrap form.cart button.single_add_to_cart_button {
    width: 100% !important;
    background: #fff !important;
    color: #666 !important;
    border: 1px solid #666 !important;
    border-radius: 0 !important;
    padding: 15px !important;
    font-family: "Jost", sans-serif !important;
    font-size: 0.85rem !important;
    
    letter-spacing: 2px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    margin-bottom: 15px !important;
    font-weight: 400 !important;
    box-shadow: none !important;
}
.product-add-to-cart-wrap form.cart button.single_add_to_cart_button:hover {
    background: #f9f9f9 !important;
    color: #333 !important;
    border-color: #333 !important;
}

/* BUY NOW Button */
.product-add-to-cart-wrap form.cart button.single_buy_now_button {
    width: 100% !important;
    background: transparent !important;
    color: #666 !important;
    border: none !important;
    padding: 15px !important;
    font-family: "Jost", sans-serif !important;
    font-size: 0.85rem !important;
    
    letter-spacing: 2px !important;
    cursor: pointer !important;
    font-weight: 400 !important;
    transition: color 0.3s ease !important;
    box-shadow: none !important;
}
.product-add-to-cart-wrap form.cart button.single_buy_now_button:hover {
    color: #111 !important;
}

/* Fix faux pseudo element from previous styles */
.product-add-to-cart-wrap form.cart::after {
    display: none !important;
}


/* ----- FIX QUANTITY SPACING ----- */
.product-add-to-cart-wrap form.cart .quantity {
    justify-content: flex-end !important;
    gap: 10px !important;
}
.product-add-to-cart-wrap form.cart .quantity::before {
    margin-right: auto !important;
}
.product-add-to-cart-wrap form.cart .quantity .qty-btn {
    padding: 0 5px !important;
}


/* ----- FIX RELATED PRODUCTS GRID ----- */
.custom-single-related ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 30px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.custom-single-related ul.products li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    clear: none !important;
    width: 100% !important;
}

/* Ensure the product card styling applies regardless of parent */
ul.products li .product-card,
.products-grid .product-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}


/* ----- FIX WOOCOMMERCE CORE GRID INTERFERENCE ----- */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.custom-single-related ul.products li.product {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    clear: none !important;
}


/* ----- HIDE SHORT DESCRIPTION IN PRODUCT CARDS ----- */
.custom-single-related .product-card .product-short-desc {
    display: none !important;
}


/* ----- FIX CUSTOM RELATED LOOP GRID ----- */
.custom-single-related .products-grid {
    display: grid !important;
    grid-template-columns: repeat(5, 1fr) !important;
    gap: 20px !important;
    margin-bottom: 30px !important;
}


/* ----- PRODUCT CARD REDESIGN ----- */
.custom-single-related .product-card .product-meta-row.top-row {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
    margin-bottom: 15px !important;
}

.custom-single-related .product-card .product-title {
    font-size: 1.1rem !important; /* Smaller title */
    line-height: 1.3 !important;
    margin: 0 !important;
}

.custom-single-related .product-card .product-price {
    font-size: 0.95rem !important;
    color: #555 !important;
    margin: 0 !important;
}

.custom-single-related .product-card .product-meta-row.bottom-row {
    display: block !important;
}

.custom-single-related .product-card .custom-add-cart {
    display: block !important;
    width: 100% !important;
    background: #111 !important;
    color: #fff !important;
    text-align: center !important;
    padding: 12px 0 !important;
    border-radius: 0 !important !important;
    font-family: "Jost", sans-serif !important;
    
    font-size: 0.8rem !important;
    letter-spacing: 1px !important;
    text-decoration: none !important;
    transition: background 0.3s ease, transform 0.2s ease !important;
}

.custom-single-related .product-card .custom-add-cart:hover {
    background: #333 !important;
    transform: translateY(-2px) !important;
}

.custom-single-related .product-card .custom-add-cart.loading {
    opacity: 0.7 !important;
    pointer-events: none !important;
}


/* ----- EXPLORE ALL BOUQUETS BUTTON ----- */
.explore-all-wrap {
    text-align: center !important;
    margin-top: 50px !important;
}
.btn-explore-all {
    display: inline-block !important;
    font-family: "Jost", sans-serif !important;
    font-size: 0.85rem !important;
    
    letter-spacing: 2px !important;
    color: #111 !important;
    text-decoration: none !important;
    padding: 15px 40px !important;
    border: 1px solid #111 !important;
    border-radius: 0 !important !important;
    background: transparent !important;
    transition: all 0.3s ease !important;
}
.btn-explore-all:hover {
    background: #111 !important;
    color: #fff !important;
}



/* ----- FOOTER REFRESH ----- */
.site-footer {
    text-align: center;
    padding: 40px 20px 20px !important;
    background: #fff;
    border-top: 1px solid #eaeaea;
    margin-top: 30px !important;
    font-family: "Jost", sans-serif;
}
.footer-emblem {
    margin-bottom: 15px !important;
}
.footer-emblem img {
    max-width: 50px !important;
}
.footer-links {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px !important;
    margin-bottom: 15px !important;
}
.footer-links a {
    color: #444;
    text-decoration: none;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: color 0.3s ease;
}
.footer-links a:hover {
    color: #000;
}
.footer-socials {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-bottom: 15px !important;
}
.footer-socials a {
    color: #111;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px !important; height: 36px !important;
    border: 1px solid #eee;
    border-radius: 50%;
    transition: all 0.3s ease;
}
.footer-socials a:hover {
    background: #111;
    color: #fff;
    border-color: #111;
}
.footer-copyright {
    color: #999;
    font-size: 0.85rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    border-top: 1px solid #f5f5f5;
    padding-top: 15px !important;
    max-width: 400px;
    margin: 0 auto;
}



/* ==========================================================================
   USER REQUESTED MOBILE FIXES - BATCH 2 (SINGLE PRODUCT)
   ========================================================================== */
@media (max-width: 991px) {
    /* 1. Force extreme constraint on logo to guarantee no overlap */
    .header-logo-img {
        max-width: 230px !important;
        height: auto !important;
    }
    .site-header {
        padding: 10px 15px !important; /* give even more room */
    }
    
    /* 2. Single Product Layout - Image below Title */
    .custom-single-top {
        display: flex !important;
        flex-direction: column !important;
        gap: 20px !important;
    }
    .custom-single-summary {
        display: contents !important; /* Allows children to flow into custom-single-top */
    }
    /* Reorder items using flex order */
    .product-cat-label {
        order: 1 !important;
        text-align: center !important;
    }
    .custom-single-summary .product-title {
        order: 2 !important;
        text-align: center !important;
        margin-bottom: 0 !important;
    }
    .custom-single-image {
        order: 3 !important;
        margin-bottom: 20px !important;
    }
    .product-short-desc {
        order: 4 !important;
        text-align: center !important;
    }
    .product-description {
        order: 5 !important;
        text-align: center !important;
    }
    .product-price-stock {
        order: 6 !important;
        justify-content: center !important;
    }
    .product-add-to-cart-wrap {
        order: 7 !important;
    }
    .product-meta-custom {
        order: 8 !important;
    }
    
    /* 3. Related Products - Show only 4 (2x2 grid) and shrink Add to Cart */
    .custom-single-related .products-grid {
        grid-template-columns: 1fr 1fr !important; /* Force 2 columns */
        gap: 15px !important;
    }
    .custom-single-related .product-card:nth-child(5) {
        display: none !important; /* Hide 5th product on mobile */
    }
    .custom-single-related .product-card .custom-add-cart {
        padding: 8px 0 !important;
        font-size: 0.65rem !important;
        letter-spacing: 0.5px !important;
    }
    .custom-single-related .product-title {
        font-size: 0.95rem !important;
    }
}

/* ==========================================================================
   USER REQUESTED MOBILE FIXES - BATCH 3 (PRICE GAP)
   ========================================================================== */
@media (max-width: 991px) {
    .product-price-stock {
        gap: 20px !important; /* Adds space between price and IN STOCK status */
        flex-wrap: wrap !important; /* Just in case it's a very small screen */
    }
}

@media (max-width: 991px) {
    .product-price-stock .price {
        font-size: 1.5rem !important; /* Larger price on mobile */
        font-weight: 500 !important;
    }
}





@media (max-width: 991px) {
    .user-icon svg {
        width: 27px !important;
        height: 27px !important;
    }
}


/* ==========================================================================
   USER REQUESTED MOBILE FIXES - BATCH 4 (CART PAGE)
   ========================================================================== */
@media (max-width: 991px) {
    /* 1. Hide the word "Cart" (Page Title) on Mobile */
    .woocommerce-cart .page-title,
    .woocommerce-cart h1.entry-title {
        display: none !important;
    }
    
    /* 2. Cart Table Redesign on Mobile */
    .woocommerce-cart .woocommerce-cart-form__contents,
    .woocommerce-cart .woocommerce-cart-form__contents tbody,
    .woocommerce-cart .woocommerce-cart-form__contents tr,
    .woocommerce-cart .woocommerce-cart-form__contents td {
        display: block !important;
        width: 100% !important;
    }
    
    /* Hide the table header on mobile */
    .woocommerce-cart .woocommerce-cart-form__contents thead {
        display: none !important;
    }
    
    /* Product Row Card */
    .woocommerce-cart .woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item {
        background: #fff !important;
        border: 1px solid #eee !important;
        border-radius: 12px !important;
        margin-bottom: 20px !important;
        padding: 15px !important;
        position: relative !important;
    }
    
    /* Reset table cell styles */
    .woocommerce-cart .woocommerce-cart-form__contents td {
        border: none !important;
        padding: 10px 0 !important;
        text-align: right !important; /* Align values to right */
        background: transparent !important; /* Fix weird gray backgrounds */
    }
    
    /* Label styling (Product:, Price:, etc) */
    .woocommerce-cart .woocommerce-cart-form__contents td::before {
        content: attr(data-title) !important;
        float: left !important;
        font-family: "Jost", sans-serif !important;
        font-weight: 500 !important;
        color: #666 !important;
        
        font-size: 0.85rem !important;
    }
    
    /* Product Name Cell */
    .woocommerce-cart .woocommerce-cart-form__contents td.product-name {
        text-align: right !important;
        border-bottom: 1px solid #eee !important;
        padding-bottom: 15px !important;
        margin-bottom: 5px !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-name a {
        font-family: "Angie Pro", sans-serif !important;
        font-size: 1.2rem !important;
        color: #111 !important;
        font-weight: 600 !important;
    }
    
    /* Product Thumbnail (Show it on mobile!) */
    .woocommerce-cart .woocommerce-cart-form__contents td.product-thumbnail {
        display: block !important;
        text-align: center !important;
        padding-bottom: 15px !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-thumbnail img {
        width: 100px !important;
        height: auto !important;
        border-radius: 8px !important;
        display: block !important;
        margin: 0 auto !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-thumbnail::before {
        display: none !important; /* Don't show "Product:" label for image */
    }
    
    /* Product Remove (X icon) */
    .woocommerce-cart .woocommerce-cart-form__contents td.product-remove {
        position: absolute !important;
        top: 10px !important;
        right: 15px !important;
        text-align: right !important;
        border: none !important;
        padding: 0 !important;
        width: auto !important;
        z-index: 10 !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-remove::before {
        display: none !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-remove a.remove {
        color: #ff3333 !important;
        font-size: 1.5rem !important;
        font-weight: 300 !important;
        background: transparent !important;
        display: inline-block !important;
    }
    
    /* Quantity Field */
    .woocommerce-cart .woocommerce-cart-form__contents td.product-quantity {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-quantity::before {
        float: none !important;
    }
    .woocommerce-cart .product-quantity .quantity {
        margin: 0 !important;
        justify-content: flex-end !important;
    }
}



@media (max-width: 991px) {
    /* Hide the word "Cart" (Page Title) on Mobile */
    .woocommerce-cart .page-title,
    .woocommerce-cart h1.entry-title {
        display: none !important;
    }
}

/* Fix for WordPress Footer Menu */
.footer-links .footer-menu-list {
    display: flex;
    gap: 30px;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    flex-wrap: wrap;
    justify-content: center;
}
.footer-links .footer-menu-list li {
    list-style: none !important;
    margin: 0 !important;
}

/* Hide the main Cart Title entirely across all devices */
.woocommerce-cart .page-title,
.woocommerce-cart h1.entry-title {
    display: none !important;
}

/* ==========================================================================
   RESTORED MODERN WOOCOMMERCE UI/UX
   ========================================================================== */

/* 1. CHECKOUT PAGE */
.woocommerce-checkout form.checkout {
    display: grid !important;
    grid-template-columns: 1.2fr 0.8fr !important;
    gap: 50px !important;
    align-items: start !important;
    margin-top: 40px !important;
}

.woocommerce-checkout #customer_details {
    width: 100% !important;
    float: none !important;
}

.woocommerce-checkout #order_review_heading {
    width: 100% !important;
    float: none !important;
    font-family: "Angie Pro", sans-serif !important;
    font-size: 1.8rem !important;
    margin-top: 0 !important;
}

.woocommerce-checkout #order_review {
    width: 100% !important;
    float: none !important;
    background: #fff !important;
    border: 1px solid #eaeaea !important;
    border-radius: 12px !important;
    padding: 30px !important;
    position: sticky !important;
    top: 40px !important;
}

.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3 {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 1.8rem !important;
    color: #111 !important;
    margin-bottom: 20px !important;
}

.woocommerce-checkout .form-row label {
    font-family: "Jost", sans-serif !important;
    font-size: 0.9rem !important;
    color: #111 !important;
    font-weight: 500 !important;
}

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .select2-container .select2-selection--single {
    border-radius: 25px !important;
    border: 1px solid #ddd !important;
    padding: 12px 20px !important;
    height: auto !important;
    font-family: "Jost", sans-serif !important;
    background: #fff !important;
}
.woocommerce-checkout .form-row textarea {
    border-radius: 12px !important;
}

.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
    top: 12px !important;
    right: 15px !important;
}

.woocommerce-checkout table.shop_table {
    border: none !important;
    border-collapse: collapse !important;
    width: 100% !important;
    border-radius: 0 !important;
}
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td {
    border-top: none !important;
    border-bottom: 1px solid #eee !important;
    padding: 15px 0 !important;
    font-family: "Jost", sans-serif !important;
    color: #333 !important;
    background: transparent !important;
}
.woocommerce-checkout table.shop_table thead th {
    border-bottom: 2px solid #eee !important;
    font-weight: 600 !important;
}

.woocommerce-checkout #payment {
    background: transparent !important;
    border-radius: 0 !important;
    padding: 0 !important;
}
.woocommerce-checkout #payment ul.payment_methods {
    border-bottom: 1px solid #eee !important;
    padding: 20px 0 !important;
}
.woocommerce-checkout #payment div.payment_box {
    background: #f9f9f9 !important;
    border-radius: 8px !important;
    padding: 15px !important;
    font-size: 0.9rem !important;
}
.woocommerce-checkout #payment div.payment_box::before {
    display: none !important;
}
.woocommerce-checkout #payment button#place_order {
    background: #111 !important;
    color: #fff !important;
    border-radius: 0 !important !important;
    padding: 15px 0 !important;
    width: 100% !important;
    font-family: "Jost", sans-serif !important;
    font-size: 1rem !important;
    
    letter-spacing: 1px !important;
    margin-top: 20px !important;
    transition: all 0.3s ease !important;
}
.woocommerce-checkout #payment button#place_order:hover {
    background: #333 !important;
}

/* 2. MOBILE COMPATIBILITY FOR CHECKOUT */
@media (max-width: 991px) {
    .woocommerce-checkout form.checkout {
        grid-template-columns: 1fr !important;
        gap: 30px !important;
    }
    .woocommerce-checkout #order_review {
        position: static !important;
        padding: 20px !important;
    }
}

/* ==========================================================================
   RESTORED CART MOBILE DESIGN (CARDS)
   ========================================================================== */
@media (max-width: 991px) {
    .woocommerce-cart .woocommerce-cart-form__contents,
    .woocommerce-cart .woocommerce-cart-form__contents tbody,
    .woocommerce-cart .woocommerce-cart-form__contents tr,
    .woocommerce-cart .woocommerce-cart-form__contents td {
        display: block !important;
        width: 100% !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents thead {
        display: none !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item {
        background: #fff !important;
        border: 1px solid #eee !important;
        border-radius: 12px !important;
        margin-bottom: 20px !important;
        padding: 15px !important;
        position: relative !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td {
        border: none !important;
        padding: 10px 0 !important;
        text-align: right !important;
        background: transparent !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td::before {
        content: attr(data-title) !important;
        float: left !important;
        font-family: "Jost", sans-serif !important;
        font-weight: 500 !important;
        color: #666 !important;
        
        font-size: 0.85rem !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-name {
        text-align: right !important;
        border-bottom: 1px solid #eee !important;
        padding-bottom: 15px !important;
        margin-bottom: 5px !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-name a {
        font-family: "Angie Pro", sans-serif !important;
        font-size: 1.2rem !important;
        color: #111 !important;
        font-weight: 600 !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-thumbnail {
        display: block !important;
        text-align: center !important;
        padding-bottom: 15px !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-thumbnail img {
        width: 100px !important;
        height: auto !important;
        border-radius: 8px !important;
        display: block !important;
        margin: 0 auto !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-thumbnail::before,
    .woocommerce-cart .woocommerce-cart-form__contents td.product-remove::before {
        display: none !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-remove {
        position: absolute !important;
        top: 10px !important;
        right: 15px !important;
        text-align: right !important;
        border: none !important;
        padding: 0 !important;
        width: auto !important;
        z-index: 10 !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-remove a.remove {
        color: #ff3333 !important;
        font-size: 1.5rem !important;
        font-weight: 300 !important;
        background: transparent !important;
        display: inline-block !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-quantity {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-quantity::before {
        float: none !important;
    }
    .woocommerce-cart .product-quantity .quantity {
        margin: 0 !important;
        justify-content: flex-end !important;
    }
}

/* ==========================================================================
   RESTORED WOOCOMMERCE THANK YOU & MY ACCOUNT
   ========================================================================== */

/* Thank You Page */
.woocommerce-order {
    max-width: 800px !important;
    margin: 60px auto !important;
    background: #fff !important;
    padding: 40px !important;
    border-radius: 16px !important;
    border: 1px solid #eaeaea !important;
    text-align: center !important;
    box-shadow: 0 10px 40px rgba(0,0,0,0.03) !important;
}
.woocommerce-order .woocommerce-notice {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 2rem !important;
    color: #4CAF50 !important;
    margin-bottom: 30px !important;
}
.woocommerce-order ul.order_details {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 30px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 40px 0 !important;
}
.woocommerce-order ul.order_details li {
    text-align: center !important;
    border-right: 1px solid #eee !important;
    padding-right: 30px !important;
    font-family: "Jost", sans-serif !important;
}
.woocommerce-order ul.order_details li:last-child {
    border-right: none !important;
    padding-right: 0 !important;
}
.woocommerce-order ul.order_details li strong {
    display: block !important;
    font-size: 1.2rem !important;
    margin-top: 5px !important;
    color: #111 !important;
}

/* My Account */
.woocommerce-account .woocommerce {
    display: flex !important;
    gap: 40px !important;
    max-width: 1200px !important;
    margin: 60px auto !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation {
    flex: 0 0 250px !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid #eaeaea !important;
    border-radius: 12px !important;
    overflow: hidden !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li {
    border-bottom: 1px solid #eaeaea !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child {
    border-bottom: none !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    display: block !important;
    padding: 15px 20px !important;
    color: #444 !important;
    text-decoration: none !important;
    font-family: "Jost", sans-serif !important;
    font-weight: 500 !important;
    transition: all 0.3s ease !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
    background: #f9f9f9 !important;
    color: #111 !important;
}
.woocommerce-account .woocommerce-MyAccount-content {
    flex: 1 !important;
    background: #fff !important;
    border: 1px solid #eaeaea !important;
    border-radius: 12px !important;
    padding: 40px !important;
}
.woocommerce-account .woocommerce-MyAccount-content h3 {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 1.8rem !important;
    margin-bottom: 20px !important;
}

@media (max-width: 991px) {
    .woocommerce-account .woocommerce {
        flex-direction: column !important;
    }
    .woocommerce-account .woocommerce-MyAccount-navigation {
        flex: none !important;
        width: 100% !important;
    }
}

/* Fix Checkout Grid Layout */
.woocommerce-checkout form.checkout {
    display: grid !important;
    grid-template-columns: 1.2fr 0.8fr !important;
    gap: 50px !important;
    align-items: start !important;
}

.woocommerce-checkout #customer_details {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    width: 100% !important;
}

/* Make Billing and Shipping stack vertically inside the left column */
.woocommerce-checkout .col2-set .col-1, 
.woocommerce-checkout .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
    margin-bottom: 40px !important;
}

.woocommerce-checkout #order_review_heading {
    grid-column: 2 !important;
    grid-row: 1 !important;
    margin-top: 0 !important;
    margin-bottom: 20px !important;
}

.woocommerce-checkout #order_review {
    grid-column: 2 !important;
    grid-row: 2 !important;
    width: 100% !important;
    background: #fff !important;
    border: 1px solid #eaeaea !important;
    border-radius: 12px !important;
    padding: 30px !important;
    position: sticky !important;
    top: 40px !important;
}

/* Hide duplicate page title */
.woocommerce-checkout h1.entry-title,
.woocommerce-checkout .page-title {
    display: none !important;
}

/* Missing Checkout Refinements */
.checkout-product-wrap {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
}
.checkout-product-wrap img {
    width: 60px !important;
    height: 60px !important;
    object-fit: cover !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05) !important;
}
.checkout-product-name {
    font-family: "Jost", sans-serif !important;
    font-weight: 500 !important;
    color: #111 !important;
}

/* Coupon & Login Toggles */
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid #eaeaea !important;
    padding: 0 0 15px 0 !important;
    margin-bottom: 30px !important;
    color: #666 !important;
    font-family: "Jost", sans-serif !important;
}
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info::before,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before {
    display: none !important;
}
.woocommerce-checkout .woocommerce-form-login-toggle a,
.woocommerce-checkout .woocommerce-form-coupon-toggle a {
    color: #111 !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
}
.woocommerce-checkout form.checkout_coupon,
.woocommerce-checkout form.login {
    border: 1px solid #eaeaea !important;
    border-radius: 12px !important;
    padding: 20px !important;
    margin-bottom: 40px !important;
}
.woocommerce-checkout form.checkout_coupon button.button,
.woocommerce-checkout form.login button.button {
    background: #111 !important;
    color: #fff !important;
    border-radius: 0 !important !important;
    padding: 10px 25px !important;
    font-family: "Jost", sans-serif !important;
}

/* ==========================================================================
   CHECKOUT EXACT MATCH (FIGMA)
   ========================================================================== */

.checkout-page-title {
    text-align: center !important;
    font-family: "Jost", sans-serif !important;
    font-size: 2.2rem !important;
    font-weight: 600 !important;
    color: #111 !important;
    margin-bottom: 30px !important;
    text-transform: capitalize !important;
}

/* Coupon & Login Forms */
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle {
    display: inline-block !important;
    width: 48% !important;
    text-align: center !important;
}
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin-bottom: 40px !important;
    color: #555 !important;
    font-family: "Jost", sans-serif !important;
    font-size: 0.9rem !important;
}
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info::before,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before {
    display: none !important; /* Hide icon */
}
.woocommerce-checkout .woocommerce-form-login-toggle a,
.woocommerce-checkout .woocommerce-form-coupon-toggle a {
    color: #111 !important;
    text-decoration: underline !important;
    font-weight: 500 !important;
}

/* Billing Details Card */
.woocommerce-checkout #customer_details {
    background: #fff !important;
    border: 1px solid #eaeaea !important;
    border-radius: 12px !important;
    padding: 30px !important;
    width: 58% !important;
}
.woocommerce-checkout .woocommerce-billing-fields h3 {
    font-family: "Jost", sans-serif !important;
    font-size: 1.4rem !important;
    font-weight: 600 !important;
    border-bottom: none !important;
    margin-bottom: 25px !important;
}

/* Form Fields */
.woocommerce-checkout .form-row.form-row-first,
.woocommerce-checkout .form-row.form-row-last {
    width: 48% !important;
}
.woocommerce-checkout .form-row.form-row-first { float: left !important; }
.woocommerce-checkout .form-row.form-row-last { float: right !important; }

.woocommerce-checkout .form-row label {
    font-size: 0.8rem !important;
    color: #222 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-weight: 500 !important;
}
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .select2-container .select2-selection--single {
    border-radius: 0 !important !important;
    padding: 12px 20px !important;
    border: 1px solid #ddd !important;
    background: #fff !important;
}

/* Order Review Card */
.woocommerce-checkout #order_review_heading {
    display: block !important;
    font-family: "Jost", sans-serif !important;
    font-size: 1.4rem !important;
    font-weight: 600 !important;
    margin-bottom: 25px !important;
    padding-left: 30px !important;
}
.woocommerce-checkout #order_review {
    width: 38% !important;
    background: #fff !important;
    border: 1px solid #eaeaea !important;
    border-radius: 12px !important;
    padding: 30px !important;
}

/* Product Row with Image */
.checkout-product-wrap {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
}
.checkout-product-wrap img {
    width: 50px !important;
    height: 50px !important;
    object-fit: cover !important;
    border-radius: 6px !important;
}
.checkout-product-name {
    font-family: "Jost", sans-serif !important;
    font-weight: 600 !important;
    font-size: 0.9rem !important;
}

/* ----- FIX CHECKOUT LAYOUT BREAKS ----- */
body.woocommerce-checkout .woocommerce {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
}
body.woocommerce-checkout form.checkout {
    display: contents !important;
}
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle {
    width: 50% !important;
    float: left !important;
    box-sizing: border-box !important;
}
.woocommerce-checkout #customer_details {
    width: 58% !important;
    order: 1 !important;
    margin-bottom: 40px !important;
}
.woocommerce-checkout #order_review_heading {
    width: 38% !important;
    order: 2 !important;
    margin-bottom: 0 !important;
    padding-left: 0 !important;
    margin-top: 0 !important;
}
.woocommerce-checkout #order_review {
    width: 38% !important;
    order: 3 !important;
    position: sticky !important;
    top: 40px !important;
}
.woocommerce-checkout .col2-set .col-1, 
.woocommerce-checkout .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
    margin-bottom: 40px !important;
}
@media (max-width: 991px) {
    .woocommerce-checkout #customer_details,
    .woocommerce-checkout #order_review_heading,
    .woocommerce-checkout #order_review,
    .woocommerce-checkout .woocommerce-form-login-toggle,
    .woocommerce-checkout .woocommerce-form-coupon-toggle {
        width: 100% !important;
        position: static !important;
    }
}

/* Fix Checkout Layout - Final Robust Solution */

/* Title & Toggles Container */
.checkout-page-title {
    text-align: center !important;
    width: 100% !important;
    display: block !important;
    margin-bottom: 20px !important;
}
body.woocommerce-checkout .woocommerce {
    display: block !important; /* Remove flex from wrapper */
}

.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle {
    display: inline-block !important;
    width: 49% !important;
    text-align: center !important;
    float: none !important;
}

/* The actual checkout form grid */
body.woocommerce-checkout form.checkout {
    display: grid !important;
    grid-template-columns: 1.2fr 0.8fr !important;
    gap: 40px !important;
    align-items: start !important;
    margin-top: 30px !important;
}

.woocommerce-checkout #customer_details {
    width: 100% !important;
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    margin: 0 !important;
}

/* Make sure billing/shipping are 100% width inside the left column */
.woocommerce-checkout .col2-set .col-1, 
.woocommerce-checkout .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
    margin-bottom: 40px !important;
}

.woocommerce-checkout #order_review_heading {
    width: 100% !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce-checkout #order_review {
    width: 100% !important;
    grid-column: 2 !important;
    grid-row: 2 !important;
    position: sticky !important;
    top: 40px !important;
    margin: 0 !important;
}

/* Mobile Fixes */
@media (max-width: 991px) {
    body.woocommerce-checkout form.checkout {
        grid-template-columns: 1fr !important;
        gap: 30px !important;
    }
    .woocommerce-checkout #customer_details,
    .woocommerce-checkout #order_review_heading,
    .woocommerce-checkout #order_review {
        grid-column: 1 !important;
        grid-row: auto !important;
        position: static !important;
    }
    .woocommerce-checkout .woocommerce-form-login-toggle,
    .woocommerce-checkout .woocommerce-form-coupon-toggle {
        display: block !important;
        width: 100% !important;
    }
}

/* Ensure title and toggles are centered perfectly */
.checkout-page-title {
    text-align: center !important;
    width: 100% !important;
    display: block !important;
}

.woocommerce > .woocommerce-form-login-toggle,
.woocommerce > .woocommerce-form-coupon-toggle {
    display: block !important;
    text-align: center !important;
    width: auto !important;
    margin: 0 auto 15px !important;
    float: none !important;
}

/* If both are present, put them side by side inline */
.woocommerce > .woocommerce-form-login-toggle,
.woocommerce > .woocommerce-form-coupon-toggle {
    display: inline-block !important;
    margin: 0 10px 30px !important;
}

/* Add the missing border to order review */
.woocommerce-checkout #order_review {
    background: #fff !important;
    border: 1px solid #eaeaea !important;
    border-radius: 12px !important;
    padding: 30px !important;
}

/* 1. Title Margin & Font */
.checkout-page-title {
    margin-top: 50px !important;
    margin-bottom: 40px !important;
    font-family: "Angie Pro", sans-serif !important;
    font-size: 2.8rem !important;
}

/* 2. Login & Coupon Forms Design */
.woocommerce-checkout form.checkout_coupon,
.woocommerce-checkout form.login {
    border: 1px solid #eaeaea !important;
    border-radius: 12px !important;
    padding: 30px !important;
    margin: 0 auto 40px !important;
    max-width: 600px !important;
    background: #fff !important;
    box-shadow: 0 5px 20px rgba(0,0,0,0.03) !important;
    text-align: left !important;
}
.woocommerce-checkout form.login p.form-row,
.woocommerce-checkout form.checkout_coupon p.form-row {
    width: 100% !important;
    float: none !important;
    margin-bottom: 15px !important;
}
.woocommerce-checkout form.login p.form-row-first,
.woocommerce-checkout form.login p.form-row-last {
    width: 48% !important;
    display: inline-block !important;
}
.woocommerce-checkout form.login p.form-row-last {
    float: right !important;
}
.woocommerce-checkout form.login input.input-text,
.woocommerce-checkout form.checkout_coupon input.input-text {
    border-radius: 0 !important !important;
    padding: 12px 20px !important;
    border: 1px solid #ddd !important;
    width: 100% !important;
}
.woocommerce-checkout form.login .button,
.woocommerce-checkout form.checkout_coupon .button {
    background: #111 !important;
    color: #fff !important;
    border-radius: 0 !important !important;
    padding: 12px 30px !important;
    font-family: "Jost", sans-serif !important;
    border: none !important;
    margin-top: 10px !important;
}

/* 3. Your Order Layout Fix (Grid Row alignment) */
body.woocommerce-checkout form.checkout {
    grid-template-rows: min-content 1fr !important;
    gap: 0 40px !important;
}
.woocommerce-checkout #order_review_heading {
    margin-bottom: 20px !important;
    padding: 0 !important;
}
.woocommerce-checkout #order_review {
    margin-top: 0 !important;
}

/* 4. Billing Details Title Font */
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3 {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 1.8rem !important;
    color: #111 !important;
    margin-bottom: 20px !important;
}

/* 5. Ship to a different address -> Recipient Details */
#ship-to-different-address input[type="checkbox"] {
    display: none !important;
}
#ship-to-different-address {
    pointer-events: none !important; /* Prevent toggling */
    margin-top: 40px !important;
}
#ship-to-different-address span {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 1.8rem !important;
    color: #111 !important;
    font-weight: 600 !important;
}

/* Fix Toggles and Forms Flow - Keeping Toggles Together at Top */
body.woocommerce-checkout .woocommerce {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
}

.woocommerce-checkout .woocommerce-notices-wrapper {
    order: 0 !important;
    width: 100% !important;
}

.woocommerce-checkout .woocommerce-form-login-toggle {
    order: 1 !important;
    width: auto !important;
    margin: 0 15px 30px !important;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle {
    order: 2 !important;
    width: auto !important;
    margin: 0 15px 30px !important;
}

.woocommerce-checkout form.login {
    order: 3 !important;
    width: 100% !important;
    max-width: 600px !important;
    margin: 0 auto 40px !important;
}

.woocommerce-checkout form.checkout_coupon {
    order: 4 !important;
    width: 100% !important;
    max-width: 600px !important;
    margin: 0 auto 40px !important;
}

body.woocommerce-checkout form.checkout {
    order: 5 !important;
    width: 100% !important;
}

/* Ensure info text inside toggle is centered and inline */
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    text-align: center !important;
    margin: 0 !important;
}

/* 1. Global WooCommerce Notices Redesign (Restored) */
.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
    background: #fff !important;
    color: #333 !important;
    border: 1px solid #eee !important;
    border-left: 4px solid #111 !important;
    border-radius: 8px !important;
    padding: 15px 25px !important;
    font-family: "Jost", sans-serif !important;
    font-size: 0.95rem !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05) !important;
    margin-bottom: 25px !important;
    list-style: none !important;
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
}
.woocommerce-error { border-left-color: #d9534f !important; }
.woocommerce-message { border-left-color: #5cb85c !important; }
.woocommerce-info { border-left-color: #5bc0de !important; }
.woocommerce-error::before,
.woocommerce-info::before,
.woocommerce-message::before {
    display: none !important;
}

/* 2. Grid Layout for the top elements to prevent floating issues */
body.woocommerce-checkout .woocommerce {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    justify-content: center !important;
    align-items: start !important;
}

.woocommerce-checkout .woocommerce-notices-wrapper {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    width: 100% !important;
}

.woocommerce-checkout .woocommerce-form-login-toggle {
    grid-column: 1 !important;
    grid-row: 2 !important;
    justify-self: end !important;
    margin-right: 15px !important;
    margin-bottom: 30px !important;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle {
    grid-column: 2 !important;
    grid-row: 2 !important;
    justify-self: start !important;
    margin-left: 15px !important;
    margin-bottom: 30px !important;
}

.woocommerce-checkout form.login {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    justify-self: center !important;
    width: 100% !important;
    max-width: 600px !important;
    margin-top: 0 !important;
}

.woocommerce-checkout form.checkout_coupon {
    grid-column: 1 / -1 !important;
    grid-row: 4 !important;
    justify-self: center !important;
    width: 100% !important;
    max-width: 600px !important;
    margin-top: 0 !important;
}

body.woocommerce-checkout form.checkout {
    grid-column: 1 / -1 !important;
    grid-row: 5 !important;
    width: 100% !important;
}

/* Strip notice styles off the toggles */
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: center !important;
}

/* Mobile Fixes for Toggles */
@media (max-width: 991px) {
    .woocommerce-checkout .woocommerce-form-login-toggle {
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;
        justify-self: center !important;
        margin-right: 0 !important;
        margin-bottom: 10px !important;
    }
    .woocommerce-checkout .woocommerce-form-coupon-toggle {
        grid-column: 1 / -1 !important;
        grid-row: 3 !important;
        justify-self: center !important;
        margin-left: 0 !important;
    }
    .woocommerce-checkout form.login { grid-row: 4 !important; }
    .woocommerce-checkout form.checkout_coupon { grid-row: 5 !important; }
    body.woocommerce-checkout form.checkout { grid-row: 6 !important; }
}

/* 1. Fix Checkouts Title Grid Position */
.checkout-page-title {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    text-align: center !important;
    width: 100% !important;
    margin-top: 30px !important;
    margin-bottom: 20px !important;
    font-family: "Angie Pro", sans-serif !important;
    font-size: 2.8rem !important;
}

/* Update row numbers for the rest of the top elements */
.woocommerce-checkout .woocommerce-notices-wrapper {
    grid-row: 1 !important;
}
.woocommerce-checkout .woocommerce-form-login-toggle {
    grid-row: 3 !important;
    margin-top: 10px !important;
}
.woocommerce-checkout .woocommerce-form-coupon-toggle {
    grid-row: 3 !important;
    margin-top: 10px !important;
}
.woocommerce-checkout form.login {
    grid-row: 4 !important;
}
.woocommerce-checkout form.checkout_coupon {
    grid-row: 5 !important;
}
body.woocommerce-checkout form.checkout {
    grid-row: 6 !important;
}

/* 2. Reduce the width of the tables to make them elegant and centered */
body.woocommerce-checkout form.checkout {
    max-width: 1100px !important;
    margin: 30px auto 60px !important;
    grid-template-columns: 1.2fr 0.8fr !important;
    gap: 50px !important;
}

/* Mobile Fixes for the new row numbers */
@media (max-width: 991px) {
    .woocommerce-checkout .woocommerce-form-login-toggle {
        grid-row: 3 !important;
    }
    .woocommerce-checkout .woocommerce-form-coupon-toggle {
        grid-row: 4 !important;
    }
    .woocommerce-checkout form.login { grid-row: 5 !important; }
    .woocommerce-checkout form.checkout_coupon { grid-row: 6 !important; }
    body.woocommerce-checkout form.checkout { grid-row: 7 !important; }
}

/* 1. Increase the width of the data entry table (Billing) */
body.woocommerce-checkout form.checkout {
    max-width: 1250px !important;
    grid-template-columns: 1.5fr 1fr !important;
    gap: 60px !important;
}

/* 2. Fix Textarea Size and Shape */
.woocommerce-checkout .form-row textarea {
    min-height: 120px !important;
    border-radius: 16px !important; /* Less rounded than inputs for multiline */
    padding: 15px 20px !important;
    resize: vertical !important; /* Allow user to resize it further */
}

/* 3. Style the Dropdown List (Select2) */
/* The dropdown is appended to body, so we use global selectors */
.select2-container--default .select2-dropdown {
    border: 1px solid #eaeaea !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 40px rgba(0,0,0,0.08) !important;
    overflow: hidden !important;
    font-family: "Jost", sans-serif !important;
    padding: 5px 0 !important;
    z-index: 99999 !important;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
    border: 1px solid #eee !important;
    border-radius: 8px !important;
    padding: 10px 15px !important;
    font-family: "Jost", sans-serif !important;
    outline: none !important;
}
.select2-container--default .select2-results__option {
    padding: 12px 25px !important;
    font-size: 0.95rem !important;
    color: #444 !important;
    border-bottom: 1px solid #fcfcfc !important;
    transition: background 0.2s ease, color 0.2s ease !important;
}
.select2-container--default .select2-results__option:last-child {
    border-bottom: none !important;
}
/* Hover effect (Override the default ugly blue) */
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
    background-color: #f5f5f5 !important;
    color: #111 !important;
}
/* Selected item */
.select2-container--default .select2-results__option[aria-selected=true],
.select2-container--default .select2-results__option[data-selected=true] {
    background-color: #fafafa !important;
    color: #111 !important;
    font-weight: 600 !important;
}
/* Scrollbar styling for the dropdown */
.select2-container--default .select2-results > .select2-results__options::-webkit-scrollbar {
    width: 6px;
}
.select2-container--default .select2-results > .select2-results__options::-webkit-scrollbar-thumb {
    background-color: #ddd;
    border-radius: 10px;
}

/* ==========================================================================
   CHECKOUT MOBILE COMPATIBILITY (PERFECT STACKING)
   ========================================================================== */
@media (max-width: 991px) {
    /* 1. Main Checkout Wrapper Grid */
    body.woocommerce-checkout form.checkout {
        display: flex !important;
        flex-direction: column !important;
        gap: 40px !important;
        margin: 20px auto 40px !important;
        padding: 0 15px !important;
    }
    
    /* 2. Order Review Sticky Reset */
    .woocommerce-checkout #order_review {
        position: static !important;
        margin-top: 0 !important;
        padding: 20px !important;
    }
    .woocommerce-checkout #order_review_heading {
        margin-top: 20px !important;
        padding: 0 10px !important;
    }
    
    /* 3. Toggles and Login/Coupon Forms */
    .woocommerce-checkout .woocommerce-form-login-toggle,
    .woocommerce-checkout .woocommerce-form-coupon-toggle {
        width: 100% !important;
        display: block !important;
        margin: 0 auto 15px !important;
    }
    .woocommerce-checkout form.login,
    .woocommerce-checkout form.checkout_coupon {
        width: 100% !important;
        padding: 20px !important;
        margin: 15px auto !important;
    }
    
    /* 4. Form Fields Full Width */
    .woocommerce-checkout .form-row.form-row-first,
    .woocommerce-checkout .form-row.form-row-last,
    .woocommerce-checkout form.login p.form-row-first,
    .woocommerce-checkout form.login p.form-row-last {
        width: 100% !important;
        float: none !important;
        display: block !important;
        margin-bottom: 15px !important;
    }
    
    /* 5. Adjust padding for smaller screens */
    .woocommerce-checkout #customer_details {
        padding: 20px !important;
    }
    
    /* 6. Title Size */
    .checkout-page-title {
        font-size: 2.2rem !important;
        margin-top: 20px !important;
        margin-bottom: 20px !important;
    }
}

/* ==========================================================================
   THANK YOU PAGE (ORDER RECEIVED) DEEP STYLING
   ========================================================================== */
.woocommerce-order table.order_details,
.woocommerce-order table.customer_details {
    width: 100% !important;
    border: 1px solid #eee !important;
    border-collapse: separate !important; /* To allow border-radius */
    border-spacing: 0 !important;
    border-radius: 12px !important;
    overflow: hidden !important; 
    margin-top: 30px !important;
    text-align: left !important;
}
.woocommerce-order table.order_details th,
.woocommerce-order table.order_details td,
.woocommerce-order table.customer_details th,
.woocommerce-order table.customer_details td {
    padding: 15px 25px !important;
    border-bottom: 1px solid #eee !important;
    font-family: "Jost", sans-serif !important;
}
.woocommerce-order table.order_details thead th {
    background: #f9f9f9 !important;
    font-family: "Angie Pro", sans-serif !important;
    font-size: 1.2rem !important;
    border-bottom: 2px solid #eaeaea !important;
    text-transform: capitalize !important;
}
.woocommerce-order table.order_details tfoot th {
    background: #f9f9f9 !important;
    font-weight: 600 !important;
    color: #111 !important;
}
.woocommerce-order table.order_details tr:last-child th,
.woocommerce-order table.order_details tr:last-child td {
    border-bottom: none !important;
}

.woocommerce-order section.woocommerce-customer-details {
    margin-top: 50px !important;
}
.woocommerce-order h2.woocommerce-column__title {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 1.8rem !important;
    margin-top: 40px !important;
    margin-bottom: 20px !important;
    text-align: left !important;
}
.woocommerce-order address {
    border: 1px solid #eee !important;
    border-radius: 12px !important;
    padding: 30px !important;
    font-family: "Jost", sans-serif !important;
    line-height: 1.8 !important;
    text-align: left !important;
    background: #fdfdfd !important;
}

/* ==========================================================================
   MY ACCOUNT PAGE DEEP STYLING
   ========================================================================== */
.woocommerce-MyAccount-content > p {
    font-family: "Jost", sans-serif !important;
    font-size: 1.1rem !important;
    line-height: 1.8 !important;
    color: #444 !important;
    background: #f9f9f9 !important;
    padding: 25px !important;
    border-radius: 12px !important;
    border-left: 4px solid #111 !important;
}
.woocommerce-MyAccount-content > p a {
    color: #111 !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
}

/* Buttons in Account */
.woocommerce-account .button,
.woocommerce-account input.button {
    background: #111 !important;
    color: #fff !important;
    border-radius: 0 !important !important;
    padding: 12px 30px !important;
    font-family: "Jost", sans-serif !important;
    
    letter-spacing: 1px !important;
    border: none !important;
    font-size: 0.9rem !important;
    transition: all 0.3s ease !important;
}
.woocommerce-account .button:hover,
.woocommerce-account input.button:hover {
    background: #333 !important;
    transform: translateY(-2px) !important;
}

/* Orders Table */
.woocommerce-MyAccount-orders {
    width: 100% !important;
    border: 1px solid #eee !important;
    border-radius: 12px !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    overflow: hidden !important;
    margin-top: 20px !important;
}
.woocommerce-MyAccount-orders th,
.woocommerce-MyAccount-orders td {
    padding: 20px !important;
    border-bottom: 1px solid #eee !important;
    font-family: "Jost", sans-serif !important;
    text-align: center !important;
}
.woocommerce-MyAccount-orders tr:last-child td {
    border-bottom: none !important;
}
.woocommerce-MyAccount-orders thead th {
    background: #f9f9f9 !important;
    font-family: "Angie Pro", sans-serif !important;
    font-size: 1.2rem !important;
    border-bottom: 2px solid #eaeaea !important;
    color: #111 !important;
}
.woocommerce-MyAccount-orders .woocommerce-button {
    padding: 8px 25px !important;
    font-size: 0.85rem !important;
}

/* Address Blocks */
.woocommerce-account .u-columns.woocommerce-Addresses {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 30px !important;
    margin-top: 20px !important;
}
.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
    flex: 1 !important;
    min-width: 300px !important;
    border: 1px solid #eee !important;
    border-radius: 12px !important;
    padding: 30px !important;
    background: #fff !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.02) !important;
}
.woocommerce-account .woocommerce-Address-title h3 {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 1.5rem !important;
    margin-bottom: 15px !important;
    float: left !important;
}
.woocommerce-account .woocommerce-Address-title a {
    float: right !important;
    font-family: "Jost", sans-serif !important;
    font-size: 0.9rem !important;
    text-decoration: underline !important;
    color: #111 !important;
}
.woocommerce-account address {
    clear: both !important;
    font-family: "Jost", sans-serif !important;
    line-height: 1.8 !important;
    font-style: normal !important;
}

/* Account Details Form */
.woocommerce-EditAccountForm .form-row,
.woocommerce-address-fields .form-row {
    margin-bottom: 25px !important;
}
.woocommerce-EditAccountForm label,
.woocommerce-address-fields label {
    font-family: "Jost", sans-serif !important;
    font-size: 0.9rem !important;
    color: #222 !important;
    margin-bottom: 8px !important;
    display: block !important;
    font-weight: 500 !important;
}
.woocommerce-EditAccountForm input.input-text,
.woocommerce-address-fields input.input-text {
    border-radius: 0 !important !important;
    padding: 15px 20px !important;
    border: 1px solid #ddd !important;
    width: 100% !important;
    font-family: "Jost", sans-serif !important;
}
.woocommerce-EditAccountForm fieldset {
    border: 1px solid #eee !important;
    border-radius: 12px !important;
    padding: 40px !important;
    margin-top: 40px !important;
    background: #fdfdfd !important;
}
.woocommerce-EditAccountForm fieldset legend {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 1.6rem !important;
    padding: 0 15px !important;
    color: #111 !important;
}

/* Mobile Compatibility */
@media (max-width: 767px) {
    .woocommerce-account .u-columns.woocommerce-Addresses {
        flex-direction: column !important;
    }
    .woocommerce-MyAccount-orders th,
    .woocommerce-MyAccount-orders td {
        padding: 10px !important;
        font-size: 0.9rem !important;
    }
}

/* Center My Account Page Title */
.woocommerce-account .page-title,
.woocommerce-account h1.entry-title {
    text-align: center !important;
    font-family: "Angie Pro", sans-serif !important;
    font-size: 2.8rem !important;
    margin-top: 50px !important;
    margin-bottom: 20px !important;
    color: #111 !important;
    width: 100% !important;
    display: block !important;
}

/* ==========================================================================
   THANK YOU PAGE (REFINEMENTS & MOBILE)
   ========================================================================== */

/* Center the Thank You Header */
.woocommerce-order > .woocommerce-notice {
    text-align: center !important;
    font-family: "Angie Pro", sans-serif !important;
    font-size: 2.2rem !important;
    color: #4CAF50 !important;
    margin-bottom: 40px !important;
    display: block !important;
}
.woocommerce-order > ul.order_details {
    display: flex !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 30px !important;
    text-align: center !important;
    margin-bottom: 40px !important;
}

/* Force Customer Details Table to align Title left, Value right */
.woocommerce-order table.customer_details th {
    text-align: left !important;
    width: 40% !important;
    font-weight: 600 !important;
}
.woocommerce-order table.customer_details td {
    text-align: right !important;
    width: 60% !important;
}

/* Fix any stray paragraphs or titles in customer details */
.woocommerce-order .woocommerce-customer-details > p,
.woocommerce-order .woocommerce-customer-details > h2,
.woocommerce-order .woocommerce-customer-details > h3 {
    text-align: left !important;
    display: flex !important;
    justify-content: space-between !important;
}

/* Make sure Shipping Address title and block match Billing */
.woocommerce-order header.title h3 {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 1.8rem !important;
    margin-bottom: 20px !important;
    text-align: left !important;
}
.woocommerce-order .col2-set {
    display: flex !important;
    gap: 30px !important;
    flex-wrap: wrap !important;
}
.woocommerce-order .col2-set .col-1,
.woocommerce-order .col2-set .col-2 {
    flex: 1 !important;
    min-width: 300px !important;
    width: 100% !important;
}

/* Mobile Compatibility */
@media (max-width: 767px) {
    .woocommerce-order {
        padding: 20px 15px !important;
        margin: 20px auto !important;
    }
    .woocommerce-order > .woocommerce-notice {
        font-size: 1.8rem !important;
    }
    .woocommerce-order table.order_details th,
    .woocommerce-order table.order_details td,
    .woocommerce-order table.customer_details th,
    .woocommerce-order table.customer_details td {
        padding: 12px 10px !important;
        font-size: 0.9rem !important;
    }
    .woocommerce-order > ul.order_details {
        flex-direction: column !important;
        gap: 15px !important;
    }
    .woocommerce-order table.customer_details th,
    .woocommerce-order table.customer_details td {
        display: block !important;
        width: 100% !important;
        text-align: left !important;
    }
    .woocommerce-order table.customer_details th {
        border-bottom: none !important;
        padding-bottom: 5px !important;
    }
    .woocommerce-order table.customer_details td {
        padding-top: 0 !important;
    }
}

/* ==========================================================================
   AGRESSIVE THANK YOU PAGE REFINEMENTS
   ========================================================================== */

/* Force Title to Center */
.woocommerce-order p.woocommerce-notice.woocommerce-thankyou-order-received {
    text-align: center !important;
    display: block !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Force Order Overview list to Center */
.woocommerce-order ul.woocommerce-order-overview {
    display: flex !important;
    justify-content: center !important;
    text-align: center !important;
}

/* Force Customer Details Table Alignments */
.woocommerce-order .woocommerce-customer-details table.customer_details {
    width: 100% !important;
}
.woocommerce-order .woocommerce-customer-details table.customer_details th {
    text-align: left !important;
    width: 40% !important;
}
.woocommerce-order .woocommerce-customer-details table.customer_details td {
    text-align: right !important;
    width: 60% !important;
}

/* Force Delivery Date and other custom fields inserted by plugins to look like table rows */
.woocommerce-order .woocommerce-customer-details > p:not(.woocommerce-notice) {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    border-bottom: 1px solid #eee !important;
    padding: 15px 25px !important;
    margin: 0 !important;
    font-family: "Jost", sans-serif !important;
    background: #fff !important;
}
.woocommerce-order .woocommerce-customer-details > p:not(.woocommerce-notice) strong,
.woocommerce-order .woocommerce-customer-details > p:not(.woocommerce-notice) span {
    font-weight: 600 !important;
    color: #111 !important;
}

/* Fix any styling issues with Shipping and Billing Blocks */
.woocommerce-order .woocommerce-customer-details .col2-set {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 30px !important;
    margin-top: 30px !important;
}
.woocommerce-order .woocommerce-customer-details .col2-set .col-1,
.woocommerce-order .woocommerce-customer-details .col2-set .col-2 {
    flex: 1 !important;
    min-width: 300px !important;
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
}

/* ==========================================================================
   FIX THANK YOU PAGE CENTERING (ESCAPING CHECKOUT GRID)
   ========================================================================== */
.woocommerce-order {
    grid-column: 1 / -1 !important;
    justify-self: center !important;
    width: 100% !important;
    max-width: 900px !important;
    margin: 60px auto !important;
    background: #fff !important;
    padding: 50px !important;
    border-radius: 16px !important;
    border: 1px solid #eaeaea !important;
    box-shadow: 0 10px 40px rgba(0,0,0,0.03) !important;
}

/* Fix the product image and "x 1" dropping to a new line */
.checkout-product-wrap {
    display: inline-flex !important;
    align-items: center !important;
    gap: 15px !important;
    vertical-align: middle !important;
}
.woocommerce-order table.order_details td.woocommerce-table__product-name {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}
.woocommerce-order table.order_details td.woocommerce-table__product-name a {
    color: #111 !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    font-family: "Jost", sans-serif !important;
}
.woocommerce-order table.order_details td.woocommerce-table__product-name strong.product-quantity {
    font-size: 0.9rem !important;
    color: #555 !important;
    font-weight: 500 !important;
}

/* ==========================================================================
   KILL HORIZONTAL SCROLL ON MOBILE
   ========================================================================== */
.woocommerce-order,
body.woocommerce-checkout form.checkout,
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2,
.woocommerce-checkout form.login,
.woocommerce-checkout form.checkout_coupon,
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-notices-wrapper {
    box-sizing: border-box !important;
    max-width: 100% !important;
}

body.woocommerce-checkout,
body.woocommerce-checkout .woocommerce {
    overflow-x: hidden !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

@media (max-width: 767px) {
    body.woocommerce-checkout .woocommerce {
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .woocommerce-order {
        padding: 20px !important;
        width: 100% !important;
        border-radius: 0 !important; /* Better for mobile edges */
        border-left: none !important;
        border-right: none !important;
    }
    body.woocommerce-checkout form.checkout {
        padding: 0 10px !important;
    }
}

/* ==========================================================================
   FINAL THANK YOU PAGE & MOBILE SCROLL FIX
   ========================================================================== */

/* 1. Reduce the width of the Thank You box */
.woocommerce-order {
    width: 90% !important;
    max-width: 850px !important;
    margin: 60px auto !important;
    grid-column: 1 / -1 !important;
    justify-self: center !important;
    box-sizing: border-box !important;
}

/* 2. Brutally kill ALL horizontal scrolling on mobile */
html, body {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    position: relative !important;
}

/* 3. Break long text (like emails) so they don't stretch the screen */
.woocommerce-order table, 
.woocommerce-order th, 
.woocommerce-order td, 
.woocommerce-order p, 
.woocommerce-order li, 
.woocommerce-order address {
    word-break: break-word !important;
    overflow-wrap: break-word !important;
}

@media (max-width: 767px) {
    .woocommerce-order {
        width: 95% !important;
        padding: 20px !important;
        margin: 20px auto !important;
        border-radius: 12px !important;
    }
    .woocommerce-order ul.woocommerce-order-overview {
        flex-direction: column !important;
        gap: 15px !important;
    }
}

/* ==========================================================================
   ULTIMATE MOBILE SCROLL KILLER & LIST FIX
   ========================================================================== */

/* Fix iOS horizontal scroll bug by forcing body and html */
html, body.woocommerce-checkout {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    position: relative !important;
}

/* Force every single element in the order box to not exceed 100% */
.woocommerce-order,
.woocommerce-order * {
    box-sizing: border-box !important;
    max-width: 100% !important;
}

/* Mobile specific fixes for the Order Overview List */
@media (max-width: 767px) {
    .woocommerce-order {
        width: 100% !important;
        padding: 15px !important;
        margin: 10px auto !important;
    }
    
    .woocommerce-order ul.woocommerce-order-overview {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        width: 100% !important;
        padding: 0 !important;
    }
    
    .woocommerce-order ul.woocommerce-order-overview li {
        width: 100% !important;
        float: none !important;
        border-right: none !important;
        border-bottom: 1px dashed #eaeaea !important;
        margin: 0 !important;
        padding: 15px 0 !important;
        text-align: center !important;
    }
    
    .woocommerce-order ul.woocommerce-order-overview li:last-child {
        border-bottom: none !important;
    }
    
    /* Ensure tables don't stretch */
    .woocommerce-order table.order_details,
    .woocommerce-order table.customer_details {
        width: 100% !important;
        display: block !important;
        overflow-x: hidden !important;
    }
    
    /* Fix grid container just in case it's pushing width */
    body.woocommerce-checkout .woocommerce {
        grid-template-columns: 1fr !important;
        padding: 0 !important;
    }
}

/* ==========================================================================
   RESTORE CHECKOUT DESKTOP WIDTH (FIX FOR MOBILE OVERRIDE)
   ========================================================================== */
@media (min-width: 992px) {
    body.woocommerce-checkout form.checkout {
        max-width: 1250px !important; /* Restore the perfect desktop width */
        margin: 40px auto 80px !important; /* Keep it centered with whitespace */
    }
    
    /* Ensure the login/coupon forms don't stretch either */
    .woocommerce-checkout form.login,
    .woocommerce-checkout form.checkout_coupon {
        max-width: 600px !important; 
    }
}

/* ==========================================================================
   FIX CHECKOUT ROW GAP BETWEEN TITLE AND TABLE
   ========================================================================== */
@media (min-width: 992px) {
    body.woocommerce-checkout form.checkout {
        gap: 0 60px !important; /* Row gap 0, Column gap 60px */
    }
}
.woocommerce-checkout #order_review_heading {
    margin-bottom: 15px !important; /* Controlled, precise spacing */
}

/* ==========================================================================
   KILL HORIZONTAL SCROLL FOR REAL (IOS / MOBILE FIX)
   ========================================================================== */

/* Wrap the entire site structure to clip any bleeding elements */
#page, .site-content, .site {
    overflow-x: hidden !important;
}

@media (max-width: 991px) {
    /* Kill the desktop grid on the wrapper */
    body.woocommerce-checkout .woocommerce {
        display: block !important; /* Revert to standard block */
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
    }
    
    /* Make the order box fit exactly in the screen without borders pushing it */
    .woocommerce-order {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        margin: 0 !important;
        padding: 20px 15px !important;
        border-left: none !important;
        border-right: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }
    
    /* Ensure tables don't have implicit min-widths */
    .woocommerce-order table,
    .woocommerce-order tbody,
    .woocommerce-order tr,
    .woocommerce-order td,
    .woocommerce-order th {
        box-sizing: border-box !important;
        max-width: 100% !important;
        word-break: break-word !important;
    }
}

/* ==========================================================================
   FINAL MOBILE CLEANUP & TABLE FIX (THANK YOU PAGE)
   ========================================================================== */

/* 1. Fix Tables (Never use display: block on tables, use table-layout: fixed) */
.woocommerce-order table.order_details,
.woocommerce-order table.customer_details {
    display: table !important;
    width: 100% !important;
    table-layout: fixed !important; /* Forces table to stay exactly 100% wide */
    border-collapse: collapse !important;
}
.woocommerce-order table.order_details th,
.woocommerce-order table.order_details td,
.woocommerce-order table.customer_details th,
.woocommerce-order table.customer_details td {
    display: table-cell !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important; /* Prevents long emails from expanding table */
}

/* 2. Address Blocks Fix (Billing/Shipping) */
.woocommerce-order address {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    word-break: break-all !important; /* Extremely aggressive wrap for emails */
}

@media (max-width: 767px) {
    /* Make address paddings smaller on mobile so it doesn't push width */
    .woocommerce-order address {
        padding: 20px 15px !important;
    }
    .woocommerce-order table.customer_details th {
        width: 35% !important;
        padding-left: 5px !important;
    }
    .woocommerce-order table.customer_details td {
        width: 65% !important;
        padding-right: 5px !important;
    }
    .woocommerce-order .col2-set {
        flex-direction: column !important;
        gap: 20px !important;
        width: 100% !important;
    }
}

/* ==========================================================================
   MOBILE WIDTH REDUCTION FIX
   ========================================================================== */
@media (max-width: 991px) {
    /* Reset body and html scroll */
    html, body {
        overflow-x: hidden !important;
    }
    
    /* Make the Thank You box a neat, small card on mobile instead of full-bleed */
    .woocommerce-order {
        width: 92% !important;
        max-width: 400px !important; /* Cap it for very large phones */
        margin: 20px auto !important;
        padding: 20px 15px !important;
        border-radius: 12px !important;
        border: 1px solid #eaeaea !important;
        box-shadow: 0 4px 15px rgba(0,0,0,0.03) !important;
        box-sizing: border-box !important;
        left: 0 !important;
        transform: none !important;
    }
    
    /* Ensure internal tables perfectly respect the 92% box */
    .woocommerce-order table.order_details,
    .woocommerce-order table.customer_details {
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* ==========================================================================
   REFINE THANK YOU PAGE WIDTH (EVEN SMALLER)
   ========================================================================== */
.woocommerce-order {
    width: 85% !important;
    max-width: 750px !important; /* Smaller and more elegant on desktop */
    margin: 60px auto !important;
}

@media (max-width: 991px) {
    .woocommerce-order {
        width: 85% !important;
        max-width: 360px !important; /* Perfect phone size, gives more whitespace */
        margin: 20px auto !important;
    }
}

/* ==========================================================================
   THE ABSOLUTE FINAL MOBILE LAYOUT FIX
   ========================================================================== */
@media (max-width: 991px) {
    html, body {
        overflow-x: clip !important; /* Mobile ONLY */
        width: 100vw !important;
        max-width: 100vw !important;
        position: relative !important;
    }
}

@media (max-width: 991px) {
    /* 1. Force the wrapper to behave */
    body.woocommerce-checkout .woocommerce {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important; /* Force children to center */
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: clip !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    
    /* 2. Force the box to be centered and NOT touch edges */
    .woocommerce-order {
        display: block !important;
        float: none !important;
        clear: both !important;
        width: 90vw !important; /* Use viewport width relative units */
        max-width: 400px !important;
        margin: 20px auto !important; /* Center it */
        box-sizing: border-box !important;
        position: relative !important;
        left: 0 !important;
        transform: none !important;
    }
    
    /* 3. Aggressively ensure tables inside don't break the box */
    .woocommerce-order table,
    .woocommerce-order table.order_details,
    .woocommerce-order table.customer_details {
        table-layout: fixed !important;
        width: 100% !important;
        max-width: 100% !important;
        word-break: break-word !important;
        overflow-wrap: break-word !important;
        display: table !important; /* Must be table to respect table-layout */
    }
}

/* ==========================================================================
   KILL MOBILE ZOOM & HORIZONTAL SWIPE (ENGINE LEVEL)
   ========================================================================== */
html, body {
    touch-action: pan-y !important; /* ONLY allow vertical scroll, ignore horizontal swipe */
    -ms-touch-action: pan-y !important;
}

/* ==========================================================================
   REDUCE SPACING ABOVE BILLING & SHIPPING ON MOBILE
   ========================================================================== */
@media (max-width: 991px) {
    /* Reduce space above the whole customer details section */
    .woocommerce-order section.woocommerce-customer-details {
        margin-top: 20px !important;
    }
    
    /* Reduce space above the Billing/Shipping columns */
    .woocommerce-order .woocommerce-customer-details .col2-set {
        margin-top: 15px !important;
        gap: 15px !important; /* Reduces space between the two columns when stacked */
    }
    
    /* Reduce space above and below the Billing and Shipping titles */
    .woocommerce-order header.title h3,
    .woocommerce-order h2.woocommerce-column__title {
        margin-top: 15px !important;
        margin-bottom: 10px !important;
    }
    
    /* Ensure the padding inside the customer details isn't pushing it down */
    .woocommerce-order .woocommerce-customer-details > p:first-child {
        margin-top: 0 !important;
    }
}

/* ==========================================================================
   DESKTOP SIDE-BY-SIDE BILLING & SHIPPING
   ========================================================================== */
@media (min-width: 992px) {
    .woocommerce-order .woocommerce-customer-details .col2-set {
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        flex-wrap: nowrap !important;
        gap: 30px !important;
        width: 100% !important;
    }
    
    .woocommerce-order .woocommerce-customer-details .col2-set .col-1,
    .woocommerce-order .woocommerce-customer-details .col2-set .col-2 {
        flex: 1 !important;
        width: calc(50% - 15px) !important;
        min-width: 0 !important;
        float: none !important;
        max-width: none !important;
    }
}

/* ==========================================================================
   MAKE ORDER REVIEW STICKY ON DESKTOP (GRID MAGIC)
   ========================================================================== */
@media (min-width: 992px) {
    body.woocommerce-checkout form.checkout {
        display: grid !important;
        grid-template-rows: auto 1fr !important; /* Row 1 for title, Row 2 for table */
        align-items: start !important; /* Essential for sticky to work in grid */
    }
    
    /* Make the left column span both rows so the right column has room to slide */
    .woocommerce-checkout #customer_details {
        grid-row: 1 / span 2 !important;
    }
    
    /* Make the title sticky */
    .woocommerce-checkout #order_review_heading {
        grid-row: 1 !important;
        position: sticky !important;
        top: 100px !important; /* Account for site header */
        z-index: 10 !important;
        margin-bottom: 20px !important;
        background: transparent !important;
        padding: 10px 0 !important;
    }
    
    /* Make the table sticky and slide within the massive Row 2 track */
    .woocommerce-checkout #order_review {
        grid-row: 2 !important;
        position: sticky !important;
        top: 160px !important; /* Drops right below the sticky title */
        z-index: 9 !important;
        align-self: start !important; /* Essential: prevents table from stretching height */
    }
}

/* ==========================================================================
   FIX STICKY BY REMOVING OVERFLOW ON DESKTOP
   ========================================================================== */
/* We must unlock overflow on desktop, otherwise position: sticky is killed! */
@media (min-width: 992px) {
    html, body, #page, .site-content, .site, body.woocommerce-checkout {
        overflow-x: visible !important;
        overflow-y: visible !important;
        overflow: visible !important;
    }
}

/* ==========================================================================
   THE BULLETPROOF STICKY & SCROLL FIX
   ========================================================================== */
/* 1. We MUST remove overflow:hidden from wrappers for sticky to work */
@media (min-width: 992px) {
    #page, .site-content, .site, .site-header, .site-inner, .woocommerce {
        overflow: visible !important;
        
    }
}

/* 2. Fix the element that is causing the horizontal scroll on desktop! */
/* Often it's the Select2 dropdowns or full-width rows */
body.woocommerce-checkout {
    overflow-x: clip !important; /* Modern alternative to hidden */
    max-width: 100% !important;
}

/* 3. Ensure Grid for Sticky is perfect */
@media (min-width: 992px) {
    body.woocommerce-checkout form.checkout {
        display: grid !important;
        grid-template-columns: 1.5fr 1fr !important;
        grid-template-rows: min-content 1fr !important;
        gap: 0 60px !important;
        align-items: start !important;
    }
    .woocommerce-checkout #customer_details {
        grid-column: 1 !important;
        grid-row: 1 / 3 !important;
    }
    .woocommerce-checkout #order_review_heading {
        grid-column: 2 !important;
        grid-row: 1 !important;
        position: sticky !important;
        top: 100px !important;
        z-index: 10 !important;
        margin-bottom: 0 !important;
        padding-bottom: 20px !important;
    }
    .woocommerce-checkout #order_review {
        grid-column: 2 !important;
        grid-row: 2 !important;
        position: sticky !important;
        top: 160px !important;
        z-index: 9 !important;
        align-self: start !important;
    }
}

/* ==========================================================================
   BULLETPROOF FLEX STICKY CHECKOUT (NO GRID ISSUES)
   ========================================================================== */
@media (min-width: 992px) {
    /* Switch form from Grid to Flex to allow natural columns */
    body.woocommerce-checkout form.checkout {
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: flex-start !important; /* CRITICAL for sticky */
        gap: 60px !important;
    }
    
    /* Left Column (Customer Details) */
    .woocommerce-checkout #customer_details {
        width: 55% !important;
        flex: 1 !important; /* Take remaining space */
    }
    
    /* Right Column (Sidebar Wrapper) */
    .woocommerce-checkout .checkout-sidebar-sticky-wrapper {
        width: 40% !important;
        min-width: 400px !important;
        position: sticky !important;
        top: 100px !important;
        z-index: 10 !important;
        /* Let it slide freely */
    }
    
    /* Reset old grid properties on children */
    .woocommerce-checkout #order_review_heading,
    .woocommerce-checkout #order_review {
        position: static !important;
        grid-column: auto !important;
        grid-row: auto !important;
        width: 100% !important;
    }
}

@media (max-width: 991px) {
    .woocommerce-checkout .checkout-sidebar-sticky-wrapper {
        width: 100% !important;
        margin-top: 30px !important;
    }
}

/* ==========================================================================
   RESTORE GRID PLACEMENT & STICKY
   ========================================================================== */
@media (min-width: 992px) {
    /* Use Grid to guarantee placement exactly as it was before */
    body.woocommerce-checkout form.checkout {
        display: grid !important;
        grid-template-columns: 1.5fr 1fr !important;
        align-items: start !important; /* CRITICAL for sticky */
        gap: 60px !important;
    }
    
    /* Force Billing to be on the left (Column 1) */
    .woocommerce-checkout #customer_details {
        grid-column: 1 !important;
        grid-row: 1 !important;
        width: 100% !important;
    }
    
    /* Force Your Order to be on the right (Column 2) and Sticky */
    .woocommerce-checkout .checkout-sidebar-sticky-wrapper {
        grid-column: 2 !important;
        grid-row: 1 !important;
        width: 100% !important;
        position: sticky !important;
        top: 100px !important;
        z-index: 10 !important;
    }
    
    /* Reset these since the wrapper handles it now */
    .woocommerce-checkout #order_review_heading,
    .woocommerce-checkout #order_review {
        position: static !important;
        grid-column: auto !important;
        grid-row: auto !important;
    }
}



/* Ensure standard pages have a centered container if they lost it */
.page-container {
    max-width: 1250px;
    margin: 0 auto;
    padding: 0 20px;
}


/* Add a specific guard for Cart page just in case */
body.woocommerce-cart {
    overflow-x: clip !important;
    max-width: 100% !important;
}



/* ==========================================================================
   SERVICE PAGES (Events, Hotels, Home Florals)
   ========================================================================== */
.service-page {
    padding-top: 50px !important; /* To clear the absolute header */
    background: #fff;
}
.service-title-wrapper { padding: 0 65px !important; }
.service-page-title { 
    font-family: "Angie Pro", sans-serif !important; 
    font-size: 3.5rem !important; 
    color: #111 !important; 
    margin: 0 0 20px !important;
    text-transform: capitalize !important;
    font-weight: normal !important;
}
.service-hero-img {
    width: 100% !important;
    height: 70vh !important;
    object-fit: cover !important;
    margin-bottom: 60px !important;
}
.service-container {
    max-width: 1250px;
    margin: 0 auto;
    padding: 0 20px;
}
.service-content-wrapper {
    max-width: 1000px;
    margin: 0 auto;
}
.service-subtitle {
    font-family: "Jost", sans-serif;
    font-size: 2.5rem !important;
    margin-bottom: 50px !important;
    text-align: center;
    font-weight: 300;
    color: #333;
}
.service-grid-50-50 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 50px;
}
.align-items-center {
    align-items: center;
}
.service-grid-50-50 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 8px;
}
.service-text-block {
    font-family: "Jost", sans-serif;
    font-size: 1.8rem;
    padding: 20px;
    text-align: center;
    color: #555;
}
.service-img-overlay {
    position: relative;
    margin-bottom: 50px;
    border-radius: 8px;
    overflow: hidden;
}
.service-img-overlay img {
    width: 100%;
    height: auto;
    display: block;
}
.service-img-overlay .caption {
    position: absolute;
    bottom: 30px;
    left: 30px;
    color: #fff;
    font-size: 1.5rem;
    font-family: "Jost", sans-serif;
    font-weight: 500;
    text-shadow: 0 2px 4px rgba(0,0,0,0.5);
    background: rgba(0,0,0,0.3);
    padding: 10px 20px;
    border-radius: 0 !important;
    backdrop-filter: blur(5px);
}
.service-bottom-text {
    font-family: "Jost", sans-serif;
    text-align: center;
    font-size: 2rem;
    margin: 80px 0;
    font-weight: 300;
    color: #333;
}
@media (max-width: 768px) {
    .service-grid-50-50 {
        grid-template-columns: 1fr !important;
    }
    .service-page-title {
        font-size: 2.5rem !important;
        margin: 0 20px 20px !important;
    }
    .service-subtitle {
        font-size: 1.8rem !important;
    }
    .service-title-wrapper { padding: 0 20px !important; }
    .service-hero-img { height: 40vh !important; margin-bottom: 30px !important; }
    .service-img-overlay .caption { bottom: 15px; left: 15px; font-size: 1.2rem; }
}

/* ==========================================================================
   CONTACT FORM 7 STYLING (For Contact Us & Service Pages)
   ========================================================================== */
.service-contact-section {
    max-width: 800px;
    margin: 60px auto 100px;
    text-align: center;
}
.service-contact-text {
    font-family: "Jost", sans-serif;
    font-size: 1.5rem;
    color: #555;
    margin-bottom: 40px;
}
.service-custom-form,
.contact-form-wrapper {
    text-align: left;
}
.service-custom-form .wpcf7-form-control-wrap,
.contact-form-wrapper .wpcf7-form-control-wrap {
    display: block;
    margin-bottom: 25px;
}
.service-custom-form .wpcf7-text,
.service-custom-form .wpcf7-textarea,
.contact-form-wrapper .wpcf7-text,
.contact-form-wrapper .wpcf7-textarea {
    width: 100%;
    padding: 15px 20px;
    border: 1px solid #ddd;
    background: #fdfdfd;
    font-family: "Jost", sans-serif;
    font-size: 1rem;
    color: #333;
    border-radius: 5px;
    box-sizing: border-box;
    transition: all 0.3s ease;
}
.service-custom-form .wpcf7-text:focus,
.service-custom-form .wpcf7-textarea:focus,
.contact-form-wrapper .wpcf7-text:focus,
.contact-form-wrapper .wpcf7-textarea:focus {
    border-color: #111;
    background: #fff;
    outline: none;
    box-shadow: 0 0 5px rgba(0,0,0,0.1);
}
.service-custom-form .wpcf7-textarea,
.contact-form-wrapper .wpcf7-textarea {
    height: 150px;
    resize: vertical;
}
.service-custom-form .wpcf7-submit,
.contact-form-wrapper .wpcf7-submit {
    display: inline-block;
    padding: 15px 50px;
    background: #111;
    color: #fff;
    font-family: "Jost", sans-serif;
    font-size: 1.1rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s ease;
    width: 100%;
    margin-top: 10px;
}
.service-custom-form .wpcf7-submit:hover,
.contact-form-wrapper .wpcf7-submit:hover {
    background: #444;
}
.service-custom-form form,
.contact-form-wrapper form {
    margin: 0;
}
.service-custom-form p,
.contact-form-wrapper p {
    margin-bottom: 20px;
    font-family: "Jost", sans-serif;
    color: #555;
}

/* ==========================================================================
   CONTACT PAGE STYLING
   ========================================================================== */
.contact-page {
    padding: 80px 0;
    background: #fff;
}
.contact-container {
    max-width: 1250px;
    margin: 0 auto;
    padding: 0 20px;
}
.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: start;
}
.contact-title {
    font-family: "Angie Pro", sans-serif;
    font-size: 3.5rem;
    color: #111;
    margin-bottom: 20px;
    font-weight: normal;
}
.contact-subtitle {
    font-family: "Jost", sans-serif;
    font-size: 1.2rem;
    color: #555;
    margin-bottom: 50px;
    line-height: 1.6;
}
.contact-details {
    margin-bottom: 40px;
}
.contact-item {
    margin-bottom: 15px;
}
.contact-label {
    display: block;
    font-family: "Jost", sans-serif;
    font-weight: 500;
    font-size: 0.9rem;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 5px;
}
.contact-link {
    font-family: "Jost", sans-serif;
    font-size: 1.2rem;
    color: #111;
    text-decoration: none;
    transition: color 0.3s ease;
}
.contact-link:hover {
    color: #888;
}
.contact-branches {
    margin-bottom: 50px;
}
.contact-branch {
    font-family: "Jost", sans-serif;
    font-size: 1.1rem;
    color: #333;
    line-height: 1.6;
    margin-bottom: 20px;
}
.contact-socials a {
    display: inline-block;
    font-family: "Jost", sans-serif;
    font-size: 1rem;
    color: #111;
    text-decoration: none;
    margin-right: 20px;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: color 0.3s ease;
}
.contact-socials a:hover {
    color: #888;
}
@media (max-width: 991px) {
    .contact-grid {
        grid-template-columns: 1fr;
        gap: 50px;
    }
}

/* ==========================================================================
   HOME FLORALS SPECIFIC STYLING
   ========================================================================== */
.home-labels-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 60px;
}
.img-with-label {
    text-align: left;
}
.img-with-label img {
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 15px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}
.img-with-label p {
    font-family: "Jost", sans-serif;
    font-size: 1.1rem;
    color: #333;
    font-weight: 500;
    margin: 0;
}

/* ==========================================================================
   BUTTON STYLING (Get in touch)
   ========================================================================== */
.btn-outline-center {
    display: inline-block;
    padding: 15px 40px;
    border: 1px solid #111;
    color: #111;
    font-family: "Jost", sans-serif;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    text-decoration: none;
    background: transparent;
    transition: all 0.3s ease;
    border-radius: 5px;
}
.btn-outline-center:hover {
    background: #111;
    color: #fff;
    text-decoration: none;
}
@media (max-width: 768px) {
    .home-labels-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}

/* ==========================================================================
   PHILOSOPHY PAGE STYLING
   ========================================================================== */
.philosophy-page {
    padding: 80px 0 120px;
    background: #fff;
}
.philosophy-container {
    max-width: 900px; /* Narrower for elegant typography */
    margin: 0 auto;
    padding: 0 20px;
    text-align: center;
}
.philosophy-header {
    margin-bottom: 50px;
}
.label-small {
    display: inline-block;
    font-family: "Jost", sans-serif;
    font-size: 0.85rem;
    color: #888;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 20px;
}
.philosophy-title {
    font-family: "Angie Pro", sans-serif;
    font-size: 4.5rem;
    color: #111;
    font-weight: normal;
    line-height: 1.2;
    margin-bottom: 30px;
}
.small-divider {
    width: 40px;
    height: 2px;
    background-color: #111;
    margin: 0 auto;
}
.philosophy-content {
    font-family: "Jost", sans-serif;
    font-size: 1.35rem;
    color: #444;
    line-height: 1.8;
    text-align: justify;
    font-weight: 300;
}
.philosophy-content p {
    margin-bottom: 30px;
}
@media (max-width: 768px) {
    .philosophy-page { padding: 40px 0 80px; }
    .philosophy-title { font-size: 3rem; }
    .philosophy-content { font-size: 1.1rem; text-align: left; }
}

/* ==========================================================================
   SHOP HEADER & FILTERS
   ========================================================================== */
.shop-header {
    text-align: center;
    margin-bottom: 50px;
    padding-top: 50px;
}
.shop-title {
    font-family: "Angie Pro", sans-serif;
    font-size: 3.5rem;
    font-weight: normal;
    margin-bottom: 20px;
    color: #111;
}
.shop-desc {
    font-family: "Jost", sans-serif;
    font-size: 1.1rem;
    color: #555;
    line-height: 1.6;
}
.shop-filters {
    margin-bottom: 60px;
    max-width: 1250px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px;
}
.filter-columns {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}
.filter-title {
    font-family: "Jost", sans-serif;
    font-size: 1rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #888;
    margin-bottom: 20px;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
}
.filter-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.filter-list li {
    margin-bottom: 10px;
}
.filter-list label {
    font-family: "Jost", sans-serif;
    font-size: 1rem;
    color: #333;
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: color 0.3s;
}
.filter-list label:hover {
    color: #888;
}
.filter-list input[type="checkbox"] {
    margin-right: 10px;
    cursor: pointer;
    appearance: auto; /* Ensure checkboxes are visible */
}

/* ==========================================================================
   CUSTOM PRODUCT GRID
   ========================================================================== */
.custom-product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 50px 40px;
    margin-bottom: 100px;
    max-width: 1250px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px;
}
.product-card {
    text-align: center;
    position: relative;
    transition: transform 0.3s ease;
}
.product-card:hover {
    transform: translateY(-5px);
}
.product-card img {
    width: 100%;
    height: auto;
    object-fit: cover;
    margin-bottom: 20px;
    border-radius: 4px;
}
.product-card h3 {
    font-family: "Jost", sans-serif;
    font-size: 1.2rem;
    color: #111;
    margin: 0 0 10px;
    font-weight: 400;
}
.product-card .price {
    font-family: "Jost", sans-serif;
    font-size: 1.1rem;
    color: #555;
    margin-bottom: 15px;
}
.add_to_cart_button.custom-add-cart {
    display: inline-block;
    padding: 10px 30px;
    border: 1px solid #111;
    color: #111;
    font-family: "Jost", sans-serif;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-decoration: none;
    transition: all 0.3s ease;
    border-radius: 4px;
}
.add_to_cart_button.custom-add-cart:hover {
    background: #111;
    color: #fff;
}
@media (max-width: 991px) {
    .filter-columns { grid-template-columns: repeat(2, 1fr); }
    .custom-product-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
    .filter-columns { grid-template-columns: repeat(2, 1fr); gap: 20px 15px; }
    .custom-product-grid { grid-template-columns: repeat(2, 1fr); gap: 30px 15px; }
    .shop-title { font-size: 2.5rem; }
}

/* ==========================================================================
   PRODUCT CARD OVERRIDE (Fix for Shop Page Layout)
   ========================================================================== */
.custom-product-grid .product-card {
    text-align: left; 
}
.custom-product-grid .product-meta-row {
    display: flex;
    justify-content: space-between;
    align-items: center; 
    margin-bottom: 10px;
}
.custom-product-grid .product-meta-row.bottom-row {
    align-items: flex-end; 
    margin-bottom: 0;
}
.custom-product-grid .product-title {
    font-family: "Jost", sans-serif;
    font-size: 1.15rem;
    font-weight: 400;
    margin: 0;
}
.custom-product-grid .product-title a {
    color: #111;
    text-decoration: none;
}
.custom-product-grid .product-price {
    font-family: "Jost", sans-serif;
    font-size: 1.05rem;
    color: #444;
}
.custom-product-grid .product-short-desc {
    font-family: "Jost", sans-serif;
    font-size: 0.75rem;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 1px;
    line-height: 1.4;
    max-width: 75%;
    text-align: left;
}
.custom-product-grid .add_to_cart_button.custom-add-cart {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0; 
    border: 1px solid #444;
    border-radius: 4px;
    color: #444;
    background: transparent;
    transition: all 0.3s ease;
    text-decoration: none;
    letter-spacing: normal;
}
.custom-product-grid .add_to_cart_button.custom-add-cart:hover {
    border-color: #111;
    color: #fff;
    background: #111;
}
.custom-product-grid .add_to_cart_button.custom-add-cart svg {
    width: 18px;
    height: 18px;
}

/* ==========================================================================
   HEADER DESKTOP TOP GAP FIX
   ========================================================================== */
@media (min-width: 992px) {
    .site-header {
        padding-top: 15px !important;
        padding-bottom: 15px !important;
        margin-top: 0 !important;
    }
    .header-inner {
        padding-top: 15px !important;
        padding-bottom: 15px !important;
        margin-top: 0 !important;
    }
    html {
        margin-top: 0 !important;
    }
    body {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
}

/* ==========================================================================
   HEADER HEIGHT SQUEEZE (Desktop)
   ========================================================================== */
@media (min-width: 992px) {
    .site-header, .header-inner {
        padding-top: 5px !important;
        padding-bottom: 5px !important;
        height: 75px !important;
        display: flex;
        align-items: center;
    }
    .header-container {
        height: 100% !important;
        width: 100%;
        margin: 0;
    }
    .header-logo-img {
        max-height: 50px !important; /* Force logo height instead of width to prevent vertical overflow */
        width: auto !important;
        margin-top: -5px !important; /* Slight manual optical tweak upwards */
    }
}

/* ==========================================================================
   MOBILE SURGICAL FIXES (Filters & Toolbar)
   ========================================================================== */
@media (max-width: 767px) {
    /* 1. Prevent ARRANGEMENT TYPE from wrapping */
    .filter-title {
        font-size: 0.8rem !important;
        letter-spacing: 1px !important;
    }
    
    /* 2. Stack the toolbar nicely */
    .shop-toolbar {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 15px !important;
    }
    .toolbar-left, .toolbar-right {
        width: 100% !important;
        justify-content: flex-start !important;
        flex-wrap: wrap !important;
        gap: 10px !important;
    }
}

/* ==========================================================================
   MOBILE PRODUCT CARD RE-FORMATTING (Shop 2-Columns Fix)
   ========================================================================== */
@media (max-width: 767px) {
    /* Ensure no flex-collisions due to lack of space */
    .custom-product-grid .product-meta-row {
        display: flex !important;
        flex-direction: column !important; /* Stack vertically */
        align-items: flex-start !important; /* Align left */
        gap: 5px !important;
        margin-bottom: 10px !important;
    }
    
    /* Top Row: Title and Price */
    .custom-product-grid .product-title {
        font-size: 0.95rem !important;
        line-height: 1.2 !important;
        white-space: normal !important;
    }
    .custom-product-grid .product-price {
        font-size: 0.9rem !important;
        font-weight: 500 !important;
        color: #111 !important;
    }
    
    /* Bottom Row: Desc and Button */
    .custom-product-grid .product-meta-row.bottom-row {
        gap: 12px !important;
    }
    .custom-product-grid .product-short-desc {
        max-width: 100% !important;
        font-size: 0.65rem !important;
        line-height: 1.4 !important;
        text-align: left !important;
    }
    .custom-product-grid .add_to_cart_button.custom-add-cart {
        width: 36px !important;
        height: 36px !important;
    }
}

/* ==========================================================================
   MOBILE PRODUCT CARD REORDERING (Title -> Desc -> Price + Button)
   ========================================================================== */
@media (max-width: 767px) {
    /* Use Grid to completely reorder the layout */
    .custom-product-grid .product-card {
        display: grid !important;
        grid-template-columns: 1fr auto !important; /* Left col stretches, right col wraps button */
        grid-template-rows: auto auto auto auto !important;
        align-items: center !important;
        gap: 5px !important;
        text-align: left !important;
    }
    
    /* Unwrap the meta rows so their children become direct grid items */
    .custom-product-grid .product-meta-row {
        display: contents !important;
    }
    
    /* 1. Image (Row 1, Span 2 Cols) */
    .custom-product-grid .product-img-link {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
        margin-bottom: 5px !important;
    }
    
    /* 2. Title (Row 2, Span 2 Cols) */
    .custom-product-grid .product-title {
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;
        font-size: 0.95rem !important;
        line-height: 1.2 !important;
        margin-bottom: 2px !important;
    }
    
    /* 3. Description (Row 3, Span 2 Cols) */
    .custom-product-grid .product-short-desc {
        grid-column: 1 / -1 !important;
        grid-row: 3 !important;
        font-size: 0.65rem !important;
        line-height: 1.4 !important;
        margin-bottom: 8px !important;
    }
    
    /* 4. Price (Row 4, Col 1) */
    .custom-product-grid .product-price {
        grid-column: 1 !important;
        grid-row: 4 !important;
        font-size: 0.95rem !important;
        font-weight: 500 !important;
        color: #111 !important;
    }
    
    /* 5. Button (Row 4, Col 2) */
    .custom-product-grid .add_to_cart_button.custom-add-cart {
        grid-column: 2 !important;
        grid-row: 4 !important;
        width: 36px !important;
        height: 36px !important;
        margin: 0 !important;
        justify-self: end !important; /* Push firmly to the right */
    }
}

/* ==========================================================================
   MOBILE SURGICAL FIXES (Product Columns, Add to Cart Alignment, Banner)
   ========================================================================== */
@media (max-width: 767px) {
    /* 1. Add to cart next to price on the left */
    .custom-product-grid .product-card {
        grid-template-columns: max-content 1fr !important; /* Exact width for price, remaining for button */
        gap: 5px 15px !important; /* Add space between price and button */
    }
    .custom-product-grid .product-price {
        grid-column: 1 !important;
        justify-self: start !important;
    }
    .custom-product-grid .add_to_cart_button.custom-add-cart {
        grid-column: 2 !important;
        justify-self: start !important; /* Pull it to the left, next to the price! */
    }
    
    /* 2. Enlarge product columns (remove empty side space) */
    .shop-container { 
        padding: 0 15px !important; /* Override the 40px padding */
    }
    .custom-product-grid { 
        padding: 0 !important; /* Remove the 20px padding */
    }
    
    /* 3. Fix Banner on Mobile (Show image, fix text formatting) */
    .custom-single-bespoke {
        flex-direction: column !important; /* Stack text and image vertically */
        padding: 0 15px !important; /* Remove the crazy 100px padding */
        margin-top: 40px !important;
        margin-bottom: 40px !important;
        gap: 30px !important; /* Normal gap between text and image */
    }
    .bespoke-left {
        text-align: left !important; /* Align text properly to the left */
    }
    .bespoke-left .bespoke-title {
        font-size: 2rem !important; /* Adjust title size for mobile */
    }
    .bespoke-left br {
        display: none !important; /* Prevent forced line breaks that look bad on mobile */
    }
    .bespoke-right {
        text-align: center !important;
    }
    .bespoke-right img {
        max-width: 100% !important;
        width: 100% !important;
    }
}

/* ==========================================================================
   FIX RELATED PRODUCTS MOBILE GRID OVERRIDE
   ========================================================================== */
@media (max-width: 767px) {
    /* Revert the Grid reordering for Related Products to maintain its unique layout */
    .custom-single-related .product-card {
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
    }
    .custom-single-related .product-meta-row {
        display: flex !important;
    }
    .custom-single-related .product-meta-row.top-row {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 5px !important;
        margin-bottom: 10px !important;
    }
    
    /* Restore the full-width pill button for Add to Cart text */
    .custom-single-related .add_to_cart_button.custom-add-cart {
        width: 100% !important;
        height: auto !important;
        padding: 12px 0 !important;
        border-radius: 0 !important !important; 
        font-size: 0.8rem !important;
        letter-spacing: 1px !important;
        
        background: #111 !important;
        color: #fff !important;
        border: none !important;
        justify-content: center !important;
    }
    .custom-single-related .product-price {
        margin-bottom: 15px !important;
    }
}

/* ==========================================================================
   MOBILE SURGICAL FIXES (Checkout Order & Field Overflow)
   ========================================================================== */
@media (max-width: 991px) {
    /* 1. Fix the Order of Sections (Billing first, then Your Order) */
    body.woocommerce-checkout form.checkout {
        display: flex !important;
        flex-direction: column !important;
    }
    .woocommerce-checkout #customer_details {
        order: 1 !important; /* Show Billing/Shipping first */
        width: 100% !important;
    }
    .woocommerce-checkout #order_review_heading {
        order: 2 !important; /* Show Title second */
        width: 100% !important;
        margin-top: 40px !important;
    }
    .woocommerce-checkout #order_review {
        order: 3 !important; /* Show Order Table third */
        width: 100% !important;
    }
    
    /* 2. Fix Dropdown / Select2 Fields overflowing the screen on small mobiles */
    .woocommerce-checkout .col2-set,
    .woocommerce-checkout .col-1,
    .woocommerce-checkout .col-2 {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }
    .woocommerce-checkout .form-row {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    .woocommerce-checkout .select2-container,
    .woocommerce-checkout .select2-container .select2-selection--single {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    /* Hide horizontal overflow entirely on the billing container */
    .woocommerce-checkout #customer_details .woocommerce-billing-fields {
        overflow-x: hidden !important;
        width: 100% !important;
    }
}

/* ==========================================================================
   FORCE MOBILE CHECKOUT ORDER USING GRID (Bulletproof)
   ========================================================================== */
@media (max-width: 991px) {
    body.woocommerce-checkout form.checkout {
        display: grid !important;
        grid-template-columns: 1fr !important;
        grid-template-rows: auto auto auto !important;
        gap: 30px !important;
    }
    .woocommerce-checkout #customer_details {
        grid-row: 1 !important;
        grid-column: 1 !important;
        order: unset !important;
    }
    .woocommerce-checkout #order_review_heading {
        grid-row: 2 !important;
        grid-column: 1 !important;
        order: unset !important;
        margin-top: 20px !important;
    }
    .woocommerce-checkout #order_review {
        grid-row: 3 !important;
        grid-column: 1 !important;
        order: unset !important;
    }
}

/* ==========================================================================
   FIX WOOCOMMERCE ERROR LISTS (Multiple Errors Display)
   ========================================================================== */
ul.woocommerce-error {
    display: flex !important;
    flex-direction: column !important; /* Stack errors vertically instead of side-by-side */
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 20px !important;
}
ul.woocommerce-error li {
    width: 100% !important;
    display: block !important;
    text-align: left !important;
    margin: 0 !important;
    font-size: 0.95rem !important;
}
/* Fix the ugly blue link style for field names in errors */
ul.woocommerce-error li a,
ul.woocommerce-error li strong {
    color: #d9534f !important;
    text-decoration: none !important;
    font-weight: 600 !important;
}
ul.woocommerce-error li a:hover {
    text-decoration: underline !important;
}

/* ==========================================================================
   MOBILE HEADER LOGO FLUID RESIZE FIX
   ========================================================================== */
@media (max-width: 991px) {
    /* 1. Ensure the center container doesn't force a static width */
    .header-center {
        flex: 1 1 auto !important;
        padding: 0 15px !important; /* Provide a safe bumper gap between logo and icons */
        min-width: 0 !important; /* Critical for flex items to shrink below their content size */
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
    }
    
    .header-center a {
        display: block !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    /* 2. Force the logo to be fluid and shrink dynamically */
    .header-logo-img {
        width: 100% !important; /* Take full width of the padded container */
        max-width: 250px !important; /* Cap the max size so it doesn't look gigantic on tablets */
        height: auto !important; /* Keep aspect ratio */
        object-fit: contain !important;
    }
}

/* ==========================================================================
   HOME PAGE SLIDER CROSSFADE FIX (Hide Footer & Solid BG)
   ========================================================================== */
body.home .hero-section {
    background-color: #eaddd3 !important; /* A warm background color so crossfade looks smooth */
}
body.home .site-footer {
    display: none !important; /* Hide footer completely on the full-screen home page to prevent it from showing through the slider */
}

/* ==========================================================================
   DEFAULT PAGES (Privacy Policy, Terms & Conditions, etc.)
   ========================================================================== */
.default-page {
    padding-top: 100px !important;
    padding-bottom: 100px !important;
    background: #fff;
}
.default-page .page-container {
    max-width: 900px !important; /* Narrower width for comfortable reading */
    margin: 0 auto !important;
    padding: 0 20px !important;
}
.default-page .page-header {
    display: block !important;
    text-align: center !important;
    margin-bottom: 50px !important;
    width: 100% !important;
}
.default-page .page-title {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 3.5rem !important;
    color: #444 !important;
    font-weight: 400 !important;
    margin-bottom: 25px !important;
    display: block !important;
    text-align: center !important;
}
.default-page .small-divider {
    display: block !important;
    width: 80px !important;
    height: 2px !important;
    background-color: #444 !important;
    margin: 0 auto !important;
}
.default-page .page-content {
    font-family: "Jost", sans-serif !important;
    font-size: 1.15rem !important;
    line-height: 2 !important;
    color: #555 !important;
    text-align: left !important;
}
.default-page .page-content h1,
.default-page .page-content h2,
.default-page .page-content h3 {
    font-family: "Angie Pro", sans-serif !important;
    color: #333 !important;
    margin-top: 40px !important;
    margin-bottom: 20px !important;
    font-weight: 500 !important;
}
.default-page .page-content p {
    margin-bottom: 25px !important;
}
.default-page .page-content a {
    color: #111 !important;
    text-decoration: underline !important;
    font-weight: 500 !important;
}
.default-page .page-content a:hover {
    color: #777 !important;
}

/* Mobile Adjustments for Default Pages */
@media (max-width: 767px) {
    .default-page {
        padding-top: 60px !important;
        padding-bottom: 60px !important;
    }
    .default-page .page-title {
        font-size: 2.5rem !important;
        margin-bottom: 20px !important;
    }
    .default-page .page-content {
        font-size: 1rem !important;
        line-height: 1.8 !important;
    }
    .default-page .page-content p {
        margin-bottom: 20px !important;
    }
}

/* ==========================================================================
   FIX DUPLICATE TITLES ON CART & CHECKOUT
   ========================================================================== */
/* The default-page styles woke up the hidden default headers on WooCommerce pages. Hide them again securely. */
.woocommerce-cart .page-header,
.woocommerce-checkout .page-header,
.woocommerce-cart .page-title,
.woocommerce-checkout .page-title {
    display: none !important;
}

/* ==========================================================================
   RESTORE WOOCOMMERCE PAGE WIDTHS (Fixing the 900px constraint)
   ========================================================================== */
/* The standard page constraint (900px) squeezed the Cart and Checkout grids. This restores their original wide 1250px canvas. */
body.woocommerce-cart .page-container,
body.woocommerce-checkout .page-container {
    max-width: 1250px !important;
    padding: 0 20px !important;
}

/* ==========================================================================
   REMOVE EXCESS GAP ON WOOCOMMERCE PAGES
   ========================================================================== */
/* The default-page styles added 100px padding to the top of all pages. This kills that padding on Cart and Checkout so they don't have massive white space. */
body.woocommerce-cart .default-page,
body.woocommerce-checkout .default-page {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* ==========================================================================
   BRUTE FORCE KILL MOBILE GAP ON CART & CHECKOUT
   ========================================================================== */
@media (max-width: 991px) {
    /* Target the main wrapper by every possible class to ensure specificity */
    body.woocommerce-cart .default-page,
    body.woocommerce-checkout .default-page,
    body.woocommerce-cart main.site-main,
    body.woocommerce-checkout main.site-main,
    body.woocommerce-cart .page-container,
    body.woocommerce-checkout .page-container {
        padding-top: 0 !important;
        margin-top: 0 !important;
    }
    
    /* Ensure the titles don't have massive margins inherited from desktop */
    body.woocommerce-checkout .checkout-page-title,
    body.woocommerce-cart .cart-page-title {
        margin-top: 20px !important; 
        padding-top: 0 !important;
    }
}

/* ==========================================================================
   REMOVE HEADER BOTTOM BORDER
   ========================================================================== */
.header-inner {
    border-bottom: none !important;
}

/* ==========================================================================
   HEADER OPTICAL ALIGNMENT (Push logo down so icons align with top text)
   ========================================================================== */
.header-logo-img {
    margin-top: 12px !important; /* Pushes the logo down so icons align with "FLOWER POWER" */
}

/* ==========================================================================
   HEADER OPTICAL ALIGNMENT (Push logo down MORE)
   ========================================================================== */
.header-logo-img {
    margin-top: 22px !important; /* Increased from 12px to push it down further */
}

/* ==========================================================================
   HEADER OPTICAL ALIGNMENT (Desktop further down, Mobile centered)
   ========================================================================== */
@media (min-width: 992px) {
    .header-logo-img {
        margin-top: 32px !important; /* Pushed down even further on Desktop only */
    }
}
@media (max-width: 991px) {
    .header-logo-img {
        margin-top: -2px !important; /* Restored to perfectly centered on Mobile */
    }
}

/* ==========================================================================
   HEADER OPTICAL ALIGNMENT (Desktop Extreme Drop)
   ========================================================================== */
@media (min-width: 992px) {
    .header-logo-img {
        margin-top: 85px !important; /* Huge drop - logo will now hang lower */
    }
}

/* ==========================================================================
   HEADER OPTICAL ALIGNMENT (Desktop - Slightly up)
   ========================================================================== */
@media (min-width: 992px) {
    .header-logo-img {
        margin-top: 65px !important; /* Adjusted slightly upwards from 85px */
    }
}

/* ==========================================================================
   FOOTER NEW DESIGN (Background & Border Removal)
   ========================================================================== */
.site-footer {
    background-color: #fafafa !important; /* The precise light grey requested */
    border-top: none !important; /* Remove the separator line */
}
.footer-emblem img {
    max-width: 70px !important; /* Slightly larger max-width just in case the new image needs room */
}

/* ==========================================================================
   FOOTER FINE-TUNING (Larger emblem, lighter socials)
   ========================================================================== */
.footer-emblem img {
    max-width: 110px !important; /* Make the footer emblem significantly larger */
}
.footer-socials a {
    color: #999 !important; /* Make the social icons a lighter, softer shade */
}
.footer-socials a:hover {
    color: #fff !important; /* Ensure it still turns white on hover */
    background: #999 !important;
}

/* ==========================================================================
   FOOTER FINE-TUNING V2 (Even larger emblem, clean hover)
   ========================================================================== */
.footer-emblem img {
    max-width: 140px !important; /* Enlarged further */
}
.footer-socials a:hover {
    background: transparent !important; /* No circle background */
    border: none !important; /* No external border */
    outline: none !important; /* No focus outline */
    color: #111 !important; /* Just darken the icon beautifully on hover */
}

/* ==========================================================================
   FOOTER SOCIALS NO-BORDER FIX
   ========================================================================== */
.footer-socials a {
    border: none !important; /* Remove the permanent grey circle border */
    background: transparent !important;
}

/* ==========================================================================
   SHOP HEADER, TITLE & DESCRIPTION REFINEMENT (COMPACT & BALANCED)
   ========================================================================== */
body.woocommerce-shop .shop-main,
body.post-type-archive-product .shop-main {
    padding-top: 45px !important;
}

body.woocommerce-shop .shop-header,
body.post-type-archive-product .shop-header,
.shop-header {
    padding-top: 15px !important;
    padding-bottom: 15px !important;
    margin-bottom: 25px !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    border-bottom: none !important;
}

body.woocommerce-shop .shop-title-wrapper,
body.post-type-archive-product .shop-title-wrapper,
.shop-title-wrapper {
    padding-bottom: 15px !important;
}

body.woocommerce-shop .shop-title,
body.post-type-archive-product .shop-title,
.shop-title {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 50px !important;
    font-weight: 400 !important;
    line-height: 1.1 !important;
    letter-spacing: 0 !important;
    color: #585555 !important;
    margin: 0 !important;
}

body.woocommerce-shop .shop-desc,
body.post-type-archive-product .shop-desc,
.shop-desc {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    font-style: italic !important;
    line-height: 1.5 !important;
    letter-spacing: 0 !important;
    color: #585555 !important;
    max-width: 400px !important;
    text-align: left !important;
    margin: 0 !important;
}

@media (max-width: 768px) {
    body.woocommerce-shop .shop-main,
    body.post-type-archive-product .shop-main {
        padding-top: 25px !important;
    }

    body.woocommerce-shop .shop-header,
    body.post-type-archive-product .shop-header,
    .shop-header {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        padding-top: 10px !important;
        padding-bottom: 15px !important;
        margin-bottom: 20px !important;
        gap: 15px !important;
    }

    body.woocommerce-shop .shop-title,
    body.post-type-archive-product .shop-title,
    .shop-title {
        font-size: 34px !important;
        text-align: center !important;
    }

    body.woocommerce-shop .shop-desc,
    body.post-type-archive-product .shop-desc,
    .shop-desc {
        font-size: 14px !important;
        line-height: 1.4 !important;
        text-align: center !important;
        max-width: 100% !important;
    }
}

/* ==========================================================================
   PRODUCT GRID: TITLE & CART ICON EXACT MATCH (FIGMA)
   ========================================================================== */
.custom-product-grid .product-title,
.custom-product-grid .product-title a {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 36px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    color: #585555 !important;
}

/* Cart Icon as clean plus */
.custom-product-grid .add_to_cart_button.custom-add-cart {
    border: none !important;
    background: transparent !important;
    color: #666 !important; /* Soft grey like the short description */
}
.custom-product-grid .add_to_cart_button.custom-add-cart:hover {
    background: transparent !important;
    color: #111 !important; /* Darken slightly on hover */
    border: none !important;
    outline: none !important;
}

@media (max-width: 991px) {
    .custom-product-grid .product-title,
    .custom-product-grid .product-title a {
        font-size: 20px !important; /* Scaled for mobile readability */
    }
}

/* ==========================================================================
   PRODUCT GRID: EXACT COLOR MATCH FOR CART PLUS ICON
   ========================================================================== */
.custom-product-grid .add_to_cart_button.custom-add-cart {
    color: #999 !important; /* Perfect match for product-short-desc */
}

/* ==========================================================================
   PRODUCT GRID: PRICE EXACT MATCH (FIGMA)
   ========================================================================== */
.custom-product-grid .product-price,
.custom-product-grid .product-price .woocommerce-Price-amount,
.custom-product-grid .product-price .woocommerce-Price-currencySymbol {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    color: rgba(88, 85, 85, 0.85) !important; /* #585555 at 85% opacity */
}

@media (max-width: 991px) {
    .custom-product-grid .product-price,
    .custom-product-grid .product-price .woocommerce-Price-amount,
    .custom-product-grid .product-price .woocommerce-Price-currencySymbol {
        font-size: 16px !important; /* Scaled for mobile */
    }
}

/* ==========================================================================
   SHOP PHILOSOPHY BANNER REFINEMENT
   ========================================================================== */
body.woocommerce-shop .custom-product-grid,
body.post-type-archive-product .custom-product-grid {
    margin-bottom: 50px !important; /* Reduced from 100px */
}

body.woocommerce-shop .shop-philosophy-banner,
body.post-type-archive-product .shop-philosophy-banner,
.shop-philosophy-banner {
    text-align: center !important;
    margin-top: 15px !important; /* Slightly reduced distance from products */
    padding-top: 15px !important;
    padding-bottom: 25px !important;
    margin-bottom: 20px !important;
}

body.woocommerce-shop .shop-philosophy-banner .philosophy-title,
body.post-type-archive-product .shop-philosophy-banner .philosophy-title,
.shop-philosophy-banner .philosophy-title {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 30px !important; /* Reduced from 40px */
    line-height: 1.3 !important;
    color: #585555 !important;
    margin: 0 0 14px 0 !important;
    text-transform: none !important;
}

body.woocommerce-shop .shop-philosophy-banner .philosophy-subtitle,
body.post-type-archive-product .shop-philosophy-banner .philosophy-subtitle,
.shop-philosophy-banner .philosophy-subtitle {
    font-family: "Jost", sans-serif !important;
    font-weight: 400 !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
    color: #585555 !important;
    margin: 0 !important;
    letter-spacing: 0.5px !important;
}

@media (max-width: 768px) {
    body.woocommerce-shop .shop-philosophy-banner,
    body.post-type-archive-product .shop-philosophy-banner,
    .shop-philosophy-banner {
        margin-top: 30px !important;
        padding-top: 15px !important;
        padding-bottom: 15px !important;
        margin-bottom: 15px !important;
    }

    body.woocommerce-shop .shop-philosophy-banner .philosophy-title,
    body.post-type-archive-product .shop-philosophy-banner .philosophy-title,
    .shop-philosophy-banner .philosophy-title {
        font-size: 22px !important;
        line-height: 1.3 !important;
        margin-bottom: 10px !important;
    }

    body.woocommerce-shop .shop-philosophy-banner .philosophy-subtitle,
    body.post-type-archive-product .shop-philosophy-banner .philosophy-subtitle,
    .shop-philosophy-banner .philosophy-subtitle {
        font-size: 14px !important;
    }
}

/* Ensure the link wrapper doesn't break styling */
.philosophy-subtitle-link {
    text-decoration: none !important;
    display: inline-block;
    transition: opacity 0.3s ease;
}
.philosophy-subtitle-link:hover {
    opacity: 0.7;
}

/* ==========================================================================
   BESPOKE BANNER REFINED (COMPACT & BALANCED)
   ========================================================================== */
.custom-single-bespoke {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 40px !important;
    max-width: 100% !important;
    margin-top: 50px !important;
    margin-bottom: 50px !important;
    padding: 0 !important;
}

.bespoke-left {
    flex: 1 1 auto !important;
    max-width: 500px !important;
}

.bespoke-left .label-small {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    color: #888888 !important;
    letter-spacing: 0.12em !important;
    display: block !important;
    margin-bottom: 18px !important;
}

.bespoke-title {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 36px !important; /* Reduced from 56px */
    font-weight: 400 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.03em !important;
    color: #585555 !important;
    margin-bottom: 18px !important;
}

.bespoke-text {
    font-family: "Jost", sans-serif !important;
    font-size: 18px !important; /* Reduced from 36px */
    font-weight: 400 !important;
    color: rgba(88, 85, 85, 0.75) !important;
    line-height: 1.55 !important;
    letter-spacing: 0.03em !important;
    margin-bottom: 22px !important;
}

.bespoke-contact-btn {
    font-family: "Jost", sans-serif !important;
    font-size: 13px !important;
    letter-spacing: 0.15em !important;
    color: #585555 !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin-top: 10px !important;
    transition: opacity 0.3s ease;
}

.bespoke-contact-btn:hover {
    opacity: 0.7;
}

.bespoke-contact-btn svg {
    width: 18px !important;
    height: 18px !important;
    stroke-width: 1.5px !important;
}

.bespoke-right {
    flex: 0 0 auto !important;
    text-align: right !important;
}

.bespoke-right img {
    max-width: 350px !important;
    width: 100% !important;
    height: 330px !important;
    object-fit: cover !important;
    display: block !important;
}

@media (max-width: 991px) {
    .custom-single-bespoke {
        flex-direction: column !important;
        align-items: flex-start !important;
        margin-top: 40px !important;
        margin-bottom: 40px !important;
        gap: 30px !important;
    }

    .bespoke-left {
        max-width: 100% !important;
    }

    .bespoke-left .label-small {
        font-size: 12px !important;
        margin-bottom: 12px !important;
    }

    .bespoke-left .bespoke-title,
    .bespoke-title {
        font-size: 24px !important;
        line-height: 1.25 !important;
        margin-bottom: 14px !important;
    }

    .bespoke-text {
        font-size: 15px !important;
        line-height: 1.5 !important;
        margin-bottom: 18px !important;
    }

    .bespoke-contact-btn {
        font-size: 12px !important;
    }

    .bespoke-right {
        width: 100% !important;
        text-align: center !important;
    }

    .bespoke-right img {
        max-width: 100% !important;
        height: auto !important;
        aspect-ratio: 350 / 330 !important;
    }
}

/* ==========================================================================
   FOOTER LINKS CAPITALIZATION FIX
   ========================================================================== */
.footer-links a {
    text-transform: capitalize !important; /* First letter capital, rest lowercase */
}

/* ==========================================================================
   FOOTER COPYRIGHT CAPITALIZATION FIX
   ========================================================================== */
.footer-copyright {
    text-transform: capitalize !important;
}

/* ==========================================================================
   BREADCRUMB FONT FIX (Angie Pro)
   ========================================================================== */
.custom-single-breadcrumb .woocommerce-breadcrumb {
    font-family: "Angie Pro", sans-serif !important;
}

/* ==========================================================================
   BREADCRUMB FONT FIX V2 (Stronger Override)
   ========================================================================== */
.custom-single-breadcrumb .woocommerce-breadcrumb,
.custom-single-breadcrumb .woocommerce-breadcrumb a,
.woocommerce-breadcrumb,
.woocommerce-breadcrumb a,
.storefront-breadcrumb .woocommerce-breadcrumb {
    font-family: "Angie Pro", sans-serif !important;
}

/* ==========================================================================
   SINGLE PRODUCT: SUMMARY WIDTH FIX
   ========================================================================== */
@media (min-width: 992px) {
    .custom-single-summary {
        max-width: 500px !important;
        flex: 0 0 500px !important; /* Force exact width, no stretching */
    }
    .custom-single-top {
        justify-content: space-between !important; /* Spread image and text cleanly */
    }
}

/* ==========================================================================
   SINGLE PRODUCT: SUMMARY WIDTH FIX (Even smaller)
   ========================================================================== */
@media (min-width: 992px) {
    .custom-single-summary {
        max-width: 400px !important;
        flex: 0 0 400px !important; /* Force exact narrower width */
    }
}

/* ==========================================================================
   SINGLE PRODUCT: REMOVE LINE BETWEEN PRICE & QUANTITY
   ========================================================================== */
.product-add-to-cart-wrap form.cart .quantity {
    border-top: none !important; /* Remove the top separator line */
    padding-top: 10px !important; /* Add a little padding to replace the gap left by the border if needed */
}

/* ==========================================================================
   SINGLE PRODUCT: REMOVE SPECIFIC META LINES
   ========================================================================== */
.product-meta-custom .meta-row {
    border-top: none !important; /* Remove top border from all rows (except first, handled below) */
}
.product-meta-custom .meta-row:first-child {
    border-top: 1px solid #eee !important; /* Keep the line above the very first row (COMPOSITION) */
}
.product-meta-custom .meta-row:last-child {
    border-bottom: none !important; /* Remove the line below the last row (VASE LIFE) */
}

/* ==========================================================================
   SINGLE PRODUCT: IMAGE SIZE FIX
   ========================================================================== */
@media (min-width: 992px) {
    .custom-single-image {
        max-width: 550px !important; /* Decrease image width */
        flex: 0 0 550px !important;
    }
    .custom-single-top {
        justify-content: center !important; /* Center the image and text blocks together */
        gap: 100px !important; /* Provide a nice breathing gap between image and text */
    }
}

/* ==========================================================================
   SINGLE PRODUCT: REMOVE FORCED UPPERCASE
   ========================================================================== */
.custom-single-summary .product-short-desc, 
.custom-single-summary .product-description,
.product-meta-custom .meta-row {
    text-transform: none !important; /* Remove forced uppercase, respect normal text */
}

.product-meta-custom .meta-row span:last-child {
    text-transform: none !important;
}

/* ==========================================================================
   SINGLE PRODUCT: FORCE LOWERCASE & FIRST LETTER CAPITAL FOR DESCRIPTION
   ========================================================================== */
.custom-single-summary .product-short-desc, 
.custom-single-summary .product-description {
    text-transform: lowercase !important; /* Force all the ALL CAPS text to lowercase */
}
.custom-single-summary .product-short-desc::first-letter, 
.custom-single-summary .product-description::first-letter {
     /* Capitalize the very first letter */
}


/* Ensure p tags also inherit lowercase or normal transform */
.custom-single-summary .product-short-desc p, 
.custom-single-summary .product-description p,
.custom-single-summary .product-short-desc, 
.custom-single-summary .product-description {
    text-transform: lowercase !important;
}

.custom-single-summary .product-short-desc p::first-letter, 
.custom-single-summary .product-description p::first-letter,
.product-meta-custom .meta-row span:last-child::first-letter {
    text-transform: uppercase !important;
}

/* ==========================================================================
   RELATED BOUQUETS HEADING FIX (REFINED)
   ========================================================================== */
.related-top-labels .label-small {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 13px !important; /* Refined from 16px */
    font-weight: 400 !important;
    color: #888888 !important;
    letter-spacing: 0.12em !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    margin-bottom: 14px !important;
    display: block !important;
}

.related-top-labels .label-large {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 36px !important; /* Refined from 54px */
    font-weight: 400 !important;
    color: rgba(88, 85, 85, 0.85) !important;
    letter-spacing: 0 !important;
    line-height: 1.15 !important;
    text-transform: none !important;
    margin-bottom: 30px !important;
    display: block !important;
}

@media (max-width: 991px) {
    .related-top-labels .label-small {
        font-size: 12px !important;
        margin-bottom: 10px !important;
    }
    .related-top-labels .label-large {
        font-size: 26px !important; /* Refined from 36px */
        margin-bottom: 20px !important;
    }
}

/* ==========================================================================
   RELATED BOUQUETS LAYOUT & ICON FIX
   ========================================================================== */
.custom-single-related .products-grid {
    grid-template-columns: repeat(4, 1fr) !important; /* Force 4 columns on desktop */
}

/* Reset the Add to Cart Icon Styling to match shop */
.custom-single-related .product-card .custom-add-cart {
    background: transparent !important;
    padding: 0 !important;
    display: inline-flex !important;
    justify-content: flex-start !important;
    width: auto !important;
}
.custom-single-related .product-card .custom-add-cart:hover {
    background: transparent !important;
    transform: scale(1.1) !important;
}

/* Adjust meta row to look like the shop */
.custom-single-related .product-card .product-meta-row.top-row {
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
}

.custom-single-related .product-title {
    font-size: 36px !important; /* Match shop */
}

.custom-single-related .product-price {
    font-size: 20px !important; /* Match shop */
    color: rgba(88, 85, 85, 0.85) !important;
}

@media (max-width: 991px) {
    .custom-single-related .product-title {
        font-size: 20px !important;
    }
}

/* ==========================================================================
   RELATED BOUQUETS EXACT SHOP CARD MATCH
   ========================================================================== */
/* Top Row (Title Left, Price Right) */
.custom-single-related .product-card .product-meta-row.top-row {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 5px !important;
}

.custom-single-related .product-title {
    font-size: 24px !important; /* Decreased size as requested */
    margin: 0 !important;
    text-align: left !important;
}

.custom-single-related .product-price {
    font-size: 18px !important;
    color: rgba(88, 85, 85, 0.85) !important;
    text-align: right !important;
}

/* Bottom Row (Short Desc Left, Icon Right) */
.custom-single-related .product-card .product-meta-row.bottom-row {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
}

/* Unhide and style short description */
.custom-single-related .product-card .product-short-desc {
    display: block !important;
    font-family: "Jost", sans-serif !important;
    font-size: 14px !important;
    color: #999 !important;
    text-transform: none !important;
    font-style: normal !important;
    margin: 0 !important;
    text-align: left !important;
}

/* Adjust Add to Cart Icon */
.custom-single-related .product-card .custom-add-cart {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
}

/* ==========================================================================
   RELATED BOUQUETS: SMALLER FONT SIZES
   ========================================================================== */
.custom-single-related .product-title {
    font-size: 18px !important; /* Smaller title */
}

.custom-single-related .product-price {
    font-size: 16px !important; /* Slightly smaller price to match */
}

.custom-single-related .product-card .product-short-desc {
    font-size: 12px !important; /* Smaller description to match */
}

/* ==========================================================================
   RELATED BOUQUETS: SINGLE LINE TITLE FIX
   ========================================================================== */
.custom-single-related .product-meta-row.top-row {
    flex-wrap: nowrap !important; /* Prevent title and price from wrapping */
}

.custom-single-related .product-title {
    font-size: 15px !important; /* Even smaller */
    white-space: nowrap !important; /* Force single line */
    overflow: hidden !important; 
    text-overflow: ellipsis !important; /* Add ... if it's too long instead of breaking */
    flex: 1 !important; /* Take remaining space */
    padding-right: 10px !important; /* Space between title and price */
}

.custom-single-related .product-price {
    font-size: 14px !important;
    flex-shrink: 0 !important; /* Prevent price from shrinking */
}

/* ==========================================================================
   RELATED BOUQUETS: FIX HORIZONTAL OVERFLOW (FLEXBOX BUG)
   ========================================================================== */
.custom-single-related .product-meta-row.top-row {
    min-width: 0 !important; /* Allow flex container to shrink */
}

.custom-single-related .product-title {
    min-width: 0 !important; /* CRITICAL: Allows ellipsis to work inside flexbox without blowing up the grid */
}

.custom-single-related .product-title a {
    display: block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* ==========================================================================
   RELATED BOUQUETS: FORCE GRID RESTRAINT
   ========================================================================== */
.custom-single-related {
    max-width: 100% !important;
    overflow: hidden !important; /* Prevent ANY horizontal scroll */
}

.custom-single-related .products-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important; /* CRITICAL: minmax(0, 1fr) prevents grid items from blowing out */
    width: 100% !important;
    gap: 20px !important;
}

.custom-single-related .product-card {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
}

/* ==========================================================================
   RELATED BOUQUETS: ALLOW WRAPPING, SMALLER FONT, NO DOTS
   ========================================================================== */
.custom-single-related .product-meta-row.top-row {
    flex-wrap: wrap !important; /* Allow wrapping if absolutely necessary, but font is small */
}

.custom-single-related .product-title {
    font-size: 14px !important; /* Make it small enough to naturally fit on one line */
    white-space: normal !important; /* Remove the single-line constraint */
    overflow: visible !important; 
    text-overflow: clip !important; /* Remove the ... dots */
    flex: 1 1 auto !important;
}

.custom-single-related .product-title a {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
}

.custom-single-related .product-price {
    font-size: 14px !important; /* Match title size */
}

/* ==========================================================================
   RELATED BOUQUETS: EVEN SMALLER FONT
   ========================================================================== */
.custom-single-related .product-title {
    font-size: 12px !important; /* Extremely small */
}

.custom-single-related .product-price {
    font-size: 12px !important; /* Match title */
}

/* ==========================================================================
   RELATED BOUQUETS: DEFINITIVE TITLE SIZE & WEIGHT FIX
   ========================================================================== */
.custom-single-related h3.product-title,
.custom-single-related h3.product-title a,
.custom-single-related .product-title,
.custom-single-related .product-title a {
    font-size: 14px !important; /* Smaller size */
    font-weight: 300 !important; /* Lighter weight / thickness */
    line-height: 1.2 !important;
}

.custom-single-related .product-price {
    font-size: 14px !important; 
    font-weight: 300 !important;
}

/* ==========================================================================
   RELATED BOUQUETS: PERFECT BALANCE (TITLE & PRICE)
   ========================================================================== */
.custom-single-related h3.product-title,
.custom-single-related h3.product-title a,
.custom-single-related .product-title,
.custom-single-related .product-title a {
    font-size: 16px !important; /* Slightly increased */
    font-weight: 400 !important; /* Returned to regular weight so it's readable */
}

.custom-single-related .product-price {
    font-size: 13px !important; /* Slightly decreased */
    font-weight: 400 !important;
}

/* ==========================================================================
   RELATED BOUQUETS: SMALLER PRICE
   ========================================================================== */
.custom-single-related .product-price {
    font-size: 11px !important; /* Extremely small */
}

/* ==========================================================================
   RELATED BOUQUETS: DEFINITIVE PRICE SIZE
   ========================================================================== */
.custom-single-related .product-price,
.custom-single-related .product-price span,
.custom-single-related .product-price bdi,
.custom-single-related .product-price .amount {
    font-size: 11px !important;
}

/* ==========================================================================
   RELATED BOUQUETS: RE-ADJUST PRICE SIZE
   ========================================================================== */
.custom-single-related .product-price,
.custom-single-related .product-price span,
.custom-single-related .product-price bdi,
.custom-single-related .product-price .amount {
    font-size: 14px !important; /* Adjusted to a readable size */
}

/* ==========================================================================
   RELATED BOUQUETS: PRICE & CURRENCY SYMBOL BALANCE
   ========================================================================== */
.custom-single-related .product-price,
.custom-single-related .product-price bdi,
.custom-single-related .product-price .amount {
    font-size: 15px !important; /* Slightly larger */
}

/* Make the currency symbol perfectly balanced */
.custom-single-related .product-price .woocommerce-Price-currencySymbol {
    font-size: 13px !important; /* Slightly smaller than the numbers */
    margin-right: 3px !important; /* A tiny breathing space between the symbol and the numbers */
    font-weight: 300 !important;
}

/* ==========================================================================
   GLOBAL SHARP EDGES (BORDER-RADIUS: 0) FOR ALL BUTTONS AND FIELDS
   ========================================================================== */
/* All Inputs, Textareas, and Selects */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
textarea,
select,
.select2-container .select2-selection--single,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.wpcf7-form-control.wpcf7-text,
.wpcf7-form-control.wpcf7-textarea,
.wpcf7-form-control.wpcf7-select {
    border-radius: 0 !important;
}

/* All Buttons globally */
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.button,
.checkout-button,
.single_add_to_cart_button,
.add_to_cart_button,
.wpcf7-submit,
.woocommerce-Button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce #respond input#submit, 
.woocommerce a.button, 
.woocommerce button.button, 
.woocommerce input.button {
    border-radius: 0 !important;
}

/* Specific overrides for mobile */
@media (max-width: 991px) {
    .custom-single-related .add_to_cart_button.custom-add-cart,
    .woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
    button, .button, input[type="submit"] {
        border-radius: 0 !important;
    }
}


/* Additional aggressive overrides for Select2 and Checkout */
body .select2-container--default .select2-selection--single,
body .select2-container--default .select2-selection--multiple,
body .select2-dropdown,
body .woocommerce form .form-row .select2-container .select2-selection,
body .woocommerce-checkout #place_order,
body .woocommerce-cart .checkout-button,
body .explore-all-btn,
body .wpcf7 form input,
body .wpcf7 form textarea,
body .wpcf7 form select,
body .wpcf7 form input[type="submit"] {
    border-radius: 0 !important;
}

/* ==========================================================================
   CART PAGE: APPLY COUPON BUTTON TYPOGRAPHY
   ========================================================================== */
.woocommerce-cart table.cart td.actions .coupon button[name="apply_coupon"],
.woocommerce-cart button[name="apply_coupon"] {
    font-family: "Jost", sans-serif !important;
    font-weight: 400 !important; /* Lighter / Regular weight */
}

/* ==========================================================================
   CART PAGE: STRICT FONT FAMILY ENFORCEMENT
   ========================================================================== */
/* 1. Force EVERYTHING on the cart page to Jost by default */
.woocommerce-cart,
.woocommerce-cart p,
.woocommerce-cart span,
.woocommerce-cart a,
.woocommerce-cart div,
.woocommerce-cart td,
.woocommerce-cart label,
.woocommerce-cart button,
.woocommerce-cart input,
.woocommerce-cart select {
    font-family: "Jost", sans-serif !important;
}

/* 2. Override: Force Headings, Table Headers, Product Names, and Prices to Angie Pro */
.woocommerce-cart h1,
.woocommerce-cart h2,
.woocommerce-cart h3,
.woocommerce-cart h4,
.woocommerce-cart h5,
.woocommerce-cart h6,

.woocommerce-cart td.product-name a,
.woocommerce-cart .product-price,
.woocommerce-cart .amount,
.woocommerce-cart bdi,
.woocommerce-cart .woocommerce-Price-amount {
    font-family: "Angie Pro", sans-serif !important;
}


/* ==========================================================================
   CART PAGE: EXPLICIT JOST FOR CART TOTALS & BUTTONS
   ========================================================================== */
.woocommerce-cart table.shop_table th,
.woocommerce-cart table.shop_table td,
.woocommerce-cart .cart-collaterals th,
.woocommerce-cart .cart-collaterals td,
.woocommerce-cart .cart-collaterals label,
.woocommerce-cart .cart-collaterals strong,
.woocommerce-cart .cart-collaterals .woocommerce-shipping-destination,
.woocommerce-cart .cart-collaterals .shipping-calculator-button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    font-family: "Jost", sans-serif !important;
    font-weight: 400 !important;
}

/* Force Cart Totals Heading specifically to Angie Pro */
.woocommerce-cart .cart_totals h2 {
    font-family: "Angie Pro", sans-serif !important;
}

/* ==========================================================================
   EVENTS PAGE: SUBTITLE FORMATTING ("Where moments become memories.")
   ========================================================================== */
.service-subtitle {
    font-family: "Angie Pro", sans-serif !important;
    font-weight: 400 !important;
    font-size: 62px !important;
    line-height: 1 !important; /* 100% */
    letter-spacing: 0 !important;
    text-align: center !important;
    color: #585555 !important;
    margin-bottom: 40px !important;
}

@media (max-width: 991px) {
    .service-subtitle {
        font-size: 36px !important; /* Responsive scaling for mobile */
    }
}

/* ==========================================================================
   SERVICE PAGE: TEXT BLOCK FORMATTING (Events / Home Florals)
   ========================================================================== */
.service-text-block {
    font-family: "Jost", sans-serif !important;
    font-weight: 300 !important;
    font-size: 48px !important;
    line-height: 1 !important; /* 100% */
    letter-spacing: 0 !important;
    text-align: center !important;
    color: #585555 !important;
}

@media (max-width: 991px) {
    .service-text-block {
        font-size: 28px !important; /* Scaled for mobile */
    }
}

/* ==========================================================================
   EVENTS PAGE: TEXT BLOCK GRID ADJUSTMENT FOR PERFECT 3-LINE BREAK
   ========================================================================== */
@media (min-width: 992px) {
    .events-text-grid {
        grid-template-columns: 40% 60% !important; /* Give text more room so 48px fits on 3 lines */
    }
}
.service-text-block {
    white-space: nowrap; /* Force our <br> breaks and prevent organic wrapping */
}
@media (max-width: 991px) {
    .service-text-block {
        white-space: normal; /* Allow natural wrapping on mobile */
    }
}

/* ==========================================================================
   SERVICE PAGES: WIDER LAYOUT
   ========================================================================== */
.service-container {
    max-width: 1400px !important; /* Widen the main container */
}

.service-content-wrapper {
    max-width: 100% !important; /* Remove the artificial inner restriction (was 1000px) */
    padding: 0 40px !important; /* Give it some breathing room on the edges */
}

@media (max-width: 991px) {
    .service-content-wrapper {
        padding: 0 15px !important;
    }
}

/* ==========================================================================
   EVENTS PAGE: ENLARGE IMAGE (RESTORE GRID PROPORTION)
   ========================================================================== */
@media (min-width: 992px) {
    .events-text-grid {
        grid-template-columns: 50% 50% !important; /* Enlarge the image column to 50% */
        gap: 50px !important; /* Add a bit more space between image and text so they don't collide */
    }
}

/* ==========================================================================
   EVENTS PAGE: INCREASE SPACING BELOW SUBTITLE
   ========================================================================== */
.service-subtitle {
    margin-bottom: 80px !important; /* Increased from 40px to 80px */
}

@media (max-width: 991px) {
    .service-subtitle {
        margin-bottom: 50px !important; /* Responsive spacing for mobile */
    }
}

/* ==========================================================================
   SERVICE PAGE: CONTACT TEXT FORMATTING
   ========================================================================== */
.service-contact-text {
    font-family: "Jost", sans-serif !important;
    font-weight: 300 !important;
    font-size: 48px !important;
    line-height: 1 !important; /* 100% */
    letter-spacing: 0 !important;
    text-align: center !important;
    color: #585555 !important;
    margin-bottom: 40px !important;
}

@media (max-width: 991px) {
    .service-contact-text {
        font-size: 28px !important; /* Scaled down for mobile */
    }
}

/* ==========================================================================
   CONTACT FORM 7: LABEL FORMATTING
   ========================================================================== */
.wpcf7 form label {
    font-family: "Jost", sans-serif !important;
    font-weight: 300 !important;
    font-size: 48px !important; /* As requested in Figma */
    line-height: 1 !important; /* 100% */
    letter-spacing: 0 !important;
    display: block !important;
    margin-bottom: 10px !important;
}

@media (max-width: 991px) {
    .wpcf7 form label {
        font-size: 24px !important; /* Scaled down for mobile so forms remain usable */
    }
}

/* ==========================================================================
   CONTACT FORM 7: LABEL COLOR FIX
   ========================================================================== */
.wpcf7 form label {
    color: #585555 !important;
}

/* ==========================================================================
   CONTACT FORM 7: ADJUST LABEL SIZE
   ========================================================================== */
.wpcf7 form label {
    font-size: 32px !important; /* Decreased from 48px to 32px */
}

@media (max-width: 991px) {
    .wpcf7 form label {
        font-size: 20px !important; /* Scaled down for mobile */
    }
}

/* ==========================================================================
   CONTACT FORM 7: SUBMIT BUTTON REDESIGN
   ========================================================================== */
.wpcf7 form input[type="submit"],
.wpcf7-submit {
    width: 200px !important;
    max-width: 100% !important;
    background-color: transparent !important;
    color: #585555 !important;
    border: 1px solid #ccc !important;
    text-transform: none !important; /* Remove uppercase if it was forced by CSS */
    display: block !important;
    margin: 0 auto !important;
    padding: 12px 20px !important;
    font-weight: 300 !important;
    letter-spacing: 0 !important;
}
.wpcf7 form input[type="submit"]:hover,
.wpcf7-submit:hover {
    background-color: #f9f9f9 !important;
    color: #333 !important;
}

/* ==========================================================================
   CONTACT FORM 7: SUBMIT BUTTON TYPOGRAPHY (Send)
   ========================================================================== */
.wpcf7 form input[type="submit"],
.wpcf7-submit {
    font-family: "Angie Pro", sans-serif !important;
    font-weight: 400 !important;
    font-size: 32px !important;
    line-height: 1 !important; /* 100% */
    letter-spacing: 0 !important;
    padding: 15px 40px !important; /* Adjusted padding to accommodate larger text */
}

@media (max-width: 991px) {
    .wpcf7 form input[type="submit"],
    .wpcf7-submit {
        font-size: 24px !important;
    }
}

/* ==========================================================================
   CONTACT FORM 7: SMALLER SUBMIT BUTTON TEXT
   ========================================================================== */
.wpcf7 form input[type="submit"],
.wpcf7-submit {
    font-size: 22px !important; /* Decreased from 32px */
    padding: 10px 30px !important; /* Adjusted padding to match the smaller text */
}

@media (max-width: 991px) {
    .wpcf7 form input[type="submit"],
    .wpcf7-submit {
        font-size: 18px !important;
    }
}

/* ==========================================================================
   HOTELS PAGE: BOTTOM TEXT FORMATTING ("Impressions that last beyond the stay.")
   ========================================================================== */
.service-bottom-text {
    font-family: "Angie Pro", sans-serif !important;
    font-weight: 400 !important;
    font-size: 64px !important;
    line-height: 1 !important; /* 100% */
    letter-spacing: 0 !important;
    text-align: center !important;
    color: #333 !important; /* Keeping default dark gray since no color was specified, but can be updated */
    margin-top: 60px !important;
    margin-bottom: 60px !important;
}

@media (max-width: 991px) {
    .service-bottom-text {
        font-size: 32px !important; /* Scaled down for mobile */
    }
}

/* ==========================================================================
   HOTELS PAGE: ADJUST BOTTOM TEXT SIZE & COLOR
   ========================================================================== */
.service-bottom-text {
    font-size: 54px !important; /* Decreased slightly from 64px */
    color: #585555 !important; /* Elegant gray */
}

@media (max-width: 991px) {
    .service-bottom-text {
        font-size: 30px !important; /* Scaled down for mobile */
    }
}

/* ==========================================================================
   HOTELS PAGE: ADJUST BOTTOM TEXT SIZE & OPACITY
   ========================================================================== */
.service-bottom-text {
    font-size: 46px !important; /* Decreased again from 54px */
    opacity: 0.7 !important; /* 70% opacity */
}

@media (max-width: 991px) {
    .service-bottom-text {
        font-size: 26px !important; /* Scaled down for mobile */
    }
}

/* ==========================================================================
   HOTELS PAGE: INCREASE SPACING BEFORE FOOTER
   ========================================================================== */
.service-bottom-text {
    margin-bottom: 120px !important; /* Increased from 60px to 120px for more breathing room */
}

@media (max-width: 991px) {
    .service-bottom-text {
        margin-bottom: 80px !important; /* Responsive spacing for mobile */
    }
}

/* ==========================================================================
   HOTELS PAGE: IMAGE CAPTION OVERLAY REDESIGN
   ========================================================================== */
.service-img-overlay {
    position: relative;
    overflow: hidden; /* Ensure caption doesn't spill out if image has bounds */
}

.service-img-overlay .caption {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    background: rgba(105, 101, 101, 0.8) !important; /* #585555 at 80% opacity */
    color: #fff !important;
    padding: 20px 40px !important;
    font-family: "Jost", sans-serif !important;
    font-size: 36px !important;
    font-weight: 300 !important;
    border-radius: 0 !important;
    margin: 0 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    display: inline-block !important;
    width: auto !important; /* Don't stretch full width */
}

@media (max-width: 991px) {
    .service-img-overlay .caption {
        font-size: 24px !important;
        padding: 15px 25px !important;
    }
}

/* ==========================================================================
   HOTELS PAGE: ADJUST CAPTION OPACITY & COLOR
   ========================================================================== */
.service-img-overlay .caption {
    background: #888888 !important; /* New color code */
    opacity: 0.65 !important; /* Makes the ENTIRE box (background + text) more transparent */
}

/* ==========================================================================
   HOME FLORALS: IMAGE LABELS TYPOGRAPHY (Weekly Flowers, Occasions)
   ========================================================================== */
.home-labels-grid .img-with-label p {
    font-family: "Jost", sans-serif !important;
    font-weight: 300 !important;
    font-size: 48px !important;
    line-height: 1 !important; /* 100% */
    letter-spacing: 0 !important;
    text-align: center !important;
    margin-top: 20px !important;
    color: #585555 !important; /* Using the standard gray we established */
}

@media (max-width: 991px) {
    .home-labels-grid .img-with-label p {
        font-size: 28px !important; /* Scaled down for mobile */
    }
}

/* ==========================================================================
   HOME FLORALS: SMALLER IMAGE LABELS
   ========================================================================== */
.home-labels-grid .img-with-label p {
    font-size: 32px !important; /* Decreased from 48px for better proportion */
}

@media (max-width: 991px) {
    .home-labels-grid .img-with-label p {
        font-size: 24px !important;
    }
}

/* ==========================================================================
   HOME FLORALS: INCREASE SPACING BELOW LABELS GRID
   ========================================================================== */
.home-labels-grid {
    margin-bottom: 80px !important; /* Added space between the grid and the contact section below */
}

/* ==========================================================================
   HOME FLORALS: INCREASE SPACING BELOW LABELS GRID (EVEN MORE)
   ========================================================================== */
.home-labels-grid {
    margin-bottom: 140px !important; /* Increased significantly from 80px to 140px */
}

/* ==========================================================================
   SERVICE PAGES: GET IN TOUCH BUTTON FORMATTING
   ========================================================================== */
.btn-outline-center {
    font-family: "Angie Pro", sans-serif !important;
    text-transform: none !important; /* Remove uppercase */
    font-size: 24px !important; /* Make it a bit larger to match the elegant font */
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    color: #585555 !important;
    border-color: #ccc !important;
}
.btn-outline-center:hover {
    background: #f9f9f9 !important;
    color: #333 !important;
    border-color: #333 !important;
}

/* ==========================================================================
   SERVICE PAGES: GET IN TOUCH BUTTON ADJUSTMENTS
   ========================================================================== */
.btn-outline-center {
    font-size: 20px !important; /* Decreased size */
    padding: 10px 30px !important; /* Tighter padding for a smaller button */
    border-radius: 0 !important; /* Force completely sharp corners */
}

/* ==========================================================================
   SERVICE PAGES: CONTACT TEXT LAYOUT (LEFT ALIGN & WIDER)
   ========================================================================== */
.service-contact-section {
    max-width: 1200px !important; /* Increased width significantly */
    margin: 80px auto 0 !important;
}

.service-contact-text {
    text-align: left !important; /* Left-aligned as requested */
    font-weight: 300 !important; /* Light */
    line-height: 1.5 !important; /* More breathing room between lines */
}

/* Also left-align the button container so it matches the text flow */
.service-contact-section > div[style*="text-align:center"] {
    text-align: left !important;
}

/* ==========================================================================
   SERVICE PAGES: CONTACT TEXT & BUTTON ADJUSTMENTS
   ========================================================================== */
.service-contact-text {
    font-weight: 200 !important; /* Extra Light */
}

/* Center the button container again */
.service-contact-section > div[style*="text-align:left"],
.service-contact-section > div[style*="text-align:center"] {
    text-align: center !important;
}

/* Ensure Extra Light weight is forced */
.service-contact-text {
    font-weight: 200 !important;
}

/* ==========================================================================
   SERVICE PAGES: DECREASE CONTACT TEXT SIZE
   ========================================================================== */
.service-contact-text {
    font-size: 42px !important; /* Decreased from 48px */
}

@media (max-width: 991px) {
    .service-contact-text {
        font-size: 26px !important;
    }
}

/* ==========================================================================
   SERVICE PAGES: INCREASE SPACING BEFORE FOOTER
   ========================================================================== */
.service-contact-section {
    margin-bottom: 120px !important; /* Push footer down */
}

/* ==========================================================================
   PHILOSOPHY PAGE: TITLE TYPOGRAPHY
   ========================================================================== */
.philosophy-title {
    font-family: "Angie Pro", sans-serif !important;
    font-weight: 400 !important;
    font-size: 84px !important;
    line-height: 1 !important; /* 100% */
    letter-spacing: 0 !important;
    text-align: center !important;
    color: #585555 !important;
    margin-bottom: 40px !important; /* spacing below title */
}

@media (max-width: 991px) {
    .philosophy-title {
        font-size: 42px !important; /* Scaled for mobile */
    }
}

/* ==========================================================================
   PHILOSOPHY PAGE: DECREASE TITLE SIZE
   ========================================================================== */
.philosophy-title {
    font-size: 64px !important; /* Decreased from 84px */
}

@media (max-width: 991px) {
    .philosophy-title {
        font-size: 36px !important;
    }
}

/* ==========================================================================
   PHILOSOPHY PAGE: THIN DIVIDER LINE
   ========================================================================== */
.philosophy-header .small-divider {
    height: 1px !important; /* Make it very thin */
    background-color: #585555 !important; /* Match text color or a soft gray */
    opacity: 0.5 !important; /* Make it a bit more subtle */
}

/* ==========================================================================
   PHILOSOPHY PAGE: CONTENT PARAGRAPHS TYPOGRAPHY
   ========================================================================== */
.philosophy-content p {
    font-weight: 400 !important; /* Made slightly thicker (Regular) */
    color: #585555 !important;
    font-family: "Jost", sans-serif !important;
    font-size: 1.1rem !important;
    line-height: 1.8 !important;
    margin-bottom: 30px !important;
}

/* ==========================================================================
   PHILOSOPHY PAGE: INCREASE CONTENT PARAGRAPHS SIZE & WEIGHT
   ========================================================================== */
.philosophy-content p {
    font-size: 22px !important; /* Increased font size */
    font-weight: 300 !important; /* Light weight */
}

@media (max-width: 991px) {
    .philosophy-content p {
        font-size: 18px !important; /* Mobile fallback */
    }
}

/* ==========================================================================
   PHILOSOPHY PAGE: CENTER PARAGRAPHS
   ========================================================================== */
.philosophy-content p {
    text-align: center !important; /* Center the text */
}

/* ==========================================================================
   RELATED BOUQUETS: MOBILE GRID FIX (2x2)
   ========================================================================== */
@media (max-width: 767px) {
    /* The ul containing the related products */
    ul.products.custom-single-related-products {
        grid-template-columns: repeat(2, 1fr) !important; /* 2 columns instead of 4 */
        gap: 15px !important; /* Slightly smaller gap for mobile */
    }
    
    /* Make sure titles and prices scale appropriately on mobile */
    .custom-single-related-products .custom-single-related h2.woocommerce-loop-product__title {
        font-size: 14px !important; /* Slightly smaller title */
    }
    .custom-single-related-products .custom-single-related .price,
    .custom-single-related-products .custom-single-related .price .amount {
        font-size: 13px !important;
    }
    .custom-single-related-products .custom-single-related .product-short-description {
        font-size: 10px !important;
    }
}

/* ==========================================================================
   RELATED BOUQUETS: MOBILE GRID FIX CORRECT SELECTOR (2x2)
   ========================================================================== */
@media (max-width: 767px) {
    .custom-single-related .products-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important; /* Force 2 columns on mobile */
        gap: 15px !important;
    }
    
    /* Shrink the title/price slightly so it fits beautifully in 2 columns */
    .custom-single-related .products-grid .woocommerce-loop-product__title {
        font-size: 14px !important;
    }
    .custom-single-related .products-grid .price,
    .custom-single-related .products-grid .price .amount {
        font-size: 13px !important;
    }
    .custom-single-related .products-grid .product-short-description {
        font-size: 11px !important;
    }
}

/* ==========================================================================
   RELATED BOUQUETS: MOBILE ICON POSITION (RIGHT OF DESCRIPTION)
   ========================================================================== */
@media (max-width: 767px) {
    .custom-single-related .product-card .product-meta-row.bottom-row {
        flex-direction: row-reverse !important; /* Swaps the visual order */
        justify-content: flex-end !important; /* Align to the right side if needed, or leave space-between */
    }
    
    /* Ensure the text aligns properly when swapped */
    .custom-single-related .product-card .product-short-desc {
        text-align: right !important;
        padding-right: 0 !important;
        padding-left: 10px !important;
    }
}

/* ==========================================================================
   RELATED BOUQUETS: MOBILE REORDER (MATCH SHOP PAGE EXACTLY)
   ========================================================================== */
@media (max-width: 767px) {
    .custom-single-related .product-card {
        display: grid !important;
        grid-template-columns: max-content 1fr !important; /* Price exact width, remaining for icon */
        grid-template-rows: auto auto auto auto !important;
        align-items: center !important;
        gap: 5px 15px !important;
        text-align: left !important;
    }
    
    /* Unwrap the meta rows so their children become direct grid items */
    .custom-single-related .product-card .product-meta-row {
        display: contents !important;
        flex-direction: row !important; /* Reset */
    }
    
    /* 1. Image (Row 1, Span 2 Cols) */
    .custom-single-related .product-img-link {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
        margin-bottom: 10px !important;
    }
    
    /* 2. Title (Row 2, Span 2 Cols) */
    .custom-single-related .product-title {
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;
        justify-self: start !important;
        font-size: 16px !important;
        font-weight: 400 !important;
    }
    
    /* 3. Short Desc (Row 3, Span 2 Cols) */
    .custom-single-related .product-short-desc {
        grid-column: 1 / -1 !important;
        grid-row: 3 !important;
        justify-self: start !important;
        text-align: left !important;
        font-size: 10px !important;
        text-transform: uppercase !important;
        color: #999 !important;
        margin-bottom: 5px !important;
    }
    
    /* 4. Price (Row 4, Col 1) */
    .custom-single-related .product-price {
        grid-column: 1 !important;
        grid-row: 4 !important;
        justify-self: start !important;
        font-size: 15px !important;
    }
    
    /* 5. Add to Cart Icon (Row 4, Col 2) */
    .custom-single-related .add_to_cart_button.custom-add-cart {
        grid-column: 2 !important;
        grid-row: 4 !important;
        justify-self: start !important; /* Pull it next to price */
        margin-top: 0 !important;
    }
}

/* ==========================================================================
   RELATED BOUQUETS: BULLETPROOF MOBILE REORDER (NO DISPLAY CONTENTS)
   ========================================================================== */
@media (max-width: 767px) {
    /* Reset the grid hack */
    .custom-single-related .product-card {
        display: flex !important;
        flex-direction: column !important;
        position: relative !important;
        padding-bottom: 40px !important; /* Space for absolute price & button */
        text-align: left !important;
        overflow: visible !important;
    }
    
    .custom-single-related .product-card .product-meta-row {
        display: flex !important;
        flex-direction: column !important; /* Stack elements naturally */
        align-items: flex-start !important;
        width: 100% !important;
        margin: 0 !important;
    }
    
    /* 1. Image */
    .custom-single-related .product-img-link {
        margin-bottom: 10px !important;
        width: 100% !important;
    }
    
    /* 2. Title */
    .custom-single-related .product-title {
        font-size: 16px !important;
        font-weight: 400 !important;
        margin-bottom: 5px !important;
        white-space: normal !important;
    }
    
    /* 3. Short Desc */
    .custom-single-related .product-short-desc {
        font-size: 10px !important;
        text-transform: uppercase !important;
        color: #999 !important;
        text-align: left !important;
        white-space: normal !important;
        line-height: 1.4 !important;
        margin-bottom: 0 !important;
        padding: 0 !important;
        width: 100% !important;
    }
    
    /* 4. Price (Absolute Bottom Left) */
    .custom-single-related .product-price {
        position: absolute !important;
        bottom: 5px !important;
        left: 0 !important;
        font-size: 14px !important;
        margin: 0 !important;
    }
    
    /* 5. Add to Cart Icon (Absolute Bottom Right) */
    .custom-single-related .add_to_cart_button.custom-add-cart {
        position: absolute !important;
        bottom: 0 !important;
        right: 0 !important;
        margin: 0 !important;
        width: auto !important;
        background: transparent !important;
        padding: 5px !important;
    }
}

/* ==========================================================================
   RELATED BOUQUETS: FIX DESCRIPTION ALIGNMENT (FORCE LEFT)
   ========================================================================== */
@media (max-width: 767px) {
    /* Use a highly specific selector to override any previous alignments */
    body .custom-single-related .product-card .product-meta-row .product-short-desc,
    body .custom-single-related .product-card .product-short-desc {
        text-align: left !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 100% !important;
    }
}

/* ==========================================================================
   MOBILE HEADER: ADD TINY SPACE AT THE TOP
   ========================================================================== */
@media (max-width: 991px) {
    header.site-header {
        padding-top: 15px !important; /* Add a tiny space above the header */
    }
}

/* ==========================================================================
   GLOBAL MOBILE HEADER UNIFICATION: CONSISTENT TOP SPACE
   ========================================================================== */
@media (max-width: 991px) {
    body header.site-header,
    body header.header-inner,
    body header.header-home {
        padding-top: 30px !important; /* Unified large space from the top */
        padding-bottom: 15px !important;
        top: 0 !important;
        margin-top: 0 !important;
    }
    
    /* Ensure the container inside the header aligns items properly */
    body header.site-header .header-container {
        align-items: center !important;
        margin-top: 0 !important;
    }
}

/* ==========================================================================
   GLOBAL MOBILE HEADER UNIFICATION: TINY TOP SPACE
   ========================================================================== */
@media (max-width: 991px) {
    /* Apply a very small space universally so it doesn't look too big on any page */
    body header.site-header,
    body header.header-inner,
    body header.header-home {
        padding-top: 10px !important; /* Reduced from 30px to 10px (Very small) */
        padding-bottom: 15px !important;
        top: 0 !important;
        margin-top: 0 !important;
    }
    
    /* Ensure the container inside the header aligns items properly */
    body header.site-header .header-container {
        align-items: center !important;
        margin-top: 0 !important;
    }
}

/* ==========================================================================
   GLOBAL MOBILE CONTENT SPACING UNIFICATION (BELOW HEADER)
   ========================================================================== */
@media (max-width: 991px) {
    /* Set a unified comfortable top space for ALL page wrappers */
    
    /* 1. Shop, Categories & Single Products */
    .shop-main, 
    .custom-single-product, 
    body.archive main.site-main {
        padding-top: 40px !important;
        margin-top: 0 !important;
    }
    
    /* 2. Service Pages (Hotels, Events, Florals) */
    .service-page {
        padding-top: 40px !important;
        margin-top: 0 !important;
    }
    .service-title-wrapper {
        margin-top: 0 !important; /* Kill extra margin causing huge gaps */
    }
    
    /* 3. Default Pages (Philosophy, Contact, Terms) */
    .default-page {
        padding-top: 40px !important;
        margin-top: 0 !important;
    }
    .default-page .page-content h3,
    .default-page h1,
    .default-page h2 {
        margin-top: 0 !important; /* Kill extra margin */
    }
    
    /* 4. Cart & Checkout */
    body.woocommerce-cart .page-container,
    body.woocommerce-checkout .page-container {
        padding-top: 40px !important;
        margin-top: 0 !important;
    }
    body.woocommerce-checkout .checkout-page-title,
    body.woocommerce-cart .cart-page-title {
        margin-top: 0 !important;
    }
}

/* ==========================================================================
   GLOBAL MOBILE CONTENT SPACING UNIFICATION (GENEROUS SPACE LIKE HOTELS)
   ========================================================================== */
@media (max-width: 991px) {
    /* Set a unified, comfortable, generous top space for ALL page wrappers 
       This matches the "excellent" space originally seen on the Hotels page. */
    
    /* 1. Shop, Categories & Single Products */
    .shop-main, 
    .custom-single-product, 
    body.archive main.site-main {
        padding-top: 80px !important;
        margin-top: 0 !important;
    }
    
    /* 2. Service Pages (Hotels, Events, Florals) */
    .service-page {
        padding-top: 80px !important;
        margin-top: 0 !important;
    }
    
    /* 3. Default Pages (Philosophy, Contact, Terms) */
    .default-page {
        padding-top: 80px !important;
        margin-top: 0 !important;
    }
    
    /* 4. Cart & Checkout */
    body.woocommerce-cart .page-container,
    body.woocommerce-checkout .page-container {
        padding-top: 80px !important;
        margin-top: 0 !important;
    }
}

/* ==========================================================================
   TRUE UNIFICATION: SPACE ABOVE THE HEADER (FIX FOR WP ADMIN BAR INTERFERENCE)
   ========================================================================== */
@media (max-width: 991px) {
    /* 1. Force the HTML and BODY to have exactly ZERO top margin/padding to prevent WordPress Admin Bar from causing discrepancies between WooCommerce and standard pages */
    html, body {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
    
    /* 2. Set the EXACT space ABOVE the logo and hamburger menu */
    header.site-header {
        padding-top: 35px !important; /* The space ABOVE the header */
        padding-bottom: 15px !important;
        top: 0 !important;
        margin-top: 0 !important;
        position: relative !important; /* Ensure it stays at the top consistently */
    }
    
    /* 3. Revert the content margins that I mistakenly added */
    .shop-main, 
    .custom-single-product, 
    body.archive main.site-main,
    .service-page,
    .default-page,
    body.woocommerce-cart .page-container,
    body.woocommerce-checkout .page-container {
        padding-top: 0 !important; 
    }
}

/* ==========================================================================
   MY ACCOUNT: ORDERS ACTION BUTTON FIX (BLACK ON BLACK FIX)
   ========================================================================== */
.woocommerce-MyAccount-orders .woocommerce-button.button {
    background: transparent !important;
    border: 1px solid #ccc !important;
    color: #585555 !important;
    font-family: "Angie Pro", sans-serif !important;
    text-transform: none !important;
    border-radius: 0 !important;
    padding: 8px 20px !important;
    font-size: 16px !important;
    transition: all 0.3s ease !important;
}

.woocommerce-MyAccount-orders .woocommerce-button.button:hover {
    background: #f5f5f5 !important;
    color: #333 !important;
    border-color: #999 !important;
}

/* ==========================================================================
   MY ACCOUNT: WOOCOMMERCE MESSAGE BUTTONS (BLACK ON BLACK FIX)
   ========================================================================== */
.woocommerce-account .woocommerce-message .button,
.woocommerce-account .woocommerce-info .button,
.woocommerce-account .woocommerce-error .button {
    background: transparent !important;
    border: 1px solid #ccc !important;
    color: #585555 !important;
    font-family: "Angie Pro", sans-serif !important;
    text-transform: none !important;
    border-radius: 0 !important;
    padding: 8px 20px !important;
    font-size: 16px !important;
    transition: all 0.3s ease !important;
    float: left !important; /* Depending on RTL/LTR, usually buttons in notices float right */
    margin-right: 15px !important;
    margin-top: -5px !important;
}

.woocommerce-account .woocommerce-message .button:hover,
.woocommerce-account .woocommerce-info .button:hover,
.woocommerce-account .woocommerce-error .button:hover {
    background: #f5f5f5 !important;
    color: #333 !important;
    border-color: #999 !important;
}

/* ==========================================================================
   MY ACCOUNT: WOOCOMMERCE MESSAGE BUTTONS WIDER
   ========================================================================== */
.woocommerce-account .woocommerce-message .button,
.woocommerce-account .woocommerce-info .button,
.woocommerce-account .woocommerce-error .button,
.woocommerce-MyAccount-orders .woocommerce-button.button {
    padding: 10px 30px !important; /* Increased padding */
    min-width: max-content !important; /* Allow the button to be as wide as the text */
    white-space: nowrap !important; /* Prevent text from wrapping into multiple lines */
    text-align: center !important;
}

/* ==========================================================================
   MY ACCOUNT PAGE: RESTORE FULL WIDTH (LIKE CART/CHECKOUT)
   ========================================================================== */
/* The default-page styles squeezed standard pages to 900px. We need to restore the full 1250px canvas for the My Account dashboard so it isn't squashed in the middle. */
body.woocommerce-account .page-container {
    max-width: 1250px !important;
    padding: 0 20px !important;
}

/* ==========================================================================
   MY ACCOUNT: LOGIN / REGISTER PAGE STYLING
   ========================================================================== */
/* Center the login form if it's the only thing on the page */
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register,
.woocommerce-account #customer_login {
    max-width: 500px !important;
    margin: 0 auto 80px auto !important;
    background: #fff !important;
    padding: 40px !important;
    border: 1px solid #eee !important;
    border-radius: 0 !important;
}

/* Center the headings */
.woocommerce-account h2, 
.woocommerce-account #customer_login h2 {
    text-align: center !important;
    font-family: "Angie Pro", sans-serif !important;
    font-size: 2.2rem !important;
    margin-bottom: 30px !important;
    color: #111 !important;
}

/* Form Inputs Styling */
.woocommerce-account .woocommerce-form-login input.input-text,
.woocommerce-account .woocommerce-form-register input.input-text {
    width: 100% !important;
    border: none !important;
    border-bottom: 1px solid #ccc !important;
    background: transparent !important;
    padding: 10px 0 !important;
    font-size: 16px !important;
    font-family: "Jost", sans-serif !important;
    color: #333 !important;
    margin-bottom: 25px !important;
    border-radius: 0 !important;
}

.woocommerce-account .woocommerce-form-login input.input-text:focus,
.woocommerce-account .woocommerce-form-register input.input-text:focus {
    border-bottom-color: #111 !important;
    outline: none !important;
}

/* Remove default labels (optional, but makes it cleaner if we use placeholders, or keep them elegant) */
.woocommerce-account .woocommerce-form-login label,
.woocommerce-account .woocommerce-form-register label {
    font-family: "Jost", sans-serif !important;
    color: #585555 !important;
    font-weight: 400 !important;
    font-size: 14px !important;
    margin-bottom: 5px !important;
    display: block !important;
}

.woocommerce-account .woocommerce-form-login label.inline {
    display: inline-block !important;
    margin-bottom: 0 !important;
    margin-left: 10px !important;
}

/* Login Button Styling */
.woocommerce-account .woocommerce-form-login .woocommerce-button.button,
.woocommerce-account .woocommerce-form-register .woocommerce-button.button {
    background: transparent !important;
    border: 1px solid #ccc !important;
    color: #585555 !important;
    font-family: "Angie Pro", sans-serif !important;
    text-transform: none !important;
    border-radius: 0 !important;
    padding: 10px 40px !important;
    font-size: 18px !important;
    transition: all 0.3s ease !important;
    width: 100% !important;
    margin-top: 15px !important;
    text-align: center !important;
}

.woocommerce-account .woocommerce-form-login .woocommerce-button.button:hover,
.woocommerce-account .woocommerce-form-register .woocommerce-button.button:hover {
    background: #f5f5f5 !important;
    color: #333 !important;
    border-color: #999 !important;
}

/* Lost Password Link */
.woocommerce-account .woocommerce-form-login .lost_password {
    text-align: center !important;
    margin-top: 20px !important;
    margin-bottom: 0 !important;
}

.woocommerce-account .woocommerce-form-login .lost_password a {
    font-family: "Jost", sans-serif !important;
    color: #999 !important;
    text-decoration: none !important;
    font-size: 14px !important;
    transition: color 0.3s ease !important;
}

.woocommerce-account .woocommerce-form-login .lost_password a:hover {
    color: #111 !important;
}

/* ==========================================================================
   MY ACCOUNT: HANDLE TWO-COLUMN LOGIN/REGISTER SAFELY
   ========================================================================== */
@media (min-width: 768px) {
    .woocommerce-account #customer_login {
        max-width: 900px !important;
        display: flex !important;
        justify-content: center !important;
        gap: 40px !important;
        background: transparent !important;
        border: none !important;
        padding: 0 !important;
    }
    
    .woocommerce-account #customer_login .u-column1,
    .woocommerce-account #customer_login .u-column2 {
        flex: 1 !important;
        background: #fff !important;
        padding: 40px !important;
        border: 1px solid #eee !important;
        margin: 0 !important;
    }
}

/* Remove default float behavior */
.woocommerce-account .col2-set::after,
.woocommerce-account .col2-set::before {
    display: none !important;
}

/* ==========================================================================
   MY ACCOUNT: WIDEN LOGIN BOX & CONTENT
   ========================================================================== */
/* Make the login box much wider and prominent */
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register,
.woocommerce-account #customer_login {
    max-width: 800px !important; /* Increased from 500px to 800px */
    padding: 60px 80px !important; /* Huge luxurious padding on Desktop */
}

/* Make inputs look thicker and more substantial */
.woocommerce-account .woocommerce-form-login input.input-text,
.woocommerce-account .woocommerce-form-register input.input-text {
    padding: 15px 0 !important; /* Thicker inputs */
    font-size: 18px !important; /* Larger text */
    margin-bottom: 35px !important;
}

.woocommerce-account .woocommerce-form-login label,
.woocommerce-account .woocommerce-form-register label {
    font-size: 16px !important; /* Larger labels */
    margin-bottom: 10px !important;
}

.woocommerce-account h2, 
.woocommerce-account #customer_login h2 {
    font-size: 2.8rem !important; /* Larger title */
    margin-bottom: 40px !important;
}

.woocommerce-account .woocommerce-form-login .woocommerce-button.button,
.woocommerce-account .woocommerce-form-register .woocommerce-button.button {
    padding: 15px 40px !important; /* Thicker button */
    font-size: 20px !important;
    margin-top: 25px !important;
}

/* Mobile Adjustments for the wider box */
@media (max-width: 767px) {
    .woocommerce-account .woocommerce-form-login,
    .woocommerce-account .woocommerce-form-register,
    .woocommerce-account #customer_login {
        max-width: 100% !important;
        padding: 40px 20px !important; /* Smaller padding on mobile */
    }
}

/* Ensure absolute full width for account content */
body.woocommerce-account .woocommerce {
    max-width: 100% !important;
}

/* ==========================================================================
   MY ACCOUNT: FIX BROKEN LOGIN PAGE LAYOUT (FORCE STACKING & CENTERING)
   ========================================================================== */
/* Force the container to behave like a standard block (disables any flex/grid from other rules) */
body.woocommerce-account .woocommerce {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* Center and stack the Error Messages, Title, and Form perfectly */
body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper,
body.woocommerce-account .woocommerce > h2,
body.woocommerce-account .woocommerce-form-login,
body.woocommerce-account .woocommerce-form-register,
body.woocommerce-account #customer_login {
    display: block !important;
    max-width: 800px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
}

/* Specific spacing for the Title */
body.woocommerce-account .woocommerce > h2 {
    margin-bottom: 30px !important;
    margin-top: 0 !important;
    text-align: center !important;
}

/* Specific spacing for Notices */
body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper {
    margin-bottom: 20px !important;
}

/* ==========================================================================
   SERVICE PAGES: ADJUST CONTACT SECTION WIDTH
   ========================================================================== */
.service-contact-section {
    max-width: 950px !important; /* Decreased from 1200px for a more elegant form/text layout */
    margin-left: auto !important;
    margin-right: auto !important;
}

/* ==========================================================================
   SERVICE PAGES: DECREASE CONTACT SECTION WIDTH FURTHER
   ========================================================================== */
.service-contact-section {
    max-width: 800px !important; /* Decreased further from 950px to 800px */
}

/* ==========================================================================
   SERVICE PAGES: SEPARATE TEXT & FORM WIDTH
   ========================================================================== */
/* Container width (Allows the text to be wider) */
.service-contact-section {
    max-width: 1100px !important; /* Increased again to give the text space to stretch */
}

/* Keep the contact form itself smaller and neat */
.service-custom-form,
.service-contact-section > div[style*="text-align:center"] {
    max-width: 800px !important;
    margin-left: 0 !important; /* Align left with text */
    margin-right: auto !important;
}

/* Optional: if you want the text to not wrap too awkwardly, set a specific max-width just for the text */
.service-contact-text {
    max-width: 1100px !important;
}

/* ==========================================================================
   SERVICE PAGES: CENTER TEXT & FORM
   ========================================================================== */
/* Center the text */
.service-contact-text {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Center the form */
.service-custom-form,
.service-contact-section > div[style*="text-align:center"] {
    margin-left: auto !important;
    margin-right: auto !important;
}

/* ==========================================================================
   REDESIGN MAIN MENU FROM SIDEBAR TO DROPDOWN
   ========================================================================== */
.sidebar-navigation {
    position: fixed !important;
    top: -100% !important; /* Hide above */
    left: 20px !important; /* Aligned with hamburger icon */
    width: max-content !important; /* Sized exactly to menu width! No empty space */
    min-width: 250px !important;
    height: auto !important; /* Sized exactly to menu height! No 100vh */
    background: #fff !important;
    z-index: 1000 !important;
    transition: top 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.3s ease !important;
    padding: 30px 40px !important; /* Neat padding */
    box-shadow: 0 10px 30px rgba(0,0,0,0.08) !important;
    border-radius: 4px !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

.sidebar-navigation.open {
    top: 100px !important; /* Drops down just under the header */
    opacity: 1 !important;
    visibility: visible !important;
}

/* Hide the X close button because dropdowns close by clicking outside (overlay) or clicking hamburger again */
.sidebar-navigation .close-menu {
    display: none !important;
}

/* Adjust padding of the ul to remove any leftover space */
.sidebar-navigation ul {
    margin: 0 !important;
    padding: 0 !important;
}

.sidebar-navigation ul li:last-child {
    margin-bottom: 0 !important; /* Remove bottom space on the last item */
}

/* --- MOBILE SPECIFIC STYLING --- */
@media (max-width: 767px) {
    .sidebar-navigation {
        left: 15px !important;
        right: 15px !important;
        width: calc(100% - 30px) !important; /* Fit nicely on mobile screen without touching edges */
        min-width: auto !important;
        text-align: center !important; /* Center text on mobile dropdown */
    }
    
    .sidebar-navigation.open {
        top: 80px !important; /* Slightly higher on mobile because header is smaller */
    }
}

/* ==========================================================================
   CONTACT FORM 7: ADD SPACE BETWEEN LABEL TEXT AND INPUT
   ========================================================================== */
.wpcf7 form .wpcf7-text,
.wpcf7 form .wpcf7-textarea,
.wpcf7 form .wpcf7-select,
.wpcf7 form .wpcf7-date {
    margin-top: 15px !important; /* Adds space between the label text and the input box */
}

/* ==========================================================================
   CONTACT FORM 7: SET LABEL OPACITY
   ========================================================================== */
.wpcf7 form label {
    opacity: 0.7 !important;
}

/* ==========================================================================
   CONTACT FORM 7: SET SUBMIT BUTTON OPACITY
   ========================================================================== */
.wpcf7 form .wpcf7-submit {
    opacity: 0.8 !important;
}

.wpcf7 form .wpcf7-submit:hover {
    opacity: 1 !important; /* Optional: Make it fully solid on hover for a nice effect */
}

/* ==========================================================================
   DROPDOWN MENU: FADE IN ANIMATION, POSITIONING & TRANSPARENCY
   ========================================================================== */
.sidebar-navigation {
    top: 70px !important; /* Position it right near the hamburger icon (instead of 100px) */
    background: rgba(255, 255, 255, 0.8) !important; /* 80% opacity for an elegant frosted glass look */
    backdrop-filter: blur(10px) !important; /* Optional: Adds a modern blur to the background */
    -webkit-backdrop-filter: blur(10px) !important;
    transition: opacity 0.4s ease, visibility 0.4s ease !important; /* Only fade-in animation, NO sliding */
    transform: none !important;
}

.sidebar-navigation.open {
    top: 70px !important; /* Keep the exact same top position to prevent sliding */
    opacity: 1 !important;
    visibility: visible !important;
}

/* --- MOBILE SPECIFIC STYLING --- */
@media (max-width: 767px) {
    .sidebar-navigation {
        top: 60px !important; /* Closer on mobile */
    }
    .sidebar-navigation.open {
        top: 60px !important; /* Closer on mobile */
    }
}

/* ==========================================================================
   DROPDOWN MENU: DECREASE BLUR & INCREASE TRANSPARENCY (70%)
   ========================================================================== */
.sidebar-navigation {
    background: rgba(255, 255, 255, 0.7) !important; /* 70% opacity as requested */
    backdrop-filter: blur(4px) !important; /* Reduced blur significantly */
    -webkit-backdrop-filter: blur(4px) !important;
}

/* ==========================================================================
   DROPDOWN MENU: INCREASE TRANSPARENCY (60%)
   ========================================================================== */
.sidebar-navigation {
    background: rgba(255, 255, 255, 0.6) !important; /* 60% opacity */
}

/* ==========================================================================
   SERVICE PAGES TITLE TYPOGRAPHY OVERRIDES (FIGMA UPDATE)
   ========================================================================== */
.service-page-title {
    font-family: "Angie Pro", serif !important;
    font-weight: 400 !important;
    font-size: 96px !important;
    line-height: 1 !important; /* 100% */
    letter-spacing: 0 !important;
    color: #585555 !important;
    text-transform: none !important;
}

@media (max-width: 991px) {
    .service-page-title {
        font-size: 52px !important; /* Scaled down nicely for mobile */
    }
}

/* ==========================================================================
   SERVICE PAGES TYPOGRAPHY REFINEMENT (TITLE & CONTENT SCALING)
   Pages: Events, Hotels, Home Florals
   ========================================================================== */
.service-page-title {
    font-size: 48px !important; /* Decreased further from 72px for balanced luxury aesthetic */
    line-height: 1.15 !important;
}

.service-subtitle {
    font-size: 38px !important; /* Decreased from 62px */
    line-height: 1.25 !important;
    margin-bottom: 50px !important;
}

.service-text-block {
    font-size: 30px !important; /* Decreased from 48px */
    line-height: 1.35 !important;
}

.service-bottom-text {
    font-size: 32px !important; /* Decreased from 46px */
    line-height: 1.25 !important;
}

.service-contact-text {
    font-size: 36px !important; /* Enlarged from 24px per user request */
    line-height: 1.35 !important;
}

.service-img-overlay .caption {
    font-size: 22px !important; /* Decreased from 36px */
}

.home-labels-grid .img-with-label p,
.img-with-label p {
    font-size: 20px !important; /* Decreased from 32px */
}

@media (max-width: 991px) {
    .service-page-title {
        font-size: 30px !important; /* Decreased from 40px */
        line-height: 1.15 !important;
    }

    .service-subtitle {
        font-size: 26px !important; /* Decreased from 36px */
        line-height: 1.25 !important;
        margin-bottom: 30px !important;
    }

    .service-text-block {
        font-size: 20px !important; /* Decreased from 28px */
        line-height: 1.35 !important;
    }

    .service-bottom-text {
        font-size: 20px !important; /* Decreased from 26px */
        line-height: 1.25 !important;
    }

    .service-contact-text {
        font-size: 22px !important; /* Scaled for mobile */
        line-height: 1.4 !important;
    }

    .service-img-overlay .caption {
        font-size: 16px !important; /* Decreased from 24px */
    }

    .home-labels-grid .img-with-label p,
    .img-with-label p {
        font-size: 15px !important; /* Decreased from 24px */
    }
}

/* ==========================================================================
   SERVICE PAGES: GET IN TOUCH BUTTON HOVER OVERRIDE
   ========================================================================== */
.btn-outline-center:hover {
    border-color: #ccc !important; /* Keep the original light border color on hover */
}

/* ==========================================================================
   SERVICE PAGES: SHIFT TEXT BLOCK SLIGHTLY LEFT ON DESKTOP
   ========================================================================== */
@media (min-width: 992px) {
    .service-grid-50-50 .service-text-block {
        transform: translateX(-40px) !important; /* Move it slightly to the left towards the image */
    }
}

/* ==========================================================================
   PHILOSOPHY PAGE: INCREASE CONTENT PARAGRAPHS SIZE TO 28PX
   ========================================================================== */
.philosophy-content p {
    font-size: 32px !important; /* Increased font size */
    font-weight: 300 !important; /* Reduced weight to Light */
    line-height: 1.65 !important; /* Adjusted line height for better readability at larger size */
}

@media (max-width: 991px) {
    .philosophy-content p {
        font-size: 22px !important; /* Mobile size */
    }
}

/* ==========================================================================
   PHILOSOPHY PAGE: INCREASE SPACE BEFORE FOOTER
   ========================================================================== */
.philosophy-content {
    margin-bottom: 150px !important; /* Adds a large clean space between text and footer */
}

@media (max-width: 991px) {
    .philosophy-content {
        margin-bottom: 80px !important; /* Proper spacing for mobile */
    }
}

/* ==========================================================================
   CONTACT PAGE: CHANGE ALL TEXT COLORS TO #585555
   ========================================================================== */
.contact-info-col .contact-title,
.contact-info-col .contact-subtitle,
.contact-info-col .contact-label,
.contact-info-col .contact-link,
.contact-info-col .contact-branch,
.contact-info-col * {
    color: #585555 !important; /* Update all text color in this column to the requested dark grey */
}

/* ==========================================================================
   CONTACT PAGE: INCREASE SPACE BELOW HEADER
   ========================================================================== */
.contact-page {
    padding-top: 150px !important; /* Increased space between the header and the start of the content */
}

@media (max-width: 991px) {
    .contact-page {
        padding-top: 100px !important; /* Good spacing for mobile */
    }
}

/* ==========================================================================
   REDESIGN CART & ACCOUNT DRAWERS TO ELEGANT DROPDOWNS
   ========================================================================== */
.side-drawer {
    position: fixed !important;
    top: 70px !important;
    right: 20px !important; /* Drops down from the right icons */
    left: auto !important;
    width: max-content !important;
    min-width: 350px !important;
    max-width: 400px !important;
    height: auto !important;
    max-height: 80vh !important; /* Prevents it from going offscreen */
    background: rgba(255, 255, 255, 0.6) !important;
    backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important;
    z-index: 1000 !important;
    transition: opacity 0.4s ease, visibility 0.4s ease !important; /* Fade-in animation, NO sliding */
    padding: 30px !important;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08) !important;
    border-radius: 4px !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: none !important;
    overflow-y: auto !important;
}

.side-drawer.open {
    top: 70px !important; /* Keep the exact same top position to prevent sliding */
    opacity: 1 !important;
    visibility: visible !important;
}

/* Hide the close X button since clicking overlay or icon toggles it */
.side-drawer .close-drawer {
    display: none !important;
}

/* Adjust header inside the dropdown */
.drawer-header {
    margin-bottom: 20px !important;
    display: block !important;
    text-align: center !important;
}
.drawer-title {
    font-size: 24px !important;
    margin: 0 !important;
}

/* --- MOBILE SPECIFIC STYLING --- */
@media (max-width: 767px) {
    .side-drawer {
        top: 60px !important;
        right: 15px !important;
        width: calc(100% - 30px) !important; /* Full width minus margins on mobile */
        min-width: auto !important;
    }
    .side-drawer.open {
        top: 60px !important;
    }
}

/* ==========================================================================
   REMOVE DARK OVERLAY FOR DROPDOWNS
   ========================================================================== */
.drawer-overlay {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

/* ==========================================================================
   FIX Z-INDEX ISSUE: ALLOW CLICKING INSIDE DRAWERS
   ========================================================================== */
.drawer-overlay {
    z-index: 998 !important; /* Ensure the overlay is BEHIND the drawer */
}

.side-drawer {
    z-index: 1000 !important; /* Ensure the drawer is IN FRONT of the overlay */
}


/* ==========================================================================
   MINI CART: PROFESSIONAL DROPDOWN POLISH
   ========================================================================== */
.cart-drawer {
    min-width: 380px !important; /* Perfect width for a professional cart dropdown */
    padding: 25px !important; /* Clean inner padding */
}

/* Hide the duplicate title inside the widget if any */
.cart-drawer .widget_title {
    display: none !important;
}

ul.woocommerce-mini-cart {
    padding: 0 !important;
    margin: 0 !important;
}

li.woocommerce-mini-cart-item {
    padding: 20px 0 !important;
    border-bottom: 1px solid rgba(0,0,0,0.05) !important; /* Very subtle border */
    position: relative !important;
}

/* Product Image */
.woocommerce-mini-cart-item img {
    width: 75px !important;
    height: auto !important;
    border-radius: 6px !important;
    margin-right: 15px !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.03) !important;
}

/* Product Title */
.woocommerce-mini-cart-item a:not(.remove) {
    font-family: "Jost", sans-serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    color: #333 !important;
    text-decoration: none !important;
    margin-bottom: 5px !important;
}

/* Price & Quantity */
.woocommerce-mini-cart-item .quantity {
    font-family: "Jost", sans-serif !important;
    font-size: 14px !important;
    color: #777 !important;
    display: block !important;
    margin-top: 5px !important;
}

/* Remove Icon */
.woocommerce-mini-cart-item a.remove {
    font-size: 20px !important;
    color: #ccc !important;
    position: absolute !important;
    right: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    transition: color 0.3s ease !important;
}
.woocommerce-mini-cart-item a.remove:hover {
    color: #ff4d4d !important;
    background: transparent !important;
}

/* Subtotal */
.woocommerce-mini-cart__total {
    padding: 20px 0 !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    font-family: "Jost", sans-serif !important;
    font-size: 18px !important;
    color: #111 !important;
    border-top: 1px solid rgba(0,0,0,0.05) !important;
    margin-top: 10px !important;
}

/* Buttons Container */
.woocommerce-mini-cart__buttons {
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
}

/* View Cart & Checkout Buttons */
.woocommerce-mini-cart__buttons .button {
    font-family: "Jost", sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    padding: 14px !important;
    border-radius: 4px !important;
    letter-spacing: 0 !important;
}

/* --- MOBILE SPECIFIC STYLING --- */
@media (max-width: 767px) {
    .cart-drawer {
        min-width: auto !important;
        width: calc(100% - 30px) !important; /* Perfect fit */
        padding: 20px !important;
    }
}

/* ==========================================================================
   MINI CART: HIDE COUPON & NOTE ICONS
   ========================================================================== */
.cart-drawer-tools,
.cart-drawer-note-field,
.cart-drawer-coupon-field {
    display: none !important;
}

/* ==========================================================================
   MINI CART: REMOVE DUPLICATE SEPARATOR LINE
   ========================================================================== */
.woocommerce-mini-cart__total {
    border-top: none !important; /* Removes the extra line above the subtotal */
}

/* ==========================================================================
   UNIFY ALL SITE BUTTONS TO MATCH CONTACT FORM "SEND" BUTTON
   ========================================================================== */
.button, 
input[type="submit"], 
.wpcf7-submit, 
.btn-outline-center, 
.woocommerce a.button, 
.woocommerce button.button, 
.woocommerce input.button, 
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button, 
#place_order {
    font-family: "Angie Pro", sans-serif !important;
    font-weight: 400 !important;
    font-size: 22px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    color: #585555 !important;
    background-color: transparent !important;
    border: 1px solid #ccc !important;
    border-radius: 0 !important;
    text-transform: none !important;
    padding: 10px 30px !important;
    opacity: 0.8 !important;
    transition: opacity 0.3s ease, background-color 0.3s ease, color 0.3s ease !important;
    box-shadow: none !important;
    transform: none !important;
    text-align: center !important;
}

/* Hover state for all buttons */
.button:hover, 
input[type="submit"]:hover, 
.wpcf7-submit:hover, 
.btn-outline-center:hover, 
.woocommerce a.button:hover, 
.woocommerce button.button:hover, 
.woocommerce input.button:hover, 
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover, 
#place_order:hover {
    background-color: #f9f9f9 !important;
    color: #333 !important;
    opacity: 1 !important;
    border-color: #ccc !important;
    box-shadow: none !important;
    transform: none !important;
}

/* Specific fix for Drawer Buttons to span full width beautifully */
.cart-drawer .button,
.account-drawer .button,
.account-drawer input[type="submit"] {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    margin-top: 10px !important;
}

/* Mobile size for all buttons */
@media (max-width: 991px) {
    .button, 
    input[type="submit"], 
    .wpcf7-submit, 
    .btn-outline-center, 
    .woocommerce a.button, 
    .woocommerce button.button, 
    .woocommerce input.button, 
    .woocommerce-cart .wc-proceed-to-checkout a.checkout-button, 
    #place_order {
        font-size: 18px !important;
        padding: 10px 20px !important;
    }
}

/* ==========================================================================
   SERVICE PAGES: GET IN TOUCH BUTTON REFINED SIZE
   ========================================================================== */
.btn-outline-center {
    font-size: 18px !important; /* Slightly enlarged per user request */
    padding: 9px 30px !important; /* Balanced refined padding */
}

@media (max-width: 991px) {
    .btn-outline-center {
        font-size: 15px !important; /* Slightly enlarged for mobile */
        padding: 8px 22px !important;
    }
}

/* ==========================================================================
   MINI CART BUTTONS FIX: OVERRIDE ALL OLD SHADOWS, COLORS & BORDERS
   ========================================================================== */
.woocommerce-mini-cart__buttons .button,
.woocommerce-mini-cart__buttons .button.checkout {
    background-color: transparent !important; /* Force transparent background */
    color: #585555 !important;                /* Force elegant grey text */
    border: 1px solid #ccc !important;        /* Force light grey border */
    box-shadow: none !important;              /* Remove all shadows */
    transform: none !important;               /* Remove all hover jumping */
}

.woocommerce-mini-cart__buttons .button:hover,
.woocommerce-mini-cart__buttons .button.checkout:hover {
    background-color: #f9f9f9 !important;     /* Light grey on hover */
    color: #333 !important;                   /* Dark text on hover (now visible) */
    border-color: #ccc !important;            /* Keep light grey border, NO black borders */
    box-shadow: none !important;              /* Ensure no shadows on hover */
    transform: none !important;               /* Ensure no jumping on hover */
}

/* ==========================================================================
   MINI CART: TYPOGRAPHY COLORS & BUTTON FIXES
   ========================================================================== */
/* Title "Your Cart" */
.cart-drawer .drawer-title {
    color: #585555 !important;
}

/* Product Name & Price & Subtotal */
.cart-drawer .woocommerce-mini-cart-item a:not(.remove),
.cart-drawer .woocommerce-mini-cart-item .quantity,
.cart-drawer .woocommerce-mini-cart-item .quantity .amount,
.cart-drawer .woocommerce-mini-cart__total,
.cart-drawer .woocommerce-mini-cart__total strong,
.cart-drawer .woocommerce-mini-cart__total .amount {
    color: #585555 !important;
}

/* Fix View Cart button normal state (Remove black border and text) */
.woocommerce-mini-cart__buttons a.button:not(.checkout) {
    background: transparent !important;
    color: #585555 !important;
    border: 1px solid #ccc !important; /* Elegant light grey border */
}

/* ==========================================================================
   MINI CART: ENHANCED GREY HOVER FOR BUTTONS
   ========================================================================== */
.woocommerce-mini-cart__buttons .button:hover,
.woocommerce-mini-cart__buttons .button.checkout:hover {
    background-color: #eaeaea !important; /* A slightly darker light-grey that is more visible */
}

/* ==========================================================================
   MINI CART: VIEW CART BUTTON SOLID WHITE BACKGROUND
   ========================================================================== */
.woocommerce-mini-cart__buttons a.button:not(.checkout) {
    background-color: #fff !important; /* Force solid white background for View Cart only */
}

/* ==========================================================================
   MY ACCOUNT DRAWER: FORCE UNIFIED BUTTON STYLING (LIKE SEND BUTTON)
   ========================================================================== */
.account-drawer button,
.account-drawer input[type="submit"],
.account-drawer .woocommerce-button,
.account-drawer .button {
    background-color: transparent !important; /* Transparent background */
    border: 1px solid #ccc !important;        /* Light grey border */
    color: #585555 !important;                /* Elegant dark grey text */
    font-family: "Angie Pro", sans-serif !important;
    font-weight: 400 !important;
    font-size: 22px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    padding: 12px 30px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    width: 100% !important;                   /* Full width in the dropdown */
    display: block !important;
    transition: background-color 0.3s ease, color 0.3s ease !important;
}

/* Hover state */
.account-drawer button:hover,
.account-drawer input[type="submit"]:hover,
.account-drawer .woocommerce-button:hover,
.account-drawer .button:hover {
    background-color: #eaeaea !important;     /* Light grey on hover */
    color: #333 !important;                   /* Darker text on hover */
    border-color: #ccc !important;
    box-shadow: none !important;
    transform: none !important;
}

/* ==========================================================================
   FIX AUTH TABS (SIGN IN / REGISTER TABS)
   ========================================================================== */
.account-drawer .auth-tabs {
    display: flex !important;
    justify-content: center !important;
    border-bottom: 1px solid #eaeaea !important;
    margin-bottom: 20px !important;
    padding: 0 !important;
}

.account-drawer button.auth-tab {
    background: transparent !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    padding: 10px 20px !important;
    font-family: "Jost", sans-serif !important;
    font-size: 18px !important;
    color: #999 !important;
    width: auto !important;
    display: inline-block !important;
    margin: 0 !important;
    border-radius: 0 !important;
    text-transform: none !important;
    opacity: 1 !important;
}

.account-drawer button.auth-tab:hover {
    background: transparent !important;
    color: #555 !important;
    border-bottom: 2px solid transparent !important;
}

.account-drawer button.auth-tab.active {
    color: #111 !important;
    border-bottom-color: #111 !important;
    font-weight: 500 !important;
}

/* ==========================================================================
   CART PAGE: PROCEED TO CHECKOUT BUTTON FIX
   ========================================================================== */
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce .cart-collaterals .wc-proceed-to-checkout a.checkout-button {
    background-color: transparent !important;
    border: 1px solid #ccc !important;
    color: #585555 !important;
    font-family: "Angie Pro", sans-serif !important;
    font-weight: 400 !important;
    font-size: 22px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    padding: 12px 30px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    display: block !important;
    text-align: center !important;
    width: 100% !important;
    transition: background-color 0.3s ease, color 0.3s ease !important;
}

/* Hover state */
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce .cart-collaterals .wc-proceed-to-checkout a.checkout-button:hover {
    background-color: #eaeaea !important;
    color: #333 !important;
    border-color: #ccc !important;
    box-shadow: none !important;
    transform: none !important;
}

/* ==========================================================================
   CART PAGE: FORCE PROCEED TO CHECKOUT BUTTON FIX (HIGH SPECIFICITY)
   ========================================================================== */
.woocommerce .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button {
    background-color: transparent !important;
    border: 1px solid #ccc !important;
    color: #585555 !important;
    font-family: "Angie Pro", sans-serif !important;
    font-weight: 400 !important;
    font-size: 22px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    padding: 12px 30px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    display: block !important;
    text-align: center !important;
    width: 100% !important;
    transition: background-color 0.3s ease, color 0.3s ease !important;
}

/* Hover state */
.woocommerce .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button:hover {
    background-color: #eaeaea !important;
    color: #333 !important;
    border-color: #ccc !important;
    box-shadow: none !important;
    transform: none !important;
}

/* ==========================================================================
   REMOVE UNDERLINE FROM PROCEED TO CHECKOUT BUTTON
   ========================================================================== */
.woocommerce .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button {
    text-decoration: none !important;
}

/* ==========================================================================
   CHECKOUT PAGE: FORCE PLACE ORDER BUTTON FIX (HIGH SPECIFICITY)
   ========================================================================== */
.woocommerce-checkout #payment button#place_order,
body .woocommerce-checkout #place_order {
    background-color: transparent !important;
    border: 1px solid #ccc !important;
    color: #585555 !important;
    font-family: "Angie Pro", sans-serif !important;
    font-weight: 400 !important;
    font-size: 22px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    padding: 12px 30px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    display: block !important;
    text-align: center !important;
    width: 100% !important;
    transition: background-color 0.3s ease, color 0.3s ease !important;
}

/* Hover state */
.woocommerce-checkout #payment button#place_order:hover,
body .woocommerce-checkout #place_order:hover {
    background-color: #eaeaea !important;
    color: #333 !important;
    border-color: #ccc !important;
    box-shadow: none !important;
    transform: none !important;
}

/* ==========================================================================
   CART & CHECKOUT PAGES: UNIFY TEXT COLOR TO #696565
   ========================================================================== */
body.woocommerce-cart h1, body.woocommerce-cart h2, body.woocommerce-cart h3, body.woocommerce-cart h4, body.woocommerce-cart h5, body.woocommerce-cart h6,
body.woocommerce-cart p, body.woocommerce-cart span:not(.woocommerce-Price-currencySymbol), body.woocommerce-cart div:not(.button), body.woocommerce-cart th, body.woocommerce-cart td, body.woocommerce-cart label, body.woocommerce-cart a:not(.button):not(.checkout-button), body.woocommerce-cart .woocommerce-info, body.woocommerce-cart .woocommerce-message, body.woocommerce-cart .woocommerce-error,

body.woocommerce-checkout h1, body.woocommerce-checkout h2, body.woocommerce-checkout h3, body.woocommerce-checkout h4, body.woocommerce-checkout h5, body.woocommerce-checkout h6,
body.woocommerce-checkout p, body.woocommerce-checkout span:not(.woocommerce-Price-currencySymbol), body.woocommerce-checkout div:not(.button), body.woocommerce-checkout th, body.woocommerce-checkout td, body.woocommerce-checkout label, body.woocommerce-checkout a:not(.button):not(.checkout-button), body.woocommerce-checkout .woocommerce-info, body.woocommerce-checkout .woocommerce-message, body.woocommerce-checkout .woocommerce-error {
    color: #696565 !important;
}

/* Keep currency symbol dark if preferred, or just let it inherit. I'll let it inherit the #696565. 
   Actually, removing the :not(.woocommerce-Price-currencySymbol) so EVERYTHING is #696565.
*/
body.woocommerce-cart span.woocommerce-Price-currencySymbol,
body.woocommerce-checkout span.woocommerce-Price-currencySymbol,
body.woocommerce-cart strong, body.woocommerce-cart b,
body.woocommerce-checkout strong, body.woocommerce-checkout b {
    color: #696565 !important;
}

/* Make sure input text typed by users remains legible/dark */
body.woocommerce-cart input[type="text"], body.woocommerce-cart input[type="email"], body.woocommerce-cart input[type="tel"], body.woocommerce-cart textarea,
body.woocommerce-checkout input[type="text"], body.woocommerce-checkout input[type="email"], body.woocommerce-checkout input[type="tel"], body.woocommerce-checkout textarea {
    color: #333 !important;
}

/* ==========================================================================
   CART & CHECKOUT PAGES: AGGRESSIVE TEXT COLOR OVERRIDE TO #696565
   ========================================================================== */
/* Page Titles */
body h1.page-title,
body .woocommerce-cart h1.page-title,
body .woocommerce-checkout h1.page-title {
    color: #696565 !important;
}

/* Cart Table Content */
html body .woocommerce table.shop_table th,
html body .woocommerce table.shop_table td,
html body .woocommerce table.shop_table td.product-name a,
html body .woocommerce table.shop_table td.product-price .amount,
html body .woocommerce table.shop_table td.product-subtotal .amount,
html body .woocommerce-cart .cart-collaterals th,
html body .woocommerce-cart .cart-collaterals td,
html body .woocommerce-cart .cart-collaterals label,
html body .woocommerce-cart .cart-collaterals strong,
html body .woocommerce-cart .cart-collaterals b,
html body .cart_totals table.shop_table th,
html body .cart_totals table.shop_table td {
    color: #696565 !important;
}

/* Checkout Page Content */
html body .woocommerce-checkout table.shop_table th,
html body .woocommerce-checkout table.shop_table td,
html body .woocommerce-checkout table.shop_table td .amount,
html body .woocommerce-checkout table.shop_table th .amount,
html body .woocommerce-checkout #customer_details label,
html body .woocommerce-checkout #customer_details h3,
html body .woocommerce-checkout h3#order_review_heading,
html body .woocommerce-checkout #payment label,
html body .woocommerce-checkout #payment .payment_box,
html body .woocommerce-checkout .woocommerce-billing-fields h3,
html body .woocommerce-checkout .woocommerce-additional-fields h3 {
    color: #696565 !important;
}

/* Make sure we don't mess up inputs */
html body .woocommerce-checkout input[type="text"],
html body .woocommerce-checkout input[type="email"],
html body .woocommerce-checkout input[type="tel"],
html body .woocommerce-checkout textarea,
html body .woocommerce-cart input[type="text"],
html body .woocommerce-cart input[type="number"],
html body .woocommerce-cart textarea {
    color: #333 !important;
}

/* ==========================================================================
   CART & CHECKOUT PAGES: FORCE CUSTOM TITLE COLORS
   ========================================================================== */
.checkout-page-title,
.cart-page-title {
    color: #696565 !important;
}

/* ==========================================================================
   CART & CHECKOUT PAGES: ABSOLUTE KILLER OVERRIDE FOR ALL TEXT
   ========================================================================== */
body.woocommerce-cart h1, body.woocommerce-cart h2, body.woocommerce-cart h3, body.woocommerce-cart h4, body.woocommerce-cart h5, body.woocommerce-cart h6,
body.woocommerce-checkout h1, body.woocommerce-checkout h2, body.woocommerce-checkout h3, body.woocommerce-checkout h4, body.woocommerce-checkout h5, body.woocommerce-checkout h6 {
    color: #696565 !important;
}

body.woocommerce-cart p, body.woocommerce-cart span, body.woocommerce-cart div, body.woocommerce-cart th, body.woocommerce-cart td, body.woocommerce-cart label, body.woocommerce-cart b, body.woocommerce-cart strong, body.woocommerce-cart a,
body.woocommerce-checkout p, body.woocommerce-checkout span, body.woocommerce-checkout div, body.woocommerce-checkout th, body.woocommerce-checkout td, body.woocommerce-checkout label, body.woocommerce-checkout b, body.woocommerce-checkout strong, body.woocommerce-checkout a {
    color: #696565 !important;
}

/* Exempt specific elements from the nuclear override */
body.woocommerce-cart .button, body.woocommerce-cart input[type="submit"], body.woocommerce-cart button,
body.woocommerce-checkout .button, body.woocommerce-checkout input[type="submit"], body.woocommerce-checkout button {
    color: #585555 !important; /* The unified button color */
}

body.woocommerce-cart input, body.woocommerce-cart textarea, body.woocommerce-cart select,
body.woocommerce-checkout input, body.woocommerce-checkout textarea, body.woocommerce-checkout select {
    color: #333 !important; /* Normal text for inputs */
}

body.woocommerce-cart .button:hover, body.woocommerce-cart input[type="submit"]:hover, body.woocommerce-cart button:hover,
body.woocommerce-checkout .button:hover, body.woocommerce-checkout input[type="submit"]:hover, body.woocommerce-checkout button:hover {
    color: #333 !important;
}

/* ==========================================================================
   CART & CHECKOUT PAGES: TARGET CONTENT HEADINGS (GUTENBERG/ELEMENTOR)
   ========================================================================== */
body.woocommerce-cart .page-content h1,
body.woocommerce-cart .page-content h2,
body.woocommerce-cart .page-content h3,
body.woocommerce-cart .page-content h4,
body.woocommerce-cart .page-content h5,
body.woocommerce-cart .page-content h6,
body.woocommerce-cart .page-content p,
body.woocommerce-cart .page-content span,
body.woocommerce-cart .page-content div,

body.woocommerce-checkout .page-content h1,
body.woocommerce-checkout .page-content h2,
body.woocommerce-checkout .page-content h3,
body.woocommerce-checkout .page-content h4,
body.woocommerce-checkout .page-content h5,
body.woocommerce-checkout .page-content h6,
body.woocommerce-checkout .page-content p,
body.woocommerce-checkout .page-content span,
body.woocommerce-checkout .page-content div {
    color: #696565 !important;
}

/* Ensure inputs remain dark */
body.woocommerce-cart .page-content input,
body.woocommerce-cart .page-content textarea,
body.woocommerce-checkout .page-content input,
body.woocommerce-checkout .page-content textarea {
    color: #333 !important;
}

/* ==========================================================================
   CART & CHECKOUT: FEATURE BOX ICONS COLOR
   ========================================================================== */
.feature-box svg,
.feature-box i,
.feature-box path {
    color: #696565 !important;
    fill: #696565 !important;
    stroke: #696565 !important;
}

/* ==========================================================================
   CART & CHECKOUT: RESTORE OUTLINE ICONS
   ========================================================================== */
.feature-box svg,
.feature-box i,
.feature-box path {
    color: #696565 !important;
    stroke: #696565 !important;
    fill: transparent !important; /* Restore the empty/hollow look inside the icons */
}

/* ==========================================================================
   CART & CHECKOUT: REMOVE ROUNDED CORNERS (SHARP EDGES)
   ========================================================================== */
.feature-box,
.cart-collaterals,
.woocommerce-checkout #payment,
.woocommerce-checkout #payment div.payment_box,
.woocommerce-cart input,
.woocommerce-cart textarea,
.woocommerce-cart select,
.woocommerce-checkout input,
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.woocommerce-cart .select2-selection,
.woocommerce-checkout .select2-selection {
    border-radius: 0 !important;
}

/* ==========================================================================
   KILL ALL ROUNDED CORNERS (SHARP DESIGN) ON WOOCOMMERCE BOXES
   ========================================================================== */
.cart-sidebar-inner,
.cart-note-box,
.cart-collaterals,
.woocommerce-cart-form__contents,
.feature-box,
.woocommerce-checkout #order_review,
.woocommerce-checkout #customer_details,
.woocommerce-checkout form.login,
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-order-details,
.woocommerce-customer-details,
.woocommerce-order address,
.woocommerce-order ul.woocommerce-order-overview,
.woocommerce-EditAccountForm fieldset,
table.shop_table,
.woocommerce table.shop_table,
.woocommerce-page table.shop_table,
.woocommerce-checkout table.shop_table,
.cart_totals table.shop_table,
.cart-collaterals table.shop_table,
.woocommerce-checkout #payment,
.woocommerce-checkout #payment div.payment_box,
.checkout-product-wrap,
.checkout-details-wrap {
    border-radius: 0 !important;
}

/* Specific inner fixes that might have overflow hidden clipping the radius */
.cart_totals table.shop_table {
    border-radius: 0 !important;
}

/* ==========================================================================
   CART PAGE: FORCE SHARP CORNERS ON THE RIGHT SIDEBAR (.custom-cart-right)
   ========================================================================== */
.custom-cart-right {
    border-radius: 0 !important;
}

/* Also catch any other related wrappers just in case */
.custom-cart-left,
.cart-sidebar,
.cart-sidebar-inner {
    border-radius: 0 !important;
}

/* ==========================================================================
   CHECKOUT PAGE: FIX RECIPIENT DETAILS COLOR & SPACING
   ========================================================================== */
html body .woocommerce-checkout h1,
html body .woocommerce-checkout h2,
html body .woocommerce-checkout h3,
html body .woocommerce-checkout h4,
html body .woocommerce-checkout h5,
html body .woocommerce-checkout h6,
html body .woocommerce-checkout legend {
    color: #696565 !important;
    margin-top: 25px !important; /* Reduce large spacing above headings */
    margin-bottom: 15px !important;
}

html body .woocommerce-checkout .woocommerce-additional-fields,
html body .woocommerce-checkout .woocommerce-shipping-fields,
html body .woocommerce-checkout .checkout-details-wrap {
    margin-top: 20px !important;
    padding-top: 0 !important;
}

/* ==========================================================================
   CHECKOUT PAGE: FIX SHIPPING / RECIPIENT DETAILS (SPECIFIC WOOCOMMERCE FIELD)
   ========================================================================== */
#ship-to-different-address,
#ship-to-different-address label,
#ship-to-different-address span,
.woocommerce-shipping-fields h3,
.woocommerce-shipping-fields h3 label,
.woocommerce-shipping-fields h3 span {
    color: #696565 !important;
}

#ship-to-different-address,
.woocommerce-shipping-fields h3 {
    margin-top: 15px !important;
    padding-top: 0 !important;
}

.woocommerce-shipping-fields {
    margin-top: 15px !important;
    padding-top: 0 !important;
}

/* ==========================================================================
   CHECKOUT PAGE: FURTHER REDUCE SPACING AROUND RECIPIENT DETAILS
   ========================================================================== */
#ship-to-different-address,
.woocommerce-shipping-fields h3 {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.woocommerce-shipping-fields {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.woocommerce-billing-fields {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* ==========================================================================
   CHECKOUT PAGE: UNIFY RECIPIENT DETAILS FONT WITH BILLING DETAILS
   ========================================================================== */
html body .woocommerce-checkout #ship-to-different-address,
html body .woocommerce-checkout #ship-to-different-address label,
html body .woocommerce-checkout #ship-to-different-address label span {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 1.8rem !important;
    font-weight: 400 !important;
    text-transform: none !important;
    line-height: 1 !important;
    display: inline-block !important; /* to align with the checkbox nicely */
}

/* Ensure the checkbox itself aligns properly with the large text */
html body .woocommerce-checkout #ship-to-different-address input[type="checkbox"] {
    margin-right: 10px !important;
    transform: scale(1.2) !important;
    vertical-align: middle !important;
    position: relative !important;
    top: -3px !important;
}

/* ==========================================================================
   KILL ROUNDED CORNERS ON ALL SELECT/DROPDOWN MENUS (SELECT2 & NATIVE)
   ========================================================================== */
select,
.select2-container .select2-dropdown,
.select2-container .select2-selection,
.select2-container .select2-selection--single,
.select2-container .select2-selection--multiple,
.select2-results,
.select2-search input,
.select2-results__options,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple,
.select2-container--default .select2-dropdown,
.woocommerce-checkout select,
.woocommerce-cart select {
    border-radius: 0 !important;
}

/* ==========================================================================
   CHECKOUT PAGE: FIX APPLY COUPON & LOGIN BUTTONS
   ========================================================================== */
.woocommerce-checkout form.checkout_coupon .button,
.woocommerce-checkout form.checkout_coupon input[type="submit"],
.woocommerce-checkout form.login .button,
.woocommerce-checkout form.login input[type="submit"] {
    background-color: transparent !important;
    border: 1px solid #ccc !important;
    color: #585555 !important;
    font-family: "Angie Pro", sans-serif !important;
    font-weight: 400 !important;
    font-size: 22px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    padding: 12px 30px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    display: inline-block !important; /* they shouldn't necessarily be full width unless requested, let's keep them inline-block */
    transition: background-color 0.3s ease, color 0.3s ease !important;
}

/* Hover state */
.woocommerce-checkout form.checkout_coupon .button:hover,
.woocommerce-checkout form.checkout_coupon input[type="submit"]:hover,
.woocommerce-checkout form.login .button:hover,
.woocommerce-checkout form.login input[type="submit"]:hover {
    background-color: #eaeaea !important;
    color: #333 !important;
    border-color: #ccc !important;
    box-shadow: none !important;
    transform: none !important;
}

/* Mobile size for these buttons */
@media (max-width: 991px) {
    .woocommerce-checkout form.checkout_coupon .button,
    .woocommerce-checkout form.checkout_coupon input[type="submit"],
    .woocommerce-checkout form.login .button,
    .woocommerce-checkout form.login input[type="submit"] {
        font-size: 18px !important;
        padding: 10px 20px !important;
    }
}

/* ==========================================================================
   CHECKOUT PAGE: ABSOLUTE OVERRIDE FOR COUPON & LOGIN BUTTONS
   ========================================================================== */
html body.woocommerce-checkout form.checkout_coupon button.button,
html body.woocommerce-checkout form.checkout_coupon input.button,
html body.woocommerce-checkout form.checkout_coupon .button,
html body.woocommerce-checkout form.login button.button,
html body.woocommerce-checkout form.login input.button,
html body.woocommerce-checkout form.login .button {
    background-color: transparent !important;
    background: transparent !important;
    border: 1px solid #ccc !important;
    color: #585555 !important;
    font-family: "Angie Pro", sans-serif !important;
    font-weight: 400 !important;
    font-size: 22px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    padding: 12px 30px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    display: inline-block !important;
    transition: background-color 0.3s ease, color 0.3s ease !important;
}

/* Hover state */
html body.woocommerce-checkout form.checkout_coupon button.button:hover,
html body.woocommerce-checkout form.checkout_coupon input.button:hover,
html body.woocommerce-checkout form.checkout_coupon .button:hover,
html body.woocommerce-checkout form.login button.button:hover,
html body.woocommerce-checkout form.login input.button:hover,
html body.woocommerce-checkout form.login .button:hover {
    background-color: #eaeaea !important;
    background: #eaeaea !important;
    color: #333 !important;
    border-color: #ccc !important;
}

/* ==========================================================================
   SERVICE PAGES (Events, Hotels, Home Florals): SHARP IMAGES WITH BORDERS
   ========================================================================== */
.service-page img,
.service-grid-50-50 img,
.service-hero-img,
.service-full-img,
.service-img-overlay img,
.page-template-template-service img,
.page-template-template-service .wp-block-image img,
.page-template-template-service .wp-block-gallery img,
.page-template-template-service .elementor-image img {
    border-radius: 0 !important;
    border: 1px solid #eaeaea !important;
    box-sizing: border-box !important;
}

/* Ensure the border doesn't break layout by using box-sizing */
.service-page img {
    box-sizing: border-box !important;
}

/* ==========================================================================
   SERVICE PAGES (Events, Hotels, Home Florals): INCREASE IMAGE BORDER THICKNESS
   ========================================================================== */
.service-page img,
.service-grid-50-50 img,
.service-hero-img,
.service-full-img,
.service-img-overlay img,
.page-template-template-service img,
.page-template-template-service .wp-block-image img,
.page-template-template-service .wp-block-gallery img,
.page-template-template-service .elementor-image img {
    border: 1px solid #dcdcdc !important;
}

/* ==========================================================================
   FIX: REMOVE BORDERS FROM HEADER, FOOTER, AND ICONS
   ========================================================================== */
.site-header img,
.site-footer img,
header img,
footer img,
.custom-logo-link img,
.footer-logo img,
.social-icons img,
.menu-icon img {
    border: none !important;
    border-radius: 0 !important; /* Keep sharp if they had it, but no border */
}

/* More specific scoping for the service page content images */
.page-template-template-service .site-main img:not(.service-icon),
.service-page img:not(.service-icon) {
    border: 1px solid #dcdcdc !important;
    border-radius: 0 !important;
}

/* ==========================================================================
   FIX: REMOVE BORDER FROM WIDE BANNER IMAGES
   ========================================================================== */
.service-hero-img,
.service-full-img,
.page-template-template-service .service-hero-img,
.page-template-template-service .service-full-img,
img.service-hero-img,
img.service-full-img {
    border: none !important;
}

/* ==========================================================================
   FIX: ABSOLUTE OVERRIDE TO REMOVE BORDER FROM WIDE BANNER IMAGES
   ========================================================================== */
html body .site-main img.service-hero-img,
html body .service-page img.service-hero-img,
html body .page-template-template-service img.service-hero-img,
html body .site-main img.service-full-img,
html body .service-page img.service-full-img,
html body .page-template-template-service img.service-full-img {
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* ==========================================================================
   FIX: REMOVE BORDER FROM ANY WIDE/FULL-WIDTH IMAGES (GUTENBERG/ELEMENTOR)
   ========================================================================== */
/* Full width blocks */
.alignfull img,
.alignwide img,
.wp-block-cover img,
figure.alignfull img,
figure.alignwide img,
.elementor-section-stretched img,
.elementor-widget-image[data-widget_type="image.default"] img[sizes*="100vw"] {
    border: none !important;
}

/* Target the very first image block on the page (usually the banner) */
.page-content > .wp-block-image:first-child img,
.entry-content > .wp-block-image:first-child img,
.page-content > figure:first-child img,
.entry-content > figure:first-child img,
.page-container > .wp-block-image:first-child img,
.page-container > figure:first-child img {
    border: none !important;
}

/* If the banner has no specific class but spans 100% width, remove border */
img[style*="width: 100%"],
img[style*="width:100%"] {
    border: none !important;
}

/* ==========================================================================
   FIX: ULTIMATE SPECIFICITY OVERRIDE FOR BANNER IMAGES (NO BORDERS)
   ========================================================================== */
img.service-hero-img.service-hero-img.service-hero-img,
img.service-full-img.service-full-img.service-full-img {
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
}

/* ==========================================================================
   FIX: ADD BORDER BACK TO SERVICE FULL IMG (Wide content image)
   ========================================================================== */
img.service-full-img.service-full-img.service-full-img {
    border: 1px solid #dcdcdc !important;
    border-radius: 0 !important;
    box-sizing: border-box !important;
}

/* ==========================================================================
   FIX: SHARP CORNERS FOR ALL IMAGE CONTAINERS & OVERLAYS
   ========================================================================== */
.service-img-overlay,
.service-img-overlay img,
.service-grid-50-50,
.service-grid-50-50 img,
.service-grid-50-50 > div,
.service-image-block,
.service-image-block img {
    border-radius: 0 !important;
}

/* ==========================================================================
   CONTACT PAGE: TEXT COLOR OVERRIDE TO #696565
   ========================================================================== */
.contact-page .contact-title,
.contact-page .contact-subtitle,
.contact-page .contact-label,
.contact-page .contact-link,
.contact-page .contact-branch,
.contact-page .contact-social a,
.contact-page .contact-item,
.contact-page p,
.contact-page span,
.contact-page a,
.contact-page h1,
.contact-page h2,
.contact-page h3 {
    color: #696565 !important;
}

/* Ensure placeholder colors or input texts stay standard if they are in the form side */
.contact-page input,
.contact-page textarea,
.contact-page .wpcf7-submit,
.contact-page .button {
    color: inherit;
}

/* ==========================================================================
   MY ACCOUNT PAGE: SHARP CORNERS FOR ALL BOXES AND TABLES
   ========================================================================== */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-navigation ul,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-error,
.woocommerce-account table.shop_table,
.woocommerce-account table.shop_table th,
.woocommerce-account table.shop_table td,
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .woocommerce-address-fields,
.woocommerce-account .edit-account,
.woocommerce-account .woocommerce-Address,
.woocommerce-account .woocommerce-Address-title,
.woocommerce-account address {
    border-radius: 0 !important;
}

/* ==========================================================================
   MY ACCOUNT PAGE: SHARP CORNERS FOR DASHBOARD PARAGRAPHS
   ========================================================================== */
.woocommerce-account .woocommerce-MyAccount-content > p,
.woocommerce-account .woocommerce-MyAccount-content > div,
.woocommerce-account .woocommerce-MyAccount-content mark {
    border-radius: 0 !important;
}

/* ==========================================================================
   MY ACCOUNT PAGE: ADDRESSES SECTION REFINEMENT (PROPORTIONS & MOBILE)
   ========================================================================== */
.woocommerce-account .woocommerce-MyAccount-content h3 {
    font-size: 1.6rem !important; /* Reset the huge sizes to a professional baseline */
    margin-bottom: 20px !important;
    text-align: left !important;
}

.woocommerce-Address-title {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 15px !important;
    width: 100% !important;
}

.woocommerce-Address-title h3 {
    font-size: 1.8rem !important;
    margin: 0 !important;
}

.woocommerce-Address-title a.edit,
.woocommerce-Address-title a {
    font-family: "Jost", sans-serif !important;
    font-size: 0.9rem !important;
    color: #585555 !important;
    text-decoration: underline !important;
    text-transform: none !important;
    font-weight: 500 !important;
    float: none !important;
    margin: 0 !important;
}

.woocommerce-account .woocommerce-Address {
    padding: 30px !important;
}

.woocommerce-account .woocommerce-Address address {
    font-family: "Jost", sans-serif !important;
    font-size: 1.05rem !important;
    line-height: 1.8 !important;
    color: #585555 !important;
    font-style: normal !important;
    margin: 0 !important;
}

/* Ensure columns sit nicely on desktop */
.u-columns.woocommerce-Addresses.col2-set {
    display: flex !important;
    gap: 30px !important;
    flex-wrap: wrap !important;
}

.u-columns.woocommerce-Addresses.col2-set .u-column1.col-1,
.u-columns.woocommerce-Addresses.col2-set .u-column2.col-2 {
    flex: 1 !important;
    min-width: 300px !important;
    width: auto !important;
    float: none !important;
}

/* Mobile Responsiveness */
@media (max-width: 767px) {
    .woocommerce-Address-title {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 10px !important;
    }
    
    .woocommerce-Address-title h3 {
        font-size: 1.4rem !important;
    }
    
    .woocommerce-account .woocommerce-Address {
        padding: 20px !important;
    }
    
    .woocommerce-account .woocommerce-Address address {
        font-size: 0.95rem !important;
    }
}

/* ==========================================================================
   MY ACCOUNT PAGE: ABSOLUTE PIXEL FIX FOR GIANT HEADINGS
   ========================================================================== */
html body .woocommerce-account .woocommerce-MyAccount-content h3,
html body .woocommerce-account .woocommerce-Address-title h3,
html body .woocommerce-account h3 {
    font-size: 24px !important; 
    line-height: 1.2 !important;
    margin-bottom: 15px !important;
    text-align: left !important;
    word-break: normal !important;
}

html body .woocommerce-Address-title {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 15px !important;
    width: 100% !important;
}

html body .woocommerce-Address-title a.edit,
html body .woocommerce-Address-title a {
    font-size: 14px !important;
    color: #585555 !important;
    text-decoration: underline !important;
    white-space: nowrap !important;
}

html body .woocommerce-account .woocommerce-Address address {
    font-size: 16px !important;
    line-height: 1.6 !important;
    color: #585555 !important;
    font-style: normal !important;
}

@media (max-width: 767px) {
    html body .woocommerce-account .woocommerce-MyAccount-content h3,
    html body .woocommerce-account .woocommerce-Address-title h3 {
        font-size: 20px !important;
    }
    
    html body .woocommerce-Address-title {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 10px !important;
    }
    
    html body .woocommerce-account .woocommerce-Address address {
        font-size: 15px !important;
    }
}

/* ==========================================================================
   MY ACCOUNT PAGE: ADDRESSES ULTIMATE REFORMAT (ONE LINE + EDIT BELOW)
   ========================================================================== */
html body .woocommerce-account .woocommerce-MyAccount-content header.title,
html body .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important; /* Align everything to the left */
    gap: 8px !important; /* Small space between title and edit link */
    margin-bottom: 25px !important; /* Space before the actual address text */
    width: 100% !important;
}

html body .woocommerce-account .woocommerce-MyAccount-content header.title h3,
html body .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h3,
html body .woocommerce-account .woocommerce-MyAccount-content h3 {
    font-family: "Jost", sans-serif !important; /* Switch to a cleaner sans-serif font for addresses */
    font-size: 22px !important; 
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    white-space: nowrap !important; /* FORCES it to be on one single line */
}

/* The Edit Link under the title */
html body .woocommerce-account .woocommerce-MyAccount-content header.title a.edit,
html body .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title a.edit {
    font-family: "Jost", sans-serif !important;
    font-size: 13px !important;
    color: #696565 !important;
    text-decoration: none !important;
    border-bottom: 1px solid #ccc !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    padding-bottom: 2px !important;
    margin: 0 !important;
    float: none !important;
    position: relative !important;
}

/* Hide any pseudo elements just in case */
html body .woocommerce-account .woocommerce-MyAccount-content header.title a.edit::after {
    display: none !important;
}

/* Mobile Adjustments */
@media (max-width: 767px) {
    html body .woocommerce-account .woocommerce-MyAccount-content header.title h3,
    html body .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h3 {
        font-size: 18px !important;
    }
}

/* ==========================================================================
   MY ACCOUNT PAGE: ADDRESSES ULTIMATE REFORMAT (FIXED SELECTORS)
   ========================================================================== */
body.woocommerce-account .woocommerce-MyAccount-content header.title,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px !important; 
    margin-bottom: 25px !important; 
    width: 100% !important;
}

body.woocommerce-account .woocommerce-MyAccount-content header.title h3,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h3 {
    font-family: "Jost", sans-serif !important; 
    font-size: 22px !important; 
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    white-space: nowrap !important;
    border: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-content header.title a.edit,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title a.edit {
    font-family: "Jost", sans-serif !important;
    font-size: 13px !important;
    color: #696565 !important;
    text-decoration: none !important;
    border-bottom: 1px solid #ccc !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    padding-bottom: 2px !important;
    margin: 0 !important;
    float: none !important;
    position: relative !important;
}

body.woocommerce-account .woocommerce-MyAccount-content header.title a.edit::after,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title a.edit::after {
    display: none !important;
}

/* Mobile Adjustments */
@media (max-width: 767px) {
    body.woocommerce-account .woocommerce-MyAccount-content header.title h3,
    body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h3 {
        font-size: 18px !important;
    }
}

/* ==========================================================================
   MY ACCOUNT PAGE: ABSOLUTE CATCH-ALL FOR ADDRESS TITLE FONT
   ========================================================================== */
body.woocommerce-account .woocommerce-Address header.title h1,
body.woocommerce-account .woocommerce-Address header.title h2,
body.woocommerce-account .woocommerce-Address header.title h3,
body.woocommerce-account .woocommerce-Address header.title h4,
body.woocommerce-account .woocommerce-Address header.title h5,
body.woocommerce-account .woocommerce-Address header.title h6,
body.woocommerce-account .woocommerce-Address-title h1,
body.woocommerce-account .woocommerce-Address-title h2,
body.woocommerce-account .woocommerce-Address-title h3,
body.woocommerce-account .woocommerce-Address-title h4,
body.woocommerce-account .woocommerce-Address-title h5,
body.woocommerce-account .woocommerce-Address-title h6,
body.woocommerce-account .woocommerce-Address-title span,
body.woocommerce-account .woocommerce-Address-title strong,
body.woocommerce-account .woocommerce-Address-title b {
    font-family: "Jost", sans-serif !important; 
    font-size: 22px !important; 
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    white-space: nowrap !important;
    border: none !important;
}

@media (max-width: 767px) {
    body.woocommerce-account .woocommerce-Address-title h1,
    body.woocommerce-account .woocommerce-Address-title h2,
    body.woocommerce-account .woocommerce-Address-title h3,
    body.woocommerce-account .woocommerce-Address-title h4,
    body.woocommerce-account .woocommerce-Address-title h5,
    body.woocommerce-account .woocommerce-Address-title h6 {
        font-size: 18px !important;
    }
}

/* ==========================================================================
   MY ACCOUNT PAGE: EDIT LINK TEXT TRANSFORM FIX
   ========================================================================== */
body.woocommerce-account .woocommerce-MyAccount-content header.title a.edit,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title a.edit {
    text-transform: capitalize !important;
    letter-spacing: normal !important;
}

/* ==========================================================================
   MY ACCOUNT PAGE: SAVE CHANGES BUTTON ALIGNMENT & SPACING
   ========================================================================== */
.woocommerce-EditAccountForm p:last-of-type,
.woocommerce-EditAccountForm p:has(button[name="save_account_details"]) {
    text-align: center !important;
    margin-top: 40px !important;
    width: 100% !important;
}

.woocommerce-EditAccountForm button[name="save_account_details"] {
    margin: 0 auto !important;
    display: inline-block !important;
}

/* ==========================================================================
   MY ACCOUNT PAGE: FIX CONFIRM PASSWORD LABEL ALIGNMENT
   ========================================================================== */
.woocommerce-EditAccountForm fieldset p.woocommerce-form-row {
    text-align: left !important;
    margin-top: 20px !important; /* Reset margin that might have leaked */
}

/* Explicitly target the button's wrapper ONLY */
.woocommerce-EditAccountForm > p {
    text-align: center !important;
    margin-top: 40px !important;
}

/* ==========================================================================
   MY ACCOUNT PAGE: FIX ALL LABELS ALIGNMENT
   ========================================================================== */
/* Force all form rows to be left-aligned */
.woocommerce-EditAccountForm p.woocommerce-form-row,
.woocommerce-EditAccountForm p.form-row,
.woocommerce-address-fields p.form-row {
    text-align: left !important;
}

/* Ensure only the very last paragraph (the button wrapper) is centered */
.woocommerce-EditAccountForm > p:not(.woocommerce-form-row) {
    text-align: center !important;
    margin-top: 40px !important;
}

/* ==========================================================================
   MY ACCOUNT PAGE: UNIFY ALL TEXT COLORS TO #696565
   ========================================================================== */
body.woocommerce-account label,
body.woocommerce-account h1,
body.woocommerce-account h2,
body.woocommerce-account h3,
body.woocommerce-account h4,
body.woocommerce-account h5,
body.woocommerce-account h6,
body.woocommerce-account legend,
body.woocommerce-account .woocommerce-MyAccount-navigation ul li a,
body.woocommerce-account .woocommerce-MyAccount-content p,
body.woocommerce-account .woocommerce-MyAccount-content span,
body.woocommerce-account .woocommerce-MyAccount-content em,
body.woocommerce-account table.shop_table th,
body.woocommerce-account table.shop_table td {
    color: #696565 !important;
}

/* Ensure the active tab remains the same elegant color but bold */
body.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
    color: #696565 !important;
    font-weight: 700 !important;
}

/* Exempt buttons and inputs from the color override so they stay distinct */
body.woocommerce-account input[type="text"],
body.woocommerce-account input[type="email"],
body.woocommerce-account input[type="password"],
body.woocommerce-account input[type="tel"],
body.woocommerce-account textarea,
body.woocommerce-account .button {
    color: #333 !important;
}

/* The save changes button specifically */
body.woocommerce-account .button[name="save_account_details"] {
    color: #585555 !important; /* Keep our global button text color */
}

/* ==========================================================================
   MY ACCOUNT PAGE: DASHBOARD LINKS COLOR FIX
   ========================================================================== */
body.woocommerce-account .woocommerce-MyAccount-content > p a,
body.woocommerce-account .woocommerce-MyAccount-content > div a,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info a,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message a {
    color: #696565 !important;
}

/* ==========================================================================
   MY ACCOUNT PAGE: TITLE AND DIVIDER LINE COLOR
   ========================================================================== */
body.woocommerce-account h1.page-title,
body.woocommerce-account .page-title,
body.woocommerce-account h1.entry-title {
    color: #696565 !important;
}

/* Color the divider line underneath the title (usually an ::after pseudo-element or border) */
body.woocommerce-account h1.page-title::after,
body.woocommerce-account .page-title::after,
body.woocommerce-account h1.entry-title::after,
body.woocommerce-account h1.page-title::before,
body.woocommerce-account .page-title::before,
body.woocommerce-account h1.entry-title::before {
    background-color: #696565 !important;
    border-color: #696565 !important;
}

/* If the line is an actual hr element near the title */
body.woocommerce-account header.page-header hr,
body.woocommerce-account hr {
    background-color: #696565 !important;
    border-color: #696565 !important;
}

/* ==========================================================================
   MY ACCOUNT PAGE: SMALL DIVIDER LINE FIX
   ========================================================================== */
body.woocommerce-account .small-divider {
    background-color: #696565 !important;
    border-color: #696565 !important;
}

/* ==========================================================================
   MY ACCOUNT PAGE: THIN DIVIDER LINE
   ========================================================================== */
body.woocommerce-account .small-divider {
    height: 1px !important;
}

/* ==========================================================================
   FIX DRAWER TITLES (MINI CART & ACCOUNT DRAWER)
   ========================================================================== */
.drawer-title, 
.cart-drawer .drawer-title, 
.account-drawer .drawer-title,
.xoo-wsc-header .widget-title,
.widget-title {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 24px !important;
    line-height: 1.2 !important;
    margin: 0 auto !important;
    padding: 10px 0 !important;
    white-space: nowrap !important;
    text-align: center !important;
    color: #696565 !important;
}

/* ==========================================================================
   FIX DRAWER GAPS (MINI CART & ACCOUNT DRAWER)
   ========================================================================== */
.drawer-header {
    padding-bottom: 15px !important;
}

.drawer-content {
    padding-top: 15px !important;
}

.drawer-title, 
.cart-drawer .drawer-title, 
.account-drawer .drawer-title {
    margin: 0 !important;
    padding: 0 !important;
}

/* Fix any runaway margins in the drawer content */
.drawer-content p,
.drawer-content div {
    margin-top: 0 !important;
}

/* Explicitly for the account drawer widget */
.account-drawer .widget,
.cart-drawer .widget {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* ==========================================================================
   MY ACCOUNT PAGE: HIDE LOGIN TITLE
   ========================================================================== */
body.woocommerce-account:not(.logged-in) .woocommerce h2 {
    display: none !important;
}

/* ==========================================================================
   MINI CART: UNIFIED BUTTON STYLES (VIEW CART & CHECKOUT)
   ========================================================================== */
/* Apply to all buttons in the mini cart (View Cart & Checkout) */
.woocommerce-mini-cart__buttons a.button,
.woocommerce-mini-cart__buttons a.button.checkout,
.widget_shopping_cart_content .buttons a.button,
.widget_shopping_cart_content .buttons a.button.checkout {
    background-color: transparent !important;
    background: transparent !important;
    border: 1px solid #eaeaea !important;
    border-radius: 0 !important;
    color: #585555 !important;
    font-family: "Angie Pro", sans-serif !important;
    font-size: 1.1rem !important;
    text-transform: none !important;
    padding: 12px 20px !important;
    font-weight: 400 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    margin-bottom: 15px !important;
    transition: all 0.3s ease !important;
    box-shadow: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Hover State */
.woocommerce-mini-cart__buttons a.button:hover,
.woocommerce-mini-cart__buttons a.button.checkout:hover,
.widget_shopping_cart_content .buttons a.button:hover,
.widget_shopping_cart_content .buttons a.button.checkout:hover {
    background-color: #eaeaea !important;
    background: #eaeaea !important;
    color: #585555 !important;
}

/* ==========================================================================
   PRODUCT PAGE: EXPLORE ALL BOUQUETS BUTTON UNIFICATION (REFINED)
   ========================================================================== */
.btn-explore-all {
    background-color: transparent !important;
    background: transparent !important;
    border: 1px solid #eaeaea !important;
    border-radius: 0 !important;
    color: #585555 !important;
    font-family: "Angie Pro", sans-serif !important;
    text-transform: none !important;
    padding: 11px 28px !important; /* Refined smaller size */
    font-size: 13px !important; /* Refined from 1.1rem (17.6px) */
    font-weight: 400 !important;
    letter-spacing: 0.05em !important;
    transition: all 0.3s ease !important;
    box-shadow: none !important;
    text-decoration: none !important;
    display: inline-block !important;
}

.btn-explore-all:hover {
    background-color: #eaeaea !important;
    background: #eaeaea !important;
    color: #585555 !important;
}

@media (max-width: 768px) {
    .btn-explore-all {
        padding: 10px 24px !important;
        font-size: 12px !important;
    }
}

/* ==========================================================================
   SINGLE PRODUCT PAGE: PRODUCT TITLE COLOR
   ========================================================================== */
.woocommerce div.product .product_title,
.woocommerce-page div.product .product_title,
body.single-product h1.product_title {
    color: #696565 !important;
}

/* ==========================================================================
   SINGLE PRODUCT PAGE: ABSOLUTE PRODUCT TITLE COLOR
   ========================================================================== */
html body .woocommerce div.product h1.product_title,
html body .woocommerce div.product h2.product_title,
html body .woocommerce div.product .product_title,
html body.single-product .product_title,
html body.single-product h1.entry-title,
html body.single-product .summary h1 {
    color: #696565 !important;
}

/* ==========================================================================
   SINGLE PRODUCT PAGE: PRODUCT TITLE REFINED
   ========================================================================== */
.custom-single-summary h1.product-title,
.custom-single-summary .product-title,
body.single-product h1.product-title {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 38px !important; /* Refined smaller size from 56px */
    line-height: 1.15 !important;
    color: #696565 !important;
    margin: 0 0 15px 0 !important;
}

@media (max-width: 768px) {
    .custom-single-summary h1.product-title,
    .custom-single-summary .product-title,
    body.single-product h1.product-title {
        font-size: 28px !important;
        line-height: 1.2 !important;
        margin-bottom: 12px !important;
    }
}

/* ==========================================================================
   CHECKOUT PAGE: "YOUR ORDER" FONT FAMILY TO ANGIE PRO
   ========================================================================== */
html body.woocommerce-checkout #order_review_heading,
html body .woocommerce-checkout #order_review_heading,
.woocommerce-checkout h3#order_review_heading,
#order_review_heading {
    font-family: "Angie Pro", sans-serif !important;
    font-size: 1.8rem !important;
    font-weight: 400 !important;
    background: transparent !important;
    background-color: transparent !important;
}

/* ==========================================================================
   SHOP PAGE: REMOVE WIDE LINE ABOVE FILTER COLUMNS
   ========================================================================== */
body.woocommerce-shop .shop-header,
body.post-type-archive-product .shop-header,
.shop-header {
    border-bottom: none !important;
}
body.woocommerce-shop .shop-filters,
body.post-type-archive-product .shop-filters,
.shop-filters {
    border-top: none !important;
}

/* ==========================================================================

/* ==========================================================================
   OUR PHILOSOPHY PAGE: EXACT FIGMA LAYOUT MATCH
   ========================================================================== */
body.page-our-philosophy,
body.page-id-90 {
    background-color: #ffffff !important;
    background-image: none !important;
}

body.page-our-philosophy::before,
body.page-id-90::before {
    display: none !important;
    content: none !important;
}

body.page-our-philosophy .philosophy-page,
body.page-id-90 .philosophy-page,
body.page-our-philosophy .service-page,
body.page-id-90 .service-page {
    background: #ffffff !important;
    padding-bottom: 0 !important;
}

body.page-our-philosophy .philosophy-container,
body.page-id-90 .philosophy-container {
    max-width: 820px !important;
    margin: 0 auto !important;
    padding: 0 20px 420px 20px !important;
    position: relative !important;
    background-image: url('assets/images/philosophy-bg.png') !important;
    background-repeat: no-repeat !important;
    background-position: center bottom !important;
    background-size: 700px auto !important;
}

body.page-our-philosophy .philosophy-content,
body.page-id-90 .philosophy-content {
    margin-bottom: 0 !important;
}

body.page-our-philosophy .site-footer,
body.page-id-90 .site-footer {
    background-color: #fafafa !important;
    border-top: none !important;
    margin-top: 0 !important;
    padding-top: 40px !important;
}

/* Mobile & Tablet layout matching Figma */
@media (max-width: 767px) {
    body.page-our-philosophy .philosophy-container,
    body.page-id-90 .philosophy-container {
        padding: 0 38px 300px 38px !important;
        background-size: 100% auto !important;
    }
}

/* ==========================================================================
   PRODUCT CARDS: CIRCULAR LIGHT GRAY BORDER FOR ADD TO CART ICON
   ========================================================================== */
.custom-product-grid .add_to_cart_button.custom-add-cart,
.custom-single-related .add_to_cart_button.custom-add-cart,
.product-card .add_to_cart_button.custom-add-cart,
a.custom-add-cart {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    border-radius: 50% !important;
    border: 1px solid #dcdcdc !important;
    background: transparent !important;
    color: #999999 !important;
    padding: 0 !important;
    margin-left: auto !important;
    box-sizing: border-box !important;
    transition: all 0.25s ease !important;
    text-decoration: none !important;
}

.custom-product-grid .add_to_cart_button.custom-add-cart svg,
.custom-single-related .add_to_cart_button.custom-add-cart svg,
.product-card .add_to_cart_button.custom-add-cart svg,
a.custom-add-cart svg {
    width: 14px !important;
    height: 14px !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
    display: block !important;
    margin: 0 !important;
}

.custom-product-grid .add_to_cart_button.custom-add-cart:hover,
.custom-single-related .add_to_cart_button.custom-add-cart:hover,
.product-card .add_to_cart_button.custom-add-cart:hover,
a.custom-add-cart:hover {
    border-color: #b0b0b0 !important;
    color: #555555 !important;
    background: #f7f7f7 !important;
}

@media (max-width: 767px) {
    .custom-product-grid .add_to_cart_button.custom-add-cart {
        margin: 0 !important;
        width: 26px !important;
        height: 26px !important;
        min-width: 26px !important;
        min-height: 26px !important;
    }
    .custom-product-grid .add_to_cart_button.custom-add-cart svg {
        width: 12px !important;
        height: 12px !important;
    }
}

/* ==========================================================================
   HEADER ICONS (CART & USER) DESKTOP SPACING
   ========================================================================== */
@media (min-width: 992px) {
    .header-icons {
        gap: 32px !important;
    }
}

@media (max-width: 991px) {
    .header-icons {
        gap: 15px !important;
    }
}

/* ==========================================================================
   OUR PHILOSOPHY PAGE: SPACING ADJUSTMENTS (REFINED)
   ========================================================================== */
body.page-our-philosophy .service-page,
body.page-id-90 .service-page,
body.page-our-philosophy .philosophy-page,
body.page-id-90 .philosophy-page {
    padding-top: 45px !important; /* Reduced from 140px for clean spacing from header */
}

body.page-our-philosophy .label-small,
body.page-id-90 .label-small {
    margin-bottom: 35px !important;
}

body.page-our-philosophy .philosophy-title,
body.page-id-90 .philosophy-title {
    margin-top: 0 !important;
}

@media (max-width: 767px) {
    body.page-our-philosophy .service-page,
    body.page-id-90 .service-page,
    body.page-our-philosophy .philosophy-page,
    body.page-id-90 .philosophy-page {
        padding-top: 25px !important; /* Reduced from 90px for mobile */
    }
    body.page-our-philosophy .label-small,
    body.page-id-90 .label-small {
        margin-bottom: 24px !important;
    }
}

/* ==========================================================================
   CONTACT US PAGE REDESIGN & REFINED PROPORTIONS
   ========================================================================== */

/* Main Container & Page Setup */
body.page-template-page-contact,
body.page-id-101,
body.page-contact-us {
    background-color: #ffffff !important;
    overflow-x: hidden !important;
}

body.page-template-page-contact .contact-page,
body.page-id-101 .contact-page,
body.page-contact-us .contact-page,
.contact-page {
    background-color: #ffffff !important;
    background-image: none !important; /* Remove old background */
    padding-top: 45px !important; /* Reduced from 130px for clean spacing from header */
    padding-bottom: 80px !important;
}

/* Container Width: Generous desktop width without excessive zoom */
.contact-container {
    width: 92% !important;
    max-width: 1400px !important;
    margin: 0 auto !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
}

/* Header Label & Title */
.contact-header {
    margin-bottom: 0 !important;
    text-align: left !important;
}

.contact-top-label {
    display: block !important;
    font-family: 'Jost', sans-serif !important;
    font-weight: 500 !important;
    font-style: normal !important;
    font-size: 15px !important;
    letter-spacing: 2.5px !important;
    color: #585555 !important;
    opacity: 0.6 !important;
    text-transform: uppercase !important;
    margin-bottom: 8px !important;
    line-height: 1.2 !important;
}

.contact-title {
    font-family: 'Angie Pro', Georgia, serif !important;
    font-weight: 400 !important;
    font-style: normal !important;
    font-size: 56px !important;
    color: #585555 !important;
    line-height: 1.15 !important;
    margin: 0 !important;
    letter-spacing: -0.5px !important;
}

/* Full-width Dividers */
.contact-divider {
    border: none !important;
    border-top: 1px solid #dcdcdc !important;
    width: 100% !important;
    clear: both !important;
    box-sizing: border-box !important;
}

.contact-header-divider {
    margin-top: 35px !important;
    margin-bottom: 50px !important;
}

.contact-visit-divider {
    margin-top: 60px !important;
    margin-bottom: 45px !important;
}

.contact-bottom-divider {
    margin-top: 60px !important;
    margin-bottom: 40px !important;
}

/* Two Columns: Left Flower, Right Form */
.contact-main-grid {
    display: grid !important;
    grid-template-columns: 1fr 1.15fr !important;
    gap: 70px 90px !important;
    align-items: center !important;
}

/* Left Column: Flower Image */
.contact-flower-col {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

.contact-flower-img {
    width: 100% !important;
    max-width: 440px !important;
    height: auto !important;
    display: block !important;
    object-fit: contain !important;
}

/* Right Column: Form Styling */
.contact-form-col {
    width: 100% !important;
}

.contact-form-wrapper form {
    margin: 0 !important;
}

.contact-form-wrapper p {
    margin-bottom: 18px !important;
}

.contact-form-wrapper label {
    display: block !important;
    font-family: 'Jost', sans-serif !important;
    font-size: 15px !important;
    font-weight: 300 !important;
    color: #888888 !important;
    line-height: 1.3 !important;
    margin-bottom: 5px !important;
}

.contact-form-wrapper input[type="text"],
.contact-form-wrapper input[type="email"],
.contact-form-wrapper input[type="tel"],
.contact-form-wrapper textarea,
.custom-contact-form input,
.custom-contact-form textarea {
    width: 100% !important;
    background-color: #f7f7f7 !important;
    border: 1px solid #f7f7f7 !important;
    border-radius: 0px !important;
    padding: 13px 18px !important;
    font-family: 'Jost', sans-serif !important;
    font-size: 14px !important;
    color: #333333 !important;
    box-sizing: border-box !important;
    outline: none !important;
    box-shadow: none !important;
    transition: all 0.25s ease !important;
    margin-top: 5px !important;
    margin-bottom: 0 !important;
}

.contact-form-wrapper input[type="text"]:focus,
.contact-form-wrapper input[type="email"]:focus,
.contact-form-wrapper input[type="tel"]:focus,
.contact-form-wrapper textarea:focus,
.custom-contact-form input:focus,
.custom-contact-form textarea:focus {
    background-color: #f2f2f2 !important;
    border-color: #e0e0e0 !important;
}

.contact-form-wrapper textarea,
.custom-contact-form textarea {
    height: 140px !important;
    resize: vertical !important;
}

/* Send Button: Centered */
.contact-form-wrapper .wpcf7-submit,
.contact-send-btn,
.custom-contact-form button[type="submit"] {
    display: block !important;
    margin: 12px auto 0 !important;
    width: auto !important;
    min-width: 140px !important;
    padding: 10px 42px !important;
    background: #ffffff !important;
    border: 1px solid #dcdcdc !important;
    border-radius: 0px !important;
    font-family: 'Jost', sans-serif !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    color: #666666 !important;
    text-align: center !important;
    cursor: pointer !important;
    letter-spacing: 0.5px !important;
    transition: all 0.25s ease !important;
    float: none !important;
    box-shadow: none !important;
}

.contact-form-wrapper .wpcf7-submit:hover,
.contact-send-btn:hover,
.custom-contact-form button[type="submit"]:hover {
    border-color: #888888 !important;
    color: #222222 !important;
    background: #fafafa !important;
}

.contact-form-wrapper .wpcf7-spinner {
    display: block !important;
    margin: 10px auto 0 !important;
    float: none !important;
}

.contact-submit-row {
    text-align: center !important;
}

/* Visit Us Section Title */
.contact-visit-section {
    clear: both !important;
}

.contact-visit-title {
    font-family: 'Jost', sans-serif !important;
    font-weight: 400 !important;
    font-style: normal !important;
    font-size: 34px !important;
    vertical-align: bottom !important;
    color: rgba(88, 85, 85, 0.85) !important;
    margin: 0 0 35px 0 !important;
    text-align: left !important;
    line-height: 1.2 !important;
}

/* 3 Balanced Columns in Desktop */
.contact-branches-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 30px 60px !important;
    align-items: start !important;
}

.contact-branch-card {
    text-align: left !important;
}

.contact-branch-card .branch-name {
    font-family: 'Jost', sans-serif !important;
    font-weight: 500 !important;
    font-style: normal !important;
    font-size: 22px !important;
    color: #585555 !important;
    margin: 0 0 6px 0 !important;
    line-height: 1.2 !important;
}

.contact-branch-card .branch-address {
    font-family: 'Jost', sans-serif !important;
    font-weight: 300 !important;
    font-style: normal !important;
    font-size: 17px !important;
    color: #585555 !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.3 !important;
}

.contact-branch-card .branch-map-link {
    font-family: 'Jost', sans-serif !important;
    font-size: 13px !important;
    font-weight: 300 !important;
    font-style: normal !important;
    color: rgba(88, 85, 85, 0.75) !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    transition: all 0.2s ease !important;
    margin-top: 4px !important;
}

.contact-branch-card .branch-map-link:hover {
    color: #111111 !important;
}

.contact-branch-card .branch-map-link .arrow {
    font-size: 14px !important;
    line-height: 1 !important;
    transition: transform 0.2s ease !important;
}

.contact-branch-card .branch-map-link:hover .arrow {
    transform: translate(2px, -2px) !important;
}

/* Social / Contact Bottom Channels */
.contact-bottom-links-wrap,
.contact-bottom-channels-wrap {
    clear: both !important;
}

.contact-bottom-channels {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: -moz-fit-content !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    gap: 22px !important;
}

.channel-phone {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: auto !important;
    margin: 0 !important;
}

/* Grouping for WhatsApp, Instagram, Facebook icons: exactly matches phone row width */
.contact-social-icons-group {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    gap: 0 !important;
    margin: 0 !important;
}

.contact-channel-item {
    display: inline-flex !important;
    align-items: center !important;
    gap: 14px !important;
    text-decoration: none !important;
    color: #555555 !important;
    transition: all 0.25s ease !important;
}

/* Hide extra text labels if present */
.channel-phone-title,
.channel-social-name {
    display: none !important;
}

/* Circular icon badge - Matching Send button grey styling */
.channel-icon-circle {
    width: 52px !important;
    height: 52px !important;
    border-radius: 50% !important;
    border: 1px solid #dcdcdc !important; /* Grey border matching Send button */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #666666 !important; /* Grey icon matching Send button */
    background: #ffffff !important;
    transition: all 0.25s ease !important;
    flex-shrink: 0 !important;
    box-sizing: border-box !important;
}

.channel-icon-circle svg {
    width: 24px !important;
    height: 24px !important;
    stroke: #666666 !important;
    color: #666666 !important;
    transition: all 0.25s ease !important;
}

.channel-icon-circle svg[fill="currentColor"] {
    fill: #666666 !important;
    stroke: none !important;
}

/* Hover effect: Icon remains elegant GREY, NOT black */
.contact-channel-item:hover .channel-icon-circle {
    background: #f7f7f7 !important; /* Light grey hover bg */
    color: #666666 !important;
    border-color: #999999 !important; /* Refined grey hover border */
    transform: translateY(-2px) !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.05) !important;
}

.contact-channel-item:hover .channel-icon-circle svg {
    stroke: #666666 !important;
    color: #666666 !important;
}

.contact-channel-item:hover .channel-icon-circle svg[fill="currentColor"] {
    fill: #666666 !important;
    stroke: none !important;
}

/* Phone Number text */
.channel-phone-num {
    font-family: 'Jost', sans-serif !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    color: #555555 !important;
    letter-spacing: 0.5px !important;
    line-height: 1.2 !important;
    transition: color 0.2s ease !important;
}

.contact-channel-item:hover .channel-phone-num {
    color: #555555 !important;
}

/* Footer border override */
body.page-template-page-contact .site-footer,
body.page-id-101 .site-footer,
body.page-contact-us .site-footer {
    border-top: none !important;
}

/* ==========================================================================
   MOBILE & TABLET RESPONSIVE STYLING (CONTACT PAGE)
   ========================================================================== */
@media (max-width: 991px) {
    body.page-template-page-contact .site-header,
    body.page-id-101 .site-header,
    body.page-contact-us .site-header {
        padding: 12px 20px !important;
    }

    body.page-template-page-contact .header-logo-img,
    body.page-id-101 .header-logo-img,
    body.page-contact-us .header-logo-img {
        max-width: 190px !important;
    }

    body.page-template-page-contact .contact-page,
    body.page-id-101 .contact-page,
    body.page-contact-us .contact-page,
    .contact-page {
        padding-top: 25px !important; /* Reduced from 95px for mobile */
        padding-bottom: 50px !important;
    }

    .contact-container {
        width: 92% !important;
        padding: 0 15px !important;
    }

    .contact-top-label {
        font-size: 13px !important;
    }

    .contact-title {
        font-size: 42px !important;
    }

    .contact-header-divider {
        margin-top: 30px !important;
        margin-bottom: 35px !important;
    }

    .contact-visit-divider {
        margin-top: 45px !important;
        margin-bottom: 35px !important;
    }

    .contact-bottom-divider {
        margin-top: 45px !important;
        margin-bottom: 30px !important;
    }

    .contact-main-grid {
        grid-template-columns: 1fr !important;
        gap: 35px !important;
    }

    .contact-flower-col {
        order: -1 !important;
        padding-top: 0 !important;
    }

    .contact-flower-img {
        max-width: 300px !important;
    }

    .contact-visit-title {
        font-size: 28px !important;
        margin-bottom: 25px !important;
    }

    .contact-branches-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 30px 20px !important;
    }

    .contact-branch-card .branch-name {
        font-size: 18px !important;
    }

    .contact-branch-card .branch-address {
        font-size: 15px !important;
    }

    .contact-branch-card .branch-map-link {
        font-size: 13px !important;
    }

    .contact-branch-card .branch-map-link .arrow {
        font-size: 14px !important;
    }

    .contact-bottom-channels {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        width: -moz-fit-content !important;
        width: fit-content !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        gap: 20px !important;
    }

    .contact-social-icons-group {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        width: 100% !important;
        gap: 0 !important;
    }

    .channel-icon-circle {
        width: 48px !important;
        height: 48px !important;
    }

    .channel-phone-num {
        font-size: 18px !important;
    }
}

@media (max-width: 600px) {
    body.page-template-page-contact .site-header,
    body.page-id-101 .site-header,
    body.page-contact-us .site-header {
        padding: 10px 15px !important;
    }

    body.page-template-page-contact .header-logo-img,
    body.page-id-101 .header-logo-img,
    body.page-contact-us .header-logo-img {
        max-width: 170px !important;
    }

    .contact-container {
        width: 94% !important;
        padding: 0 12px !important;
    }

    .contact-top-label {
        font-size: 12px !important;
        margin-bottom: 6px !important;
    }

    .contact-title {
        font-size: 32px !important;
    }

    .contact-header-divider {
        margin-top: 25px !important;
        margin-bottom: 30px !important;
    }

    .contact-flower-img {
        max-width: 220px !important;
    }

    .contact-visit-divider {
        margin-top: 40px !important;
        margin-bottom: 28px !important;
    }

    .contact-visit-title {
        font-size: 24px !important;
        margin-bottom: 20px !important;
    }

    /* 2 Columns side-by-side in 2 rows */
    .contact-branches-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 24px 15px !important;
    }

    .contact-branch-card .branch-name {
        font-size: 16px !important;
        margin-bottom: 3px !important;
    }

    .contact-branch-card .branch-address {
        font-size: 14px !important;
        margin-bottom: 8px !important;
        line-height: 1.3 !important;
    }

    .contact-branch-card .branch-map-link {
        font-size: 12px !important;
        gap: 3px !important;
    }

    .contact-branch-card .branch-map-link .arrow {
        font-size: 13px !important;
    }

    .contact-bottom-divider {
        margin-top: 40px !important;
        margin-bottom: 28px !important;
    }

    /* Mobile Contact Channels: Stacked & Perfectly Aligned */
    .contact-bottom-channels {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        width: -moz-fit-content !important;
        width: fit-content !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        gap: 18px !important;
        text-align: center !important;
    }

    .channel-phone {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        width: auto !important;
    }

    .contact-social-icons-group {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        width: 100% !important;
        gap: 0 !important;
    }

    .channel-icon-circle {
        width: 48px !important;
        height: 48px !important;
    }

    .channel-icon-circle svg {
        width: 22px !important;
        height: 22px !important;
    }

    .channel-phone-num {
        font-size: 18px !important;
        color: #555555 !important;
        font-weight: 500 !important;
    }
}


/* ==========================================================================
   MOBILE NOTCH & SAFE-AREA SUPPORT FOR DRAWERS & MENUS
   ========================================================================== */
@media (max-width: 768px) {
    .sidebar-navigation,
    .cart-drawer,
    .account-drawer {
        padding-top: max(35px, env(safe-area-inset-top, 35px)) !important;
        padding-bottom: max(30px, env(safe-area-inset-bottom, 30px)) !important;
        padding-left: max(20px, env(safe-area-inset-left, 20px)) !important;
        padding-right: max(20px, env(safe-area-inset-right, 20px)) !important;
        box-sizing: border-box !important;
    }
}

/* ==========================================================================
   SHOP PAGE ONLY: PRODUCT TITLE FONT SIZE REDUCTION
   ========================================================================== */
body.woocommerce-shop .custom-product-grid .product-title,
body.woocommerce-shop .custom-product-grid .product-title a,
body.post-type-archive-product .custom-product-grid .product-title,
body.post-type-archive-product .custom-product-grid .product-title a,
body.tax-product_cat .custom-product-grid .product-title,
body.tax-product_cat .custom-product-grid .product-title a,
.woocommerce-shop .product-card .product-title,
.woocommerce-shop .product-card .product-title a {
    font-size: 24px !important; /* Reduced further from 30px */
}

@media (max-width: 991px) {
    body.woocommerce-shop .custom-product-grid .product-title,
    body.woocommerce-shop .custom-product-grid .product-title a,
    body.post-type-archive-product .custom-product-grid .product-title,
    body.post-type-archive-product .custom-product-grid .product-title a,
    body.tax-product_cat .custom-product-grid .product-title,
    body.tax-product_cat .custom-product-grid .product-title a,
    .woocommerce-shop .product-card .product-title,
    .woocommerce-shop .product-card .product-title a {
        font-size: 16px !important; /* Scaled further from 18px */
    }
}


/* ==========================================================================
   SHOP PAGE (MOBILE ONLY): HEADER REFINEMENT + FILTER & SORT SYSTEM
   ========================================================================== */
/* Hide mobile-only shop controls and filter panel on Desktop */
@media (min-width: 769px) {
    .shop-mobile-controls,
    .mobile-filter-overlay,
    .mobile-filter-panel {
        display: none !important;
    }
}

@media (max-width: 768px) {
    /* 1. Hide "All " prefix on mobile so title reads "Bouquets" */
    .shop-title .shop-title-all-prefix {
        display: none !important;
    }

    /* 2. Remove divider line below Shop title on mobile */
    body.woocommerce-shop .shop-title-wrapper,
    body.post-type-archive-product .shop-title-wrapper,
    body.tax-product_cat .shop-title-wrapper,
    .shop-title-wrapper {
        padding-bottom: 0 !important;
    }

    body.woocommerce-shop .shop-title-wrapper::after,
    body.post-type-archive-product .shop-title-wrapper::after,
    body.tax-product_cat .shop-title-wrapper::after,
    .shop-title-wrapper::after {
        display: none !important;
        content: none !important;
    }

    /* 3. Slightly enlarge "Bouquets" title on mobile */
    body.woocommerce-shop .shop-title,
    body.post-type-archive-product .shop-title,
    body.tax-product_cat .shop-title,
    .shop-title {
        font-size: 42px !important;
        line-height: 1.08 !important;
        text-align: center !important;
    }

    body.woocommerce-shop .shop-header,
    body.post-type-archive-product .shop-header,
    body.tax-product_cat .shop-header,
    .shop-header {
        gap: 10px !important;
        padding-bottom: 10px !important;
        margin-bottom: 22px !important;
    }

    /* 4. Hide Desktop 4-column filters & Desktop toolbar on mobile */
    body.woocommerce-shop .shop-filters,
    body.post-type-archive-product .shop-filters,
    body.tax-product_cat .shop-filters,
    .shop-filters,
    body.woocommerce-shop .shop-toolbar,
    body.post-type-archive-product .shop-toolbar,
    body.tax-product_cat .shop-toolbar,
    .shop-toolbar {
        display: none !important;
    }

    /* 5. Mobile Filter & Sort Controls (Screenshot 1) */
    .shop-mobile-controls {
        display: block !important;
        margin-bottom: 24px !important;
    }

    .mobile-toolbar-top {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 8px 18px 8px;
    }

    .mobile-filter-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        height: 34px;
        padding: 0 16px;
        background-color: #ffffff !important;
        border: 1px solid #e2e2e2 !important;
        border-radius: 999px !important;
        color: #8a8a8a !important;
        font-family: "Jost", sans-serif;
        font-size: 14px;
        font-weight: 400;
        line-height: 1;
        cursor: pointer;
        transition: border-color 0.2s ease, color 0.2s ease;
    }

    .mobile-filter-btn:active {
        border-color: #bcbcbc;
        color: #585555;
    }

    .mobile-filter-icon {
        color: #969696;
        flex-shrink: 0;
    }

    .mobile-sort-dropdown {
        position: relative;
    }

    .mobile-sort-trigger {
        display: inline-flex;
        align-items: baseline;
        gap: 5px;
        background: none;
        border: none;
        padding: 6px 0;
        cursor: pointer;
        font-family: "Jost", sans-serif;
        font-size: 15px;
        font-weight: 300;
        color: #707070;
    }

    .mobile-sort-prefix {
        letter-spacing: 0.8px;
        text-transform: uppercase;
    }

    .mobile-sort-current {
        letter-spacing: 0.2px;
    }

    .mobile-sort-menu {
        display: none;
        position: absolute;
        top: calc(100% + 6px);
        right: 0;
        min-width: 145px;
        list-style: none;
        margin: 0;
        padding: 6px 0;
        background: #ffffff;
        border: 1px solid #ececec;
        border-radius: 8px !important;
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
        z-index: 600;
    }

    .mobile-sort-dropdown.open .mobile-sort-menu {
        display: block;
    }

    .mobile-sort-option {
        display: block;
        width: 100%;
        text-align: left;
        background: none;
        border: none;
        padding: 9px 16px;
        font-family: "Jost", sans-serif;
        font-size: 14px;
        font-weight: 300;
        color: #666666;
        cursor: pointer;
    }

    .mobile-sort-option.active {
        font-weight: 500;
        color: #585555;
        background-color: #fafafa;
    }

    .mobile-toolbar-divider {
        height: 1px;
        background-color: #e8e8e8;
        margin: 0 -15px;
    }

    .mobile-toolbar-bottom {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 15px 8px 4px 8px;
    }

    .mobile-product-count {
        font-family: "Jost", sans-serif;
        font-size: 13px;
        font-weight: 500;
        letter-spacing: 1px;
        color: #7d7d7d;
        text-transform: uppercase;
    }

    .mobile-clear-filters-inline {
        background: none;
        border: none;
        padding: 0;
        font-family: "Jost", sans-serif;
        font-size: 13.5px;
        font-weight: 300;
        color: #7d7d7d;
        cursor: pointer;
    }

    /* 6. Mobile Filter Panel (Frosted Glass matching Sidebar Menu & Mini Cart) */
    body.mobile-filter-lock {
        overflow: hidden !important;
    }

    .mobile-filter-overlay {
        position: fixed !important;
        inset: 0 !important;
        background: transparent !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        z-index: 999998 !important;
        display: none;
    }

    .mobile-filter-overlay.show {
        display: block !important;
    }

    .mobile-filter-panel {
        position: fixed !important;
        top: 60px;
        left: 15px !important;
        right: 15px !important;
        bottom: auto !important;
        width: calc(100% - 30px) !important;
        height: auto !important;
        max-height: calc(100dvh - 75px);
        display: flex !important;
        flex-direction: column !important;
        background: rgba(255, 255, 255, 0.6) !important;
        backdrop-filter: blur(4px) !important;
        -webkit-backdrop-filter: blur(4px) !important;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08) !important;
        border-radius: 4px !important;
        z-index: 999999 !important;
        overflow: hidden !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none;
        transform: none !important;
        transition: opacity 0.4s ease, visibility 0.4s ease !important;
    }

    .mobile-filter-panel.open {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: none !important;
    }

    .mobile-filter-panel-inner {
        display: flex !important;
        flex-direction: column !important;
        flex: 1 1 auto !important;
        width: 100% !important;
        min-height: 0 !important;
        overflow: hidden !important;
        padding: 0 12px;
        background: transparent !important;
        box-sizing: border-box !important;
    }

    .mobile-filter-panel-header {
        padding: 20px 10px 14px 10px;
        border-bottom: 1px solid rgba(0, 0, 0, 0.08);
        flex-shrink: 0 !important;
        background: transparent !important;
    }

    .mobile-filter-panel-toprow {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 12px;
        margin-bottom: 6px;
    }

    .mobile-filter-panel-title {
        font-family: "Angie Pro", Georgia, serif !important;
        font-size: 30px !important;
        font-weight: 400 !important;
        line-height: 1.15 !important;
        color: #585555 !important;
        margin: 0 !important;
        text-align: left !important;
    }

    .mobile-filter-close-btn {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        margin-right: -6px;
        padding: 0 !important;
        background: transparent !important;
        border: none !important;
        border-radius: 50% !important;
        color: #585555 !important;
        cursor: pointer;
        flex-shrink: 0;
        transition: background-color 0.2s ease, color 0.2s ease;
    }

    .mobile-filter-close-btn:active {
        background-color: rgba(0, 0, 0, 0.06) !important;
        color: #222222 !important;
    }

    .mobile-filter-panel-subrow {
        display: flex;
        justify-content: space-between;
        align-items: flex-end;
        gap: 12px;
    }

    .mobile-filter-panel-subtitle {
        font-family: "Jost", sans-serif;
        font-size: 13.5px;
        font-weight: 300;
        color: #585555;
        padding-bottom: 3px;
    }

    .mobile-filter-clear-all {
        background: none !important;
        border: none !important;
        padding: 2px 0 !important;
        font-family: "Jost", sans-serif;
        font-size: 13.5px;
        font-weight: 400;
        color: #585555 !important;
        cursor: pointer;
    }

    .mobile-filter-panel-body {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        margin: 0 !important;
        padding: 0 !important;
        background: transparent !important;
    }

    .mobile-filter-group {
        border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    }

    .mobile-filter-group:last-child {
        border-bottom: none;
    }

    .mobile-filter-acc-toggle {
        width: 100%;
        display: flex;
        justify-content: space-between;
        align-items: center;
        background: none !important;
        border: none !important;
        padding: 18px 10px !important;
        cursor: pointer;
        text-align: left;
    }

    .mobile-filter-group.is-open .mobile-filter-acc-toggle {
        padding-bottom: 12px !important;
    }

    .mobile-acc-title {
        font-family: "Jost", sans-serif;
        font-size: 19px;
        font-weight: 500;
        color: #4f4c4c;
        letter-spacing: 0;
    }

    .mobile-acc-icon {
        font-family: "Jost", sans-serif;
        font-size: 20px;
        font-weight: 300;
        color: #6f6c6c;
        line-height: 1;
    }

    .mobile-filter-options {
        display: none;
        list-style: none;
        margin: 0;
        padding: 0 10px 18px 10px;
    }

    .mobile-filter-group.is-open .mobile-filter-options {
        display: block;
    }

    .mobile-filter-options li {
        margin-bottom: 12px;
    }

    .mobile-filter-options li:last-child {
        margin-bottom: 0;
    }

    .mobile-filter-option-label {
        position: relative;
        display: flex;
        align-items: center;
        gap: 12px;
        cursor: pointer;
    }

    .mobile-filter-option-label input[type="checkbox"] {
        position: absolute;
        left: 0;
        top: 0;
        width: 1px;
        height: 1px;
        margin: 0;
        opacity: 0;
        pointer-events: none;
    }

    .mobile-option-circle {
        width: 14px;
        height: 14px;
        border-radius: 50% !important;
        border: 1.5px solid rgba(88, 85, 85, 0.4);
        background-color: rgba(255, 255, 255, 0.55);
        box-sizing: border-box;
        flex-shrink: 0;
        transition: all 0.2s ease;
    }

    .mobile-filter-option-label input[type="checkbox"]:checked + .mobile-option-circle {
        border-color: #585555;
        background-color: #585555;
        box-shadow: inset 0 0 0 2.5px rgba(255, 255, 255, 0.92);
    }

    .mobile-option-text {
        font-family: "Jost", sans-serif;
        font-size: 16.5px;
        font-weight: 400;
        color: #4f4c4c;
        line-height: 1.35;
    }

    .mobile-filter-option-label input[type="checkbox"]:checked ~ .mobile-option-text {
        font-weight: 500;
        color: #2f2d2d;
    }

    .mobile-filter-panel-footer {
        flex-shrink: 0 !important;
        display: flex !important;
        justify-content: space-between;
        align-items: center;
        padding: 14px 10px calc(16px + env(safe-area-inset-bottom, 0px)) 10px !important;
        border-top: 1px solid rgba(0, 0, 0, 0.08) !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .mobile-filter-selected-count {
        font-family: "Jost", sans-serif;
        font-size: 13.5px;
        font-weight: 400;
        color: #555555;
    }

    .mobile-filter-apply-btn {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        height: 38px;
        font-family: "Jost", sans-serif;
        font-size: 14px !important;
        font-weight: 400 !important;
        color: #4c4949 !important;
        background-color: rgba(255, 255, 255, 0.72) !important;
        border: 1px solid rgba(88, 85, 85, 0.3) !important;
        border-radius: 999px !important;
        padding: 0 38px !important;
        cursor: pointer;
        transition: border-color 0.2s ease, background-color 0.2s ease;
    }

    .mobile-filter-apply-btn:active {
        background-color: rgba(255, 255, 255, 0.92) !important;
        border-color: rgba(88, 85, 85, 0.55) !important;
    }
}


/* ==========================================================================
   SINGLE PRODUCT PAGE (MOBILE ONLY): LAYOUT, SPACING, PADDING & RELATED CARDS
   ========================================================================== */
@media (max-width: 768px) {
    /* 1. Slightly increase left & right page horizontal padding so content isn't flush to edges */
    body.single-product .custom-single-product {
        padding: 0 28px !important;
        margin: 0 auto 24px auto !important;
    }

    /* 2. Tighten breadcrumb spacing */
    body.single-product .custom-single-breadcrumb {
        margin-bottom: 14px !important;
    }

    /* 3. Top section: Image first, then Title (left) + Price & Stock (right), then SKU/Desc/Cart/Meta */
    body.single-product .custom-single-top {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) max-content !important;
        column-gap: 14px !important;
        row-gap: 0 !important;
        align-items: start !important;
        margin-bottom: 44px !important;
    }

    body.single-product .custom-single-summary {
        display: contents !important;
    }

    /* Reset old flex order overrides */
    body.single-product .custom-single-image,
    body.single-product .product-cat-label,
    body.single-product .custom-single-summary .product-title,
    body.single-product .custom-single-summary .product-short-desc,
    body.single-product .custom-single-summary .product-description,
    body.single-product .product-price-stock,
    body.single-product .product-add-to-cart-wrap,
    body.single-product .product-meta-custom {
        order: unset !important;
    }

    /* Row 1: Product Image */
    body.single-product .custom-single-image {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
        margin: 0 0 16px 0 !important;
    }

    /* Row 2 (Left): Product Name */
    body.single-product .custom-single-summary h1.product-title,
    body.single-product .custom-single-summary .product-title {
        grid-column: 1 !important;
        grid-row: 2 !important;
        text-align: left !important;
        justify-self: start !important;
        align-self: start !important;
        font-size: 28px !important;
        line-height: 1.15 !important;
        margin: 0 !important;
    }

    /* Row 2-3 (Right): Product Price on same line as Title, Stock Status directly underneath Price */
    body.single-product .product-price-stock {
        grid-column: 2 !important;
        grid-row: 2 / span 2 !important;
        justify-self: end !important;
        align-self: start !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-end !important;
        justify-content: flex-start !important;
        flex-wrap: nowrap !important;
        gap: 4px !important;
        margin: 0 !important;
        padding-top: 3px !important;
    }

    body.single-product .product-price-stock .price {
        font-size: 1.25rem !important;
        font-weight: 500 !important;
        line-height: 1.15 !important;
        white-space: nowrap !important;
        text-align: right !important;
        margin: 0 !important;
    }

    body.single-product .product-price-stock .stock {
        font-size: 0.68rem !important;
        line-height: 1.2 !important;
        letter-spacing: 0.8px !important;
        white-space: nowrap !important;
        justify-content: flex-end !important;
        gap: 5px !important;
        margin: 0 !important;
    }

    /* Row 3 (Left): Category / SKU Label directly under Title */
    body.single-product .product-cat-label {
        grid-column: 1 !important;
        grid-row: 3 !important;
        text-align: left !important;
        justify-self: start !important;
        font-size: 0.7rem !important;
        line-height: 1.3 !important;
        margin: 4px 0 0 0 !important;
    }

    /* Row 4 & 5: Short Description & Main Description (comfortable top space, eliminate empty gaps) */
    body.single-product .custom-single-summary .product-short-desc {
        grid-column: 1 / -1 !important;
        grid-row: 4 !important;
        text-align: left !important;
        padding: 0 !important;
        max-width: 100% !important;
        font-size: 0.85rem !important;
        line-height: 1.6 !important;
        margin: 26px 0 0 0 !important;
    }

    body.single-product .custom-single-summary .product-short-desc p,
    body.single-product .custom-single-summary .product-description p,
    body.single-product .custom-single-summary .product-short-desc h6,
    body.single-product .custom-single-summary .product-description h6 {
        font-size: 0.85rem !important;
        line-height: 1.6 !important;
        font-weight: 400 !important;
        margin: 0 0 8px 0 !important;
    }

    body.single-product .custom-single-summary .product-description {
        grid-column: 1 / -1 !important;
        grid-row: 5 !important;
        text-align: left !important;
        padding: 0 !important;
        max-width: 100% !important;
        margin: 26px 0 0 0 !important;
    }

    body.single-product .custom-single-summary .product-short-desc + .product-description {
        margin-top: 12px !important;
    }

    body.single-product .custom-single-summary .product-short-desc:empty,
    body.single-product .custom-single-summary .product-description:empty {
        display: none !important;
        margin: 0 !important;
    }

    body.single-product .custom-single-summary .product-short-desc p:last-child,
    body.single-product .custom-single-summary .product-description p:last-child {
        margin-bottom: 0 !important;
    }

    /* Row 6: Quantity + Add to Cart + Buy Now (tightened harmonious spacing) */
    body.single-product .product-add-to-cart-wrap {
        grid-column: 1 / -1 !important;
        grid-row: 6 !important;
        margin: 14px 0 12px 0 !important;
    }

    body.single-product .product-add-to-cart-wrap form.cart {
        margin: 0 !important;
        font-size: 0 !important;
        line-height: 0 !important;
    }

    body.single-product .product-add-to-cart-wrap form.cart .quantity {
        line-height: 1.4 !important;
        padding: 12px 0 !important;
        margin: 0 0 14px 0 !important;
    }

    body.single-product .product-add-to-cart-wrap form.cart button.single_add_to_cart_button {
        line-height: 1.4 !important;
        padding: 14px !important;
        margin: 0 0 6px 0 !important;
    }

    body.single-product .product-add-to-cart-wrap form.cart button.single_buy_now_button {
        line-height: 1.4 !important;
        padding: 10px 15px !important;
        margin: 0 !important;
    }

    /* Row 7: Meta rows (COMPOSITION / VASE LIFE) */
    body.single-product .product-meta-custom {
        grid-column: 1 / -1 !important;
        grid-row: 7 !important;
        margin: 0 !important;
    }

    body.single-product .product-meta-custom .meta-row {
        padding: 12px 0 !important;
    }

    /* 4. Related Bouquets Section: tighter vertical spacing + Add-to-Cart icon next to Price (exact Shop match) */
    body.single-product .custom-single-related {
        margin-bottom: 44px !important;
    }

    body.single-product .custom-single-related .related-top-labels .label-small {
        margin-bottom: 6px !important;
    }

    body.single-product .custom-single-related h2.label-large {
        font-size: 2rem !important;
        margin: 0 0 20px 0 !important;
    }

    body.single-product .custom-single-related .products-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 24px 14px !important;
        margin-bottom: 0 !important;
    }

    body.single-product .custom-single-related .product-card {
        display: grid !important;
        grid-template-columns: max-content 1fr !important;
        grid-template-rows: auto auto 1fr auto !important;
        align-items: center !important;
        gap: 5px 15px !important;
        padding-bottom: 0 !important;
        position: relative !important;
        height: 100% !important;
        text-align: left !important;
    }

    body.single-product .custom-single-related .product-card .product-meta-row {
        display: contents !important;
    }

    body.single-product .custom-single-related .product-card .product-img-link {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
        margin-bottom: 6px !important;
        width: 100% !important;
    }

    body.single-product .custom-single-related .product-card .product-title {
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;
        justify-self: start !important;
        align-self: start !important;
        font-size: 0.95rem !important;
        line-height: 1.2 !important;
        margin: 0 0 2px 0 !important;
    }

    body.single-product .custom-single-related .product-card .product-meta-row .product-short-desc,
    body.single-product .custom-single-related .product-card .product-short-desc {
        grid-column: 1 / -1 !important;
        grid-row: 3 !important;
        justify-self: start !important;
        align-self: start !important;
        text-align: left !important;
        font-size: 0.65rem !important;
        line-height: 1.4 !important;
        margin: 0 0 6px 0 !important;
        padding: 0 !important;
    }

    body.single-product .custom-single-related .product-card .product-price {
        position: static !important;
        grid-column: 1 !important;
        grid-row: 4 !important;
        justify-self: start !important;
        align-self: center !important;
        font-size: 0.95rem !important;
        font-weight: 500 !important;
        margin: 0 !important;
    }

    body.single-product .custom-single-related .product-card .add_to_cart_button.custom-add-cart {
        position: static !important;
        grid-column: 2 !important;
        grid-row: 4 !important;
        justify-self: start !important;
        align-self: center !important;
        margin: 0 !important;
        width: 26px !important;
        height: 26px !important;
        min-width: 26px !important;
        min-height: 26px !important;
        padding: 0 !important;
        border: 1px solid #dcdcdc !important;
        border-radius: 50% !important;
        background: transparent !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    body.single-product .custom-single-related .product-card .add_to_cart_button.custom-add-cart svg {
        width: 12px !important;
        height: 12px !important;
        margin: 0 !important;
    }

    body.single-product .custom-single-related .explore-all-wrap {
        margin-top: 28px !important;
    }

    /* 5. Bespoke Section: clean side alignment & reduced empty vertical spacing */
    body.single-product .custom-single-bespoke {
        padding: 0 !important;
        margin-top: 0 !important;
        margin-bottom: 16px !important;
        gap: 20px !important;
    }

    body.single-product .bespoke-left .label-small {
        margin-bottom: 8px !important;
    }

    body.single-product .bespoke-left .bespoke-title {
        margin-bottom: 10px !important;
    }

    body.single-product .bespoke-left .bespoke-text {
        margin-bottom: 12px !important;
    }

    body.single-product .bespoke-left .bespoke-contact-btn {
        margin-top: 4px !important;
    }
}


/* ==========================================================================
   SINGLE PRODUCT: PREVENT DUPLICATE STOCK STATUS (DESKTOP & MOBILE)
   ========================================================================== */
.product-add-to-cart-wrap > .stock,
.product-add-to-cart-wrap p.stock {
    display: none !important;
}

@media (max-width: 768px) {
    /* Ensure clean spacing above meta rows when out-of-stock hides .product-add-to-cart-wrap */
    body.single-product .product-meta-custom {
        margin: 22px 0 0 0 !important;
    }

    body.single-product .product-add-to-cart-wrap + .product-meta-custom {
        margin-top: 0 !important;
    }
}

/* ==========================================================================
   MOBILE ONLY: REDUCE GAP BETWEEN PRODUCT IMAGE & DETAILS BELOW IT
   (SHOP PAGE & RELATED BOUQUETS)
   ========================================================================== */
@media (max-width: 768px) {
    /* Remove hidden 20px bottom margin on img inside .product-img-link */
    .custom-product-grid .product-card img,
    .custom-product-grid .product-img-link img,
    body.single-product .custom-single-related .product-card img,
    body.single-product .custom-single-related .product-img-link img {
        margin-bottom: 0 !important;
    }

    /* Set compact, balanced spacing between image and product details */
    .custom-product-grid .product-card,
    body.single-product .custom-single-related .product-card {
        row-gap: 4px !important;
        column-gap: 15px !important;
    }

    .custom-product-grid .product-card .product-img-link,
    body.single-product .custom-single-related .product-card .product-img-link {
        margin-bottom: 8px !important;
    }

    .custom-product-grid .product-card .product-title,
    body.single-product .custom-single-related .product-card .product-title {
        margin: 0 0 2px 0 !important;
    }

    .custom-product-grid .product-card .product-short-desc,
    body.single-product .custom-single-related .product-card .product-meta-row .product-short-desc,
    body.single-product .custom-single-related .product-card .product-short-desc {
        margin: 0 0 4px 0 !important;
    }
}


/* ==========================================================================
   SHOP PAGE (MOBILE ONLY): REFINED BESPOKE WIDTH, IMAGE SIZE & FOOTER GAP
   ========================================================================== */
@media (max-width: 768px) {
    body.woocommerce-shop .shop-main,
    body.post-type-archive-product .shop-main,
    body.tax-product_cat .shop-main {
        padding-bottom: 32px !important;
    }

    body.woocommerce-shop .shop-main .custom-single-bespoke,
    body.post-type-archive-product .shop-main .custom-single-bespoke,
    body.tax-product_cat .shop-main .custom-single-bespoke,
    .shop-main .custom-single-bespoke {
        width: calc(100% - 26px) !important;
        max-width: 352px !important;
        margin: 28px auto 4px auto !important;
        padding: 0 !important;
        box-sizing: border-box !important;
        gap: 22px !important;
    }

    body.woocommerce-shop .shop-main .custom-single-bespoke .bespoke-right,
    body.post-type-archive-product .shop-main .custom-single-bespoke .bespoke-right,
    body.tax-product_cat .shop-main .custom-single-bespoke .bespoke-right,
    .shop-main .custom-single-bespoke .bespoke-right {
        width: 100% !important;
        text-align: center !important;
    }

    body.woocommerce-shop .shop-main .custom-single-bespoke .bespoke-right img,
    body.post-type-archive-product .shop-main .custom-single-bespoke .bespoke-right img,
    body.tax-product_cat .shop-main .custom-single-bespoke .bespoke-right img,
    .shop-main .custom-single-bespoke .bespoke-right img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        aspect-ratio: 350 / 330 !important;
        margin: 0 auto !important;
    }
}


/* ==========================================================================
   CONTACT PAGE: "CONNECT" TITLE, SINGLE-ROW CHANNELS & FINE CIRCULAR BORDER
   ========================================================================== */
body.page-template-page-contact .contact-connect-title,
body.page-id-101 .contact-connect-title,
body.page-contact-us .contact-connect-title,
.contact-connect-title {
    text-align: left !important;
    margin: 0 0 32px 0 !important;
}

body.page-template-page-contact .contact-bottom-channels,
body.page-id-101 .contact-bottom-channels,
body.page-contact-us .contact-bottom-channels,
.contact-page .contact-bottom-channels {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    gap: 32px !important;
}

body.page-template-page-contact .contact-bottom-channels .channel-phone,
body.page-id-101 .contact-bottom-channels .channel-phone,
body.page-contact-us .contact-bottom-channels .channel-phone,
.contact-page .contact-bottom-channels .channel-phone {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: auto !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
}

body.page-template-page-contact .contact-bottom-channels .contact-social-icons-group,
body.page-id-101 .contact-bottom-channels .contact-social-icons-group,
body.page-contact-us .contact-bottom-channels .contact-social-icons-group,
.contact-page .contact-bottom-channels .contact-social-icons-group {
    display: inline-flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    width: auto !important;
    flex-shrink: 0 !important;
    gap: 20px !important;
    margin: 0 !important;
}

/* Ultra-fine, whisper-light circular border around contact icons */
body.page-template-page-contact .channel-icon-circle,
body.page-id-101 .channel-icon-circle,
body.page-contact-us .channel-icon-circle,
.contact-page .channel-icon-circle {
    border: none !important;
    box-shadow: inset 0 0 0 0.5px rgba(0, 0, 0, 0.055) !important;
    background: #ffffff !important;
}

body.page-template-page-contact .contact-channel-item:hover .channel-icon-circle,
body.page-id-101 .contact-channel-item:hover .channel-icon-circle,
body.page-contact-us .contact-channel-item:hover .channel-icon-circle,
.contact-page .contact-channel-item:hover .channel-icon-circle {
    border: none !important;
    box-shadow: inset 0 0 0 0.5px rgba(0, 0, 0, 0.14), 0 2px 6px rgba(0, 0, 0, 0.03) !important;
}

@media (max-width: 991px) {
    body.page-template-page-contact .contact-connect-title,
    body.page-id-101 .contact-connect-title,
    body.page-contact-us .contact-connect-title,
    .contact-connect-title {
        margin: 0 0 24px 0 !important;
    }

    body.page-template-page-contact .contact-bottom-channels .contact-social-icons-group,
    body.page-id-101 .contact-bottom-channels .contact-social-icons-group,
    body.page-contact-us .contact-bottom-channels .contact-social-icons-group,
    .contact-page .contact-bottom-channels .contact-social-icons-group {
        gap: 14px !important;
    }
}

@media (max-width: 600px) {
    body.page-template-page-contact .contact-connect-title,
    body.page-id-101 .contact-connect-title,
    body.page-contact-us .contact-connect-title,
    .contact-connect-title {
        margin: 0 0 20px 0 !important;
    }

    body.page-template-page-contact .contact-bottom-channels,
    body.page-id-101 .contact-bottom-channels,
    body.page-contact-us .contact-bottom-channels,
    .contact-page .contact-bottom-channels {
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
        width: 100% !important;
        gap: 14px !important;
    }

    body.page-template-page-contact .contact-bottom-channels .contact-channel-item,
    body.page-id-101 .contact-bottom-channels .contact-channel-item,
    body.page-contact-us .contact-bottom-channels .contact-channel-item,
    .contact-page .contact-bottom-channels .contact-channel-item {
        gap: 8px !important;
    }

    body.page-template-page-contact .contact-bottom-channels .channel-icon-circle,
    body.page-id-101 .contact-bottom-channels .channel-icon-circle,
    body.page-contact-us .contact-bottom-channels .channel-icon-circle,
    .contact-page .contact-bottom-channels .channel-icon-circle {
        width: 36px !important;
        height: 36px !important;
    }

    body.page-template-page-contact .contact-bottom-channels .channel-icon-circle svg,
    body.page-id-101 .contact-bottom-channels .channel-icon-circle svg,
    body.page-contact-us .contact-bottom-channels .channel-icon-circle svg,
    .contact-page .contact-bottom-channels .channel-icon-circle svg {
        width: 16px !important;
        height: 16px !important;
    }

    body.page-template-page-contact .contact-bottom-channels .channel-phone-num,
    body.page-id-101 .contact-bottom-channels .channel-phone-num,
    body.page-contact-us .contact-bottom-channels .channel-phone-num,
    .contact-page .contact-bottom-channels .channel-phone-num {
        font-size: 13.5px !important;
        font-weight: 400 !important;
        letter-spacing: 0.2px !important;
        white-space: nowrap !important;
    }

    body.page-template-page-contact .contact-bottom-channels .contact-social-icons-group,
    body.page-id-101 .contact-bottom-channels .contact-social-icons-group,
    body.page-contact-us .contact-bottom-channels .contact-social-icons-group,
    .contact-page .contact-bottom-channels .contact-social-icons-group {
        gap: 10px !important;
    }
}

@media (max-width: 359px) {
    body.page-template-page-contact .contact-bottom-channels .channel-icon-circle,
    .contact-page .contact-bottom-channels .channel-icon-circle {
        width: 32px !important;
        height: 32px !important;
    }

    body.page-template-page-contact .contact-bottom-channels .channel-phone-num,
    .contact-page .contact-bottom-channels .channel-phone-num {
        font-size: 12px !important;
    }

    body.page-template-page-contact .contact-bottom-channels .contact-social-icons-group,
    .contact-page .contact-bottom-channels .contact-social-icons-group {
        gap: 7px !important;
    }
}


/* ==========================================================================
   SINGLE PRODUCT SUBTITLE (DESKTOP & MOBILE) + MOBILE LAYOUT & SHOP HEADER
   ========================================================================== */
.custom-single-summary .product-mobile-subtitle,
.product-mobile-subtitle {
    display: block !important;
    font-family: "Jost", sans-serif !important;
    font-size: 0.92rem !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    letter-spacing: 0.25px !important;
    color: #8c8c8c !important;
    text-transform: none !important;
    text-align: left !important;
    margin: 0 0 18px 0 !important;
}

.product-mobile-subtitle:empty {
    display: none !important;
    margin: 0 !important;
}

@media (min-width: 769px) {
    .custom-single-summary h1.product-title:has(+ .product-mobile-subtitle),
    .custom-single-summary .product-title:has(+ .product-mobile-subtitle) {
        margin-bottom: 6px !important;
    }
}

@media (max-width: 768px) {
    /* --- 1. Single Product Mobile: Breadcrumb -> SKU/Category -> Image -> Title + Subtitle --- */
    body.single-product .custom-single-breadcrumb {
        margin: 8px 0 18px 0 !important;
    }

    body.single-product .custom-single-breadcrumb .woocommerce-breadcrumb,
    body.single-product .custom-single-breadcrumb .woocommerce-breadcrumb a {
        font-size: 0.68rem !important;
        line-height: 1.35 !important;
        letter-spacing: 0.85px !important;
        color: #9e9e9e !important;
        opacity: 1 !important;
        margin: 0 !important;
    }

    /* Row 1: Product Number & Collection Label above Product Image */
    body.single-product .product-cat-label {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
        text-align: left !important;
        justify-self: start !important;
        font-size: 0.62rem !important;
        font-weight: 300 !important;
        line-height: 1.3 !important;
        letter-spacing: 0.9px !important;
        color: #9e9e9e !important;
        opacity: 1 !important;
        margin: 0 0 10px 0 !important;
    }

    /* Row 2: Product Image */
    body.single-product .custom-single-image {
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;
        margin: 0 0 16px 0 !important;
    }

    /* Row 3 (Left): Product Name */
    body.single-product .custom-single-summary h1.product-title,
    body.single-product .custom-single-summary .product-title {
        grid-column: 1 !important;
        grid-row: 3 !important;
    }

    /* Row 3-4 (Right): Price & Stock Status */
    body.single-product .product-price-stock {
        grid-column: 2 !important;
        grid-row: 3 / span 2 !important;
    }

    /* Row 4 (Left): Custom Mobile Short Subtitle directly beneath Product Name */
    body.single-product .custom-single-summary .product-mobile-subtitle,
    body.single-product .product-mobile-subtitle {
        display: block !important;
        order: unset !important;
        grid-column: 1 !important;
        grid-row: 4 !important;
        text-align: left !important;
        justify-self: start !important;
        align-self: start !important;
        font-family: "Jost", sans-serif !important;
        font-size: 0.82rem !important;
        font-weight: 400 !important;
        line-height: 1.35 !important;
        letter-spacing: 0.2px !important;
        color: #8c8c8c !important;
        text-transform: none !important;
        margin: 4px 0 0 0 !important;
    }

    body.single-product .product-mobile-subtitle:empty {
        display: none !important;
        margin: 0 !important;
    }

    /* Shift subsequent summary rows down by 1 grid row */
    body.single-product .custom-single-summary .product-short-desc {
        grid-row: 5 !important;
    }

    body.single-product .custom-single-summary .product-description {
        grid-row: 6 !important;
    }

    body.single-product .product-add-to-cart-wrap {
        grid-row: 7 !important;
    }

    body.single-product .product-meta-custom {
        grid-row: 8 !important;
    }

    /* --- 2. Shop Page Mobile: Move "Bouquets" slightly upward while keeping content below fixed --- */
    body.woocommerce-shop .shop-title,
    body.post-type-archive-product .shop-title,
    body.tax-product_cat .shop-title,
    .shop-header .shop-title {
        transform: translateY(-10px) !important;
    }
}
