:root{
    --cream:#F7F1EA;
    --chocolate:#3B2416;
    --caramel:#A8652D;
    --white:#FFFFFF;
}

/* =========================================================
   GLOBAL
========================================================= */

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

html{
    scroll-behavior:smooth;
}

body{
    background:var(--cream);
    color:var(--chocolate);
    font-family:Georgia,serif;
    overflow-x:hidden;
    padding-bottom:env(safe-area-inset-bottom);
}

img{
    max-width:100%;
    height:auto;
    display:block;
}

button,
a{
    -webkit-tap-highlight-color:transparent;
}

input,
textarea,
select{
    font-size:16px;
}


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

.hero{
    min-height:100vh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    padding:40px;
}

.logo{
    width:250px;
    margin-bottom:25px;
    border-radius:50%;
    animation:slowSpin 18s linear infinite;
}

@keyframes slowSpin{

    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }
}

.hero h1{
    font-size:4.5rem;
    font-family:'Fredoka',sans-serif;
    line-height:1;
    margin-bottom:20px;
}

.tagline{
    max-width:700px;
    font-size:1.2rem;
    opacity:.8;
}

.hero-badges{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    justify-content:center;
    margin-top:25px;
}

.hero-badges span{
    background:white;
    padding:10px 16px;
    border-radius:999px;
}

.cta-btn{
    margin-top:35px;
    background:var(--caramel);
    color:white;
    text-decoration:none;
    padding:16px 28px;
    border-radius:999px;
    transition:.3s;
}

.cta-btn:hover{
    transform:translateY(-4px);
}


/* =========================================================
   COOKIE FACT
========================================================= */

.cookie-fact{
    background:white;
    max-width:800px;
    margin:auto;
    padding:18px;
    border-radius:20px;
    text-align:center;
    box-shadow:0 10px 25px rgba(0,0,0,.05);
}


/* =========================================================
   SECTIONS
========================================================= */

.section{
    padding:90px 10%;
}

.section-header{
    display:flex;
    justify-content:space-between;
    margin-bottom:30px;
    flex-wrap:wrap;
    gap:10px;
}


/* =========================================================
   PRODUCT GRID
========================================================= */

.product-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:24px;
}


/* =========================================================
   PRODUCT CARD
========================================================= */

.card{
    background:white;
    border-radius:24px;
    padding:24px;
    border:1px solid #eadccc;
    transition:.3s;
    cursor:pointer;
}

.card:hover{
    transform:
        translateY(-10px)
        rotate(-1deg)
        scale(1.02);
}

.card h3{
    margin-bottom:10px;
}

.card p{
    opacity:.75;
    line-height:1.6;
    margin-bottom:15px;
}


/* =========================================================
   PRODUCT IMAGE
========================================================= */

.product-image{
    position:relative;
    width:100%;
    height:180px;

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

    margin-bottom:18px;
}

.product-image img{
    max-width:100%;
    max-height:170px;

    object-fit:contain;

    transition:.35s;
}

.card:hover .product-image img{
    transform:scale(1.05) rotate(-2deg);
}


/* =========================================================
   BADGE
========================================================= */

.badge{
    position:absolute;
    top:12px;
    left:12px;
    z-index:5;

    display:inline-block;
    background:#3B2416;
    color:white;
    padding:6px 12px;
    border-radius:999px;
    font-size:12px;
    margin-bottom:12px;
}


/* =========================================================
   PRICE
========================================================= */

.price{
    font-size:1.3rem;
    color:var(--caramel);
    font-weight:bold;
}


/* =========================================================
   QUANTITY CONTROLS
========================================================= */

.qty-controls{
    margin-top:15px;

    display:flex;
    justify-content:center;
    align-items:center;
    gap:12px;
}

.qty-btn{
    width:40px;
    height:40px;

    border:none;
    border-radius:50%;

    background:#A8652D;
    color:white;

    font-size:22px;

    cursor:pointer;

    transition:.2s;
}

.qty-btn:hover{
    transform:scale(1.08);
}

.qty{
    min-width:25px;

    text-align:center;

    font-size:20px;

    font-weight:bold;
}


/* =========================================================
   VARIANT SELECTOR
========================================================= */

