@import url('https://fonts.googleapis.com/css2?family=Tajawal:wght@400;500;700;800&display=swap');

:root{

--primary:#198754;
--primary-dark:#146c43;
--bg:#f6f8fb;
--white:#ffffff;
--text:#1f2937;
--muted:#6b7280;
--border:#e5e7eb;
--shadow:0 12px 35px rgba(0,0,0,.08);

}

*{

margin:0;
padding:0;
box-sizing:border-box;
font-family:'Tajawal',sans-serif;

}

body{

background:var(--bg);
color:var(--text);

}

a{

text-decoration:none;

}

img{

display:block;
max-width:100%;

}

.container{

width:1400px;
max-width:95%;
margin:auto;

}

/*==========================
NAVBAR
==========================*/

.navbar{

height:82px;
background:#fff;
position:sticky;
top:0;
z-index:1000;
box-shadow:0 4px 18px rgba(0,0,0,.05);

}

.navbar .container{

height:100%;
display:flex;
align-items:center;
justify-content:space-between;

}

.logo img{

height:56px;

}

nav{

display:flex;
gap:35px;

}

nav a{

font-size:17px;
font-weight:700;
color:#333;
transition:.25s;

}

nav a:hover{

color:var(--primary);

}

.navbar-actions{

display:flex;
align-items:center;
gap:20px;

}

.search-box{

width:300px;
height:48px;
background:#f3f4f6;
border-radius:14px;
display:flex;
align-items:center;
padding:0 18px;

}

.search-box i{

color:#777;
margin-left:12px;

}

.search-box input{

border:none;
background:none;
outline:none;
width:100%;
font-size:15px;

}

.login-btn{

height:48px;
padding:0 25px;
display:flex;
align-items:center;
justify-content:center;
background:var(--primary);
color:#fff;
border-radius:12px;
font-weight:700;
transition:.25s;

}

.login-btn:hover{

background:var(--primary-dark);

}

/*==========================
HERO
==========================*/

.hero{

height:470px;
position:relative;
overflow:hidden;

}

.hero-cover{

width:100%;
height:100%;
object-fit:cover;

}

.overlay{

position:absolute;
inset:0;
background:linear-gradient(to top,
rgba(0,0,0,.65),
rgba(0,0,0,.25));

}

.hero-content{

position:absolute;
left:50%;
top:50%;
transform:translate(-50%,-50%);
width:100%;
text-align:center;
color:#fff;

}

.store-logo{

width:140px;
height:140px;
margin:auto;
border-radius:50%;
overflow:hidden;
border:6px solid rgba(255,255,255,.95);
box-shadow:0 10px 35px rgba(0,0,0,.25);

}

.store-logo img{

width:100%;
height:100%;
object-fit:cover;

}

.hero-content h1{

margin-top:25px;
font-size:42px;
font-weight:800;

}

.verified{

display:inline-flex;
align-items:center;
gap:8px;
margin-top:15px;
padding:8px 18px;
background:#fff;
color:var(--primary);
border-radius:30px;
font-size:15px;
font-weight:700;

}

.hero-content p{

width:700px;
max-width:90%;
margin:25px auto;
font-size:18px;
line-height:2;

}

.hero-info{

display:flex;
justify-content:center;
gap:40px;

}

.hero-info div{

display:flex;
align-items:center;
gap:10px;
font-size:16px;

}

.hero-info i{

color:#ffd54f;

}

.hero-info .rating-count{

font-size:13px;
opacity:.85;

}

/*==========================
CONTACT CARDS
==========================*/

.contact-cards{

margin-top:-70px;
position:relative;
z-index:50;

}

.contact-cards .container{

display:grid;
grid-template-columns:repeat(4,1fr);
gap:25px;

}

.contact-card{

background:#fff;
border-radius:20px;
padding:28px;
display:flex;
align-items:center;
gap:18px;
box-shadow:var(--shadow);
transition:.3s;

}

.contact-card:hover{

transform:translateY(-8px);

}

.contact-card i{

width:65px;
height:65px;
display:flex;
align-items:center;
justify-content:center;
font-size:26px;
border-radius:18px;
background:#eaf8ef;
color:var(--primary);

}

