/*
Theme Name: Royal Jewellery Collection
Theme URI: https://ohm.dragonshopbh.com/
Author: Royal Jewellery Team
Description: Custom luxury jewellery storefront theme built from the approved Royal Jewellery Collection HTML design. WooCommerce supported; no page builder required.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: royal-jewellery
*/


/* =====================================================
   ROYAL JEWELLERY COLLECTION
   LUXURY JEWELLERY HOUSE
===================================================== */

:root{
    --black:#090908;
    --black2:#11110f;
    --cream:#f1ece3;
    --cream2:#e7ded0;
    --gold:#c5a36a;
    --gold2:#e1c994;
    --muted:#8d867b;
    --line:rgba(197,163,106,.25);

    --serif:"Cormorant Garamond",serif;
    --sans:"DM Sans",sans-serif;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    background:var(--black);
    color:var(--cream);
    font-family:var(--sans);
    font-weight:300;
    overflow-x:hidden;
}

button,
input{
    font-family:inherit;
}

button{
    cursor:pointer;
}

img{
    display:block;
    width:100%;
}


/* =====================================================
   LOADER
===================================================== */

.loader{
    position:fixed;
    inset:0;
    z-index:9999;

    background:#080807;

    display:flex;
    align-items:center;
    justify-content:center;

    animation:loaderHide 1s ease 1.8s forwards;
}

.loader-brand{
    text-align:center;
}

.loader-crown{
    color:var(--gold2);
    font-size:35px;
    margin-bottom:12px;
}

.loader-brand h1{
    font-family:var(--serif);
    font-size:32px;
    font-weight:300;
    letter-spacing:8px;
}

.loader-brand p{
    margin-top:8px;

    color:#7e786f;

    font-size:8px;
    letter-spacing:5px;
}

@keyframes loaderHide{
    to{
        opacity:0;
        visibility:hidden;
    }
}


/* =====================================================
   HEADER
===================================================== */

header{
    position:fixed;
    top:0;
    left:0;

    width:100%;
    z-index:1000;

    background:rgba(9,9,8,.68);
    backdrop-filter:blur(18px);

    border-bottom:1px solid rgba(255,255,255,.06);

    transition:.4s;
}

header.scrolled{
    background:rgba(9,9,8,.95);
}

.nav{
    height:86px;
    max-width:1450px;

    margin:auto;
    padding:0 45px;

    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
}

.logo{
    color:var(--cream);
    text-decoration:none;

    display:flex;
    align-items:center;
    gap:10px;
}

.logo-mark{
    color:var(--gold);

    font-size:20px;
}

.logo-name{
    font-family:var(--serif);

    font-size:19px;
    font-weight:400;

    letter-spacing:3px;
}

.nav-links{
    list-style:none;

    display:flex;
    gap:38px;
}

.nav-links a{
    color:#d6cec1;

    text-decoration:none;

    font-size:9px;
    letter-spacing:2.4px;

    text-transform:uppercase;

    transition:.3s;
}

.nav-links a:hover{
    color:var(--gold2);
}

.nav-actions{
    justify-self:end;

    display:flex;
    align-items:center;

    gap:20px;
}

.nav-icon{
    background:none;
    border:0;

    color:#ded5c7;

    font-size:18px;
}

.cart{
    position:relative;
}

.cart-number{
    position:absolute;

    top:-9px;
    right:-10px;

    width:17px;
    height:17px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    background:var(--gold);
    color:#111;

    font-size:8px;
}


/* =====================================================
   HERO
===================================================== */

.hero{
    min-height:100vh;

    position:relative;

    display:flex;
    align-items:flex-end;

    background:
        linear-gradient(
            90deg,
            rgba(5,5,4,.92),
            rgba(5,5,4,.55),
            rgba(5,5,4,.1)
        ),
        url("https://images.unsplash.com/photo-1617038220319-276d3cfab638?auto=format&fit=crop&w=2200&q=90");

    background-size:cover;
    background-position:center;
}

.hero-content{
    width:100%;
    max-width:1450px;

    margin:auto;

    padding:0 45px 105px;
}

.hero-small{
    color:var(--gold2);

    font-size:9px;
    letter-spacing:6px;

    text-transform:uppercase;

    margin-bottom:25px;
}

.hero h1{
    max-width:900px;

    font-family:var(--serif);

    font-size:clamp(75px,11vw,165px);

    font-weight:300;

    line-height:.72;

    letter-spacing:-5px;
}

.hero h1 em{
    color:var(--gold2);
    font-style:italic;
}

.hero-text{
    max-width:410px;

    color:#bdb5a9;

    font-size:12px;
    line-height:2;

    margin-top:40px;
}

.hero-button{
    display:inline-block;

    margin-top:30px;

    padding:15px 28px;

    border:1px solid #9c7b45;

    color:#ddc28e;

    text-decoration:none;

    font-size:9px;
    letter-spacing:2px;

    text-transform:uppercase;

    transition:.4s;
}

.hero-button:hover{
    background:var(--gold);
    color:#111;
}


/* =====================================================
   MARQUEE
===================================================== */

.marquee{
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);

    overflow:hidden;

    padding:18px 0;
}

.marquee-track{
    width:max-content;

    display:flex;

    animation:move 25s linear infinite;
}

.marquee span{
    margin:0 35px;

    color:#888177;

    font-size:8px;

    letter-spacing:4px;

    text-transform:uppercase;
}

.marquee strong{
    color:var(--gold);
    font-weight:400;
}

@keyframes move{
    to{
        transform:translateX(-50%);
    }
}


/* =====================================================
   SECTION
===================================================== */

.section{
    max-width:1450px;

    margin:auto;

    padding:125px 45px;
}

.section-header{
    display:flex;
    justify-content:space-between;
    align-items:end;

    margin-bottom:55px;
}

.eyebrow{
    color:var(--gold);

    font-size:8px;

    letter-spacing:5px;

    text-transform:uppercase;

    margin-bottom:15px;
}

.section-title{
    font-family:var(--serif);

    font-size:70px;

    font-weight:300;

    line-height:.85;
}

.section-description{
    max-width:360px;

    color:#817b72;

    font-size:11px;

    line-height:1.9;
}


/* =====================================================
   ROYAL EDIT
===================================================== */

.edit{
    display:grid;

    grid-template-columns:1.25fr .75fr;

    gap:18px;
}

.edit-large{
    height:680px;
}

.edit-small{
    height:331px;
}

.edit-right{
    display:grid;
    gap:18px;
}

.edit-card{
    position:relative;
    overflow:hidden;
}

.edit-card img{
    height:100%;

    object-fit:cover;

    transition:1s;
}

.edit-card:hover img{
    transform:scale(1.05);
}

.edit-overlay{
    position:absolute;
    inset:0;

    display:flex;
    flex-direction:column;

    justify-content:flex-end;

    padding:38px;

    background:
        linear-gradient(
            transparent 30%,
            rgba(0,0,0,.75)
        );
}

.edit-overlay small{
    color:var(--gold2);

    font-size:8px;

    letter-spacing:4px;
    text-transform:uppercase;
}

