﻿@keyframes fadeModal {
    0% {
        background: 0 0
    }

    to {
        background: rgba(0, 0, 0, .5)
    }
}

@keyframes fadeInScale {
    0% {
        opacity: 0;
        transform: translateY(20px) scale(.95)
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1)
    }
}

body,
html {
    margin: 0;
    padding: 0;
    font-size: 18px;
    font-family: "Roboto", sans-serif;
    background-color: #f9f9fb;
    box-sizing: border-box;
    line-height: 1.3;
    scroll-behavior: smooth;
}

.header-inner {
    margin-left: 5%;
    margin-right: 5%
}

.navbar-collapse {
    margin: 0;
    padding: 0;
    background-color: transparent;
    box-sizing: border-box;
    line-height: 1.3;
    padding-top: 1%;
    padding-bottom: 1%;
    font-weight: 500;
    flex-wrap: nowrap;
}

.logo {
    padding: 1%
}

*,
::after,
::before {
    box-sizing: inherit
}

#react-shop-root {
    font-family: "Roboto", sans-serif !important;
    display: flex;
    align-items: stretch;
    border-top: 0 solid #fff;
    border-bottom: 0 solid #ffcb36;


}

button {
    outline: 0;
    cursor: pointer;
    border: 0;
    border-radius: 4px;
    font-size: .95rem;
    transition: background-color .2s ease
}

.sidebar {
    height: 100%
}

.category-list li {
    margin-bottom: .5rem
}

.tree-category-label::before,
.tree-subcat-name::before {
    transform: translateY(-50%);
    opacity: .8
}

.tree-cat-name {
    padding-left: 1.3rem;
    letter-spacing: .5px;
    text-shadow: 0 1px 1px rgba(0, 0, 0, .2)
}

.tree-subcat-name {
    padding: .25rem 1rem
}

    .tree-subcat-name::before {
        position: absolute;
        left: 1rem;
        top: 50%
    }

    .tree-category-label:hover,
    .tree-subcat-name:hover {
        transform: translateX(2px)
    }

.tree-category-label:hover {
    background-color: rgba(255, 255, 255, .12)
}

.product-grid {
    padding: .5rem;
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
    border-top: 0 solid #ffcb36;
    top: 70px;
}



.breadcrumb-nav {
    margin-bottom: 1rem
}

.products-wrapper {
    background: #faf9f0
}

.product-item {
    background-color: #f5f9fc;
    border: 1px solid #eee;
    transition: box-shadow .2s ease, transform .2s;
    max-height: 12rem;
    margin: 0
}

    .product-item:hover {
        transform: translateY(-2px)
    }

.product-table table {
    width: 100%;
    border-collapse: collapse
}

.product-table thead th {
    background-color: #f2f2f2;
    font-weight: 600;
    font-size: .95rem;
    border: 1px solid #ddd;
    text-align: left;
    padding: .3rem
}

.product-table tbody td {
    border: 1px solid #eee;
    padding: .65rem;
    font-size: .9rem
}

.product-table tbody tr:hover {
    background-color: #f9fafc
}

.pagination-bar {
    margin-top: 1rem;
    align-items: center
}

    .pagination-bar button:hover:not(:disabled) {
        background-color: #0051a3;
        transform: translateY(-2px)
    }

    .pagination-bar button:disabled {
        background-color: #ccc;
        cursor: not-allowed
    }

.order-section label,
.product-table td,
.product-table th {
    font-size: 1rem
}

.products-wrapper {
    background-color: #faf9f0
}


.cart-total {
    font-size: 1.2rem;
    font-weight: 600;
    margin-top: 1.5rem;
    color: #003769;
    text-align: right
}

.checkout-btn {
    background-color: #003769;
    border-radius: 4px;
    width: 100%
}



.order-section p {
    font-size: 1rem;
    margin: .5rem 0
}

.modal-close-btn {
    top: 10px;
    right: 10px
}

.product-info {
    margin: .5rem 0
}

.product-description {
    margin: .5rem 0 1rem
}

.order-total .htva,
.order-total .tva {
    font-size: .98rem
}

.product-modal-overlay {
    background: rgba(0, 0, 0, .6)
}

.product-modal-content {
    padding: 2rem
}

    .checkout-btn:hover {
        background-color: #0051a3
    }




/* ---------- OVERLAY ---------- */
.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.6);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1300;
}

/* ---------- PANEL ---------- */
.modal-content {
    background: #fff;
    width: 400px;
    max-width: 90%;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 8px 16px rgba(0,0,0,.25);
    position: relative;
    font-size: 1rem;
}

    .modal-content.registration { /* 2-col grid for register */
        width: 600px;
        min-width: 50vw;
    }

    .modal-content.confirmation { /* slightly narrower */
        width: 450px;
    }

/* ---------- CLOSE BUTTON ---------- */
.modal-close-btn {
    position: absolute;
    top: .75rem;
    right: .75rem;
    background: none;
    border: 0;
    font-size: 1.5rem;
    color: #333;
    cursor: pointer;
    transition: color .2s;
}

    .modal-close-btn:hover {
        color: #0051a3
    }

/* ---------- HEADERS ---------- */
.modal-content h2 {
    margin-bottom: 1rem;
    font-size: 1.5rem;
    color: #003769
}

/* ---------- FORMS ---------- */
.modal-content form {
    margin-top: 1rem
}

    .modal-content form .form-group {
        display: flex;
        flex-direction: column;
        margin-bottom: 1rem
    }

    .modal-content form label {
        margin-bottom: .5rem;
        font-weight: 600;
        color: #333
    }

    .modal-content form input {
        width: 100%;
        padding: .5rem .75rem;
        font-size: 1rem;
        border: 1px solid #ccc;
        border-radius: 4px;
        transition: border-color .2s;
    }

        .modal-content form input:focus {
            border-color: #003769
        }

/* two-column grid only when in .registration */
.modal-content.registration form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .2rem 1rem; /* row gap / column gap */
}

    .modal-content.registration form .form-group.full {
        grid-column: span 2
    }

    .modal-content.registration form button {
        grid-column: span 2
    }

/* ---------- BUTTONS ---------- */
.modal-content form button {
    width: 100%;
    padding: .75rem;
    background: #ffcb36;
    color: #003769;
    font-weight: 600;
    border: 0;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color .2s;
}

    .modal-content form button:hover {
        background: #e6b72d
    }

/* ---------- CITY AUTOCOMPLETE LIST ---------- */
.city-suggestions {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid #ccc;
    max-height: 120px;
    overflow: auto;
    background: #fff;
    border-radius: 4px;
}

.city-suggestion-item {
    padding: .25rem .5rem;
    cursor: pointer
}

    .city-suggestion-item:hover {
        background: #f1f1f1
    }



.shop-content {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    height: 100%;
    background-color: #ffcb36 !important;
    overflow: hidden;
    gap: 0 0;
    padding-bottom: 200px;
    min-height: 1000px;
    margin-top: 150px;
}
.checkout-content {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    overflow: hidden;
    gap: 0 0;
    max-height: 1000px;
    padding-top:110px;
}

button:hover {
    filter: brightness(.95)
}

button:disabled {
    opacity: .6;
    cursor: not-allowed
}

.in,
.out {
    color: #2e7d32;
    font-weight: 600
}

.out {
    color: #c62828
}

.sidebar {
    width: 260px;
    background-color: #003769;
    display: flex;
    flex-direction: column;
    overflow: hidden
}

.sidebar-fixed-header {
    padding: 0;
    border-bottom: 0 solid #ffcb36;
    background-color: transparent;
    position: sticky;
    top: 0;
    z-index: 10
}