.variant-selector{
    display:flex;
    gap:10px;
    margin:14px 0;
}

.variant-pill{
    flex:1;
    cursor:pointer;
}

.variant-pill input{
    display:none;
}

.variant-pill span{
    display:block;
    text-align:center;

    padding:10px 0;

    border:2px solid #d8c7b6;
    border-radius:999px;

    background:white;

    font-size:.85rem;
    font-weight:600;

    transition:.25s;
}

.variant-pill input:checked + span{
    background:#8f5427;
    color:white;
    border-color:#8f5427;
}

.variant-pill input:checked + span::before{
    content:"✓ ";
}


/* =========================================================
   TOP ROW / BADGE POSITIONING
========================================================= */

.top-row{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    width:100%;
}

.top-row .badge{
    justify-self:start;
}


/* =========================================================
   FLOATING CART
========================================================= */

.cart-bubble{
    position:fixed;
    right:25px;
    bottom:25px;

    width:70px;
    height:70px;

    border-radius:50%;

    background:var(--caramel);
    color:white;

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

    font-weight:bold;

    cursor:pointer;

    box-shadow:0 10px 30px rgba(0,0,0,.15);

    z-index:999;
}

.cart-bubble:hover{
    transform:
        scale(1.08)
        rotate(-8deg);
}

.cookie-cart{
    position:fixed;

    right:25px;
    bottom:25px;

    width:90px;
    height:90px;

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

    font-size:58px;

    cursor:pointer;

    z-index:999;
}

.cookie-cart:hover{
    transform:
        rotate(-8deg)
        scale(1.08);
}

#cartCount{
    position:absolute;

    top:8px;
    right:8px;

    width:28px;
    height:28px;

    border-radius:50%;

    background:#A8652D;
    color:white;

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

    font-size:14px;
    font-weight:bold;
}


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

.footer{
    margin-top:100px;
    padding:60px 0 25px;
    border-top:1px solid rgba(143,84,39,.15);
}

.footer-wrapper{
    width:min(1400px,92%);
    margin:0 auto;

    display:flex;
    align-items:flex-start;
    justify-content:space-between;
}

.footer-column{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.footer-links{
    width:220px;
    gap:8px;
}

.footer-column h3{
    font-size:18px;
    color:#8f5427;
    margin-bottom:8px;
}

.footer-column p{
    color:#5a3a22;
    line-height:1.6;
    font-size:15px;
}

.license{
    opacity:.8;
    font-size:14px;
}

.footer-links a{
    display:block !important;
    text-decoration:none;
    color:#5a3a22;
    margin:0;
    margin-bottom:8px;
    transition:.25s;
    line-height:1.4;
}

.footer-links a:hover{
    color:#8f5427;
    transform:translateX(4px);
}

.footer-socials{
    display:flex;
    gap:16px;
    margin-top:8px;
}

.footer-socials a{
    width:46px;
    height:46px;

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

    border-radius:50%;

    background:white;
    color:#5a3a22;

    text-decoration:none;

    box-shadow:0 6px 20px rgba(0,0,0,.08);

    transition:.25s;
}

.footer-socials a:hover{
    transform:translateY(-4px);
    color:#A8652D;
}

.footer-bottom{
    margin-top:45px;
    padding-top:20px;

    text-align:center;

    font-size:13px;
    color:#8f5427;
    opacity:.75;
}


/* =========================================================
   CART MODAL
========================================================= */

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

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

    backdrop-filter:blur(8px);

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

    opacity:0;
    visibility:hidden;

    transition:.3s;

    z-index:99999;

    overflow-y:auto;
    padding:20px;
}

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

.cookie-modal{
    width:650px;
    height:650px;

    max-width:90vw;

    background:var(--cream);

    border-radius:50%;
    border:8px solid #d6b08b;

    padding:35px;

    position:relative;

    overflow:hidden;

    animation:popIn .35s ease-out;
}

.cookie-content{
    width:80%;
    height:100%;

    margin:0 auto;

    display:flex;
    flex-direction:column;
    align-items:center;

    text-align:center;
}

@keyframes popIn{

    0%{
        opacity:0;
        transform:
            scale(.75)
            rotate(-4deg);
    }

    70%{
        transform:
            scale(1.05)
            rotate(1deg);
    }

    100%{
        opacity:1;
        transform:
            scale(1)
            rotate(0deg);
    }
}