.edit-overlay h3{
    font-family:var(--serif);

    font-size:44px;

    font-weight:300;

    margin:7px 0;
}

.edit-overlay a{
    color:#ddd2c1;

    text-decoration:none;

    font-size:8px;

    letter-spacing:2px;

    text-transform:uppercase;
}


/* =====================================================
   COLLECTION
===================================================== */

.filters{
    display:flex;
    gap:28px;

    border-bottom:1px solid #292720;

    margin-bottom:40px;
}

.filter{
    border:0;
    background:none;

    color:#706b63;

    padding-bottom:14px;

    font-size:9px;

    letter-spacing:2px;

    text-transform:uppercase;

    position:relative;
}

.filter.active{
    color:var(--gold2);
}

.filter.active::after{
    content:"";

    position:absolute;

    left:0;
    right:0;
    bottom:-1px;

    height:1px;

    background:var(--gold);
}


/* =====================================================
   PRODUCTS
===================================================== */

.products{
    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:18px;
}

.product{
    background:var(--black2);

    border:1px solid #25231f;

    transition:.5s;

    overflow:hidden;
}

.product:hover{
    transform:translateY(-7px);

    border-color:#6d5632;
}

.product-image{
    height:400px;

    position:relative;

    overflow:hidden;

    background:#151411;
}

.product-image img{
    height:100%;

    object-fit:cover;

    transition:.8s;
}

.product:hover .product-image img{
    transform:scale(1.06);
}

.tag{
    position:absolute;

    top:15px;
    left:15px;

    padding:6px 9px;

    background:var(--gold);

    color:#111;

    font-size:7px;

    letter-spacing:2px;

    text-transform:uppercase;
}

.wishlist{
    position:absolute;

    top:14px;
    right:14px;

    width:37px;
    height:37px;

    border-radius:50%;

    border:1px solid rgba(255,255,255,.25);

    background:rgba(0,0,0,.45);

    color:white;

    transition:.3s;
}

.wishlist.active,
.wishlist:hover{
    background:var(--gold);

    color:#111;
}

.product-info{
    padding:20px;
}

.product-info h3{
    font-family:var(--serif);

    font-size:25px;

    font-weight:400;
}

.product-info p{
    color:#777169;

    font-size:8px;

    letter-spacing:1px;

    margin:5px 0 13px;
}

.price{
    color:var(--gold2);

    font-size:12px;

    margin-bottom:16px;
}

.add-button{
    width:100%;

    padding:12px;

    border:1px solid #604a2a;

    background:transparent;

    color:var(--gold2);

    font-size:8px;

    letter-spacing:2px;

    text-transform:uppercase;

    transition:.35s;
}

.add-button:hover{
    background:var(--gold);

    color:#111;
}


/* =====================================================
   WATCHES
===================================================== */

.watch-section{
    background:var(--cream);

    color:#161513;
}

.watch-container{
    max-width:1450px;

    margin:auto;

    padding:125px 45px;

    display:grid;

    grid-template-columns:.85fr 1.15fr;

    gap:80px;

    align-items:center;
}

.watch-image{
    height:650px;

    overflow:hidden;
}

.watch-image img{
    height:100%;

    object-fit:cover;

    transition:1s;
}

.watch-image:hover img{
    transform:scale(1.04);
}

.watch-content .eyebrow{
    color:#92703b;
}

.watch-content h2{
    font-family:var(--serif);

    font-size:95px;

    font-weight:300;

    line-height:.76;
}

.watch-content h2 em{
    color:#967039;
}

.watch-content p{
    max-width:440px;

    color:#686158;

    font-size:12px;

    line-height:2;

    margin:35px 0;
}

.watch-button{
    display:inline-block;

    background:#161513;

    color:#dfc28c;

    padding:15px 28px;

    text-decoration:none;

    font-size:8px;

    letter-spacing:2px;

    text-transform:uppercase;
}


/* =====================================================
   BRAND STORY
===================================================== */

.story{
    max-width:950px;

    margin:auto;

    padding:145px 30px;

    text-align:center;
}

.story h2{
    font-family:var(--serif);

    font-size:75px;

    font-weight:300;

    line-height:.9;
}

.story h2 em{
    color:var(--gold);

    font-style:italic;
}

.story p{
    max-width:600px;

    margin:30px auto 0;

    color:#817b73;

    font-size:12px;

    line-height:2;
}


/* =====================================================
   SERVICES
===================================================== */

.services{
    display:grid;

    grid-template-columns:repeat(4,1fr);

    border-top:1px solid #28261f;
    border-bottom:1px solid #28261f;
}

.service{
    padding:42px 25px;

    text-align:center;

    border-right:1px solid #28261f;
}

.service:last-child{
    border:0;
}

.service-number{
    color:#86683a;

    font-family:var(--serif);

    font-size:24px;

    margin-bottom:10px;
}

.service h3{
    font-family:var(--serif);

    font-size:22px;

    font-weight:400;

    margin-bottom:8px;
}

.service p{
    color:#6f6a61;

    font-size:9px;

    line-height:1.7;
}


/* =====================================================
   NEWSLETTER
===================================================== */

.newsletter{
    text-align:center;

    padding:130px 25px;
}

.newsletter h2{
    font-family:var(--serif);

    font-size:68px;

    font-weight:300;
}

.newsletter p{
    color:#817b72;

    font-size:11px;

    margin:15px 0 30px;
}

.newsletter-form{
    max-width:480px;

    margin:auto;

    display:flex;

    border-bottom:1px solid #69512e;
}

.newsletter-form input{
    flex:1;

    border:0;
    outline:0;

    background:none;

    padding:15px 5px;

    color:white;
}

.newsletter-form button{
    border:0;
    background:none;

    color:var(--gold2);

    font-size:8px;

    letter-spacing:2px;

    text-transform:uppercase;
}


/* =====================================================
   FOOTER
===================================================== */

footer{
    border-top:1px solid #25231e;

    padding:70px 45px 30px;
}

.footer{
    max-width:1450px;

    margin:auto;

    display:flex;

    justify-content:space-between;

    gap:50px;
}

.footer-brand{
    max-width:280px;
}

.footer-brand h2{
    font-family:var(--serif);

    font-size:30px;

    letter-spacing:3px;

    font-weight:400;
}

.footer-brand p{
    color:#6e6962;

    font-size:10px;

    line-height:1.8;

    margin-top:15px;
}

.footer-columns{
    display:flex;

    gap:65px;
}

.footer-column h4{
    color:var(--gold);

    font-size:8px;

    letter-spacing:3px;

    text-transform:uppercase;

    margin-bottom:18px;
}

.footer-column a{
    display:block;

    color:#716d66;

    text-decoration:none;

    font-size:9px;

    margin-bottom:11px;

    transition:.3s;
}

.footer-column a:hover{
    color:var(--cream);
}

.copyright{
    max-width:1450px;

    margin:55px auto 0;

    padding-top:20px;

    border-top:1px solid #211f1b;

    color:#504c46;

    font-size:8px;
}