.sidebar-title {
    font-size: 1.2rem;
    font-weight: 600;
    color: #fff;
    margin-bottom: .5rem
}

.sidebar-search {
    width: 50%;
    padding: .5rem;
    font-size: 1rem;
    border: 1px solid #ffcb36;
    border-radius: 4px;
    outline: 0;
    background-color: #fff;
    color: #003769
}

.sidebar-scrolling {
    flex: 1;
    overflow-y: auto;
    padding: .5rem
}

    .sidebar-scrolling::-webkit-scrollbar {
        width: 8px
    }

    .sidebar-scrolling::-webkit-scrollbar-track {
        background: rgba(255, 255, 255, .2);
        border-radius: 4px
    }

    .sidebar-scrolling::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, .6);
        border: 1px solid rgba(255, 255, 255, .8);
        border-radius: 4px
    }

        .sidebar-scrolling::-webkit-scrollbar-thumb:hover {
            background: rgba(255, 255, 255, .8)
        }

.category-list {
    list-style: none;
    margin: 0;
    padding: 0
}

.tree-category-label {
    position: relative;
    padding: .5rem .1rem;
    cursor: pointer;
    border-left: 3px solid #ffcb36;
    border-radius: 4px;
    transition: background-color .2s;
    background-color: rgba(255, 255, 255, .05);
    transform: translateY(1px)
}

    .tree-category-label::before {
        content: "►";
        position: absolute;
        left: .5rem;
        color: #ffcb36;
        font-size: .7rem;
        top: 50%;
        transform: translateY(-50%) rotate(0deg);
        transition: transform .2s ease
    }

    .tree-category-label.expanded::before {
        transform: translateY(-50%) rotate(90deg)
    }

.tree-cat-name {
    font-size: .7rem;
    font-weight: 500;
    color: #fff;
    margin-left: .3rem
}

.subcategory-list {
    list-style: none;
    margin: .25rem 0 .25rem 1.5rem;
    padding: 0
}

.pagination-bar button,
.tree-subcat-name {
    color: #fff;
    border-radius: 4px;
    cursor: pointer
}

.tree-subcat-name {
    display: block;
    position: relative;
    font-size: .65rem;
    padding-left: 2rem;
    transition: background-color .2s
}

    .tree-subcat-name::before {
        content: "•";
        color: #ffcb36;
        margin-right: .5rem;
        font-size: 1rem;
        vertical-align: middle
    }

    .tree-subcat-name:hover {
        background-color: rgba(255, 255, 255, .1)
    }

.product-grid {
    flex: 1;
    display: flex;
    flex-direction: column;
    margin-top: 0;
    background-color: #ffcb36
}


.user-greeting {
    padding: 1rem
}

.breadcrumb-nav {
    font-size: 1rem;
    line-height: 1.4;
    color: #fff;
    margin: 0
}

.breadcrumb-link {
    color: #fff;
    cursor: pointer;
    border: 0 solid transparent;
    border-right: 1px solid transparent !important;
    font-size: 1rem
}

    .breadcrumb-link:hover {
        color: silver;
        text-decoration: underline
    }


.section-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #003769;
    margin: 0 0 1rem
}

.product-title {
    font-weight: 500;
    margin: .25rem 0
}

.products-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
    gap: 1rem;
    margin: 0;
    padding: .5rem;
    background: #ffcb36
}

.product-item {
    position: relative;
    background: linear-gradient(180deg, #fff, #f0f4fa);
    border: 1px solid rgba(0, 0, 0, .1);
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    transition: transform .3s cubic-bezier(.25, .8, .25, 1), box-shadow .3s ease, border-color .3s ease;
    width: 100%;
    max-width: 12rem;
    min-width: 12rem;
    min-height: 12rem;
    margin: .5rem;
    box-shadow: 0 4px 8px rgba(0, 0, 0, .08)
}

    .product-item::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: linear-gradient(45deg, rgba(255, 203, 54, .2), rgba(0, 55, 121, .2));
        opacity: 0;
        transition: opacity .3s ease;
        pointer-events: none
    }

    .product-item:hover::before {
        opacity: 1
    }

    .product-item:hover {
        transform: translateY(-6px) scale(1.03);
        box-shadow: 0 8px 20px rgba(0, 0, 0, .15);
        border-color: #003769
    }

    .product-item img {
        width: 100%;
        height: 150px;
        object-fit: contain;
        background-color: #fff;
        transition: transform .3s ease
    }

    .product-item:hover img {
        transform: scale(1.05)
    }

    .product-item,
    .product-item .p-3 {
        display: flex;
        flex-direction: column
    }

        .product-item .p-3 {
            padding: 1rem;
            flex: 1;
            justify-content: space-between
        }

        .product-item .product-title {
            font-size: 1rem;
            font-weight: 700;
            color: #003769;
            margin-bottom: .5rem;
            text-transform: uppercase;
            letter-spacing: .5px;
            line-height: 1.2
        }

        .product-item .product-price {
            font-size: 1.1rem;
            font-weight: 600;
            color: #ffcb36;
            background-color: #003769;
            padding: .25rem .5rem;
            border-radius: 4px;
            display: inline-block;
            box-shadow: 0 2px 4px rgba(0, 0, 0, .1);
            transition: background-color .3s ease, transform .3s ease
        }

        .product-item:hover .product-price {
            background-color: #024;
            transform: translateY(-2px)
        }

        .product-item .badge,
        .product-table table button {
            background-color: #ffcb36;
            color: #003769;
            border-radius: 4px
        }

        .product-item .badge {
            position: absolute;
            top: 8px;
            left: 8px;
            font-weight: 700;
            padding: .25rem .5rem;
            font-size: .8rem;
            text-transform: uppercase;
            box-shadow: 0 2px 4px rgba(0, 0, 0, .1)
        }

.product-table {
    position: relative;
    width: 100%;
    background-color: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 0;
    overflow-x: auto;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .08);
    padding-bottom: 30rem
}

    .product-table table button {
        width: 100%;
        padding: .5rem;
        font-weight: 600;
        border: 0;
        cursor: pointer;
        transition: background-color .2s ease
    }

.pagination-bar {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: .3rem;
    background: #fff;
    border-top: 1px solid #ddd;
    display: flex;
    justify-content: center;
    gap: .5rem
}

    .pagination-bar button {
        background-color: #003769;
        border: 0;
        padding: .3rem .6rem;
        font-size: .9rem;
        transition: background-color .2s ease, transform .2s ease
    }

.pagination-info {
    font-size: .9rem;
    color: #333;
    font-weight: 500
}

.products-wrapper::-webkit-scrollbar {
    width: 8px
}

.products-wrapper::-webkit-scrollbar-track {
    background: #faf9f0;
    border-radius: 4px
}

.products-wrapper::-webkit-scrollbar-thumb {
    background-color: rgba(0, 55, 121, .6);
    border: 1px solid rgba(0, 55, 121, .8);
    border-radius: 4px
}

    .products-wrapper::-webkit-scrollbar-thumb:hover {
        background-color: rgba(0, 55, 121, .8)
    }



.order-section {
    height: 120px;
}

    .order-section input {
        padding: .25rem;
        font-size: 1rem;
        margin-right: 1rem
    }

    .order-section button {
        margin-top: .5rem
    }

.cart-sidebar-overlay {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(0, 0, 0, .5);
    display: flex;
    justify-content: flex-end;
    z-index: 1200
}

