/* ─── FLASH MESSAGES ─────────────────────────────────────── */
.flash {
  padding: .875rem 1.25rem;
  border-radius: .75rem;
  margin: 0 auto 1.5rem;
  max-width: 1280px;
  padding-left: 1rem; padding-right: 1rem;
  font-size: .9375rem;
}
@media(min-width:768px){.flash{padding-left:2rem;padding-right:2rem}}
.flash-ok  { background: rgba(107,124,58,.12); color: var(--olive-deep-hex); border: 1px solid rgba(107,124,58,.25); }
.flash-err { background: rgba(200,50,50,.08);  color: #b91c1c;              border: 1px solid rgba(200,50,50,.2);  }

/* ─── PAGE HERO ─────────────────────────────────────────── */
.page-hero {
  position: relative; height: 320px;
  background-size: cover; background-position: center;
  display: flex; align-items: flex-end;
}
@media(min-width:768px){.page-hero{height:420px}}
.page-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(30,29,23,.75) 0%, rgba(30,29,23,.2) 60%, transparent);
}
.page-hero-content {
  position: relative;
  max-width: 1280px; margin: 0 auto; width: 100%;
  padding: 2.5rem 1rem;
  color: #fff;
}
@media(min-width:768px){.page-hero-content{padding:3rem 2rem}}
.page-hero-eyebrow {
  font-size: .75rem; text-transform: uppercase;
  letter-spacing: .2em; color: rgba(255,255,255,.7);
  margin-bottom: .5rem;
}
.page-hero h1 { font-size: 2.5rem; }
@media(min-width:768px){.page-hero h1{font-size:3.5rem}}
.page-hero p { margin-top:.5rem; color:rgba(255,255,255,.75); max-width:32rem; }

/* ─── SHOP LAYOUT (category.php) ─────────────────────────── */
.shop-layout {
  display: grid;
  gap: 2rem;
  padding-top: 3rem;
  padding-bottom: 5rem;
}
@media(min-width:900px){ .shop-layout { grid-template-columns: 240px 1fr; gap:3rem; } }

.shop-sidebar { }
.sidebar-block {
  background: #fff;
  border-radius: 1.25rem;
  padding: 1.5rem;
  margin-bottom: 1.25rem;
  box-shadow: var(--shadow-card);
}
.sidebar-block h3 {
  font-family: 'Fraunces', serif;
  font-size: 1.125rem;
  margin-bottom: 1rem;
}
.sidebar-cat-list li { margin-bottom: .625rem; }
.sidebar-cat-list a {
  font-size: .9375rem;
  color: rgba(30,29,23,.8);
  transition: color .2s;
}
.sidebar-cat-list a:hover, .sidebar-cat-list .active a { color: var(--olive-hex); font-weight:500; }