/* =====================================================
   CART DRAWER
===================================================== */

.cart-overlay{
    position:fixed;
    inset:0;

    z-index:1900;

    background:rgba(0,0,0,.6);

    opacity:0;
    visibility:hidden;

    transition:.3s;
}

.cart-overlay.open{
    opacity:1;
    visibility:visible;
}

.cart-drawer{
    position:fixed;

    top:0;
    right:-430px;

    width:420px;
    height:100vh;

    z-index:2000;

    background:#11110f;

    border-left:1px solid #4d3b23;

    padding:30px;

    transition:.45s;

    overflow-y:auto;
}

.cart-drawer.open{
    right:0;
}

.cart-head{
    display:flex;

    align-items:center;
    justify-content:space-between;

    border-bottom:1px solid #2a2823;

    padding-bottom:20px;
}

.cart-head h2{
    font-family:var(--serif);

    font-size:33px;

    font-weight:300;
}

.close{
    border:0;
    background:none;

    color:#aaa;

    font-size:25px;
}

.cart-item{
    padding:20px 0;

    border-bottom:1px solid #292620;

    display:flex;

    justify-content:space-between;

    gap:15px;
}

.cart-item h4{
    font-family:var(--serif);

    font-size:20px;

    font-weight:400;
}

.cart-item p{
    color:var(--gold);

    font-size:11px;

    margin-top:4px;
}

.remove{
    border:0;
    background:none;

    color:#777;

    font-size:8px;

    text-transform:uppercase;
}

.cart-total{
    display:flex;

    justify-content:space-between;

    margin-top:30px;

    font-family:var(--serif);

    font-size:27px;
}

.checkout{
    width:100%;

    margin-top:25px;

    padding:16px;

    border:0;

    background:var(--gold);

    color:#111;

    font-size:8px;

    letter-spacing:2px;

    text-transform:uppercase;
}


/* =====================================================
   SEARCH
===================================================== */

.search{
    position:fixed;
    inset:0;

    z-index:3000;

    background:rgba(8,8,7,.97);

    display:flex;

    align-items:center;
    justify-content:center;

    opacity:0;
    visibility:hidden;

    transition:.4s;
}

.search.open{
    opacity:1;
    visibility:visible;
}

.search-inner{
    width:min(700px,85%);

    border-bottom:1px solid #705632;

    display:flex;
}

.search-inner input{
    flex:1;

    background:none;

    border:0;
    outline:0;

    color:white;

    font-family:var(--serif);

    font-size:45px;

    padding:15px 0;
}

.search-close{
    position:absolute;

    top:30px;
    right:40px;

    border:0;
    background:none;

    color:#aaa;

    font-size:30px;
}


/* =====================================================
   RESPONSIVE
===================================================== */

@media(max-width:1000px){

    .nav{
        grid-template-columns:auto auto;

        padding:0 22px;
    }

    .nav-links{
        display:none;
    }

    .section{
        padding:90px 25px;
    }

    .products{
        grid-template-columns:repeat(2,1fr);
    }

    .edit{
        grid-template-columns:1fr;
    }

    .watch-container{
        grid-template-columns:1fr;

        padding:90px 25px;
    }

    .services{
        grid-template-columns:repeat(2,1fr);
    }

    .footer{
        flex-direction:column;
    }
}


@media(max-width:600px){

    .nav{
        height:75px;
    }

    .logo-name{
        font-size:20px;
    }

    .hero{
        min-height:750px;
    }

    .hero-content{
        padding:0 24px 75px;
    }

    .hero h1{
        font-size:73px;

        letter-spacing:-2px;
    }

    .section-header{
        display:block;
    }

    .section-title{
        font-size:55px;

        margin-bottom:25px;
    }

    .products{
        grid-template-columns:1fr;
    }

    .edit-large{
        height:520px;
    }

    .edit-small{
        height:320px;
    }

    .watch-image{
        height:480px;
    }

    .watch-content h2{
        font-size:68px;
    }

    .story h2{
        font-size:55px;
    }

    .services{
        grid-template-columns:1fr;
    }

    .service{
        border-right:0;
        border-bottom:1px solid #28261f;
    }

    .newsletter h2{
        font-size:50px;
    }

    .footer-columns{
        flex-wrap:wrap;

        gap:30px;
    }

    .cart-drawer{
        width:100%;

        right:-100%;
    }

    .search-inner input{
        font-size:30px;
    }

}
/* Royal Jewellery: responsive product grid */
#collection .rj-products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 28px 20px;
    align-items: start;
}

#collection .rj-products .product {
    width: 100% !important;
    min-width: 0;
    margin: 0 !important;
    float: none !important;
}

#collection .rj-products .product-image img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}

#collection .rj-empty {
    grid-column: 1 / -1;
}

@media (max-width: 900px) {
    #collection .rj-products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    #collection .rj-products {
        grid-template-columns: 1fr;
    }
}
/* Royal Jewellery - Product Card Styling */

#collection .rj-products .product {
    background: #111;
    overflow: hidden;
}

#collection .rj-products .product a {
    color: #f5f0e8;
    text-decoration: none;
}

#collection .rj-products .product h2,
#collection .rj-products .product h3,
#collection .rj-products .product .woocommerce-loop-product__title {
    color: #f5f0e8;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 26px;
    font-weight: 400;
    line-height: 1.3;
}

#collection .rj-products .product .price {
    color: #c9a45c;
    font-size: 17px;
}

#collection .rj-products .product .button,
#collection .rj-products .product .add_to_cart_button {
    display: inline-block;
    padding: 13px 24px;
    background: transparent;
    color: #c9a45c;
    border: 1px solid #c9a45c;
    text-decoration: none;
    font-size: 12px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    transition: 0.3s ease;
}

#collection .rj-products .product .button:hover,
#collection .rj-products .product .add_to_cart_button:hover {
    background: #c9a45c;
    color: #111;
}

/* Royal Jewellery Hero Button */
.rj-hero .rj-btn,
.rj-hero a,
a.rj-hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 0 36px;
    background: #c9a45c;
    border: 1px solid #c9a45c;
    color: #0b0b0b;
    text-decoration: none;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 2px;
    text-transform: uppercase;
    transition: all 0.3s ease;
}

.rj-hero .rj-btn:hover,
.rj-hero a:hover,
a.rj-hero-btn:hover {
    background: transparent;
    color: #d8b56d;
    border-color: #d8b56d;
}

/* Royal Jewellery — Journal Cards */
.rj-journal {
    background: #090909;
    color: #f5f0e8;
    padding: 65px 6%;
    border-bottom: 1px solid #29251f;
}

.rj-journal > .eyebrow {
    color: #c9a45c;
    font-size: 11px;
    letter-spacing: 4px;
    margin-bottom: 16px;
}

.rj-journal > .section-title {
    color: #f5f0e8;
    font-size: clamp(36px, 4.5vw, 58px);
    line-height: 1.1;
    font-weight: 400;
    margin: 0 0 35px;
}