.cart-sidebar {
    background: #fff;
    width: 40vw;
    height: 100%;
    box-shadow: -4px 0 20px rgba(0, 0, 0, .15);
    padding: 1.5rem;
    position: relative;
    transform: translateX(0);
    transition: transform .3s ease-out;
    overflow-y: auto;
    display: flex;
    flex-direction: column
}

.cart-sidebar-close-btn {
    position: absolute;
    top: 15px;
    right: 15px;
    background: 0 0;
    border: 0;
    font-size: 1.75rem;
    cursor: pointer;
    color: #666;
    transition: color .2s
}

    .cart-sidebar-close-btn:hover {
        color: #333
    }

.cart-items {
    list-style: none;
    margin: 1rem 0;
    flex-grow: 1;
    overflow-y: auto;
    padding: 0 4px 0 0
}

.cart-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid #eee;
    padding-bottom: 1rem;
    position: relative
}

    .cart-item img {
        width: 60px;
        height: 60px;
        object-fit: cover;
        border-radius: 4px;
        border: 1px solid #f0f0f0
    }

.cart-item-details {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    font-size: .95rem;
    color: #333
}

.cart-item-name {
    font-weight: 600;
    font-size: 1rem;
    margin-bottom: .3rem
}

.cart-item-price,
.cart-item-quantity {
    display: block
}

.cart-item-meta {
    display: flex;
    justify-content: space-between;
    font-size: .9rem;
    color: #666
}

.cart-remove-btn {
    position: absolute;
    right: 0;
    top: 0;
    background: 0 0;
    border: 0;
    font-size: 1.2rem;
    color: #888;
    cursor: pointer;
    transition: color .2s ease
}

    .cart-remove-btn:hover {
        color: #e74c3c
    }

.empty-cart-btn {
    background-color: transparent;
    color: #e74c3c;
    border-radius: 4px;
    width: 100%
}

    .empty-cart-btn:hover {
        background-color: #e74c3c;
        color: #fff
    }

.cart-footer {
    border-top: 1px solid #e0e0e0;
    padding-top: 1rem;
    background-color: #fff
}



.searchbar {
    display: flex;
    margin-bottom: auto;
    margin-top: auto;
    height: 35px;
    background-color: #003769;
    border-radius: 30px;
    padding: 0
}

.search_input {
    color: #fff;
    border: 0;
    outline: 0;
    background: 0 0;
    width: 0;
    caret-color: transparent;
    line-height: 35px;
    transition: width .4s linear
}

.searchbar.active > .search_input,
.searchbar:hover > .search_input {
    padding-left: 20px;
    width: 450px;
    caret-color: #ff0;
    transition: width .4s linear
}

.searchbar.active > .search_icon,
.searchbar:hover > .search_icon {
    background: #fff;
    color: #e74c3c
}

.search_icon {
    height: 35px;
    width: 35px;
    float: right;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    color: #fff;
    text-decoration: none
}

.btn-breadcrumb,
.btn-default1 {
    color: #003769;
    position: relative
}

.btn-breadcrumb {
    display: inline-flex;
    align-items: center;
    font-family: "Roboto", sans-serif;
    font-size: 15px;
    padding-right: 20px
}

.btn-default1 {
    background: linear-gradient(135deg, #ffcb36, #e0a800);
    font-weight: 700;
    border: 0;
    padding: 5px 24px 5px 24px;
    margin: 0;
    cursor: pointer;
    text-transform: capitalize;
    transition: background .3s ease, box-shadow .3s ease, transform .3s ease;
    clip-path: polygon(0 0, calc(100% - 20px)0, 100% 50%, calc(100% - 20px) 100%, 0 100%);
}

    .btn-default1:not(:last-child) {
        margin-right: -20px
    }

    .btn-default1:last-child {
        margin-right: 0
    }

.btn-breadcrumb .btn-default1:nth-child(1) {
    z-index: 3
}

.btn-breadcrumb .btn-default1:nth-child(2) {
    z-index: 2
}

.btn-breadcrumb .btn-default1:nth-child(3) {
    z-index: 1
}

.btn-default1:hover {
    background: linear-gradient(135deg, #e0a800, #ffcb36);
    box-shadow: 0 4px 8px rgba(0, 0, 0, .25);
    transform: translateY(-2px);
}

.btn-default1:nth-child(1) {
    padding-left: 7px;
}

.header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 15px
}

.user-greeting {
    font-family: "Roboto", sans-serif;
    font-size: 16px;
    color: #fff;
    letter-spacing: .5px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .3)
}

.logout-btn,
.shop-product-details button {
    border: 0;
    border-radius: 25px;
    font-weight: 600;
    cursor: pointer
}

.shopping-cart-btn {
    margin-right: .2rem
}

.shopping-cart-btn {
    background-color: #ffcb36;
    padding: .6rem 1rem;
    font-size: 1rem;
    margin-left: auto
}

    .shopping-cart-btn:hover {
        background-color: #0051a3
    }

.logout-btn,
.shopping-cart-btn {
    color: #003769;
    font-family: "Roboto", sans-serif;
    font-size: 16px
}

.logout-btn {
    background: linear-gradient(135deg, #ffcb36, #e0a800);
    padding: 10px 25px;
    box-shadow: 0 3px 6px rgba(0, 0, 0, .2);
    transition: transform .2s ease, box-shadow .2s ease
}

    .logout-btn:hover {
        transform: translateY(-3px);
        box-shadow: 0 6px 12px rgba(0, 0, 0, .3)
    }

    .logout-btn:active {
        transform: translateY(-1px);
        box-shadow: 0 3px 6px rgba(0, 0, 0, .25)
    }

.shopping-cart-btn {
    margin-right: .2rem
}

.shopping-cart-btn {
    background-color: #ffcb36;
    padding: .6rem 1rem;
    font-size: 1rem;
    margin-left: auto
}

    .shopping-cart-btn:hover {
        background-color: #0051a3
    }

.logout-btn,
.shopping-cart-btn {
    color: #003769;
    font-family: "Roboto", sans-serif;
    font-size: 16px
}

.shopping-cart-btn {
    position: relative;
    display: flex;
    align-items: center;
    background: 0 0;
    border: 2px solid #003769;
    font-weight: 600;
    padding: 5px 10px;
    border-radius: 30px;
    cursor: pointer;
    transition: background .3s ease, transform .3s ease, box-shadow .3s ease, color .3s ease
}

    .shopping-cart-btn:hover {
        background: #003769;
        color: #ffcb36;
        transform: translateY(-2px);
        box-shadow: 0 4px 8px rgba(0, 0, 0, .2)
    }

    .shopping-cart-btn i {
        margin-right: 8px;
        font-size: 18px
    }

.cart-badge {
    position: absolute;
    top: -5px;
    right: -5px;
    background: red;
    color: #fff;
    border-radius: 50%;
    padding: 3px 7px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1
}

.product-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
    overflow-y: auto !important;
    height: 85% !important
}

.shop-product-list {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    justify-content: center;
    overflow-y: auto;
    height: 85%
}

.shop-product-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    overflow: hidden;
    transition: transform .3s ease, box-shadow .3s ease;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .1);
    width: 100%;
    max-width: 300px
}

    .shop-product-card:hover {
        transform: translateY(-3px);
        box-shadow: 0 4px 12px rgba(0, 0, 0, .15)
    }

.shop-product-image {
    width: 100%;
    background: #f8f8f8;
    display: flex;
    align-items: center;
    justify-content: center
}

    .shop-product-image img {
        width: 100%;
        height: auto;
        object-fit: cover
    }

.shop-product-details {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: .5rem
}