#cartItems{
    width:100%;

    height:320px;

    overflow-y:auto;

    margin:25px 0;

    scrollbar-gutter:stable;
}


/* =========================================================
   CART CONTENT
========================================================= */

.cookie-total{
    margin-top:25px;

    font-size:28px;
    font-weight:bold;

    color:var(--caramel);
}

.cart-item{
    display:flex;

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

    margin-bottom:14px;

    padding:10px 0;

    border-bottom:1px dashed #d9c7b5;
}

.cart-left{
    display:flex;
    flex-direction:column;
}

.cart-name{
    font-weight:600;
}

.cart-price{
    font-size:.75rem;
    color:#777;
}

.cart-controls-wrap{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
}

.cart-controls{
    display:flex;
    align-items:center;
    gap:10px;
}

.cart-total{
    font-weight:700;
    font-size:.85rem;
}

.cart-minus,
.cart-plus{
    width:32px;
    height:32px;

    border:none;
    border-radius:50%;

    background:#A8652D;
    color:white;

    cursor:pointer;
    font-weight:bold;
}


/* =========================================================
   BUTTONS
========================================================= */

.checkout-btn{
    display:block;

    width:fit-content;

    margin:25px auto 0;

    background:linear-gradient(
        135deg,
        #c37b3d,
        #8f5427
    );

    color:white;

    border:none;
    border-radius:999px;

    padding:16px 28px;

    font-size:1rem;
    font-weight:700;

    cursor:pointer;

    transition:all .25s ease;

    box-shadow:0 10px 25px rgba(163,101,45,.25);
}

.checkout-btn:hover{
    transform:
        translateY(-3px)
        scale(1.03);

    box-shadow:
        0 18px 35px rgba(163,101,45,.35);
}

.checkout-btn:disabled{
    opacity:.4;
    cursor:not-allowed;
    filter:blur(.6px);
    transform:none;
    box-shadow:0 10px 25px rgba(163,101,45,.15);
}

.checkout-btn.disabled{
    opacity:.4;
    cursor:not-allowed;
    transform:none !important;
    box-shadow:none !important;
    pointer-events:none;
}

.secondary-btn{
    background:transparent;
    color:#8f5427;

    border:2px solid #8f5427;

    box-shadow:none;
}

.secondary-btn:hover{
    background:rgba(143,84,39,.08);
    transform:translateY(-2px);
}


/* =========================================================
   COOKIE SUBTITLE
========================================================= */

.cookie-subtitle{
    color:#8f7a67;
    margin-bottom:25px;
    font-style:italic;
}


/* =========================================================
   CUSTOMER / PAYMENT MODALS
========================================================= */

.details-modal{
    width:500px;
    max-width:90vw;

    background:white;

    border-radius:28px;

    padding:32px;

    display:flex;
    flex-direction:column;

    gap:14px;

    text-align:center;
}

.details-modal input,
.details-modal textarea{
    width:100%;

    padding:14px;

    border:1px solid #ddd;

    border-radius:14px;

    font-size:16px;
}

.details-modal textarea{
    min-height:100px;
    resize:none;
}

.payment-modal{
    width:500px;
    height:auto;

    max-height:90vh;

    border-radius:36px;

    padding:40px;

    overflow-y:auto;
}


/* =========================================================
   FORM
========================================================= */

.form-row{
    display:grid;
    grid-template-columns:1fr 1fr;

    gap:10px;

    margin-bottom:8px;
}

.form-group{
    display:flex;
    flex-direction:column;
}

.form-label{
    font-size:.75rem;

    font-weight:600;

    color:#6b4a2d;

    margin:6px 0 3px;

    text-align:left;
}

input,
textarea{
    width:100%;

    padding:10px 12px;

    font-size:.9rem;

    border-radius:10px;

    border:1px solid #ddd;

    margin-bottom:6px;

    transition:all .2s ease;
}

input:focus,
textarea:focus{
    border-color:#8f5427;

    box-shadow:
        0 0 0 2px rgba(143,84,39,.15);
}

.form-group input,
.form-group textarea{
    padding:10px 10px;

    border-radius:10px;

    border:1px solid #ddd;

    font-size:.9rem;
}