.rj-journal-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 25px;
}

.rj-journal-card {
    min-width: 0;
}

.rj-journal-card a {
    color: #f5f0e8;
    text-decoration: none;
}

.rj-journal-card img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    margin-bottom: 18px;
}

.rj-journal-card h3 {
    color: #f5f0e8;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 25px;
    line-height: 1.25;
    font-weight: 400;
    margin: 0 0 12px;
}

.rj-journal-card p {
    color: #b9b1a5;
    font-size: 14px;
    line-height: 1.7;
}

.rj-journal-card .rj-journal-link {
    display: inline-block;
    margin-top: 10px;
    color: #c9a45c;
    font-size: 11px;
    letter-spacing: 1.5px;
}

@media (max-width: 700px) {
    .rj-journal {
        padding: 45px 6%;
    }

    .rj-journal-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
}


/* =====================================================
   ROYAL JEWELLERY — CONSOLIDATED FOOTER
===================================================== */
footer {
    border-top: 1px solid #25231e;
    padding: 70px 45px 30px;
}
footer .footer {
    max-width: 1450px;
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 60px;
}
footer .footer-brand {
    max-width: 300px;
}
footer .footer-brand h2 {
    color: var(--cream);
    font-family: var(--serif);
    font-size: 22px;
    line-height: 1.35;
    letter-spacing: 1px;
    font-weight: 400;
}
footer .footer-brand p {
    max-width: 280px;
    margin-top: 15px;
    color: #b9b1a5;
    font-size: 14px;
    line-height: 1.8;
}
footer .footer-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(110px, 1fr));
    gap: 40px;
    flex: 1;
    max-width: 600px;
}
footer .footer-column h4 {
    color: var(--gold);
    font-size: 14px;
    letter-spacing: 2px;
    margin-bottom: 14px;
    text-transform: uppercase;
}
footer .footer-column a {
    display: block;
    color: #b9b1a5;
    text-decoration: none;
    font-size: 15px;
    line-height: 1.8;
    margin-bottom: 8px;
    transition: color .25s ease;
}
footer .footer-column a:hover { color: var(--cream); }
footer .copyright {
    max-width: 1450px;
    margin: 45px auto 0;
    padding-top: 20px;
    border-top: 1px solid #211f1b;
    color: #8d867b;
    font-size: 11px;
}
@media (max-width: 700px) {
    footer { padding: 48px 22px 24px; }
    footer .footer { flex-direction: column; gap: 35px; }
    footer .footer-columns {
        width: 100%;
        max-width: none;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px;
    }
    footer .footer-column h4 { font-size: 11px; letter-spacing: 1px; }
    footer .footer-column a { font-size: 13px; }
}

/* =====================================================
   WOOCOMMERCE — SHOP ARCHIVE
===================================================== */
body.woocommerce-shop .site-main,
body.post-type-archive-product .site-main,
body.tax-product_cat .site-main,
body.tax-product_tag .site-main {
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
    padding: 126px 35px 70px;
    box-sizing: border-box;
}
.rj-shop-heading {
    text-align: center;
    margin: 0 auto 38px;
    padding: 0 16px;
}
.rj-shop-heading .rj-shop-eyebrow {
    color: var(--gold2);
    font-size: 11px;
    letter-spacing: 3px;
    line-height: 1.6;
    margin: 0 0 10px;
    text-transform: uppercase;
}
.rj-shop-heading h1,
.rj-shop-heading .page-title {
    color: var(--cream) !important;
    font-family: var(--serif);
    font-size: clamp(38px, 4.5vw, 58px) !important;
    font-weight: 400;
    letter-spacing: 1.2px;
    line-height: 1.1;
    margin: 0 0 12px !important;
}
.rj-shop-heading .rj-shop-description {
    max-width: 560px;
    margin: 0 auto;
    color: #aaa195;
    font-size: 14px;
    line-height: 1.8;
}

/* Native WooCommerce result count and sorting toolbar */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count {
    float: none !important;
    margin: 0 !important;
    color: #b9b1a5;
    font-size: 13px;
    line-height: 1.5;
}
.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering {
    float: none !important;
    margin: 0 !important;
}
.woocommerce .woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select {
    min-height: 44px;
    max-width: 100%;
    padding: 0 38px 0 14px;
    border: 1px solid rgba(197,163,106,.45);
    border-radius: 0;
    background: #11110f;
    color: var(--cream);
    font: inherit;
    font-size: 13px;
}
.woocommerce .woocommerce-before-shop-loop,
.woocommerce .woocommerce-notices-wrapper {
    color: var(--cream);
}
body.woocommerce-shop .woocommerce-before-shop-loop,
body.post-type-archive-product .woocommerce-before-shop-loop {
    margin-bottom: 22px;
}
body.woocommerce-shop .site-main > .woocommerce-notices-wrapper,
body.post-type-archive-product .site-main > .woocommerce-notices-wrapper {
    margin-bottom: 14px;
}
body.woocommerce-shop .woocommerce .woocommerce-before-shop-loop,
body.post-type-archive-product .woocommerce .woocommerce-before-shop-loop {
    margin-bottom: 22px;
}

/* WooCommerce loop grid — one authoritative set of rules */
body.woocommerce-shop ul.products,
body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    align-items: stretch;
    gap: 30px 24px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.woocommerce-shop ul.products::before,
body.woocommerce-shop ul.products::after,
body.post-type-archive-product ul.products::before,
body.post-type-archive-product ul.products::after,
body.tax-product_cat ul.products::before,
body.tax-product_cat ul.products::after,
body.tax-product_tag ul.products::before,
body.tax-product_tag ul.products::after {
    display: none !important;
    content: none !important;
}
body.woocommerce-shop ul.products li.product,
body.post-type-archive-product ul.products li.product,
body.tax-product_cat ul.products li.product,
body.tax-product_tag ul.products li.product {
    display: flex !important;
    flex-direction: column !important;
    float: none !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 0 22px !important;
    overflow: hidden;
    box-sizing: border-box !important;
    border: 1px solid #25231f;
    background: var(--black2);
}
body.woocommerce-shop ul.products li.product a img,
body.post-type-archive-product ul.products li.product a img,
body.tax-product_cat ul.products li.product a img,
body.tax-product_tag ul.products li.product a img {
    display: block !important;
    width: 100% !important;
    height: 250px !important;
    object-fit: contain !important;
    object-position: center;
    margin: 0 0 14px !important;
    background: #11110f;
}
body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title,
body.post-type-archive-product ul.products li.product .woocommerce-loop-product__title,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
body.tax-product_tag ul.products li.product .woocommerce-loop-product__title {
    min-height: 50px;
    padding: 0 12px !important;
    margin: 0 0 10px !important;
    color: var(--cream) !important;
    font-family: var(--sans);
    font-size: 17px !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
}
body.woocommerce-shop ul.products li.product .price,
body.post-type-archive-product ul.products li.product .price,
body.tax-product_cat ul.products li.product .price,
body.tax-product_tag ul.products li.product .price {
    display: block;
    padding: 0 12px;
    margin: auto 0 16px !important;
    color: var(--gold2) !important;
    font-size: 15px !important;
    line-height: 1.5;
}
body.woocommerce-shop ul.products li.product a.button,
body.post-type-archive-product ul.products li.product a.button,
body.tax-product_cat ul.products li.product a.button,
body.tax-product_tag ul.products li.product a.button {
    align-self: flex-start;
    display: inline-block !important;
    width: auto !important;
    max-width: calc(100% - 24px);
    margin: 0 12px !important;
    padding: 13px 18px !important;
    border: 1px solid var(--gold) !important;
    border-radius: 0 !important;
    background: var(--gold) !important;
    color: #111 !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    text-align: center !important;
    text-decoration: none;
    white-space: normal !important;
}
body.woocommerce-shop ul.products li.product a.button:hover,
body.post-type-archive-product ul.products li.product a.button:hover,
body.tax-product_cat ul.products li.product a.button:hover,
body.tax-product_tag ul.products li.product a.button:hover {
    background: transparent !important;
    color: var(--gold2) !important;
}
.woocommerce nav.woocommerce-pagination {
    margin-top: 42px;
}
.woocommerce nav.woocommerce-pagination ul {
    display: flex;
    justify-content: center;
    gap: 8px;
    border: 0;
}
.woocommerce nav.woocommerce-pagination ul li {
    border: 1px solid #4b402d;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    min-width: 40px;
    padding: 12px;
    background: #11110f;
    color: var(--cream);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--gold);
    color: #111;
}