.shop-product-title {
    font-size: 1rem;
    font-weight: 700;
    color: #024;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 1px
}

.shop-product-reference {
    font-size: .9rem;
    color: #555;
    margin: 0
}

.shop-product-price {
    font-size: 1.1rem;
    font-weight: 700;
    color: #ff4500;
    margin: 0
}

.shop-product-stock {
    font-size: .9rem;
    color: #070;
    margin: 0
}

.shop-product-details button {
    margin-top: 1rem;
    background: #003769;
    color: #ffcb36;
    padding: .75rem 1.5rem;
    font-size: .9rem;
    transition: background .3s ease, transform .3s ease;
    align-self: center
}

    .checkout-btn:hover,
    .order-button:hover,
    .shop-product-details button:hover {
        background: #024;
        transform: translateY(-2px)
    }



.order-button {
    margin-top: 1rem;
    background: #003769
}

.checkout-btn {
    background: #003769;
    color: #ffcb36
}

.checkout-btn,
.empty-cart-btn {
    margin-top: 1rem;
    border: 0;
    padding: .75rem 1.5rem;
    font-size: .9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .3s ease, transform .3s ease;
    align-self: center
}

    .empty-cart-btn:hover {
        transform: translateY(-2px)
    }

.checkout-wrapper {
    width: 100%;
    background: linear-gradient(135deg, #f5f7fa, #c3cfe2);
    padding: 1rem;
    display: flex;
    align-items: center;
    justify-content: center
}



.order-total {
    margin-top: 1rem;
    text-align: right
}





body {
    padding-top: 0;
}



.product-grid {
    position: relative;
    left: 0;
    height: 100%
}

.city-autocomplete {
    position: relative;
    width: 300px
}

    .city-autocomplete input,
    .city-suggestions {
        width: 100%;
        box-sizing: border-box;
        padding: 6px 8px
    }

.city-suggestions {
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    max-height: 200px;
    overflow-y: auto;
    margin: 0;
    padding: 0;
    list-style: none;
    background-color: #fff;
    border: 1px solid #ccc;
    z-index: 999
}

.city-suggestion-item {
    padding: 6px 8px;
    cursor: pointer
}

    .city-suggestion-item:hover {
        background-color: #f0f0f0
    }

.error-msg {
    display: block;
    margin-top: 4px;
    color: red;
    font-size: .9rem
}

.product-modal-overlay {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0
}

.modal-body {
    flex-direction: row;
    width: 1200px !important
}

.modal-image img {
    width: 100%;
    height: auto;
    border-radius: 6px;
    object-fit: cover;
    box-shadow: 0 2px 12px rgba(0, 0, 0, .15)
}

.modal-details {
    justify-content: space-between
}

    .modal-details h2 {
        margin-top: 0;
        font-size: 1.4rem;
        color: #003769;
        margin-bottom: .5rem
    }

.product-reference {
    font-weight: 600
}

.order-controls label {
    font-size: 1rem;
    color: #003769;
    font-weight: 600
}

.order-controls input {
}

.product-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
    animation: fadeModal .3s ease-in-out
}

.product-modal-content {
    background: #fff;
    border-radius: 10px;
    width: 100%;
    max-width: 80vw;
    min-width: 50vw;
    box-shadow: 0 8px 32px rgba(0, 0, 0, .2);
    position: relative;
    animation: fadeInScale .3s ease-in-out;
    overflow: hidden
}

.product-modal-close-btn {
    position: absolute;
    top: 16px;
    right: 16px;
    background: 0 0;
    border: 0;
    font-size: 1.8rem;
    cursor: pointer;
    color: #003769;
    transition: color .2s, transform .2s
}

    .product-modal-close-btn:hover {
        color: #ffcb36;
        transform: scale(1.1)
    }

.modal-body {
    display: flex;
    flex-wrap: nowrap;
    gap: 2rem;
    padding: 2.5rem 2rem
}

.modal-image {
    flex: 0 0 350px;
    max-width: 350px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center
}

.modal-details {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-width: 0
}

.product-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1rem
}

.product-title {
    flex: 1;
    font-size: 1.2rem;
    color: #003769;
    margin: 0;
    line-height: 1.2;
    overflow-wrap: break-word;
    word-wrap: break-word
}

.product-price {
    background: #ffcb36;
    color: #003769;
    font-weight: 600;
    padding: .4rem .8rem;
    border-radius: 4px;
    font-size: 1.2rem;
    margin-top: 4px
}

.product-info {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    font-size: 1rem;
    color: #444;
    margin-bottom: 1rem
}

.product-reference {
    font-style: italic;
    color: #777
}

.product-description {
    font-size: 1rem;
    margin-bottom: 1.5rem;
    color: #333;
    line-height: 1.4
}

.product-stock {
    font-size: 1rem;
    margin-bottom: 1.5rem;
    color: #2e7d32;
    font-weight: 600
}

.order-section {
    margin-top: 0;
    border-top: 1px solid #ddd;
}

.order-controls {
    display: flex;
    gap: .5rem;
}



.order-button {
    align-self: flex-start;
    background-color: #003769;
    color: #ffcb36;
    border: 0;
    padding: .6rem 1.25rem;
    border-radius: 4px;
    font-size: 1rem;
    cursor: pointer;
    font-weight: 600;
    letter-spacing: .5px;
    transition: background-color .2s ease, transform .2s ease
}

    .order-button:hover {
        background-color: #ffcb36;
        color: #003769;
        transform: scale(1.02)
    }

    .order-button:active {
        transform: scale(.98)
    }

@media (max-width:480px) {
    .cart-sidebar {
        width: 90%;
        padding: 1rem
    }
}

@media (max-width:768px) {
    .checkout-container {
        flex-direction: column
    }

    .checkout-summary {
        border-left: none;
        border-top: 1px solid #e6e6e6
    }
}

@media (max-width:768px) {
    .shop-product-list {
        flex-direction: column;
        align-items: center
    }

    .shop-product-card {
        max-width: 100%
    }
}

@media (max-width:768px) {
    .btn-breadcrumb {
        font-size: 13px;
        padding-right: 16px
    }

    .btn-default1 {
        padding: 0px 24px 10px 20px;
        clip-path: polygon(0 0, calc(100% - 16px)0, 100% 50%, calc(100% - 16px) 100%, 0 100%)
    }

        .btn-default1:not(:last-child) {
            margin-right: -16px
        }
}

@media (max-width:768px) {
    .checkout-container {
        flex-direction: column
    }

    .checkout-summary {
        border-left: none;
        border-top: 1px solid #eee
    }
}
/* The main container for the entire order row */
.order-section {
    /* Remove border-top if you don't want the horizontal line,
     or keep if you like the separation */
    border-top: 1px solid #ddd;
    display: flex; /* We'll align horizontally */
    flex-direction: column;
    align-items: center; /* Vertical center */
    position: relative; /* In case we want absolute positioning inside */
    /* No 'justify-content' so we can handle custom centering logic below */
    padding-top: 0 !important;
}

/* 1) The button container is placed first in the DOM,
   but we push it to the center with margin: auto. */
.order-button-center {
    margin: 0 auto; /* This pushes it to the center horizontally */
}

/* 2) The right side container for quantity + total */
.order-right {
    display: flex;
    align-items: center;
    flex-direction: row;
    width: 100%;
    justify-content: space-between;
    padding-top: 0;
}

    .order-right label {
        align-self: center;
    }

/* If you want the entire row to never shrink,
   you can also do: flex-shrink: 0; on .order-right or .order-button-center. */