.contact-card h3{

font-size:20px;
margin-bottom:8px;

}

.contact-card p{

color:#777;
font-size:15px;

}

.contact-card a{

margin-right:auto;
background:var(--primary);
color:#fff;
padding:12px 22px;
border-radius:12px;
font-weight:700;
transition:.25s;

}

.contact-card a:hover{

background:var(--primary-dark);

}

/*==========================
PRODUCTS
==========================*/

.products-section{

padding:70px 0;

}

.section-header{

display:flex;
justify-content:space-between;
align-items:center;
margin-bottom:35px;

}

.section-header h2{

font-size:34px;
font-weight:800;

}

.search-products{

width:340px;
height:50px;
display:flex;
align-items:center;
background:#fff;
border:1px solid var(--border);
border-radius:14px;
padding:0 18px;

}

.search-products i{

color:#999;
margin-left:12px;

}

.search-products input{

width:100%;
border:none;
outline:none;
font-size:15px;
background:none;

}

.categories{

display:flex;
gap:15px;
margin-bottom:35px;
flex-wrap:wrap;

}

.categories button{

height:48px;
padding:0 26px;
border:none;
border-radius:30px;
background:#fff;
border:1px solid var(--border);
cursor:pointer;
font-size:15px;
font-weight:700;
transition:.25s;

}

.categories button.active{

background:var(--primary);
color:#fff;
border-color:var(--primary);

}

.categories button:hover{

background:#eef8f2;

}

.products-grid{

display:grid;
grid-template-columns:repeat(4,1fr);
gap:30px;

}

.product-card{

background:#fff;
border-radius:22px;
overflow:hidden;
box-shadow:var(--shadow);
transition:.3s;

}

.product-card:hover{

transform:translateY(-8px);

}

.product-image{

height:260px;
overflow:hidden;

}

.product-image img{

width:100%;
height:100%;
object-fit:cover;
transition:.4s;

}

.product-card:hover img{

transform:scale(1.08);

}

.product-body{

padding:22px;

}

.category{

display:inline-block;
padding:7px 16px;
background:#eef8f2;
color:var(--primary);
border-radius:30px;
font-size:13px;
font-weight:700;
margin-bottom:15px;

}

.product-body h3{

font-size:22px;
margin-bottom:18px;

}

.price{

font-size:28px;
font-weight:800;
color:var(--primary);
margin-bottom:22px;

}

.details-btn{

display:flex;
justify-content:center;
align-items:center;
height:50px;
background:var(--primary);
color:#fff;
border-radius:14px;
font-weight:700;
transition:.25s;

}

.details-btn:hover{

background:var(--primary-dark);

}

/*==========================
ABOUT STORE
==========================*/

.store-about{

padding-bottom:80px;

}

.about-grid{

display:grid;
grid-template-columns:420px 1fr;
gap:30px;
align-items:start;

}

.about-card,
.map-card{

background:#fff;
border-radius:22px;
padding:35px;
box-shadow:var(--shadow);

}

.about-card h2,
.map-card h2{

font-size:30px;
font-weight:800;
margin-bottom:25px;

}

.about-card p{

font-size:17px;
line-height:2;
color:#555;
margin-bottom:25px;

}

.about-card ul{

list-style:none;

}

.about-card li{

display:flex;
align-items:center;
gap:12px;
margin-bottom:18px;
font-size:16px;

}

.about-card li i{

width:34px;
height:34px;
display:flex;
align-items:center;
justify-content:center;
background:#eaf8ef;
color:var(--primary);
border-radius:50%;

}

/*==========================
MAP
==========================*/

.map-placeholder{

height:420px;
border-radius:20px;
background:#f5f6f8;
border:2px dashed #d9dee5;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
margin-bottom:25px;

}

.family-map{

height:420px;
width:100%;
border-radius:20px;
margin-bottom:25px;
z-index:1;

}

.map-popup-card{

display:flex;
align-items:center;
gap:10px;
min-width:170px;

}

.map-popup-card img{

width:46px;
height:46px;
border-radius:50%;
object-fit:cover;
flex-shrink:0;

}