input.error,
textarea.error{
    border:2px solid #e74c3c;
    background:#fff5f5;
}

.error-msg{
    color:#e74c3c;

    font-size:.75rem;

    margin-top:4px;
}


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

.modal-header{
    position:relative;

    display:flex;

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

    margin-bottom:15px;
}

.back-btn{
    position:absolute;

    left:0;
    top:50%;

    transform:translateY(-50%);

    background:none;
    border:none;

    font-size:1.6rem;
    font-weight:bold;

    cursor:pointer;

    color:#8f5427;

    padding:6px 10px;
}

.back-icon{
    font-size:1.9rem;
    font-weight:900;

    color:#8f5427;

    display:inline-block;

    transform:scale(1.2);
}

.back-btn:hover{
    opacity:.7;

    transform:
        translateY(-50%)
        scale(1.1);
}


/* =========================================================
   MODAL LOGO
========================================================= */

.modal-logo{
    width:90px;
    height:90px;

    object-fit:cover;

    border-radius:50%;

    display:block;

    margin:0 auto 15px;

    background:white;

    padding:6px;

    box-shadow:
        0 6px 20px rgba(0,0,0,.08);
}

.modal-logo:hover{
    transform:
        rotate(-4deg)
        scale(1.05);
}


/* =========================================================
   PAYMENT
========================================================= */

.summary-row{
    display:flex;

    justify-content:space-between;

    margin:10px 0;
}

.total-row{
    font-size:22px;

    font-weight:bold;

    color:#A8652D;
}

.qr-image{
    width:220px;

    margin:20px auto;

    display:block;
}

.payment-reminder strong{
    margin-top:15px;

    font-weight:600;

    color:#A8652D;

    animation:instagramGlow 1.8s infinite;

    font-style:italic;
}

@keyframes instagramGlow{

    0%{
        text-shadow:none;
    }

    50%{
        text-shadow:
            0 0 8px rgba(168,101,45,.7),
            0 0 18px rgba(168,101,45,.4);
    }

    100%{
        text-shadow:none;
    }
}

.utr-error{
    color:#c0392b;

    font-size:.9rem;

    margin-top:8px;

    min-height:20px;
}

.utr-hint{
    font-size:.9rem;

    color:#8f7a67;

    margin-top:8px;
    margin-bottom:18px;

    text-align:center;

    font-style:italic;

    line-height:1.4;
}

.upload-label{
    display:block;

    background:white;

    border:2px dashed #d6b08b;

    border-radius:18px;

    padding:18px;

    text-align:center;

    cursor:pointer;

    transition:.25s;
}

.upload-label:hover{
    background:#fcf7f1;
}

.file-name{
    margin-top:10px;

    font-size:.9rem;

    color:#8f7a67;

    text-align:center;
}

.proof-divider{
    display:flex;

    justify-content:center;

    margin:18px 0;

    color:#8f7a67;

    font-weight:bold;
}


/* =========================================================
   SUCCESS MODAL
========================================================= */

.success-modal{
    display:flex;

    flex-direction:column;

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

    text-align:center;

    padding:40px;
}

.success-modal h2{
    margin-bottom:15px;
}

.success-modal p{
    margin-bottom:15px;
}

.order-id-box{
    margin:25px 0;

    padding:16px;

    background:white;

    border-radius:16px;

    font-size:1.2rem;

    font-weight:bold;

    color:#A8652D;
}


/* =========================================================
   TRUST BADGES
========================================================= */

.trust-section{
    padding:20px 20px 40px;
}

.trust-badges{
    display:flex;

    justify-content:center;

    gap:14px;

    flex-wrap:wrap;
}

.trust-badges span{
    background:white;

    padding:12px 20px;

    border-radius:999px;

    font-weight:600;

    box-shadow:
        0 8px 20px rgba(0,0,0,.06);

    transition:.25s ease;
}

.trust-badges span:hover{
    transform:
        translateY(-4px)
        rotate(-2deg);
}


/* =========================================================
   ABOUT PAGE
========================================================= */

.about-hero{
    text-align:center;

    padding:80px 20px 50px;
}

.about-logo{
    width:140px;

    border-radius:50%;

    margin-bottom:24px;
}

