/* =========================================
   RESET
========================================= */

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

html{
scroll-behavior:smooth;
}

:root{
--cream:#f8f4ef;
--sand:#dcc9b8;
--gold:#b8955e;
--gold-dark:#a78145;
--dark:#111111;
--light:#ffffff;

--radius-full:40px;
--radius-card:24px;

--shadow-soft:0 10px 30px rgba(0,0,0,0.06);
--shadow-hover:0 20px 40px rgba(0,0,0,0.10);

--transition:0.3s ease;
}

body{
font-family:'Poppins',sans-serif;
background:var(--cream);
color:var(--dark);
overflow-x:hidden;

-webkit-font-smoothing:antialiased;
-moz-osx-font-smoothing:grayscale;
}

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

a{
text-decoration:none;
color:inherit;
}

button{
cursor:pointer;
border:none;
font-family:'Poppins',sans-serif;
transition:var(--transition);
}

/* =========================================
   TOP BAR
========================================= */

.top-bar{
background:var(--gold);
color:white;
padding:12px 0;
overflow:hidden;
font-size:14px;
letter-spacing:1px;
}

.marquee{
white-space:nowrap;
display:inline-block;
padding-left:100%;
animation:marquee 20s linear infinite;
}

@keyframes marquee{

0%{
transform:translateX(0);
}

100%{
transform:translateX(-100%);
}

}

/* =========================================
   NAVBAR
========================================= */

.navbar{
position:sticky;
top:0;
z-index:1000;

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

padding:24px 70px;

background:rgba(255,255,255,0.92);
backdrop-filter:blur(10px);

border-bottom:1px solid rgba(0,0,0,0.05);
}

.logo{
font-family:'Playfair Display',serif;
font-size:30px;
font-weight:600;
letter-spacing:4px;
}

.nav-links{
display:flex;
gap:35px;
}

.nav-links a{
position:relative;
font-size:14px;
letter-spacing:1px;
text-transform:uppercase;
}

.nav-links a::after{
content:'';
position:absolute;
left:0;
bottom:-5px;

width:0%;
height:1px;

background:var(--gold);
transition:0.3s;
}

.nav-links a:hover::after{
width:100%;
}

/* NAV ICONS */

.nav-icons{
display:flex;
align-items:center;
gap:16px;
}

.nav-icons i,
.cart-icon{
width:48px;
height:48px;

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

border:1px solid rgba(0,0,0,0.08);
border-radius:50%;

background:white;

font-size:18px;
cursor:pointer;

transition:var(--transition);
flex-shrink:0;
}

.nav-icons i:hover,
.cart-icon:hover{
background:var(--dark);
color:white;
transform:translate3d(0,-2px,0);
}

/* CART ICON */

.cart-icon{
position:relative;
}

.cart-icon i{
font-size:18px;
border:none;
background:none;
width:auto;
height:auto;
}

.cart-icon span{
position:absolute;
top:-6px;
right:-6px;

width:22px;
height:22px;

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

border-radius:50%;

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

font-size:11px;
font-weight:600;

border:2px solid white;
}

/* BAG SHAKE */

.bag-shake{
animation:bagShake 0.5s ease;
}

@keyframes bagShake{

0%{
transform:rotate(0deg);
}

25%{
transform:rotate(-10deg);
}

50%{
transform:rotate(10deg);
}

75%{
transform:rotate(-10deg);
}

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

}

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

.hero{
height:92vh;
position:relative;

display:flex;
align-items:center;

padding-left:90px;

background:url('images/mosofgreen.png') center/cover no-repeat;
}

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

background:
linear-gradient(
to right,
rgba(0,0,0,0.6),
rgba(0,0,0,0.15)
);
}

.hero-content{
position:relative;
z-index:2;

max-width:620px;
color:white;
}

.hero-tag{
font-size:13px;
letter-spacing:3px;
color:var(--sand);
}