/* =====================================================
   WOOCOMMERCE — SINGLE PRODUCT
===================================================== */
body.single-product div.product {
    display: grid !important;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr) !important;
    align-items: start !important;
    column-gap: clamp(24px, 3vw, 44px) !important;
    row-gap: 30px !important;
    width: 100% !important;
    max-width: 1320px !important;
    margin: 110px auto 48px !important;
    padding: 0 4% !important;
    box-sizing: border-box !important;
    float: none !important;
}
body.single-product div.product > .woocommerce-product-gallery,
body.single-product div.product > div.images {
    grid-column: 1 !important;
    grid-row: 1 !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}
body.single-product div.product > .summary {
    grid-column: 2 !important;
    grid-row: 1 !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 12px 0 0 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
}
body.single-product div.product .woocommerce-product-gallery__wrapper,
body.single-product div.product .woocommerce-product-gallery__image {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}
body.single-product div.product .woocommerce-product-gallery__image img,
body.single-product div.product div.images img,
body.single-product div.product img.wp-post-image {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 540px !important;
    object-fit: contain !important;
    object-position: center top !important;
    margin: 0 auto !important;
}
body.single-product div.product .product_title,
body.single-product div.product h1.product_title {
    display: block !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
    color: var(--cream) !important;
    font-size: clamp(27px, 2.5vw, 38px) !important;
    line-height: 1.2 !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: anywhere !important;
    transform: none !important;
}
body.single-product div.product .summary .price,
body.single-product div.product .summary .price .amount {
    display: block !important;
    color: var(--gold2) !important;
    font-size: 23px !important;
    line-height: 1.4 !important;
    visibility: visible !important;
    opacity: 1 !important;
}
body.single-product div.product .summary,
body.single-product div.product .summary p,
body.single-product div.product .woocommerce-product-details__short-description {
    overflow-wrap: break-word !important;
}
body.single-product div.product > .woocommerce-tabs,
body.single-product div.product > .related.products,
body.single-product div.product > .upsells.products {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
    display: block !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 28px 0 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}