.about-hero h1{
    font-family:'Fredoka',sans-serif;

    font-size:3rem;

    color:#3B2416;

    margin-bottom:15px;
}

.about-hero p{
    max-width:650px;

    margin:auto;

    color:#6f5846;

    font-size:1.05rem;

    line-height:1.7;
}

.about-content{
    width:min(900px,90%);

    margin:60px auto;

    display:flex;

    flex-direction:column;

    gap:30px;
}

.about-card{
    background:white;

    border-radius:24px;

    padding:35px;

    box-shadow:0 10px 30px rgba(0,0,0,.05);

    border:1px solid rgba(143,84,39,.12);
}

.about-card h2{
    color:#8f5427;

    margin-bottom:18px;

    font-family:'Fredoka',sans-serif;
}

.about-card p{
    line-height:1.9;

    color:#5a3a22;

    margin-bottom:16px;
}

.about-card ul{
    padding-left:22px;
}

.about-card li{
    margin-bottom:12px;

    color:#5a3a22;
}

.about-card blockquote{
    margin:22px 0;

    padding:20px;

    border-left:5px solid #A8652D;

    background:#faf4ec;

    border-radius:12px;

    font-style:italic;

    font-size:1.1rem;
}

.mission{
    text-align:center;
}

.mission p:first-of-type{
    font-size:1.35rem;
}

.about-back{
    text-align:center;

    margin:70px 0;
}

.about-back a{
    display:inline-block;

    text-decoration:none;

    background:#A8652D;

    color:white;

    padding:15px 28px;

    border-radius:999px;

    font-weight:600;

    transition:.25s;
}

.about-back a:hover{
    transform:translateY(-3px);
}


/* =========================================================
   LEGAL PAGES
========================================================= */

.legal-page{
    width:min(850px,90%);

    margin:70px auto;

    padding-bottom:60px;
}

.legal-logo{
    width:120px;

    display:block;

    margin:0 auto 24px;

    border-radius:50%;
}

.legal-page h1{
    text-align:center;

    font-family:'Fredoka',sans-serif;

    font-size:3rem;

    color:#3B2416;

    margin-bottom:8px;
}

.legal-updated{
    text-align:center;

    color:#8f5427;

    margin-bottom:50px;

    font-style:italic;
}

.legal-content h2{
    color:#8f5427;

    font-size:1.35rem;

    margin:40px 0 12px;

    font-family:'Fredoka',sans-serif;
}

.legal-content p{
    line-height:1.9;

    color:#5a3a22;

    font-size:1rem;
}

.legal-back-btn{
    display:inline-block;

    margin-top:60px;

    text-decoration:none;

    color:#8f5427;

    font-weight:600;

    transition:.25s;
}

.legal-back-btn:hover{
    transform:translateX(-4px);
}


/* =========================================================
   FAQ
========================================================= */

.faq-list{
    display:flex;

    flex-direction:column;

    gap:16px;
}

.faq-list details{
    border:1px solid rgba(143,84,39,.15);

    border-radius:16px;

    background:white;

    padding:18px 22px;

    transition:.25s;
}

.faq-list details:hover{
    border-color:#A8652D;
}

.faq-list summary{
    cursor:pointer;

    list-style:none;

    font-weight:600;

    color:#5a3a22;

    font-size:1.02rem;
}

.faq-list summary::-webkit-details-marker{
    display:none;
}

.faq-list summary::after{
    content:"+";

    float:right;

    color:#A8652D;

    font-size:1.4rem;

    transition:.25s;
}

.faq-list details[open] summary::after{
    content:"−";
}

.faq-list details p{
    margin-top:16px;

    line-height:1.8;

    color:#5a3a22;
}


/* =========================================================
   TABLETS
========================================================= */

@media (max-width:992px){

    .hero{
        padding:60px 30px;

        min-height:90vh;
    }

    .hero h1{
        font-size:3.5rem;
    }

    .tagline{
        font-size:1.05rem;
    }

    .section{
        padding:70px 6%;
    }

    .product-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));

        gap:20px;
    }

    .footer-wrapper{
        gap:60px;
    }
}


/* =========================================================
   PHONES
========================================================= */