.map-popup-card h4{

font-size:15px;
margin:0 0 4px;

}

.map-popup-card span{

font-size:12px;
color:#777;

}

.map-placeholder i{

font-size:65px;
color:var(--primary);
margin-bottom:20px;

}

.map-placeholder span{

font-size:18px;
color:#666;

}

.map-btn{

height:56px;
display:flex;
align-items:center;
justify-content:center;
gap:12px;
background:var(--primary);
color:#fff;
border-radius:16px;
font-size:17px;
font-weight:700;
transition:.25s;

}

.map-btn:hover{

background:var(--primary-dark);

}

/*==========================
FOOTER
==========================*/

.footer{

background:#fff;
border-top:1px solid var(--border);
padding:40px 0;
margin-top:80px;

}

.footer-content{

display:flex;
justify-content:space-between;
align-items:center;
gap:30px;

}

.footer-content h3{

font-size:28px;
margin-bottom:8px;

}

.footer-content p{

color:#777;

}

.footer-links{

display:flex;
gap:30px;

}

.footer-links a{

font-size:16px;
font-weight:700;
color:#444;
transition:.25s;

}

.footer-links a:hover{

color:var(--primary);

}

.footer-social{

display:flex;
gap:15px;

}

.footer-social a{

width:48px;
height:48px;
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
background:#eef8f2;
color:var(--primary);
font-size:20px;
transition:.25s;

}

.footer-social a:hover{

background:var(--primary);
color:#fff;

}

/*==========================
RESPONSIVE
==========================*/

@media(max-width:1200px){

.products-grid{

grid-template-columns:repeat(3,1fr);

}

.contact-cards .container{

grid-template-columns:repeat(2,1fr);

}

.about-grid{

grid-template-columns:1fr;

}

}

@media(max-width:768px){

.navbar{

height:auto;
padding:15px 0;

}

.navbar .container{

height:auto;
flex-wrap:wrap;
row-gap:15px;

}

nav{

flex-wrap:wrap;
justify-content:center;
width:100%;
order:3;
gap:16px;

}

.navbar-actions{

flex-wrap:wrap;
width:100%;

}

.search-box{

width:100%;

}

.products-grid{

grid-template-columns:1fr;

}

.contact-cards .container{

grid-template-columns:1fr;

}

.hero{

height:600px;

}

.hero-content h1{

font-size:34px;

}

.section-header{

flex-direction:column;
gap:20px;
align-items:flex-start;

}

.search-products{

width:100%;

}

.footer-content{

flex-direction:column;
text-align:center;

}

.footer-links{

flex-wrap:wrap;
justify-content:center;

}

}
/*==========================
REVIEWS SECTION (تقييمات حقيقية)
==========================*/

.reviews-section{

padding:80px 0;

}

.reviews-section .section-header{

flex-wrap:wrap;
gap:20px;

}

.reviews-summary{

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

}

.reviews-summary strong{

font-size:26px;
color:var(--text);

}

.reviews-summary .stars-static i{

color:#FFC107;
font-size:15px;

}

.reviews-summary span{

color:var(--muted);
font-size:14px;

}

.reviews-grid{

display:grid;
grid-template-columns:1fr 380px;
gap:30px;
align-items:start;

}

.reviews-list{

display:flex;
flex-direction:column;
gap:16px;

}

.review-item{

background:#fff;
border-radius:18px;
padding:22px 25px;
box-shadow:var(--shadow);

}

.review-item-header{

display:flex;
justify-content:space-between;
align-items:center;
margin-bottom:8px;

}

.review-name{

font-weight:700;
color:var(--text);

}

.review-date{

font-size:13px;
color:var(--muted);

}

.review-stars i{

color:#FFC107;
font-size:14px;

}

.review-stars i.empty{

color:#e2e5ea;

}

.review-comment{

margin-top:10px;
color:#555;
line-height:1.9;
font-size:15px;

}

.reviews-empty,
.reviews-loading{

background:#fff;
border-radius:18px;
padding:30px;
text-align:center;
color:var(--muted);
box-shadow:var(--shadow);

}

