:root{
  --cream:#faf3e7;
  --wood:#8a5a3a;
  --wood-dark:#5c3a24;
  --blueberry:#5b4b8a;
  --blueberry-dark:#3f3163;
  --green:#3e5c3e;
  --green-dark:#2a4029;
  --text:#3a2e22;
  --white:#fffdf8;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:'Nunito', sans-serif;
  color:var(--text);
  background:var(--cream);
  line-height:1.6;
}
h1,h2,h3,h4{font-family:'Playfair Display', serif; color:var(--wood-dark); margin:0 0 .5em;}
.script{font-family:'Caveat', cursive;}
a{color:var(--blueberry-dark); text-decoration:none;}
a:hover{text-decoration:underline;}
.container{max-width:1140px; margin:0 auto; padding:0 20px;}
img{max-width:100%; display:block;}

/* Header */
.site-header{background:var(--white); border-bottom:4px solid var(--blueberry); position:sticky; top:0; z-index:20;}
.header-inner{display:flex; align-items:center; justify-content:space-between; padding:12px 20px; flex-wrap:wrap; gap:10px;}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none;}
.brand-logo{height:56px; width:56px; object-fit:contain;}
.brand-name{font-family:'Playfair Display', serif; font-size:1.4rem; color:var(--wood-dark); font-weight:700;}
.main-nav{display:flex; gap:16px; flex-wrap:wrap; align-items:center;}
.main-nav a{color:var(--text); font-weight:600; font-size:.95rem;}
.main-nav a:hover{color:var(--blueberry-dark);}
.cart-link{background:var(--green); color:var(--white) !important; padding:6px 14px; border-radius:20px;}
.cart-link:hover{background:var(--green-dark); text-decoration:none;}