.hero h1{
font-family:'Playfair Display',serif;
font-size:72px;
line-height:1.1;
font-weight:600;

margin:20px 0;
}

.hero p{
font-size:17px;
line-height:1.8;
margin-bottom:35px;

color:#eee;
}

.hero-buttons{
display:flex;
gap:18px;
}
.hero-buttons a{
display:inline-flex;
align-items:center;
justify-content:center;
}
/* BUTTONS */

.primary-btn,
.secondary-btn{
padding:15px 34px;
border-radius:var(--radius-full);

font-size:13px;
letter-spacing:1px;
text-transform:uppercase;
}

.primary-btn{
background:var(--gold);
color:white;
}

.primary-btn:hover{
background:var(--gold-dark);
transform:translate3d(0,-2px,0);
}

.secondary-btn{
background:transparent;
border:1px solid rgba(255,255,255,0.5);
color:white;
}

.secondary-btn:hover{
background:white;
color:black;
}

/* =========================================
   TRUST BAR
========================================= */

.trust-bar{
display:grid;
grid-template-columns:repeat(4,1fr);

padding:30px 70px;

background:white;

border-top:1px solid rgba(0,0,0,0.05);
border-bottom:1px solid rgba(0,0,0,0.05);
}

.trust-item{
display:flex;
align-items:center;
justify-content:center;
gap:12px;

font-size:15px;
}

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

section{
padding:100px 70px;
}

.section-header{
text-align:center;
margin-bottom:60px;
}

.section-tag{
font-size:13px;
letter-spacing:3px;
text-transform:uppercase;

color:var(--gold);
}

.section-header h2{
margin-top:15px;

font-family:'Playfair Display',serif;
font-size:48px;
font-weight:600;
}

.section-header p{
margin-top:15px;
color:#666;
}

/* =========================================
   COLLECTIONS
========================================= */

.explore-btn{
width:140px;
height:48px;

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

border-radius:40px;

background:white;
color:#111;

font-size:14px;
font-weight:500;

transition:0.3s ease;
}

.explore-btn:hover{
background:#b8955e;
color:white;
transform:translateY(-2px);
}




.collection-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:30px;
}

.collection-card{
position:relative;
overflow:hidden;

height:500px;
border-radius:var(--radius-card);
}

.collection-card img{
height:100%;
object-fit:cover;

transition:0.7s ease;
}

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

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

display:flex;
flex-direction:column;
justify-content:flex-end;

padding:40px;

color:white;

background:
linear-gradient(
to top,
rgba(0,0,0,0.7),
transparent
);
}

.collection-overlay h3{
font-family:'Playfair Display',serif;
font-size:34px;
margin-bottom:15px;
}

.collection-overlay button{
width:140px;
padding:13px;

border-radius:var(--radius-full);
background:white;
}

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

.products-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:35px;
}

.product-card{
overflow:hidden;

background:white;
border-radius:var(--radius-card);

transition:0.35s ease;
}

.product-card:hover{
transform:translate3d(0,-8px,0);
box-shadow:var(--shadow-hover);
}

.product-card img{
height:420px;
object-fit:cover;
}

.product-info{
padding:28px;
text-align:center;
}

.product-info h3{
font-family:'Playfair Display',serif;
font-size:30px;

margin-bottom:10px;
}

.product-info p{
color:#777;
margin-bottom:18px;
}

.product-bottom{
display:flex;
flex-direction:column;
gap:18px;

margin-top:20px;
}

.product-bottom span{
font-size:22px;
font-weight:600;
}

.product-info button{
width:100%;
padding:15px;

border-radius:var(--radius-full);

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

font-size:12px;
letter-spacing:1px;
text-transform:uppercase;
}

.product-info button:hover{
background:var(--gold);
}

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

.story{
display:grid;
grid-template-columns:1fr 1fr;
gap:70px;
align-items:center;

background:white;
}

.story-image img{
border-radius:var(--radius-card);
}

.story-content h2{
font-family:'Playfair Display',serif;
font-size:50px;

margin:20px 0;
}