body.single-product div.product .woocommerce-Tabs-panel table {
    width: 100% !important;
    max-width: 760px !important;
    border-collapse: collapse !important;
    margin: 18px 0 !important;
    color: var(--cream) !important;
}
body.single-product div.product .woocommerce-Tabs-panel th,
body.single-product div.product .woocommerce-Tabs-panel td {
    border: 1px solid #514638 !important;
    padding: 10px 12px !important;
    text-align: left !important;
    line-height: 1.5 !important;
    vertical-align: top !important;
}
body.single-product div.product .related.products > h2,
body.single-product div.product .upsells.products > h2 {
    display: block !important;
    width: 100% !important;
    margin: 0 0 24px !important;
    padding: 12px 0 !important;
    color: var(--cream);
    font-size: clamp(25px, 2.5vw, 34px) !important;
    line-height: 1.3 !important;
    overflow: visible !important;
    scroll-margin-top: 130px;
}
body.single-product div.product .related.products ul.products,
body.single-product div.product .upsells.products ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 24px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    box-sizing: border-box !important;
}
body.single-product div.product .related.products ul.products::before,
body.single-product div.product .related.products ul.products::after,
body.single-product div.product .upsells.products ul.products::before,
body.single-product div.product .upsells.products ul.products::after {
    display: none !important;
    content: none !important;
}
body.single-product div.product .related.products ul.products li.product,
body.single-product div.product .upsells.products ul.products li.product {
    display: block !important;
    float: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 12px !important;
    box-sizing: border-box !important;
}
body.single-product div.product .related.products ul.products li.product img,
body.single-product div.product .upsells.products ul.products li.product img {
    display: block !important;
    width: 100% !important;
    height: 220px !important;
    object-fit: contain !important;
    margin: 0 0 14px !important;
}
body.single-product div.product .related.products .woocommerce-loop-product__title,
body.single-product div.product .upsells.products .woocommerce-loop-product__title {
    color: var(--cream) !important;
    font-size: 17px !important;
    line-height: 1.45 !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

/* Checkout readability */
body.woocommerce-checkout form input[type="text"],
body.woocommerce-checkout form input[type="email"],
body.woocommerce-checkout form input[type="tel"],
body.woocommerce-checkout form input[type="password"],
body.woocommerce-checkout form input[type="number"],
body.woocommerce-checkout form textarea,
body.woocommerce-checkout form select {
    color: #222 !important;
    background: #fff !important;
    font-size: 16px !important;
    font-weight: 400 !important;
}
body.woocommerce-checkout form input::placeholder,
body.woocommerce-checkout form textarea::placeholder {
    color: #666 !important;
    opacity: 1 !important;
}
body.woocommerce-checkout form label,
body.woocommerce-checkout .form-row label {
    color: #f0e5d5 !important;
    font-size: 15px !important;
    font-weight: 500 !important;
}
body.woocommerce-checkout form select option {
    color: #222 !important;
    background: #fff !important;
}
body.woocommerce-checkout h3,
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-shipping-fields h3 {
    color: #f5eee5 !important;
}
body.woocommerce-checkout form input:focus,
body.woocommerce-checkout form textarea:focus,
body.woocommerce-checkout form select:focus {
    border-color: var(--gold) !important;
    outline: none;
}

/* Header navigation readability */
.nav-links a {
    font-size: 11px !important;
    letter-spacing: 1.8px !important;
}
.nav .menu-toggle,
.nav .nav-toggle,
.nav .menu-button,
.nav .mobile-menu-toggle,
.nav button[aria-label*="menu" i] {
    font-size: 13px !important;
}

/* Responsive WooCommerce and footer */
@media (max-width: 900px) {
    body.woocommerce-shop .site-main,
    body.post-type-archive-product .site-main,
    body.tax-product_cat .site-main,
    body.tax-product_tag .site-main {
        padding: 112px 22px 55px;
    }
    body.woocommerce-shop ul.products,
    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 24px 16px !important;
    }
    body.woocommerce-shop ul.products li.product a img,
    body.post-type-archive-product ul.products li.product a img,
    body.tax-product_cat ul.products li.product a img,
    body.tax-product_tag ul.products li.product a img {
        height: 230px !important;
    }
    body.single-product div.product {
        column-gap: 20px !important;
        padding: 0 22px !important;
    }
    body.single-product div.product .woocommerce-product-gallery__image img,
    body.single-product div.product div.images img,
    body.single-product div.product img.wp-post-image {
        max-height: 440px !important;
    }
    body.single-product div.product .related.products ul.products,
    body.single-product div.product .upsells.products ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 16px !important;
    }
    body.single-product div.product .related.products ul.products li.product img,
    body.single-product div.product .upsells.products ul.products li.product img {
        height: 190px !important;
    }
}
@media (max-width: 600px) {
    body.woocommerce-shop .site-main,
    body.post-type-archive-product .site-main,
    body.tax-product_cat .site-main,
    body.tax-product_tag .site-main {
        padding: 100px 14px 42px;
    }
    .rj-shop-heading { margin-bottom: 26px; }
    .rj-shop-heading h1,
    .rj-shop-heading .page-title { font-size: 38px !important; }
    .woocommerce .woocommerce-before-shop-loop,
    .woocommerce-page .woocommerce-before-shop-loop {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }
    .woocommerce .woocommerce-result-count,
    .woocommerce-page .woocommerce-result-count {
        font-size: 12px;
    }
    .woocommerce .woocommerce-ordering,
    .woocommerce-page .woocommerce-ordering {
        width: 100%;
    }
    .woocommerce .woocommerce-ordering select,
    .woocommerce-page .woocommerce-ordering select { width: 100%; }
    body.woocommerce-shop ul.products li.product a img,
    body.post-type-archive-product ul.products li.product a img,
    body.tax-product_cat ul.products li.product a img,
    body.tax-product_tag ul.products li.product a img {
        height: 175px !important;
    }
    body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title,
    body.post-type-archive-product ul.products li.product .woocommerce-loop-product__title,
    body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
    body.tax-product_tag ul.products li.product .woocommerce-loop-product__title {
        min-height: 48px;
        padding: 0 9px !important;
        font-size: 15px !important;
    }
    body.woocommerce-shop ul.products li.product .price,
    body.post-type-archive-product ul.products li.product .price,
    body.tax-product_cat ul.products li.product .price,
    body.tax-product_tag ul.products li.product .price {
        padding: 0 9px;
        font-size: 14px !important;
    }
    body.woocommerce-shop ul.products li.product a.button,
    body.post-type-archive-product ul.products li.product a.button,
    body.tax-product_cat ul.products li.product a.button,
    body.tax-product_tag ul.products li.product a.button {
        margin: 0 9px !important;
        padding: 11px 12px !important;
        font-size: 11px !important;
    }
    body.single-product div.product {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 22px !important;
        margin: 96px auto 36px !important;
        padding: 0 16px !important;
    }
    body.single-product div.product > .woocommerce-product-gallery,
    body.single-product div.product > div.images {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }
    body.single-product div.product > .summary {
        grid-column: 1 !important;
        grid-row: 2 !important;
        padding-top: 0 !important;
    }
    body.single-product div.product .woocommerce-product-gallery__image img,
    body.single-product div.product div.images img,
    body.single-product div.product img.wp-post-image {
        max-height: 390px !important;
    }
    body.single-product div.product > .woocommerce-tabs,
    body.single-product div.product > .related.products,
    body.single-product div.product > .upsells.products { grid-column: 1 !important; }
    body.single-product div.product .related.products ul.products,
    body.single-product div.product .upsells.products ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 14px !important;
    }
    body.single-product div.product .related.products ul.products li.product img,
    body.single-product div.product .upsells.products ul.products li.product img {
        height: 160px !important;
    }
    body.single-product div.product .related.products .woocommerce-loop-product__title,
    body.single-product div.product .upsells.products .woocommerce-loop-product__title {
        font-size: 15px !important;
    }
    footer .footer-columns { gap: 12px; }
}


/* Shop toolbar alignment */
.rj-shop-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: 0 0 24px;
    padding: 16px 0;
    border-top: 1px solid rgba(197,163,106,.22);
    border-bottom: 1px solid rgba(197,163,106,.22);
}
.rj-shop-toolbar .woocommerce-result-count { flex: 1; }
.rj-shop-toolbar .woocommerce-ordering { margin-left: auto !important; }
@media (max-width: 600px) {
    .rj-shop-toolbar {
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
    }
    .rj-shop-toolbar .woocommerce-ordering { width: 100%; }
}


.rj-category-filter { margin: 0; }
.rj-category-filter select {
    min-height: 44px;
    min-width: 170px;
    max-width: 100%;
    padding: 0 36px 0 14px;
    border: 1px solid rgba(197,163,106,.45);
    border-radius: 0;
    background: #11110f;
    color: var(--cream);
    font: inherit;
    font-size: 13px;
}
.rj-shop-toolbar .woocommerce-before-shop-loop {
    display: contents;
}
.rj-shop-toolbar .woocommerce-result-count { order: 1; }
.rj-shop-toolbar .rj-category-filter { order: 2; }
.rj-shop-toolbar .woocommerce-ordering { order: 3; }
@media (max-width: 600px) {
    .rj-category-filter select { width: 100%; }
}