@media (max-width:768px){

    html{
        font-size:15px;
    }

    body{
        overflow-x:hidden;
    }

    img{
        max-width:100%;
        height:auto;
    }


    /* ---------- HERO ---------- */

    .hero{
        padding:50px 20px;

        min-height:auto;
    }

    .logo{
        width:180px;
    }

    .hero h1{
        font-size:2.4rem;

        line-height:1.15;
    }

    .tagline{
        font-size:1rem;

        max-width:100%;
    }

    .hero-badges{
        gap:8px;
    }

    .hero-badges span{
        font-size:.85rem;

        padding:8px 12px;
    }

    .cta-btn{
        width:100%;

        max-width:320px;

        text-align:center;
    }


    /* ---------- SECTIONS ---------- */

    .section{
        padding:55px 12px;
    }

    .section-header{
        flex-direction:column;

        align-items:flex-start;

        margin-bottom:20px;
    }

    .section-header h2{
        font-size:26px;

        line-height:1.15;
    }

    .section-header span{
        font-size:14px;
    }


    /* =====================================================
       PRODUCTS — 2 COLUMNS
    ===================================================== */

    .product-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));

        gap:12px;

        width:100%;
    }

    .card{
        width:100%;

        min-width:0;

        padding:12px;

        border-radius:18px;
    }

    /* Prevent desktop hover animation from feeling weird on touch */
    .card:hover{
        transform:none;
    }


    /* ---------- PRODUCT IMAGE ---------- */

    .product-image{
        height:115px;

        margin-bottom:10px;
    }

    .product-image img{
        max-height:110px;

        max-width:100%;
    }


    /* ---------- PRODUCT TEXT ---------- */

    .card h3{
        font-size:16px;

        line-height:1.2;

        margin-bottom:6px;
    }

    .card p{
        font-size:12px;

        line-height:1.35;

        margin-bottom:8px;
    }

    .price{
        font-size:1.1rem;
    }


    /* ---------- VARIANT BUTTONS ---------- */

    .variant-selector{
        gap:5px;

        margin:10px 0;
    }

    .variant-pill{
        min-width:0;
    }

    .variant-pill span{
        padding:8px 3px;

        font-size:.7rem;

        white-space:nowrap;
    }


    /* ---------- QUANTITY ---------- */

    .qty-controls{
        margin-top:8px;

        gap:7px;
    }

    .qty-btn{
        width:32px;

        height:32px;

        font-size:18px;
    }

    .qty{
        min-width:18px;

        font-size:17px;
    }


    /* ---------- BADGE ---------- */

    .badge{
        top:7px;

        left:7px;

        padding:4px 8px;

        font-size:10px;
    }


    /* ---------- FLOATING CART ---------- */

    .cookie-cart{
        width:72px;

        height:72px;

        font-size:44px;

        right:16px;

        bottom:16px;
    }

    #cartCount{
        width:24px;

        height:24px;

        font-size:12px;
    }


    /* =====================================================
       COOKIE CART MODAL
    ===================================================== */

    .cookie-modal{
        width:95vw !important;

        height:auto !important;

        max-height:92vh;

        border-radius:28px;

        padding:24px;

        overflow-y:auto;
    }

    .cookie-content{
        width:100%;
    }

    #cartItems{
        height:auto;

        max-height:280px;
    }

    .cart-item{
        align-items:flex-start;

        gap:12px;
    }

    .cart-controls-wrap{
        align-items:flex-end;
    }


    /* =====================================================
       CUSTOMER + PAYMENT MODALS
    ===================================================== */

    .details-modal,
    .payment-modal{
        width:95vw !important;

        max-width:none;

        padding:24px;

        border-radius:24px;
    }

    .form-row{
        grid-template-columns:1fr !important;
    }

    .checkout-btn{
        width:100%;
    }

    .summary-row{
        font-size:.95rem;
    }

    .qr-image{
        width:180px;
    }


    /* ---------- SUCCESS ---------- */

    .success-modal{
        padding:25px;
    }


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

    .footer{
        padding:45px 20px 25px;
    }

    .footer-wrapper{
        flex-direction:column;

        align-items:flex-start;

        gap:35px;
    }

    .footer-column{
        width:100%;
    }

    .footer-links{
        width:100%;

        margin:0 !important;
    }


    /* =====================================================
       ABOUT
    ===================================================== */

    .about-hero{
        padding:55px 20px 30px;
    }

    .about-hero h1{
        font-size:2.3rem;
    }

    .about-content{
        width:92%;

        gap:22px;
    }

    .about-card{
        padding:24px;
    }


    /* =====================================================
       LEGAL
    ===================================================== */

    .legal-page{
        width:92%;
    }

    .legal-page h1{
        font-size:2.2rem;
    }

    .legal-content h2{
        font-size:1.2rem;
    }
}