.story-content p{
line-height:1.9;
margin-bottom:20px;
color:#555;
}

.story-features{
display:flex;
flex-direction:column;
gap:15px;

margin-top:30px;
}

/* =========================================
   REVIEWS
========================================= */

.review-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:30px;
}

.review-card{
padding:40px;

background:white;
border-radius:var(--radius-card);

text-align:center;
}

.stars{
font-size:22px;
margin-bottom:20px;

color:#d6a756;
}

.review-card p{
line-height:1.8;
margin-bottom:20px;
color:#555;
}

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

.newsletter{
background:#0b0b0b;
color:white;
text-align:center;
}

.newsletter h2{
font-family:'Playfair Display',serif;
font-size:50px;

margin:20px 0;
}

.newsletter p{
margin-bottom:35px;
color:#ccc;
}

.newsletter-form{
display:flex;
justify-content:center;
gap:15px;
}

.newsletter-form input{
width:350px;
padding:16px 20px;

border:none;
outline:none;

border-radius:var(--radius-full);
}

.newsletter-form button{
padding:16px 32px;

border-radius:var(--radius-full);

background:var(--gold);
color:white;
}

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

.footer{
padding:80px 70px 30px;

background:#0b0b0b;
color:white;
}

.footer-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:50px;

margin-bottom:50px;
}

.footer h2,
.footer h3{
margin-bottom:20px;
font-family:'Playfair Display',serif;
}

.footer p,
.footer a{
display:block;

line-height:2;
color:#aaa;
}

.socials{
display:flex;
gap:20px;

margin-top:20px;
font-size:20px;
}

.footer-bottom{
padding-top:30px;
text-align:center;

border-top:1px solid rgba(255,255,255,0.08);

color:#777;
}













/* ========================= */
/* OVERLAY */
/* ========================= */

.cart-overlay{
position:fixed;
inset:0;
background:rgba(0,0,0,0.25);
backdrop-filter:blur(6px);

opacity:0;
visibility:hidden;

transition:0.35s ease;

z-index:999;
}

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

/* ========================= */
/* SIDEBAR */
/* ========================= */

.cart-sidebar{
position:fixed;
top:0;
right:0;

width:460px;
max-width:100%;
height:100vh;

background:#fff;

z-index:1000;

display:flex;
flex-direction:column;

transform:translateX(110%);
transition:transform 0.55s cubic-bezier(0.16,1,0.3,1);

box-shadow:-20px 0 60px rgba(0,0,0,0.12);

overflow:hidden;

will-change:transform;
}

.cart-sidebar.active{
transform:translateX(0);
}

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

.cart-header{
display:flex;
justify-content:space-between;
align-items:flex-start;

padding:34px 32px;

border-bottom:1px solid rgba(0,0,0,0.06);
}

.cart-header h2{
font-family:'Playfair Display',serif;
font-size:52px;
font-weight:600;
line-height:1;
margin-bottom:12px;
}

.secure-text{
display:flex;
align-items:center;
gap:8px;

font-size:15px;
color:#b8955e;
font-weight:500;
}

#closeCart{
background:none;
border:none;

font-size:28px;
cursor:pointer;

opacity:0.65;
transition:0.3s ease;
}

#closeCart:hover{
opacity:1;
transform:rotate(90deg);
}

/* ========================= */
/* ITEMS */
/* ========================= */

.cart-items{
flex:1;
overflow-y:auto;

padding:30px;
}

.cart-item{
display:flex;
gap:18px;

padding-bottom:28px;
margin-bottom:28px;

border-bottom:1px solid rgba(0,0,0,0.06);

animation:itemFadeIn 0.4s ease both;
}

.cart-item img{
width:95px;
height:115px;

object-fit:cover;

border-radius:16px;
background:#f7f7f7;
}

.cart-item-info{
flex:1;
}

.cart-top{
display:flex;
justify-content:space-between;
gap:10px;
}