/* Royal Jewellery: fix full Cart page width */
body.woocommerce-cart .site-main,
body.woocommerce-cart .woocommerce {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

body.woocommerce-cart .woocommerce {
    overflow-x: auto;
}

body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart-collaterals {
    min-width: 0;
    box-sizing: border-box;
}

body.woocommerce-cart table.shop_table {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

@media (max-width: 768px) {
    body.woocommerce-cart .site-main {
        padding-left: 16px;
        padding-right: 16px;
    }

    body.woocommerce-cart table.shop_table {
        font-size: 13px;
    }
}

/* =====================================================
   ROYAL JEWELLERY — CART & MY ACCOUNT POLISH
   Added as a final override; preserves existing theme CSS.
===================================================== */

/* Shared page width and spacing */
body.woocommerce-cart #primary,
body.woocommerce-account #primary,
body.woocommerce-cart main.site-main,
body.woocommerce-account main.site-main {
    width: 100%;
    max-width: 1440px;
    min-width: 0;
    margin: 0 auto;
    padding: 126px 32px 72px;
    box-sizing: border-box;
    color: var(--cream, #f1ece3);
}

body.woocommerce-cart .entry-content,
body.woocommerce-account .entry-content {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    color: var(--cream, #f1ece3);
}

body.woocommerce-cart .entry-title,
body.woocommerce-account .entry-title {
    margin: 0 0 28px;
    color: var(--cream, #f1ece3);
    font-family: var(--serif, Georgia, serif);
    font-size: clamp(34px, 4vw, 54px);
    font-weight: 400;
    line-height: 1.1;
}

/* WooCommerce notices */
body.woocommerce-cart .woocommerce-notices-wrapper,
body.woocommerce-account .woocommerce-notices-wrapper {
    width: 100%;
    margin: 0 0 22px;
}

body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error,
body.woocommerce-account .woocommerce-message,
body.woocommerce-account .woocommerce-info,
body.woocommerce-account .woocommerce-error {
    border-top-color: var(--gold, #c5a36a);
    background: #151411;
    color: var(--cream, #f1ece3);
    padding: 16px 20px 16px 48px;
    line-height: 1.6;
}

body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-info::before,
body.woocommerce-account .woocommerce-message::before,
body.woocommerce-account .woocommerce-info::before {
    color: var(--gold2, #e1c994);
}

/* CART: keep cart items and totals inside the viewport */
body.woocommerce-cart .woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(280px, .85fr);
    align-items: start;
    gap: 28px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    overflow: visible;
    box-sizing: border-box;
}

body.woocommerce-cart .woocommerce-notices-wrapper,
body.woocommerce-cart .woocommerce > .return-to-shop,
body.woocommerce-cart .woocommerce > .cart-empty {
    grid-column: 1 / -1;
}

body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart-collaterals,
body.woocommerce-cart .cart-collaterals .cart_totals {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
}

body.woocommerce-cart .woocommerce-cart-form {
    grid-column: 1;
}

body.woocommerce-cart .cart-collaterals {
    grid-column: 2;
    align-self: start;
    padding: 24px;
    border: 1px solid rgba(197, 163, 106, .28);
    background: #11110f;
}

body.woocommerce-cart table.shop_table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    border: 1px solid #302b23 !important;
    border-collapse: collapse;
    background: #10100e;
    color: var(--cream, #f1ece3);
    table-layout: auto;
    box-sizing: border-box;
}

body.woocommerce-cart table.shop_table th,
body.woocommerce-cart table.shop_table td {
    padding: 15px 12px !important;
    border-color: #302b23 !important;
    color: var(--cream, #f1ece3);
    vertical-align: middle;
    overflow-wrap: anywhere;
}

body.woocommerce-cart table.shop_table th {
    color: var(--gold2, #e1c994);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
}

body.woocommerce-cart .product-thumbnail {
    width: 95px;
}

body.woocommerce-cart .product-thumbnail img {
    display: block;
    width: 78px !important;
    max-width: 100%;
    height: auto !important;
    margin: 0;
    object-fit: contain;
}

body.woocommerce-cart .product-name a {
    color: var(--cream, #f1ece3);
    text-decoration: none;
    line-height: 1.5;
}

body.woocommerce-cart .product-name a:hover {
    color: var(--gold2, #e1c994);
}

body.woocommerce-cart .product-price,
body.woocommerce-cart .product-subtotal,
body.woocommerce-cart .cart-collaterals .amount {
    color: var(--gold2, #e1c994);
}

body.woocommerce-cart .product-remove a {
    color: #d4b16a !important;
    font-size: 22px;
}

body.woocommerce-cart .quantity .qty {
    width: 72px !important;
    min-height: 40px;
    padding: 8px;
    border: 1px solid #514735;
    border-radius: 0;
    background: #191815;
    color: #fff;
}

body.woocommerce-cart .actions {
    padding: 16px 0 !important;
    border: 0 !important;
}

body.woocommerce-cart .coupon {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

body.woocommerce-cart .coupon input.input-text {
    width: min(220px, 100%) !important;
    min-height: 44px;
    padding: 10px 12px !important;
    border: 1px solid #514735 !important;
    border-radius: 0 !important;
    background: #171613 !important;
    color: #fff !important;
    box-sizing: border-box;
}

body.woocommerce-cart .button,
body.woocommerce-cart button.button,
body.woocommerce-cart a.checkout-button {
    min-height: 44px;
    padding: 12px 18px !important;
    border: 1px solid var(--gold, #c5a36a) !important;
    border-radius: 0 !important;
    background: var(--gold, #c5a36a) !important;
    color: #111 !important;
    font-size: 12px !important;
    font-weight: 600;
    line-height: 1.4 !important;
    text-decoration: none;
    white-space: normal;
    box-sizing: border-box;
}

body.woocommerce-cart .button:hover,
body.woocommerce-cart button.button:hover,
body.woocommerce-cart a.checkout-button:hover {
    border-color: var(--gold2, #e1c994) !important;
    background: transparent !important;
    color: var(--gold2, #e1c994) !important;
}

body.woocommerce-cart .cart-collaterals h2 {
    margin: 0 0 20px;
    color: var(--cream, #f1ece3);
    font-family: var(--serif, Georgia, serif);
    font-size: 30px;
    font-weight: 400;
    line-height: 1.2;
}

body.woocommerce-cart .cart_totals table {
    width: 100% !important;
    border-collapse: collapse;
    border: 0 !important;
}

body.woocommerce-cart .cart_totals th,
body.woocommerce-cart .cart_totals td {
    padding: 14px 4px !important;
    border-bottom: 1px solid #302b23 !important;
    color: var(--cream, #f1ece3);
    overflow-wrap: anywhere;
}

body.woocommerce-cart .wc-proceed-to-checkout {
    padding: 18px 0 0 !important;
}

body.woocommerce-cart a.checkout-button {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    text-align: center;
}

/* WooCommerce Cart Block support, if the page uses blocks instead of shortcode */
body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-cart .wc-block-cart {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    color: var(--cream, #f1ece3);
    box-sizing: border-box;
}

body.woocommerce-cart .wc-block-cart__main,
body.woocommerce-cart .wc-block-cart__sidebar {
    min-width: 0;
    box-sizing: border-box;
}

body.woocommerce-cart .wc-block-cart table,
body.woocommerce-cart .wc-block-cart .wc-block-cart-items {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.woocommerce-cart .wc-block-cart a {
    color: var(--cream, #f1ece3);
}

body.woocommerce-cart .wc-block-cart .wc-block-components-button {
    border-radius: 0;
    background: var(--gold, #c5a36a);
    color: #111;
}

/* MY ACCOUNT: centred login form with readable fields */
body.woocommerce-account .woocommerce {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0 auto;
    color: var(--cream, #f1ece3);
    box-sizing: border-box;
}

body.woocommerce-account .woocommerce > #customer_login,
body.woocommerce-account .woocommerce .u-columns,
body.woocommerce-account .woocommerce form.woocommerce-form-login,
body.woocommerce-account .woocommerce form.woocommerce-form-register,
body.woocommerce-account .woocommerce form.lost_reset_password,
body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce .woocommerce-MyAccount-content {
    box-sizing: border-box;
}

body.woocommerce-account .woocommerce form.woocommerce-form-login,
body.woocommerce-account .woocommerce form.woocommerce-form-register,
body.woocommerce-account .woocommerce form.lost_reset_password {
    width: 100%;
    max-width: 620px;
    margin: 0 auto 24px;
    padding: clamp(22px, 4vw, 38px);
    border: 1px solid rgba(197, 163, 106, .30);
    background: #11110f;
    color: var(--cream, #f1ece3);
}

body.woocommerce-account .woocommerce form h2,
body.woocommerce-account .woocommerce h2,
body.woocommerce-account .woocommerce h3 {
    color: var(--cream, #f1ece3);
    font-family: var(--serif, Georgia, serif);
    font-size: clamp(26px, 3vw, 36px);
    font-weight: 400;
    line-height: 1.2;
    margin: 0 0 22px;
}

body.woocommerce-account .woocommerce form .form-row {
    margin: 0 0 20px;
    padding: 0;
}

body.woocommerce-account .woocommerce form label {
    display: block;
    margin: 0 0 8px;
    color: #e6ddcf;
    font-size: 14px;
    line-height: 1.5;
}

body.woocommerce-account .woocommerce form input[type="text"],
body.woocommerce-account .woocommerce form input[type="email"],
body.woocommerce-account .woocommerce form input[type="password"],
body.woocommerce-account .woocommerce form input[type="tel"],
body.woocommerce-account .woocommerce form input[type="number"],
body.woocommerce-account .woocommerce form input[type="url"],
body.woocommerce-account .woocommerce form select,
body.woocommerce-account .woocommerce form textarea {
    display: block;
    width: 100% !important;
    min-height: 46px;
    padding: 11px 13px !important;
    border: 1px solid #514735 !important;
    border-radius: 0 !important;
    outline: none;
    background: #f8f6f1 !important;
    color: #222 !important;
    font-family: var(--sans, Arial, sans-serif);
    font-size: 15px !important;
    font-weight: 400;
    box-shadow: none;
    box-sizing: border-box;
}

body.woocommerce-account .woocommerce form input::placeholder,
body.woocommerce-account .woocommerce form textarea::placeholder {
    color: #777 !important;
    opacity: 1;
}

body.woocommerce-account .woocommerce form input:focus,
body.woocommerce-account .woocommerce form select:focus,
body.woocommerce-account .woocommerce form textarea:focus {
    border-color: var(--gold, #c5a36a) !important;
    box-shadow: 0 0 0 1px rgba(197, 163, 106, .18);
}

body.woocommerce-account .woocommerce form .show-password-input {
    top: 11px;
    color: #333;
}

body.woocommerce-account .woocommerce form .woocommerce-form__label-for-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 10px 14px 10px 0;
}

body.woocommerce-account .woocommerce form input[type="checkbox"] {
    width: 15px;
    height: 15px;
    accent-color: var(--gold, #c5a36a);
}

body.woocommerce-account .woocommerce button.button,
body.woocommerce-account .woocommerce .button,
body.woocommerce-account .woocommerce a.button {
    min-height: 44px;
    padding: 12px 24px !important;
    border: 1px solid var(--gold, #c5a36a) !important;
    border-radius: 0 !important;
    background: var(--gold, #c5a36a) !important;
    color: #111 !important;
    font-size: 13px !important;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
}

body.woocommerce-account .woocommerce button.button:hover,
body.woocommerce-account .woocommerce .button:hover,
body.woocommerce-account .woocommerce a.button:hover {
    background: transparent !important;
    color: var(--gold2, #e1c994) !important;
}

body.woocommerce-account .woocommerce a:not(.button) {
    color: var(--gold2, #e1c994);
    text-decoration: underline;
    text-underline-offset: 3px;
}

body.woocommerce-account .woocommerce a:not(.button):hover {
    color: #fff;
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation {
    width: 25%;
    padding-right: 24px;
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation ul {
    margin: 0;
    padding: 0;
    list-style: none;
    border: 1px solid rgba(197, 163, 106, .25);
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation li {
    margin: 0;
    border-bottom: 1px solid rgba(197, 163, 106, .18);
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation li:last-child {
    border-bottom: 0;
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation a {
    display: block;
    padding: 13px 15px;
    color: var(--cream, #f1ece3);
    text-decoration: none;
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation .is-active a,
body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation a:hover {
    background: #1b1914;
    color: var(--gold2, #e1c994);
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-content {
    color: var(--cream, #f1ece3);
    line-height: 1.8;
}

body.woocommerce-account .woocommerce table.shop_table {
    width: 100%;
    border-collapse: collapse;
    border-color: #302b23;
    color: var(--cream, #f1ece3);
}

body.woocommerce-account .woocommerce table.shop_table th,
body.woocommerce-account .woocommerce table.shop_table td {
    padding: 12px;
    border-color: #302b23;
    color: var(--cream, #f1ece3);
}

/* Avoid page content sitting underneath the fixed header */
body.woocommerce-cart main.site-main,
body.woocommerce-account main.site-main {
    padding-top: 126px;
}

/* Tablet and mobile adjustments */
@media (max-width: 900px) {
    body.woocommerce-cart .woocommerce {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }

    body.woocommerce-cart .woocommerce-cart-form,
    body.woocommerce-cart .cart-collaterals {
        grid-column: 1;
    }

    body.woocommerce-cart .cart-collaterals {
        padding: 20px;
    }

    body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation,
    body.woocommerce-account .woocommerce .woocommerce-MyAccount-content {
        float: none !important;
        width: 100% !important;
        padding: 0;
    }

    body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation {
        margin-bottom: 24px;
    }
}

@media (max-width: 600px) {
    body.woocommerce-cart #primary,
    body.woocommerce-account #primary,
    body.woocommerce-cart main.site-main,
    body.woocommerce-account main.site-main {
        padding: 104px 14px 44px;
    }

    body.woocommerce-cart table.shop_table th,
    body.woocommerce-cart table.shop_table td {
        padding: 9px 6px !important;
        font-size: 12px;
    }

    body.woocommerce-cart .product-thumbnail {
        width: 58px;
    }

    body.woocommerce-cart .product-thumbnail img {
        width: 48px !important;
    }

    body.woocommerce-cart .cart-collaterals {
        padding: 16px;
    }

    body.woocommerce-cart .coupon {
        display: flex;
        flex-direction: column;
        align-items: stretch;
    }

    body.woocommerce-cart .coupon input.input-text,
    body.woocommerce-cart .coupon button,
    body.woocommerce-cart .actions > button {
        width: 100% !important;
        max-width: 100%;
    }

    body.woocommerce-account .woocommerce form.woocommerce-form-login,
    body.woocommerce-account .woocommerce form.woocommerce-form-register,
    body.woocommerce-account .woocommerce form.lost_reset_password {
        padding: 22px 16px;
    }

    body.woocommerce-account .woocommerce form .form-row {
        width: 100%;
        float: none;
    }
}
