:root{
  --dark:#2d1f17;
  --accent:#8b5e3c;
  --gold:#c6a75e;
  --light:#f4f1ee;
  --white:#ffffff;
  --shadow:0 10px 25px rgba(0,0,0,.08);
}

/* =========================
   BASE
========================= */
body{
  margin:0;
  font-family:'Inter',sans-serif;
  background:var(--light);
  color:#2e2e2e;
  line-height:1.6;
}

/* Text Toggles */
body.small-text{font-size:14px;}
body.large-text{font-size:20px;}

body.dyslexic,
body.dyslexic h1,
body.dyslexic h2,
body.dyslexic h3{
  font-family:"Comic Sans MS",cursive!important;
}

h1,h2,h3{
  font-family:'Playfair Display',serif;
  margin-top:0;
}

/* =========================
   WCAG 2.2 FOCUS
========================= */
:focus-visible{
  outline:4px solid var(--gold);
  outline-offset:3px;
}

/* Skip Link */
.skip-link{
  position:absolute;
  left:-9999px;
  background:#000;
  color:#fff;
  padding:.75rem 1rem;
  z-index:1000;
}
.skip-link:focus{
  left:20px;
  top:20px;
}

/* =========================
   LAYOUT
========================= */
.container{
  width:90%;
  max-width:1100px;
  margin:auto;
}

.section{
  padding:3.5rem 0;
}

/* =========================
   HEADER
========================= */
header{
  background:var(--dark);
  color:#fff;
  padding:1rem 0;
}

.header-flex{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:1rem;
}

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

.logo svg{
  width:85px;
  height:85px;
}

.brand-main{
  font-size:1.9rem;
  font-weight:700;
}

.brand-sub{
  font-size:.85rem;
  letter-spacing:3px;
  color:var(--gold);
}

/* =========================
   ACCESSIBILITY CONTROLS
========================= */
.header-controls{
  display:flex;
  gap:.6rem;
  flex-wrap:wrap;
}

.header-controls button{
  background:#fff;
  color:var(--dark);
  border:none;
  border-radius:24px;
  padding:.6rem 1rem;
  font-weight:600;
  cursor:pointer;
  min-height:44px; /* WCAG 2.5.8 */
  min-width:44px;
  transition:.2s ease;
}

.header-controls button:hover{
  background:var(--gold);
  color:#fff;
}

/* =========================
   HERO
========================= */
#hero{
  background:linear-gradient(to right,#2d1f17,#4a3227);
  color:#fff;
  text-align:center;
  padding:5rem 1rem;
}

#hero h2{
  font-size:2rem;
  max-width:700px;
  margin:auto;
}

/* =========================
   PRODUCT GRID
========================= */
.grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2rem;
}

.card{
  background:var(--white);
  padding:1.6rem;
  border-radius:14px;
  box-shadow:var(--shadow);
  transition:.25s ease;
}

.card:hover{
  transform:translateY(-6px);
  box-shadow:0 15px 35px rgba(0,0,0,.12);
}

.product-img{
  width:100%;
  height:220px;
  object-fit:cover;
  border-radius:10px;
  margin-bottom:1rem;
}

.price{
  font-weight:600;
  color:var(--accent);
  margin:.5rem 0;
}

/* =========================
   BUTTONS
========================= */
button{
  background:var(--dark);
  color:#fff;
  border:none;
  border-radius:10px;
  padding:.8rem 1.2rem;
  cursor:pointer;
  min-height:44px;
  min-width:44px;
  transition:.2s ease;
}

button:hover{
  background:var(--accent);
}

/* =========================
   BREWING GUIDE
========================= */
details{
  background:#fff;
  padding:1rem 1.2rem;
  border-radius:10px;
  margin-bottom:1rem;
  box-shadow:var(--shadow);
}

summary{
  font-weight:600;
  cursor:pointer;
}

/* =========================
   CONTACT FORM
========================= */
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.2rem;
}

.full{
  grid-column:1/-1;
}

input,textarea{
  width:100%;
  padding:.8rem;
  border-radius:8px;
  border:1px solid #ccc;
  font-family:'Inter',sans-serif;
}

input:focus,textarea:focus{
  border-color:var(--accent);
  outline:none;
}

/* =========================
   CART
========================= */
#cart-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.5);
  opacity:0;
  visibility:hidden;
  transition:.3s;
  z-index:998;
}

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

#cart{
  position:fixed;
  top:0;
  right:-420px;
  width:380px;
  height:100%;
  background:#fff;
  box-shadow:-6px 0 25px rgba(0,0,0,.25);
  padding:1.8rem;
  transition:.3s ease;
  overflow-y:auto;
  z-index:999;
}

#cart.open{
  right:0;
}

.cart-item{
  border-bottom:1px solid #eee;
  padding:.8rem 0;
}

.cart-controls{
  display:flex;
  gap:.5rem;
  margin-top:.5rem;
}

.summary{
  margin-top:1rem;
  border-top:2px solid #eee;
  padding-top:1rem;
}

.summary div{
  display:flex;
  justify-content:space-between;
  margin:.4rem 0;
}

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

/* =========================
   FOOTER
========================= */
footer{
  text-align:center;
  padding:2rem 1rem;
  background:#2d1f17;
  color:#fff;
  font-size:.9rem;
}

/* =========================
   RESPONSIVE
========================= */
@media(max-width:900px){
  .grid{
    grid-template-columns:repeat(2,1fr);
  }
}

@media(max-width:600px){
  .grid{
    grid-template-columns:1fr;
  }
  .contact-grid{
    grid-template-columns:1fr;
  }
  #hero h2{
    font-size:1.5rem;
  }
}