.cart-item-info h4{
font-size:17px;
line-height:1.4;
margin-bottom:10px;
font-weight:600;
}

.cart-price{
font-size:16px;
color:#666;
}

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

.cart-qty{
display:flex;
align-items:center;
gap:14px;

margin-top:18px;
}

.cart-qty button{
width:40px;
height:40px;

border-radius:12px;
border:none;

background:#f4f4f4;

font-size:18px;
cursor:pointer;

transition:0.25s ease;
}

.cart-qty button:hover{
background:#111;
color:#fff;
}

.cart-qty button:active{
transform:scale(0.88);
}

.cart-qty span{
font-size:16px;
font-weight:600;
min-width:10px;
text-align:center;
}

/* ========================= */
/* REMOVE */
/* ========================= */

.remove-btn{
background:none;
border:none;

font-size:18px;

opacity:0.45;
cursor:pointer;

transition:0.25s ease;
}

.remove-btn:hover{
opacity:1;
color:rgb(10, 10, 10);
}

/* ========================= */
/* SHIPPING BOX */
/* ========================= */

.shipping-box{
background:#faf8f5;

padding:24px;

border-radius:22px;

margin-top:15px;
}

.shipping-top{
display:flex;
align-items:center;
gap:12px;

margin-bottom:18px;
}

.shipping-top i{
font-size:24px;
color:#b8955e;
}

.shipping-top p{
font-size:15px;
font-weight:500;
line-height:1.5;
}

.shipping-top span{
color:#b8955e;
font-weight:700;
}

.progress-bar{
width:100%;
height:8px;

background:#e5e5e5;

border-radius:50px;

overflow:hidden;

margin-bottom:12px;
}

.progress-fill{
width:40%;
height:100%;

background:#b8955e;

border-radius:50px;
}

.shipping-box small{
color:#666;
font-size:13px;
}

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

.cart-footer{
padding:30px;

border-top:1px solid rgba(0,0,0,0.06);

background:#fff;
}

.cart-row,
.total-row{
display:flex;
justify-content:space-between;
align-items:center;
}

.cart-row{
margin-bottom:18px;
font-size:17px;
}

.shipping-row small{
color:#777;
font-size:14px;
}

.total-row{
padding-top:20px;
margin-top:10px;

border-top:1px solid rgba(0,0,0,0.08);

font-size:34px;
font-weight:700;

margin-bottom:28px;
}





/* ========================= */
/* CHECKOUT */
/* ========================= */
.checkout-btn{
width:100%;
height:60px;
border:none;
border-radius:50px;
background:#111;
color:#fff !important;

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

font-size:16px;
font-weight:600;

text-transform:none;
letter-spacing:0.3px;
}

.checkout-btn i{
color:white;
font-size:15px;
}

.checkout-btn:hover{
background:#b8955e;

transform:translateY(-2px);

box-shadow:0 14px 30px rgba(140, 139, 139, 0.12);
}

.checkout-btn:active{
transform:scale(0.98);
}

.checkout-btn span{
color:#fff;
display:block;
}






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

.secure-payment{
display:flex;
align-items:center;
justify-content:center;
gap:10px;

margin-top:18px;

font-size:14px;
color:#666;
}

/* ========================= */
/* FEATURES */
/* ========================= */

.basket-features{
display:grid;
grid-template-columns:repeat(3,1fr);

margin-top:35px;
padding-top:30px;

border-top:1px solid rgba(0,0,0,0.06);

gap:15px;
}

.basket-feature{
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:12px;

text-align:center;
}

.basket-feature i{
font-size:22px;
color:#111;
}

.basket-feature span{
font-size:13px;
color:#555;
line-height:1.5;
}

/* ========================= */
/* ANIMATION */
/* ========================= */

@keyframes itemFadeIn{

from{
opacity:0;
transform:translateY(12px);
}

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

}

/* ========================= */
/* MOBILE */
/* ========================= */