/* Flash */
.flash-wrap{margin-top:16px;}
.flash{padding:12px 16px; border-radius:8px; margin-bottom:10px; font-weight:600;}
.flash-success{background:#e3f0e3; color:var(--green-dark); border:1px solid var(--green);}
.flash-error{background:#f6e3e3; color:#7a2d2d; border:1px solid #b04c4c;}

/* Hero */
.hero{position:relative; color:var(--white); text-align:center; padding:110px 20px; background-size:cover; background-position:center;}
.hero::before{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(60,40,20,.55), rgba(40,30,20,.75));}
.hero-content{position:relative; z-index:1; max-width:700px; margin:0 auto;}
.hero h1{color:var(--white); font-size:3rem; margin-bottom:.3em;}
.hero p{font-size:1.2rem; margin-bottom:1.8em;}
.hero-ctas{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

.btn{display:inline-block; padding:12px 26px; border-radius:30px; font-weight:700; border:2px solid transparent; cursor:pointer; font-size:1rem;}
.btn-primary{background:var(--blueberry); color:var(--white) !important;}
.btn-primary:hover{background:var(--blueberry-dark); text-decoration:none;}
.btn-secondary{background:transparent; border-color:var(--white); color:var(--white) !important;}
.btn-secondary:hover{background:rgba(255,255,255,.15); text-decoration:none;}
.btn-outline{background:transparent; border-color:var(--wood); color:var(--wood-dark) !important;}
.btn-outline:hover{background:var(--wood); color:var(--white) !important; text-decoration:none;}
.btn-small{padding:6px 16px; font-size:.85rem;}

/* Sections */
.section{padding:60px 0;}
.section-alt{background:var(--white);}
.section-title{text-align:center; margin-bottom:40px;}
.section-title p{color:#7a6a58; font-size:1.05rem;}

/* Gallery grid */
.grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:24px;}
.card{background:var(--white); border-radius:14px; overflow:hidden; box-shadow:0 4px 14px rgba(90,60,30,.12); transition:transform .15s;}
.card:hover{transform:translateY(-4px);}
.card img{height:220px; width:100%; object-fit:cover;}
.card-body{padding:16px 18px;}
.card-tag{display:inline-block; background:var(--green); color:var(--white); font-size:.75rem; padding:3px 10px; border-radius:12px; margin-bottom:8px; font-weight:700;}
.card-tag.purple{background:var(--blueberry);}

/* Menu items */
.menu-item{display:flex; gap:18px; background:var(--white); border-radius:14px; padding:18px; box-shadow:0 4px 14px rgba(90,60,30,.10); margin-bottom:18px; flex-wrap:wrap;}
.menu-item img{width:130px; height:130px; object-fit:cover; border-radius:10px; flex-shrink:0;}
.menu-item-body{flex:1; min-width:200px;}
.menu-item-price{font-weight:700; color:var(--blueberry-dark); font-size:1.15rem;}
.category-heading{border-bottom:3px solid var(--blueberry); display:inline-block; padding-bottom:6px; margin:40px 0 20px;}

/* Forms */
.form-card{background:var(--white); padding:36px; border-radius:16px; box-shadow:0 4px 20px rgba(90,60,30,.12); max-width:700px; margin:0 auto;}
label{display:block; font-weight:700; margin:16px 0 6px; color:var(--wood-dark);}
input[type=text], input[type=email], input[type=tel], input[type=date], input[type=number], select, textarea{
  width:100%; padding:10px 12px; border:2px solid #e2d5c2; border-radius:8px; font-family:inherit; font-size:1rem; background:var(--white);
}
input:focus, select:focus, textarea:focus{outline:none; border-color:var(--blueberry);}
.checkbox-row{display:flex; align-items:center; gap:8px; margin:8px 0;}
.checkbox-row input{width:auto;}
.checkbox-row label{margin:0; font-weight:400;}
.form-hint{color:#8a7a68; font-size:.88rem; margin-top:4px;}
.form-actions{margin-top:26px; text-align:right;}

/* Testimonials */
.testimonial{background:var(--white); border-radius:14px; padding:24px; box-shadow:0 4px 14px rgba(90,60,30,.1);}
.testimonial .stars{color:#e0a800; margin-bottom:8px;}
.testimonial .name{font-weight:700; margin-top:12px; color:var(--wood-dark);}

/* Cart / table */
table{width:100%; border-collapse:collapse; background:var(--white); border-radius:12px; overflow:hidden;}
th, td{padding:12px 14px; text-align:left; border-bottom:1px solid #eee2d0;}
th{background:var(--wood); color:var(--white);}

.banner{background:var(--wood); color:var(--white); text-align:center; padding:10px; font-weight:700;}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center;}
@media (max-width:800px){ .two-col{grid-template-columns:1fr;} .hero h1{font-size:2.1rem;} }

/* Footer */
.site-footer{background:var(--wood-dark); color:#eee2d0; margin-top:60px; padding:50px 0 0;}
.footer-inner{display:grid; grid-template-columns:2fr 1fr 1fr; gap:30px; padding-bottom:30px;}
.footer-logo{height:60px; margin-bottom:10px; filter:brightness(1.3);}
.site-footer h4{color:var(--white); margin-bottom:10px;}
.site-footer a{color:#eee2d0; display:block; margin-bottom:6px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15); padding:16px 20px; text-align:center; font-size:.85rem;}
@media (max-width:700px){ .footer-inner{grid-template-columns:1fr;} }

/* Admin */
.admin-nav{background:var(--wood-dark); padding:14px 0;}
.admin-nav .container{display:flex; justify-content:space-between; color:var(--white);}
.admin-nav a{color:var(--white); font-weight:700; margin-right:16px;}
.status-badge{padding:3px 10px; border-radius:10px; font-size:.8rem; font-weight:700; color:white; background:#999;}
.status-received{background:#c9a227;}
.status-quoted{background:#5b4b8a;}
.status-in_progress, .status-new{background:#3e7c9c;}
.status-ready, .status-confirmed{background:#3e5c3e;}
.status-paid{background:#2a4029;}