.review-form-card{

background:#fff;
border-radius:22px;
padding:30px;
box-shadow:var(--shadow);
position:sticky;
top:20px;

}

.review-form-card h3{

font-size:20px;
font-weight:800;
margin-bottom:18px;

}

.star-selector{

display:flex;
gap:8px;
font-size:26px;
margin-bottom:18px;
justify-content:flex-start;

}

.star-selector i{

color:#FFC107;
cursor:pointer;
transition:.15s;

}

.star-selector i:hover,
.star-selector i.selected{

transform:scale(1.15);

}

.review-form-card input[type="text"],
.review-form-card textarea{

width:100%;
border:1px solid var(--border);
border-radius:12px;
padding:12px 14px;
font-family:inherit;
font-size:15px;
margin-bottom:14px;
resize:vertical;

}

.review-form-card input[type="text"]:focus,
.review-form-card textarea:focus{

outline:none;
border-color:var(--primary);

}

.review-form-card button{

width:100%;
background:var(--primary);
color:#fff;
border:none;
padding:13px;
border-radius:12px;
font-size:16px;
font-weight:700;
cursor:pointer;
transition:.2s;

}

.review-form-card button:hover{

background:var(--primary-dark);

}

.review-form-card button:disabled{

opacity:.7;
cursor:not-allowed;

}

.review-form-status{

margin-top:12px;
font-size:14px;
font-weight:600;
min-height:18px;

}

.review-form-status.success{

color:var(--primary);

}

.review-form-status.error{

color:#c0392b;

}

@media(max-width:900px){

    .reviews-grid{

    grid-template-columns:1fr;

    }

    .review-form-card{

    position:static;

    }

}

/*==================================================
        WORKING HOURS CARD (CLICKABLE)
==================================================*/

#workingHoursCard{

cursor:pointer;

}

/*==================================================
        WORKING HOURS MODAL
==================================================*/

#workingHoursCard{

position:relative;

}

.working-hours-popover{

display:none;

position:absolute;

top:calc(100% + 16px);

left:50%;

transform:translateX(-50%);

width:300px;

max-width:90vw;

max-height:70vh;

overflow-y:auto;

background:#fff;

border-radius:18px;

box-shadow:0 20px 45px rgba(0,0,0,.22);

z-index:400;

text-align:right;

cursor:default;

}

.working-hours-popover.show{

display:block;

}

.working-hours-popover-arrow{

position:absolute;

top:-8px;

left:50%;

transform:translateX(-50%) rotate(45deg);

width:16px;

height:16px;

background:#fff;

box-shadow:-2px -2px 4px rgba(0,0,0,.05);

}

.working-hours-popover-header{

display:flex;

align-items:center;

justify-content:space-between;

padding:16px 20px;

border-bottom:1px solid #eee;

position:sticky;

top:0;

background:#fff;

border-radius:18px 18px 0 0;

}

.working-hours-popover-header h4{

display:flex;

align-items:center;

gap:10px;

font-size:17px;

font-weight:700;

color:var(--primary);

}

.working-hours-popover-header button{

width:30px;

height:30px;

border-radius:50%;

background:#f3f3f3;

color:#555;

font-size:14px;

flex-shrink:0;

}

.working-hours-popover-header button:hover{

background:#e6e6e6;

}

@media (max-width:640px){

.working-hours-popover{

width:270px;

left:auto;

right:0;

transform:none;

}

.working-hours-popover-arrow{

left:auto;

right:24px;

}

}

.working-hours-list{

padding:10px 24px 24px;

}

.working-hours-row{

display:flex;

align-items:center;

justify-content:space-between;

padding:14px 0;

border-bottom:1px solid #f2f2f2;

font-size:15px;

}

.working-hours-row:last-child{

border-bottom:none;

}

.day-name{

font-weight:700;

color:#222;

}

.day-time{

color:var(--primary);

font-weight:600;

}

.day-time.closed{

color:#c0392b;

font-weight:600;

}

.working-hours-row.day-off .day-name{

color:#999;

}

.no-working-hours{

padding:24px 0;

text-align:center;

color:#777;

}