@media(max-width:600px){

.cart-sidebar{
width:100%;
}

.cart-header{
padding:28px 22px;
}

.cart-header h2{
font-size:40px;
}

.cart-items{
padding:22px;
}

.cart-footer{
padding:22px;
}

.total-row{
font-size:28px;
}

.checkout-btn{
height:58px;
font-size:15px;
}

.basket-features{
grid-template-columns:1fr;
gap:25px;
}

}









/* =========================================
   FLYING IMAGE
========================================= */

.flying-img{
position:fixed;

width:60px;
height:60px;

z-index:9999;

object-fit:cover;
border-radius:12px;

pointer-events:none;

box-shadow:0 10px 25px rgba(0,0,0,0.2);

transition:
transform 0.9s cubic-bezier(0.22,1,0.36,1),
opacity 0.9s ease;
}

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

@media(max-width:1000px){

.hero h1{
font-size:54px;
}

.collection-grid,
.products-grid,
.review-grid,
.footer-grid,
.story{
grid-template-columns:1fr;
}

.trust-bar{
grid-template-columns:1fr 1fr;
gap:20px;
}

.nav-links{
display:none;
}

.hero{
padding:40px;
}

section{
padding:80px 30px;
}

.navbar{
padding:20px 30px;
}

}

@media(max-width:600px){

.hero h1{
font-size:42px;
}

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

.newsletter-form{
flex-direction:column;
align-items:center;
}

.newsletter-form input{
width:100%;
}

.trust-bar{
grid-template-columns:1fr;
}

.cart-sidebar{
width:100%;
}

.cart-header h2{
font-size:30px;
}

.checkout-btn{
height:56px;
font-size:16px;
}

}

.total-row{
margin-bottom:25px;
font-size:20px;
font-weight:600;
}

.total-row strong{
font-size:24px;
font-family:'Playfair Display',serif;
}











/* =========================
   CHAT WIDGET
========================= 

.chat-widget{
position:fixed;
right:30px;
bottom:30px;

width:360px;
background:#fff;

border-radius:24px;

overflow:hidden;

box-shadow:0 20px 50px rgba(0,0,0,0.18);

z-index:9999;

animation:chatFade 0.4s ease;
}



.chat-header{
background:#6f0d0d;
color:#fff;

padding:28px;
}

.chat-header h3{
font-size:38px;
font-family:'Playfair Display', serif;

margin-bottom:10px;
}

.chat-header p{
font-size:16px;
line-height:1.6;

color:rgba(255,255,255,0.92);
}


.chat-input{
display:flex;
align-items:center;

margin:-18px 20px 0;

background:#fff;

border-radius:18px;

overflow:hidden;

border:1px solid rgba(0,0,0,0.08);
}

.chat-input input{
flex:1;

height:68px;

border:none;
outline:none;

padding:0 22px;

font-size:17px;
font-family:'Poppins', sans-serif;
}

.chat-input button{
width:70px;
height:68px;

background:#fff;

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

font-size:22px;
color:#999;
}

.chat-input button:hover{
color:#b8955e;
}


.chat-questions{
padding:35px 20px 22px;
}

.chat-questions h4{
text-align:center;

font-size:26px;
font-family:'Playfair Display', serif;

margin-bottom:24px;
}

.chat-questions button{
width:100%;

padding:18px 20px;

margin-bottom:14px;

background:#fff;

border:1px solid rgba(0,0,0,0.15);
border-radius:16px;

text-align:left;

font-size:17px;
font-weight:500;

transition:0.3s ease;
}

.chat-questions button:hover{
background:#111;
color:#fff;

transform:translateY(-2px);
}


@keyframes chatFade{

from{
opacity:0;
transform:translateY(30px);
}

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

}


@media(max-width:600px){

.chat-widget{
width:calc(100% - 20px);

right:10px;
bottom:10px;
}

.chat-header h3{
font-size:30px;
}

.chat-input input{
font-size:15px;
}

.chat-questions h4{
font-size:22px;
}

}