/* Order controls (quantity label + input) */
.order-controls {
    display: flex;
}

    .order-controls label {
        font-size: 1rem;
        color: #003769;
        font-weight: 600;
    }

    .order-controls input {
    }

/* The order total block */
.order-total {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 1.3rem;
    color: #003769;
    font-weight: 600;
    align-items: flex-start;
    align-self: center;
}

    .order-total .htva,
    .order-total .tva,
    .order-total .tvac {
        line-height: 1.2;
    }

/* The "Ajouter au panier" button (same or inherited from earlier snippet) */
.order-button {
    background-color: #003769;
    color: #ffcb36;
    border: none;
    padding: 0.6rem 1.25rem;
    border-radius: 4px;
    font-size: 1rem;
    cursor: pointer;
    font-weight: 600;
    letter-spacing: 0.5px;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

    .order-button:hover {
        background-color: #ffcb36;
        color: #003769;
        transform: scale(1.02);
    }

    .order-button:active {
        transform: scale(0.98);
    }

.spacers {
    width: 100%;
    display: flex;
    gap: 1rem;
    justify-content: space-between !important;
}

    .spacers .htva {
        font-size: 80%;
    }

    .spacers .tva {
        font-size: 80%;
    }

.liners {
    border-bottom: 1px solid #ddd;
    padding-bottom: 0.2em;
}
/* Container that unifies minus button, input, plus button into one "box" */
.quantity-embedded {
    display: inline-flex; /* horizontally line up minus, input, plus */
    align-items: center;
    border: 2px solid #003769; /* brand color for border */
    border-radius: 6px;
    overflow: hidden; /* so corners remain rounded if we hover */
    background: #fdfdfd; /* slightly off-white; tweak as desired */
}

    /* The input in the center */
    .quantity-embedded input {
        width: 50px;
        border: none;
        text-align: center;
        font-size: 1rem;
        font-weight: 600;
        color: #003769; /* brand color for text */
        outline: none; /* remove focus outline (browsers apply highlight anyway) */
        background: transparent;
        padding: 0 !important;
        margin: 0 !important;
    }

        /* Hide the default up/down arrows for numeric fields in Chrome, etc. */
        .quantity-embedded input::-webkit-inner-spin-button,
        .quantity-embedded input::-webkit-outer-spin-button {
            -webkit-appearance: none;
            margin: 0;
            padding: 0 !important;
            margin: 0 !important;
        }

/* The minus/plus buttons share these styles */
.btn-qty.embed {
    background: #003769; /* navy background by default */
    color: #ffcb36;
    border: none;
    font-size: 1.3rem;
    font-weight: 600;
    line-height: 1;
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
    padding: 0 !important;
    margin: 0 !important;
}

    /* Subtle difference for left or right button if you want separate corners */
    .btn-qty.embed.minus {
    }

    .btn-qty.embed.plus {
    }

    /* Hover states: flip background => brand yellow, text => navy */
    .btn-qty.embed:hover {
        background: #ffcb36;
        color: #003769;
    }

    .btn-qty.embed:active {
        transform: scale(0.95);
    }
/* ----- PROFILE VIEW WRAPPER ----- */
.profile-view {
    border-radius: 8px;
    padding: 2rem;
}

    .profile-view h2 {
        font-size: 1.8rem;
        margin-bottom: 1.5rem;
        color: #003769; /* matches the shop's accent */
    }

    .profile-view p {
        margin: 0.5rem 0;
        font-size: 1rem;
        color: #333;
    }


/* ----- PROFILE INFO FIELDS ----- */
.profile-summary {
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    flex-wrap:wrap;
}

    .profile-summary .profile-row {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        margin-bottom: 0.25rem;
        min-width:50%;
    }

    .profile-summary .profile-label {
        font-weight: 600;
        color: #444;
        width: 100px; /* fixed label width, or remove if you prefer */
    }

    .profile-summary .profile-value {
        color: #555;
        flex: 1;
    }
    .profile-summary .profile-actions{
        margin-top:0;
        min-width:49%;
        flex:2;
    }

.profile-view .user-not-logged {
    padding: 1rem;
    border: 1px solid #ffeeba;
    border-radius: 4px;
    margin-bottom: 1rem;
    margin-top: 0;
}

/* ----- ORDERS LIST ----- */
.profile-orders {
    margin-top: 1rem;
}

    .profile-orders h3 {
        font-size: 1.2rem;
        color: #003769;
        margin-bottom: 1rem;
    }

    .profile-orders .no-orders {
        font-style: italic;
        color: #666;
    }

    .profile-orders ul {
        list-style: none;
        padding: 0;
        margin: 0;
        border-top: 1px solid #ddd;
        border-bottom: 1px solid #ddd;
    }

    .profile-orders li {
        padding: 0.75rem 0;
        border-bottom: 1px solid #eee;
        color: #333;
        font-size: 0.95rem;
    }

        .profile-orders li:last-child {
            border-bottom: none;
        }


.profile-view button {
    background-color: #ffcb36;
    padding: .6rem 1rem;
    font-size: 1rem;
    margin-left: auto
}

    .profile-view button:hover {
        background-color: #0051a3
    }

.profile-view button {
    position: relative;
    display: flex;
    align-items: center;
    background: 0 0;
    border: 2px solid #003769;
    font-weight: 600;
    padding: 5px 10px;
    border-radius: 30px;
    cursor: pointer;
    transition: background .3s ease, transform .3s ease, box-shadow .3s ease, color .3s ease
}

    .profile-view button:hover {
        background: #003769;
        color: #ffcb36;
        transform: translateY(-2px);
        box-shadow: 0 4px 8px rgba(0, 0, 0, .2)
    }

    .profile-view button i {
        margin-right: 8px;
        font-size: 18px
    }

.shopping-cart-btn1 {
    margin-right: .2rem
}

.shopping-cart-btn1 {
    background-color: #fff;
    padding: .6rem 1rem;
    font-size: 1rem;
    margin-left: auto
}

    .shopping-cart-btn1:hover {
        background-color: #0051a3
    }


.shopping-cart-btn1 {
    color: #ffcb36;
    font-family: "Roboto", sans-serif;
    font-size: 16px
}

.shopping-cart-btn1 {
    position: relative;
    display: flex;
    align-items: center;
    background: 0 0;
    border: 2px solid #003769;
    font-weight: 600;
    padding: 5px 10px;
    border-radius: 30px;
    cursor: pointer;
    transition: background .3s ease, transform .3s ease, box-shadow .3s ease, color .3s ease;
    background-color: #ffcb36;
    color: #003769;
}

    .shopping-cart-btn1:hover {
        background: #ffcb36;
        color: #003769;
        transform: translateY(-2px);
        box-shadow: 0 4px 8px rgba(0, 0, 0, .2)
    }

    .shopping-cart-btn1 i {
        margin-right: 8px;
        font-size: 18px
    }


/* Entire profile view container */
.profile-view {
    /* The user requested #ffcb36 as the background */
    background: #ffcb36;
    padding: 2rem;
    border-radius: 8px;
    /* If you want it to take full width, remove next line, 
     or give it some max-width:
  */
    min-width: 80vw;
    margin: 1rem auto; /* center horizontally if there's a max-width */
    margin-top: 100px;
    padding-top: 0;
}

    /* Headline for the profile */
    .profile-view h2 {
        margin-top: 0;
        margin-bottom: 1.5rem;
        color: #333;
        font-size: 1.8rem;
        text-transform: uppercase; /* optional */
    }

/* Container for user info details (white box) */
.profile-top {
    display: flex;
    padding-top: 1rem;
}

    .profile-top button {
        max-height: 10%;
        height: 20%;
    }
/* Container for user info details (white box) */
.profile-summary {
    background: #fff;
    border-radius: 6px;
    padding: 1.25rem 1rem;
    margin-bottom: 1.5rem;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

/* Each row: label + value */
.profile-row {
    display: flex;
    flex-wrap: wrap;

}

.profile-label {
    min-width: 10vw;
    width: 10vw;
    max-width: 10vw;
    font-weight: 600;
    color: #555;
}

.profile-value {
    flex: 1;
    color: #333;
    margin-left: 0.5rem;
}

/* Container for orders (white box) */
.profile-orders {
    background: #fff;
    border-radius: 6px;
    padding: 1.25rem 1rem;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

    /* The "Mes Commandes" title */
    .profile-orders h3 {
        margin-top: 0;
        margin-bottom: 1rem;
        font-size: 1.3rem;
        color: #333;
        text-transform: uppercase; /* optional */
    }

/* When no orders exist */
.no-orders {
    font-style: italic;
    color: #666;
}

/* Basic list styling for orders */
.profile-orders ul {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
}

.profile-orders li {
    padding: 0.75rem 0;
    border-bottom: 1px solid #eee;
    font-size: 0.95rem;
    color: #333;
}

    .profile-orders li:last-child {
        border-bottom: none;
    }

/* If user is not logged in */
.user-not-logged {
    background: #fff;
    padding: 1rem;
    border-radius: 6px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
    color: #333;
    margin-bottom: 1.5rem;
}



.col-order-status {
    padding-right: 3rem;
    padding-left: 3rem;
}

.col-order-price {
    padding-right: 5rem;
    padding-left: 5rem;
}

.col-order-date {
    padding-right: 3rem;
    padding-left: 3rem;
}

.col-order-action {
    padding-right: .5rem;
    padding-left: 0rem;
}

.cell-order-action {
    width: 7vw;
}

.col-order-action {
    text-align: center;
}

/* ===== CHECKOUT WRAPPER & CONTAINER ===== */
.checkout-wrapper {
    width: 100%;
    background: linear-gradient(135deg, #f5f7fa, #c3cfe2);
    padding: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.checkout-container {
    display: flex;
    flex-direction: row;
    background: #fff;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
    border-radius: 12px;
    overflow: hidden;
    max-height: 800px;
    margin: 0 ;
    /* Let it expand as much as needed; 
     or set a max-width if you want to constrain horizontally. */
    max-width: 100%;
}

/* ===== FORM SIDE (LEFT) ===== */
.checkout-form {
    flex: 2;
    padding: 2.5rem;
    padding-bottom:1rem;
    background: #fff;
    overflow-y: auto;
    border-right: 1px solid #e6e6e6;
    min-width:750px;
    display: flex;
    flex-direction: column;
}

    .checkout-form h2 {
        margin-bottom: 1.5rem;
        color: #2c3e50;
        font-size: 2rem;
        font-weight: 700;
        letter-spacing: 0.5px;
        border-bottom: 2px solid #e6e6e6;
        padding-bottom: 0.5rem;
    }

    .checkout-form .form-section {
        margin-bottom: 1.75rem;
    }

        .checkout-form .form-section h3 {
            font-size: 1.4rem;
            margin-bottom: 0.75rem;
            color: #2c3e50;
            border-bottom: 1px solid #dcdcdc;
            padding-bottom: 0.3rem;
        }

    .checkout-form label {
        cursor: pointer;
        user-select: none;
        display: block;
        margin-bottom: 0.5rem;
        font-size: 1rem;
        color: #34495e;
    }

    /* Radio inputs for Delivery/Pickup, Payment Methods, etc. */
    .checkout-form input[type="radio"] {
        margin-right: 0.5rem;
        transform: translateY(1px);
    }

    /* Generic text fields in the checkout form */
    .checkout-form input[type="text"],
    .checkout-form input[type="email"],
    .checkout-form input[type="tel"] {
        width: 100%;
        padding: 0.3rem;
        margin: 0.2rem 0 1rem;
        border: 1px solid #dcdcdc;
        border-radius: 6px;
        font-size: 1rem;
        transition: border-color 0.3s ease, box-shadow 0.3s ease;
    }

    .checkout-form input:focus {
        border-color: #2980b9;
        box-shadow: 0 0 8px rgba(41, 128, 185, 0.3);
        outline: 0;
    }
.che1{
    height:90%;
    max-height:90%;
    overflow:auto;
    padding-right:0.5rem;
}
.che2{
    align-content:end;
}
.sum1 {
    height: 70%;
    max-height: 70%;

    overflow: auto;
}

.sum2 {

}
/* Inline fields (e.g., Zip + City side by side) */
.inline-fields {
    display: flex;
    gap: 1rem;
}

    .inline-fields input {
        flex: 1;
    }

/* ===== Bank Info & Payment Method ===== */
.bank-details {
    background: #f0f0f5;
    border: 1px solid #e0e6ed;
    border-radius: 6px;
    padding: 1rem;
    margin-top: 0rem;
    margin-bottom: 0.5rem;
    color: #333;
}

    .bank-details h4 {
        margin: 0 0 0.5rem;
        font-size: 1.05rem;
        color: #2c3e50;
        font-weight: 700;
    }

    .bank-details p {
        margin: 0.3rem 0;
        line-height: 1.4;
        color: #444;
    }

/* Store pickup info (if user selects "Retrait en magasin") */
.store-pickup-info {
    background: #f0f0f5;
    border: 1px solid #e0e6ed;
    border-radius: 6px;
    padding: 1rem;
    color: #444;
}

/* ===== Address Summary (when not editing) ===== */
.address-summary {
    background: #f0f0f5;
    padding: 1.5rem;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    margin-bottom: 1.5rem;
    transition: background 0.3s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    display: flex;
    justify-content: space-between;
}

    .address-summary .line {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
    }

        .address-summary .line.fullname {
            font-weight: 700;
            font-size: 1.1rem;
        }

        .address-summary .line.address {
            font-size: 1rem;
        }

        .address-summary .line.details {
            font-size: 0.95rem;
            color: #555;
        }

    .address-summary button {
        margin-top: 0.75rem;
        padding: 0.5rem 1.25rem;
        background: none;
        border: 1px solid #2980b9;
        color: #2980b9;
        border-radius: 4px;
        cursor: pointer;
        transition: background 0.3s ease, color 0.3s ease;
    }

        .address-summary button:hover {
            background: #2980b9;
            color: #fff;
        }
/* somewhere in your global stylesheet */
.edit-icon {
    cursor: pointer;
    padding: 4px;
    border: 1px solid transparent;
    border-radius: 4px;
    transition: background 0.2s, border-color 0.2s;
    height:50%;
}

    .edit-icon:hover,
    .edit-icon:focus-visible {
        background: rgba(0, 0, 0, 0.05); /* light grey */
        border-color: currentColor; /* uses the icon’s font colour */
    }
/* ===== Checkout Buttons (Annuler / Confirmer) ===== */
.checkout-actions {
    display: flex;
    margin-top: auto; /* pushes this block to the bottom of .checkout-form */
    justify-content: space-between;
}

    .checkout-actions button {
        padding: 1rem 2rem;
        font-size: 1rem;
        border: 0;
        border-radius: 6px;
        cursor: pointer;
        transition: background-color 0.3s ease, transform 0.3s ease;
    }

        .checkout-actions button:first-child {
            background: #bdc3c7;
            color: #2c3e50;
        }

        .checkout-actions button:last-child {
            background: #2980b9;
            color: #fff;
        }

        .checkout-actions button:hover {
            transform: translateY(-3px);
        }
.che1 button {
    padding: 0.1rem 0.3rem;
    font-size: 1rem;
    border: 0;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.3s ease;
    display: flex;
    justify-self: right;
}

.che1 button {
    background: #2980b9;
    color: #fff;
}

        .che1 button:hover {
            transform: translateY(-3px);
        }
/* ===== SUMMARY SIDE (RIGHT) ===== */
.checkout-summary {
    min-width: 750px;
    flex: 1;
    padding: 2.5rem;
    background: #f4f7fa;
}

    .checkout-summary h3 {
        margin-bottom: 1rem;
        color: #2c3e50;
        font-size: 1.75rem;
        font-weight: 700;
    }

.checkout-items {
    list-style: none;
    padding: 0;
    margin: 0;
    margin-right:1rem;
    overflow-y: auto;
}

/* Each item row in the summary */
.checkout-item {
    display: flex;
    align-items: center;
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #eaeaea;
}

    .checkout-item img {
        width: 70px;
        height: 70px;
        object-fit: cover;
        margin-right: 1.5rem;
        border-radius: 6px;
        border: 1px solid #f0f0f0;
    }

.checkout-item-details {
    flex: 1;
    font-size: 0.95rem;
    color: #2c3e50;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.checkout-item-name {
    font-weight: 600;
    margin-bottom: 0.5rem;
    font-size: 1.05rem;
    color: #333;
}

.checkout-item-meta {
    display: flex;
    justify-content: space-between;
    font-size: 0.9rem;
    color: #7f8c8d;
}

.checkout-item-price,
.checkout-item-quantity {
    font-size: 0.9rem;
    color: #666;
}

/* Subtotal, shipping, total at the bottom */
.order-subtotal,
.order-shipping,
.order-total-amount {
    margin-top: 1rem;
    font-size: 1rem;
    color: #2c3e50;
    display: flex;
    justify-content: space-between;
}

.order-subtotal {
    font-weight: 600;
}

.order-shipping small {
    margin-left: 0.5rem;
    color: #666;
    font-size: 0.85rem;
}

.order-total-amount {
    font-size: 1.2rem;
    font-weight: 700;
    border-top: 1px solid #ddd;
    padding-top: 1rem;
    margin-top: 1rem;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
    .checkout-container {
        flex-direction: column;
    }

    .checkout-form {
        border-right: none;
        border-bottom: 1px solid #e6e6e6;
        width: 100%;
    }

    .checkout-summary {
        border-top: 1px solid #e6e6e6;
        min-width: auto;
        width: 100%;
    }
}

.order-row {

    justify-content: space-between;
    border-bottom: 1px solid #e6e6e6;
    align-content: center;

}

    .order-row td {
        align-content: center;

    }



/* Topmost header bar */
header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 999;
    background: #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .1);
    height: 121px; /* Use px for consistent height */
    max-height: 121px; /* Use px for consistent height */
}

/* First sub-header directly under header */
.main-header {
    position: fixed;
    top: 121px; /* height of header */
    left: 0;
    width: 100%;
    height: 50px;
    background-color: #003769;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem;
    border-left: 1px solid #ffcb36;
    z-index: 998;
}

/* Second sub-header directly under main-header */
.main-header1 {
    position: fixed;
    top: 170px; /* header (60) + main-header (50) */
    left: 0;
    width: 100%;
    height: 50px;
    background-color: #ffcb36;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem;
    border-left: 1px solid #ffcb36;
    z-index: 997;
}


/* ─── Edit-Profile Inputs ─── */
.profile-view .profile-summary input {
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 0.2rem;
    width: 100%;
    max-width: 250px;
    margin: 0;
    font-size: 1rem;
}

/* ─── Inline-Fields Group (ZIP + City) ─── */
.profile-view .profile-row.inline-fields {
    display: flex;
    gap: 0 !important;
    align-items: flex-start;
}

/* ─── Error Messages ─── */
.profile-view .profile-summary .error-msg {
    color: #dc3545;
    font-size: 0.85rem;
    margin-top: -0.5rem;
    margin-bottom: 0.5rem;
    display: block;
}

.profile-label {
    min-width: 150px;
    max-width: 150px;
    width: 150px;
    align-self: center;
}

/* ─── Confirmation Section ─── */
.confirmation-section {
    background: #fff;
    padding: 2rem;
    border-radius: 8px;
    max-width: 480px;
    min-width: 480px;
    width: 480px;
    height: 100%;
    margin: 2rem auto;
    box-shadow: 0 2px 12px rgba(0,0,0,0.05);
    text-align: center;
    font-family: inherit;
    margin-top: 5rem;

}

    /* Heading */
    .confirmation-section h2 {
        font-size: 1.75rem;
        margin-bottom: 1rem;
        color: #28a745;
    }

    /* Subheading */
    .confirmation-section p {
        margin-bottom: 1.5rem;
        font-size: 1rem;
        color: #555;
    }

    /* Details block */
    .confirmation-section .confirmation-details {
        text-align: left;
        margin-bottom: 1.5rem;
    }

        .confirmation-section .confirmation-details p {
            margin: 0.5rem 0;
            line-height: 1.4;
            font-size: 0.95rem;
        }

        .confirmation-section .confirmation-details strong {
            color: #333;
        }

    /* Bank summary */
    .confirmation-section .bank-summary {
        background: #f9f9f9;
        padding: 1rem;
        border-radius: 6px;
        margin: 1rem 0;
    }

        .confirmation-section .bank-summary h4 {
            margin-top: 0;
            margin-bottom: 0.75rem;
            font-size: 1rem;
            color: #333;
        }

        .confirmation-section .bank-summary p {
            margin: 0.25rem 0;
            font-size: 0.9rem;
        }

.back-to-shop {
    margin: auto;
}

/* ─── Order Detail View Container ─── */
.order-detail-view {
    background: #fff;
    padding: 2rem;
    max-width: 1800px;
    min-height: 500px;
    margin: 2rem auto;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
    font-family: inherit;
    margin-top: 6rem;
}

    /* Header & Back Button */
    .order-detail-view .contained {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 1.5rem;
    }

        .order-detail-view .contained h2 {
            font-size: 1.5rem;
            color: #333;
            margin: 0;
        }

        .order-detail-view .contained .back-btn {
        }

            .order-detail-view .contained .back-btn:hover {
            }

    /* Order Info Block */
    .order-detail-view .order-info {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
        gap: 1rem;
        margin-bottom: 2rem;
    }

        .order-detail-view .order-info p {
            margin: 0.5rem 0;
            font-size: 0.95rem;
            color: #555;
        }

        .order-detail-view .order-info strong {
            color: #222;
        }

    /* Items Table */
    .order-detail-view h3 {
        font-size: 1.25rem;
        margin-bottom: 0.75rem;
        color: #333;
    }

    .order-detail-view .order-items-table {
        width: 100%;
        border-collapse: collapse;
        margin-bottom: 0;
    }

        .order-detail-view .order-items-table th,
        .order-detail-view .order-items-table td {
            padding: 0.75rem 1rem;
            text-align: left;
            border-bottom: 1px solid #e0e0e0;
            font-size: 0.9rem;
        }

        .order-detail-view .order-items-table th {
            background: #f8f9fa;
            font-weight: 500;
            color: #333;
        }

        .order-detail-view .order-items-table tr:hover {
            background: rgba(0, 0, 0, 0.02);
        }

        .order-detail-view .order-items-table .col-item-reference,
        .order-detail-view .order-items-table .cell-item-reference {
            width: 15%;
        }

        .order-detail-view .order-items-table .col-item-product,
        .order-detail-view .order-items-table .cell-item-product {
            width: 35%;
        }

        .order-detail-view .order-items-table .col-item-quantity,
        .order-detail-view .order-items-table .cell-item-quantity,
        .order-detail-view .order-items-table .col-item-unit-price,
        .order-detail-view .order-items-table .cell-item-unit-price,
        .order-detail-view .order-items-table .col-item-total,
        .order-detail-view .order-items-table .cell-item-total {
            width: 16%;
            white-space: nowrap;
        }


.catalogue-list-section {
    padding: 3rem 0rem;

}

.catalogue-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    max-width:90%;
    height:600px;
    margin: 0 auto;
}

/* ── TILE ── */
.catalogue-item {
    display: flex;
    align-items: center;
    border-radius: 1rem;
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
    box-shadow: 0px 6px 20px rgba(0,0,0,0.2);

    border: 3px solid #003769;
    padding: 5px 10px;
    cursor: pointer;
}

    /* wider text side, narrower image side */
    .catalogue-item .catalogue-item-content {
        flex: 2;
    }

    .catalogue-item .catalogue-item-image-wrapper {
        flex: 1;
    }

    /* flip order & swap flex on every 2nd */
    .catalogue-item.reverse {
        flex-direction: row-reverse;
    }

        .catalogue-item.reverse .catalogue-item-content {
            flex: 1;
        }

        .catalogue-item.reverse .catalogue-item-image-wrapper {
            flex: 2;
        }

    /* hover lift & shadow */
    .catalogue-item:hover {
        transform: translateY(-8px);
        box-shadow: 0 12px 30px rgba(0,0,0,0.12);
    }

/* ── TEXT ── */
.catalogue-item-content {
    padding: 2rem 1.5rem;
    display: flex;
    align-items: center;
}

.catalogue-item-name {
    font-size: 2rem;
    font-weight: 700;
    color: #003769;
    position: relative;
}
    /* decorative underline */
    .catalogue-item-name::after {
        content: '';
        display: block;
        width: 60px;
        height: 4px;
        background: #003769;
        margin-top: 0.5rem;
        border-radius: 2px;
        transition: width 0.3s ease;
    }

.catalogue-item:hover .catalogue-item-name::after {
    width: 200px;
}

/* ── IMAGE ── */
.catalogue-item-image-wrapper {
    position: relative;
    overflow: hidden;
    height: 100%;
}

.catalogue-item-image {

    height: 100%;
    object-fit: cover;
    position:center;
    transform: scale(1.05) rotate(1deg);
    transition: transform 0.6s ease;
}

.catalogue-item:hover .catalogue-item-image {
    transform: scale(1) rotate(0deg);
}

/* gradient fade to yellow */
.catalogue-item-fade {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 50%;

    pointer-events: none;
}

/* ── RESPONSIVE ── */
@media (max-width: 900px) {
    .catalogue-grid {
        grid-template-columns: 1fr;
    }

    .catalogue-item-image-wrapper {
        height: 140px;
    }
}
/* Container: enable horizontal scroll on narrow viewports */
.orders-table-wrapper {
    overflow-x: auto;
    margin: 1rem 0;
}

/* Base table styling */
.orders-table {
    width: 100%;
    border-collapse: collapse;
    font-family: sans-serif;
}

    /* Header */
    .orders-table thead {
        background: #333;
    }

    .orders-table th {
        color: #fff;
        text-align: left;
        padding: 0.75rem 1rem;
        font-size: 0.95rem;
        font-weight: 600;
    }

        /* Columns width hints */
        .orders-table th.col-order-id {
            min-width: 8%;
        }

        .orders-table th.col-order-status {
            min-width: 20%;
        }

        .orders-table th.col-order-date {
            min-width: 22%;
        }

        .orders-table th.col-order-price {
            min-width: 15%;
        }

        .orders-table th.col-order-action {
            min-width: 15%;
        }
    .orders-table td {
        color: #fff;
        text-align: left;
        padding: 0rem;
        font-size: 0.95rem;
        font-weight: 400;
    }


    .orders-table .cell-order-price {
        display: grid;
        justify-items: left; /* centers the child .price-wrap */

    }

        /* 2) Make the inner box right-align its text */
        .orders-table .cell-order-price .price-wrap {
            display: inline-block; /* shrink-wrap to its contents */
            width: 3em; /* pick a reasonable width for your prices */
            text-align: right; /* right-align the number inside that box */
        }
        /* Columns width hints */
    .orders-table td.col-order-id {
        min-width: 8%;
    }

    .orders-table td.col-order-status {
        min-width: 20%;
    }

    .orders-table td.col-order-date {
        min-width: 22%;
    }

    .orders-table td.col-order-price {
        min-width: 15%;
    }

        .orders-table td.col-order-action {
            min-width: 15%;
        }
    /* Body rows */
    .orders-table tbody tr {
        border-bottom: 1px solid #e0e0e0;
        transition: background 0.2s ease;
    }

        .orders-table tbody tr:nth-child(even) {
            background: #fafafa;
        }

        .orders-table tbody tr:hover {
            background: #f1f1f1;
        }

    /* Cells */
    .orders-table td {
        padding: 1rem 0.3rem;

        color: #333;
    }

    /* ID column */
    .orders-table .cell-order-id {
        font-weight: 500;
    }

    /* Status: capitalize and color code */
    .orders-table .cell-order-status {
        text-transform: capitalize;
    }

        .orders-table .cell-order-status.pending {
            color: #b8860b;
        }

        .orders-table .cell-order-status.processing {
            color: #1e90ff;
        }

        .orders-table .cell-order-status.shipped {
            color: #2e8b57;
        }

        .orders-table .cell-order-status.delivered {
            color: #228b22;
        }

        .orders-table .cell-order-status.cancelled {
            color: #dc3545;
        }

    /* Date formatting */
    .orders-table .cell-order-date {
        white-space: nowrap;
        font-style: italic;
    }

    /* Price */
    .orders-table .cell-order-price {
        font-weight: 600;
    }

    /* Action: keep your existing .view-details-btn styling */
    .orders-table .cell-order-action {

        text-align: center;
    }
.view-details-btn {
    min-width: 150px;
}
/* Responsive tweak: reduce padding on very small screens */
@media (max-width: 480px) {
    .orders-table th, .orders-table td {
        padding: 0.5rem 0.75rem;
        font-size: 0.85rem;
    }
}


.sent-to {
    margin-bottom: .5rem;
    color: #333;
}

.resend-row {
    margin-top: .75rem;
}

.change-mail summary {
    cursor: pointer;
    color: #0051a3;
    margin-top: .5rem;
}

.change-mail input {
    margin-top: .5rem;
}
.profile-actions {
    display: flex;
    justify-content: flex-end; /* push buttons to the right */

}
.profile-actions button{
    margin-left:4px;
}
.profile-row {
    margin-bottom: 0.7rem !important;
}

.city-suggestions { /* … styles used in register modal … */
}

.city-suggestion-item:hover {
    background: #f1f1f1;
}
/* wrapper takes position:relative if list should overlay neatly */
.city-autocomplete-wrapper {
    position: relative;
}

.city-suggestions {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 5;
}

.confirm-actions{
    display:flex;
    justify-content:space-between;
}
.confirm-actions button{
    margin-left:0;
}