.filter-form .price-inputs {
  display: flex; align-items: center; gap: .5rem;
}
.filter-form input[type=number] {
  flex:1; border:1px solid var(--border,#ddd);
  border-radius: .5rem; padding: .5rem .75rem;
  font-size:.875rem; outline:none; width:100%;
}
.filter-form input[type=number]:focus { border-color:var(--olive-hex); }
.filter-clear {
  display:block; text-align:center;
  margin-top:.5rem; font-size:.8125rem; color:var(--olive-hex);
}

.shop-toolbar {
  display: flex; align-items: center;
  justify-content: space-between; gap:1rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}
.shop-count { font-size:.9375rem; color:#888; }
.sort-form {
  display:flex; align-items:center; gap:.5rem;
  font-size:.875rem;
}
.sort-form select {
  border:1px solid var(--border,#ddd); border-radius:.5rem;
  padding:.4rem .75rem; outline:none; background:#fff;
  font-size:.875rem; cursor:pointer;
}
.sort-form label { color:#888; }

/* ─── PAGINATION ─────────────────────────────────────────── */
.pagination {
  display:flex; justify-content:center; gap:.5rem;
  margin-top:3rem; flex-wrap:wrap;
}
.page-btn {
  min-width:2.5rem; height:2.5rem;
  display:grid; place-items:center;
  border-radius:.5rem;
  border:1px solid var(--border,#ddd);
  font-size:.875rem; transition:all .2s;
  color:var(--ink-hex);
}
.page-btn:hover { background:var(--sand-hex); }
.page-btn.active { background:var(--olive-hex); color:#fff; border-color:var(--olive-hex); }

/* ─── EMPTY STATE ────────────────────────────────────────── */
.empty-state {
  text-align: center; padding: 5rem 1rem;
  color: #888;
}
.empty-state p { font-size:1.125rem; }

/* ─── BREADCRUMB ─────────────────────────────────────────── */
.breadcrumb {
  display:flex; align-items:center; gap:.5rem;
  flex-wrap:wrap;
  font-size:.8125rem; color:#aaa;
  padding-bottom:2rem;
}
.breadcrumb a { color:var(--olive-hex); }
.breadcrumb a:hover { text-decoration:underline; }
.breadcrumb span:not(:has(a)) { color:#ccc; }

/* ─── PRODUCT DETAIL PAGE ────────────────────────────────── */
.product-page { padding-top:2.5rem; padding-bottom:5rem; }
.product-detail {
  display:grid; gap:2.5rem;
}
@media(min-width:768px){ .product-detail{grid-template-columns:1fr 1fr;gap:4rem} }

.gallery-main {
  position:relative;
  border-radius:2rem; overflow:hidden;
  background:var(--sand-hex);
  aspect-ratio:1/1;
}
.gallery-main img { width:100%;height:100%;object-fit:cover; }
.gallery-thumbs {
  display:flex; gap:.75rem; margin-top:.75rem; flex-wrap:wrap;
}
.thumb-btn {
  width:5rem; height:5rem; border-radius:.75rem; overflow:hidden;
  border:2px solid transparent; transition:border-color .2s; cursor:pointer;
  background:none; padding:0;
}
.thumb-btn img { width:100%;height:100%;object-fit:cover; }
.thumb-btn.active, .thumb-btn:hover { border-color:var(--olive-hex); }

.product-detail-cat {
  font-size:.75rem; text-transform:uppercase; letter-spacing:.15em;
  color:var(--olive-hex); margin-bottom:.5rem;
}
.product-detail-name { font-size:2rem; margin-bottom:1rem; }
@media(min-width:768px){.product-detail-name{font-size:2.5rem}}
.product-detail-rating {
  display:flex; align-items:center; gap:.5rem;
  margin-bottom:1.25rem;
  font-size:.9375rem;
}
.review-count { color:#aaa; font-size:.875rem; }
.product-detail-price {
  display:flex; align-items:baseline; gap:.75rem;
  margin-bottom:1.25rem;
}
.price-now { font-family:'Fraunces',serif; font-size:2rem; color:var(--olive-deep-hex); }
.price-old { font-size:1.125rem; color:#bbb; text-decoration:line-through; }
.price-save {
  font-size:.8125rem; font-weight:500;
  background:rgba(107,124,58,.12); color:var(--olive-deep-hex);
  border-radius:9999px; padding:.2rem .75rem;
}
.product-detail-desc { color:#777; line-height:1.75; margin-bottom:1.25rem; }
.stock-info { font-size:.875rem; margin-bottom:1.25rem; }
.in-stock { color:#16a34a; }
.out-stock { color:#dc2626; }

.product-actions {
  display:flex; align-items:center; gap:.75rem;
  margin-bottom:1.5rem; flex-wrap:wrap;
}
.product-actions .flex-1 { flex:1; min-width:0; justify-content:center; }
.qty-control {
  display:flex; align-items:center;
  border:1px solid var(--border,#ddd); border-radius:9999px;
  overflow:hidden; background:#fff;
}
.qty-control button {
  width:2.5rem; height:2.75rem;
  display:grid; place-items:center;
  font-size:1.25rem; color:var(--ink-hex);
  transition:background .2s;
}
.qty-control button:hover { background:var(--sand-hex); }
.qty-control input {
  width:3rem; text-align:center; border:none; outline:none;
  font-size:.9375rem; font-family:inherit;
}
.wish-btn {
  width:2.75rem; height:2.75rem;
  display:grid; place-items:center;
  border-radius:50%; border:1px solid var(--border,#ddd);
  transition:all .2s; flex-shrink:0;
  color:var(--ink-hex); background:#fff;
}
.wish-btn svg { width:1.25rem; height:1.25rem; }
.wish-btn.wished, .wish-btn:hover { background:var(--olive-hex); border-color:var(--olive-hex); color:#fff; }
.wish-btn.wished svg, .wish-btn:hover svg { fill:currentColor; stroke:none; }

.product-trust-strip {
  display:flex; flex-wrap:wrap; gap:.75rem;
  font-size:.8125rem; color:#888;
  padding:.875rem 1rem;
  background:var(--sand-hex);
  border-radius:1rem;
}
.product-trust-strip span { display:flex; align-items:center; gap:.375rem; }

/* Wishlist heart on product cards */
.product-fav.wished svg { fill:var(--olive-hex); stroke:var(--olive-hex); }

/* ─── REVIEWS INNER ──────────────────────────────────────── */
.reviews-section-inner { padding-top:4rem; border-top:1px solid var(--border,#ddd); margin-top:4rem; }
.review-form-wrap {
  background:#fff;
  border-radius:1.5rem;
  padding:2rem;
  box-shadow:var(--shadow-card);
  max-width:640px;
  margin-top:2rem;
}
.review-form-wrap h3 { font-family:'Fraunces',serif; margin-bottom:1.5rem; font-size:1.25rem; }
.form-row { display:grid; gap:1rem; }
@media(min-width:640px){ .form-row { grid-template-columns:1fr 1fr; } }
.form-group { display:flex; flex-direction:column; gap:.375rem; }
.form-group label { font-size:.875rem; font-weight:500; color:#555; }
.form-group input, .form-group textarea, .form-group select {
  border:1px solid var(--border,#ddd);
  border-radius:.625rem;
  padding:.65rem .875rem;
  font-size:.9375rem;
  font-family:inherit;
  outline:none;
  transition:border-color .2s;
  background:#fff;
}
.form-group input:focus, .form-group textarea:focus { border-color:var(--olive-hex); }
.form-group textarea { resize:vertical; }
.review-form { display:flex; flex-direction:column; gap:1rem; }
.star-picker { display:flex; gap:.25rem; }
.star-picker button {
  font-size:1.5rem; color:#d1d5db; transition:color .15s;
  background:none; border:none; cursor:pointer; padding:0;
}
.star-picker button.active, .star-picker button:hover { color:var(--amber); }

/* ─── CART ────────────────────────────────────────────────── */
.cart-layout {
  display:grid; gap:2rem;
}
@media(min-width:900px){ .cart-layout { grid-template-columns:1fr 360px; gap:3rem; } }

.cart-items {
  background:#fff; border-radius:1.5rem;
  box-shadow:var(--shadow-card); overflow:hidden;
}
.cart-header-row {
  display:grid;
  grid-template-columns:3fr 1fr 1fr 1fr auto;
  gap:1rem; padding:1rem 1.5rem;
  font-size:.8125rem; text-transform:uppercase;
  letter-spacing:.08em; color:#aaa;
  border-bottom:1px solid var(--border,#ddd);
}
.cart-row {
  display:grid;
  grid-template-columns:3fr 1fr 1fr 1fr auto;
  gap:1rem; align-items:center;
  padding:1rem 1.5rem;
  border-bottom:1px solid var(--border,#ddd);
}
.cart-product { display:flex; align-items:center; gap:.875rem; }
.cart-product img { width:4rem; height:4rem; object-fit:cover; border-radius:.75rem; flex-shrink:0; }
.cart-product-name { font-size:.9375rem; font-weight:500; color:var(--ink-hex); }
.cart-product-name:hover { color:var(--olive-hex); }
.cart-price, .cart-subtotal { font-size:.9375rem; }
.cart-subtotal { font-weight:600; color:var(--olive-deep-hex); }
.cart-remove {
  width:2rem; height:2rem; display:grid; place-items:center;
  border-radius:50%; transition:background .2s; color:#bbb;
}
.cart-remove:hover { background:#fee2e2; color:#dc2626; }
.cart-remove svg { width:1rem; height:1rem; }
.cart-footer-row {
  padding:1rem 1.5rem;
}
.cart-footer-row a { font-size:.875rem; color:var(--olive-hex); }
.cart-footer-row a:hover { text-decoration:underline; }

/* Cart summary shared with checkout */
.cart-summary {
  background:#fff; border-radius:1.5rem;
  padding:1.75rem;
  box-shadow:var(--shadow-card);
  height:fit-content;
  position:sticky; top:6rem;
}
.cart-summary h2 { font-family:'Fraunces',serif; font-size:1.25rem; margin-bottom:1.5rem; }
.summary-row {
  display:flex; justify-content:space-between;
  padding:.5rem 0;
  font-size:.9375rem;
}
.coupon-row { color:var(--olive-hex); }
.free-ship { color:#16a34a; font-weight:500; }
.free-ship-hint { font-size:.8125rem; color:var(--olive-hex); margin-top:.375rem; }
.summary-divider { border:none; border-top:1px solid var(--border,#ddd); margin:.75rem 0; }
.summary-total { font-size:1.125rem; font-weight:600; }

.coupon-form { display:flex; gap:.5rem; margin-top:1rem; flex-wrap:wrap; }
.coupon-form input {
  flex:1; border:1px solid var(--border,#ddd); border-radius:.625rem;
  padding:.5rem .875rem; font-size:.875rem; outline:none; min-width:0;
}
.coupon-form input:focus { border-color:var(--olive-hex); }
.coupon-err { width:100%; font-size:.8125rem; color:#dc2626; margin-top:.25rem; }
.coupon-applied {
  display:flex; align-items:center; justify-content:space-between;
  width:100%; background:rgba(107,124,58,.1); border-radius:.625rem;
  padding:.5rem .875rem; font-size:.875rem; color:var(--olive-deep-hex);
}
.coupon-remove { color:#dc2626; font-size:.8125rem; }
.secure-note { font-size:.8125rem; color:#aaa; text-align:center; margin-top:.75rem; }

/* ─── CHECKOUT ───────────────────────────────────────────── */
.checkout-grid {
  display:grid; gap:2rem;
}
@media(min-width:900px){ .checkout-grid { grid-template-columns:1fr 360px; gap:3rem; } }
.checkout-form { display:flex; flex-direction:column; gap:1.25rem; }
.checkout-block {
  background:#fff; border-radius:1.5rem;
  padding:1.75rem; box-shadow:var(--shadow-card);
}
.checkout-block h2 { font-family:'Fraunces',serif; font-size:1.125rem; margin-bottom:1.25rem; }

.saved-addresses { display:flex; flex-direction:column; gap:.75rem; }
.saved-addr-card {
  display:flex; gap:.875rem; align-items:flex-start;
  border:1px solid var(--border,#ddd); border-radius:.875rem;
  padding:.875rem 1rem; cursor:pointer; transition:border-color .2s;
}
.saved-addr-card:has(input:checked) { border-color:var(--olive-hex); background:rgba(107,124,58,.04); }
.saved-addr-card p { font-size:.8125rem; color:#888; margin-top:.125rem; }

.payment-options { display:flex; flex-direction:column; gap:.75rem; }
.payment-option {
  display:flex; gap:.875rem; align-items:flex-start;
  border:1px solid var(--border,#ddd); border-radius:.875rem;
  padding:.875rem 1rem; cursor:pointer; transition:border-color .2s;
}
.payment-option:has(input:checked) { border-color:var(--olive-hex); background:rgba(107,124,58,.04); }
.payment-option input { margin-top:.2rem; accent-color:var(--olive-hex); }
.payment-option-body strong { font-size:.9375rem; }
.payment-option-body p { font-size:.8125rem; color:#888; margin-top:.125rem; }

.checkbox-label {
  display:flex; align-items:center; gap:.5rem;
  font-size:.875rem; color:#555; cursor:pointer;
}
.checkbox-label input { accent-color:var(--olive-hex); }

.checkout-item {
  display:flex; align-items:center; gap:.875rem;
  padding:.625rem 0;
  border-bottom:1px solid var(--border,#ddd);
}
.checkout-item:last-of-type { border-bottom:none; }
.checkout-item img { width:3.5rem;height:3.5rem;object-fit:cover;border-radius:.625rem;flex-shrink:0; }
.checkout-item-info { flex:1; }
.checkout-item-info p { font-size:.875rem; font-weight:500; }
.checkout-item-qty { color:#aaa; font-size:.8125rem; }
.checkout-item span { font-size:.9375rem; font-weight:600; flex-shrink:0; }

/* ─── ORDER SUCCESS ──────────────────────────────────────── */
.success-icon {
  width:5rem; height:5rem; border-radius:50%;
  background:rgba(107,124,58,.15);
  color:var(--olive-hex);
  font-size:2.25rem; font-weight:700;
  display:grid; place-items:center;
  margin:0 auto;
}
.info-box {
  background:rgba(107,124,58,.08); border-radius:1rem;
  padding:1.25rem; font-size:.9375rem; text-align:left;
}
.order-summary-box {
  background:#fff; border-radius:1.5rem;
  box-shadow:var(--shadow-card);
  padding:1.5rem; margin-top:2rem; text-align:left;
}

/* ─── SEARCH ─────────────────────────────────────────────── */
.search-hero-form { max-width:680px; margin:0 auto 0; }
.search-hero-wrap {
  display:flex; align-items:center;
  background:#fff; border-radius:9999px;
  border:1px solid var(--border,#ddd);
  padding:.375rem .375rem .375rem 1.25rem;
  box-shadow:0 4px 24px -8px rgba(30,29,23,.1);
  gap:.5rem;
  transition:border-color .2s, box-shadow .2s;
}
.search-hero-wrap:focus-within {
  border-color:var(--olive-hex);
  box-shadow:0 4px 24px -8px rgba(107,124,58,.25);
}
.search-hero-wrap svg { width:1.125rem;height:1.125rem;color:#aaa;flex-shrink:0; }
.search-hero-wrap input {
  flex:1; border:none; outline:none; font-size:1rem;
  font-family:inherit; background:transparent;
}
.search-hero-wrap .btn-primary { flex-shrink:0; padding:.65rem 1.5rem; font-size:.875rem; }

/* ─── ACCOUNT / AUTH ─────────────────────────────────────── */
.auth-container {
  max-width:480px;
  margin:4rem auto 6rem;
  padding:0 1rem;
}
.auth-tabs {
  display:flex; border-bottom:2px solid var(--border,#ddd);
  margin-bottom:2rem;
}
.auth-tab {
  flex:1; padding:.875rem; font-size:.9375rem; font-weight:500;
  color:#aaa; border-bottom:2px solid transparent;
  margin-bottom:-2px; transition:color .2s, border-color .2s;
  cursor:pointer; background:none; border-top:none; border-left:none; border-right:none;
  font-family:inherit;
}
.auth-tab.active { color:var(--olive-deep-hex); border-bottom-color:var(--olive-hex); }
.auth-panel { display:flex; flex-direction:column; gap:1.25rem; }
.auth-panel h2 { font-family:'Fraunces',serif; font-size:1.75rem; }

.dashboard-layout {
  display:grid; gap:2rem;
  padding-top:3rem; padding-bottom:6rem;
}
@media(min-width:900px){ .dashboard-layout { grid-template-columns:240px 1fr; gap:3rem; } }

.dashboard-sidebar {
  background:#fff; border-radius:1.5rem;
  padding:1.5rem; box-shadow:var(--shadow-card); height:fit-content;
}
.dash-user { display:flex; align-items:center; gap:.875rem; margin-bottom:1.5rem; }
.dash-avatar {
  width:3rem;height:3rem;border-radius:50%;
  background:rgba(107,124,58,.15);
  display:grid;place-items:center;
  font-family:'Fraunces',serif; font-size:1.25rem;
  color:var(--olive-deep-hex); flex-shrink:0;
}
.dash-name { font-weight:600; font-size:.9375rem; }
.dash-email { font-size:.8125rem; color:#aaa; }
.dash-nav { display:flex; flex-direction:column; }
.dash-nav-link {
  display:block; padding:.625rem .75rem; border-radius:.625rem;
  font-size:.9375rem; color:rgba(30,29,23,.8); transition:all .2s;
}
.dash-nav-link:hover { background:var(--sand-hex); }
.dash-nav-link.active { background:rgba(107,124,58,.1); color:var(--olive-deep-hex); font-weight:500; }
.dash-logout { color:#dc2626; margin-top:.5rem; }
.dash-logout:hover { background:#fee2e2; }

.dashboard-main h2 { font-family:'Fraunces',serif; font-size:1.5rem; margin-bottom:1.5rem; }

/* Orders list */
.orders-list { display:flex; flex-direction:column; gap:1rem; }
.order-card { background:#fff; border-radius:1.25rem; padding:1.5rem; box-shadow:var(--shadow-card); }
.order-card-head {
  display:flex; align-items:center; gap:1rem;
  flex-wrap:wrap; margin-bottom:1rem;
}
.order-num { font-weight:600; font-size:.9375rem; }
.order-date { font-size:.8125rem; color:#aaa; }
.order-card-head strong { margin-left:auto; font-family:'Fraunces',serif; font-size:1.125rem; color:var(--olive-deep-hex); }
.order-status {
  border-radius:9999px; padding:.2rem .875rem;
  font-size:.75rem; text-transform:uppercase; letter-spacing:.06em; font-weight:500;
}
.status-pending      { background:#fef3c7; color:#92400e; }
.status-confirmed    { background:#dbeafe; color:#1e40af; }
.status-processing   { background:#e0e7ff; color:#3730a3; }
.status-shipped      { background:#d1fae5; color:#065f46; }
.status-delivered    { background:rgba(107,124,58,.15); color:var(--olive-deep-hex); }
.status-cancelled    { background:#fee2e2; color:#991b1b; }
.order-items-mini { display:flex; flex-wrap:wrap; gap:.75rem; }
.order-item-mini { display:flex; align-items:center; gap:.5rem; font-size:.875rem; }
.order-item-mini img { width:2.5rem;height:2.5rem;object-fit:cover;border-radius:.5rem; }

/* Addresses grid */
.addresses-grid { display:grid; gap:1rem; grid-template-columns:1fr 1fr; }
@media(max-width:640px){.addresses-grid{grid-template-columns:1fr}}
.address-card {
  background:#fff; border-radius:1.25rem;
  padding:1.25rem; box-shadow:var(--shadow-card);
  font-size:.9375rem; line-height:1.7;
  position:relative;
}
.addr-label {
  font-size:.75rem; text-transform:uppercase; letter-spacing:.1em;
  color:var(--olive-hex); margin-bottom:.375rem;
}
.addr-delete {
  display:inline-block; margin-top:.75rem;
  font-size:.8125rem; color:#dc2626;
  cursor:pointer;
}
.addr-delete:hover { text-decoration:underline; }