/* =========================================================
   VERY SMALL PHONES
========================================================= */

@media (max-width:430px){

    .hero h1{
        font-size:2rem;
    }

    .logo{
        width:150px;
    }

    .hero-badges{
        flex-direction:column;
    }

    .hero-badges span{
        width:100%;
    }

    .cookie-modal,
    .details-modal,
    .payment-modal{
        padding:18px;
    }

    .cart-item{
        flex-direction:column;

        align-items:flex-start;
    }

    .cart-controls-wrap{
        width:100%;

        flex-direction:row;

        justify-content:space-between;
    }

    .footer-socials{
        justify-content:flex-start;

        flex-wrap:wrap;
    }
}


/* =========================================================
   TOAST
========================================================= */

.toast{
    position:fixed;

    left:50%;
    bottom:30px;

    transform:translate(-50%,40px);

    background:#3b2a1d;

    color:white;

    padding:14px 22px;

    border-radius:999px;

    font-size:15px;

    font-weight:500;

    box-shadow:0 12px 30px rgba(0,0,0,.18);

    opacity:0;

    visibility:hidden;

    transition:.3s;

    z-index:99999;

    max-width:90vw;

    text-align:center;
}

.toast.show{
    opacity:1;

    visibility:visible;

    transform:translate(-50%,0);
}

/* =========================================
   MOBILE CART MODAL SCROLL FIX
   ========================================= */

html.modal-open,
body.modal-open {
    overflow: hidden;
}

@media (max-width: 768px) {

    /*
       Lock the website behind the modal
    */
    html.modal-open,
    body.modal-open {
        overflow: hidden;
        height: 100%;
        overscroll-behavior: none;
    }

    /*
       Full-screen overlay
    */
    #cartModal {
        position: fixed;
        inset: 0;
        width: 100%;
        height: 100dvh;

        overflow-y: auto;
        overflow-x: hidden;

        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;

        padding: 12px;
        box-sizing: border-box;

        align-items: flex-start;
    }

    /*
       The actual cart box.

       This assumes the cart modal content is
       the direct child of #cartModal.
    */
    #cartModal > * {
        width: 100%;
        max-width: 520px;

        max-height: calc(100dvh - 24px);

        overflow-y: auto;
        overflow-x: hidden;

        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;

        margin: 0 auto;
    }
}

/* PAYMENT VERIFICATION OVERLAY */

#paymentVerificationOverlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 999999;
    background: rgba(20, 12, 8, 0.92);
    align-items: center;
    justify-content: center;
    padding: 20px;
}

#paymentVerificationOverlay.active {
    display: flex;
}

.verification-card {
    background: #F7F1EA;
    color: #3B2416;
    width: 100%;
    max-width: 390px;
    padding: 38px 25px;
    border-radius: 22px;
    text-align: center;
    box-shadow: 0 15px 60px rgba(0,0,0,0.3);
}

.verification-lock {
    font-size: 42px;
    margin-bottom: 15px;
}

.verification-card h2 {
    font-size: 25px;
    margin-bottom: 20px;
}

.verification-status {
    color: #287A45;
    font-weight: 700;
    margin-bottom: 15px;
}

.verification-card p {
    color: #765A46;
    line-height: 1.6;
    margin-bottom: 25px;
}

.verification-spinner {
    width: 32px;
    height: 32px;
    border: 3px solid #DDCBB9;
    border-top-color: #A8652D;
    border-radius: 50%;
    animation: verificationSpin 0.8s linear infinite;
    margin: 0 auto 18px;
}

.verification-card small {
    color: #8F7A67;
}

@keyframes verificationSpin {
    to {
        transform: rotate(360deg);
    }
}