* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--bg) 94%, transparent), color-mix(in srgb, var(--bg) 72%, transparent)),
    var(--theme-image),
    radial-gradient(circle at 14% 16%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 22rem),
    radial-gradient(circle at 86% 8%, color-mix(in srgb, var(--secondary) 14%, transparent), transparent 20rem),
    var(--bg);
  background-attachment: fixed, fixed, scroll, scroll, scroll;
  background-position: center, top right, top left, top right, center;
  background-repeat: no-repeat;
  background-size: cover, min(52vw, 680px) auto, auto, auto, auto;
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a {
  color: inherit;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

.shell {
  min-height: 100vh;
}

.site-header {
  background: color-mix(in srgb, var(--surface) 98%, white);
  border-bottom: 1px solid rgba(0, 0, 0, .10);
  padding: 1rem clamp(1rem, 4vw, 3rem) 1.5rem;
}

nav,
.content,
.admin-grid,
.admin-top,
.stats,
.hero {
  max-width: 1180px;
  margin: 0 auto;
}

nav,
.admin-top,
.toolbar,
.panel-heading,
.product-actions,
.row-actions {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.brand {
  align-items: center;
  display: inline-flex;
  gap: .75rem;
  text-decoration: none;
}

.brand small,
.login-title p,
.muted,
.table-product small {
  color: var(--muted);
  display: block;
}

.brand-mark {
  background: var(--primary);
  border-radius: 999px;
  color: var(--surface);
  display: grid;
  font-weight: 800;
  height: 2.75rem;
  place-items: center;
  width: 2.75rem;
}

.brand-mark.dark {
  background: #0f172a;
  color: white;
}

.outline-button,
.icon-link,
.row-actions a,
.row-actions button {
  background: var(--surface);
  border: 1px solid color-mix(in srgb, var(--primary) 22%, transparent);
  border-radius: .45rem;
  color: var(--primary);
  display: inline-flex;
  font-weight: 700;
  padding: .65rem .9rem;
  text-decoration: none;
}

.hero {
  display: grid;
  gap: 2rem;
  grid-template-columns: minmax(0, .9fr) minmax(300px, .75fr);
  align-items: center;
  padding-top: 1.75rem;
}

.hero h1,
.admin-top h1 {
  color: var(--primary);
  font-family: Georgia, serif;
  font-size: clamp(2.25rem, 5vw, 4rem);
  line-height: 1.02;
  margin: .35rem 0 1rem;
}

.eyebrow {
  color: var(--secondary);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  margin: 0;
  text-transform: uppercase;
}

.status-panel,
.panel,
.product-card,
.stats div,
.empty {
  background: color-mix(in srgb, var(--surface) 94%, transparent);
  border: 1px solid rgba(0, 0, 0, .10);
  border-radius: .5rem;
  box-shadow: 0 18px 48px rgba(15, 23, 42, .10);
}

.status-panel {
  align-self: end;
  padding: 1.25rem;
}

.content {
  padding: 2rem clamp(1rem, 4vw, 3rem);
}

.toolbar {
  margin-bottom: 1.25rem;
}

.toolbar h2,
.panel h2 {
  color: var(--primary);
  font-family: Georgia, serif;
  margin: 0;
}

.search {
  display: flex;
  gap: .5rem;
}

.hero-search {
  background: white;
  border: 1px solid rgba(0, 0, 0, .10);
  border-radius: .5rem;
  box-shadow: 0 18px 48px rgba(15, 23, 42, .08);
  margin-top: 1.5rem;
  max-width: 34rem;
  padding: .65rem;
}

.menu-preview {
  background: #160d08;
  border: 1px solid color-mix(in srgb, var(--accent) 55%, transparent);
  border-radius: .5rem;
  box-shadow: 0 22px 60px rgba(15, 23, 42, .22);
  margin: 0;
  overflow: hidden;
}

.menu-preview img {
  aspect-ratio: 1 / 1;
  display: block;
  object-fit: contain;
  width: 100%;
}

input,
select,
textarea {
  background: rgba(255, 255, 255, .82);
  border: 1px solid rgba(0, 0, 0, .14);
  border-radius: .45rem;
  color: var(--text);
  padding: .75rem .85rem;
  width: 100%;
}

textarea {
  min-height: 7rem;
  resize: vertical;
}

.search input {
  min-width: min(22rem, 58vw);
}

.search button,
.primary-button,
.product-actions button {
  background: var(--primary);
  border: 0;
  border-radius: .45rem;
  color: var(--surface);
  font-weight: 800;
  padding: .78rem 1rem;
}

.product-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
}

.product-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.product-card img {
  aspect-ratio: 4 / 3;
  background: rgba(0, 0, 0, .06);
  display: block;
  object-fit: cover;
  width: 100%;
}

.product-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 1rem;
}

.product-body h3 {
  color: var(--primary);
  margin: .25rem 0 .5rem;
}

.product-body p {
  color: var(--muted);
}

.product-actions {
  margin-top: auto;
}

.product-actions button {
  flex-shrink: 0;
}

.product-actions strong {
  color: var(--primary);
  font-size: 1.1rem;
}

.empty {
  color: var(--muted);
  padding: 1.5rem;
}

.login-page {
  display: grid;
  min-height: 100vh;
  padding: 1rem;
  place-items: center;
}

.login-card {
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: .5rem;
  box-shadow: 0 18px 48px rgba(15, 23, 42, .10);
  max-width: 28rem;
  padding: 1.5rem;
  width: 100%;
}

.login-title {
  align-items: center;
  display: flex;
  gap: .75rem;
  margin-bottom: 1.25rem;
}

.login-title h1 {
  margin: 0;
}

label {
  color: var(--primary);
  display: grid;
  font-weight: 700;
  gap: .4rem;
  margin-bottom: 1rem;
}

.error,
.notice {
  border-radius: .45rem;
  font-weight: 700;
  padding: .75rem;
}

.error {
  background: #fef2f2;
  color: #b91c1c;
}

.notice {
  color: var(--secondary);
  margin: 0;
}

.stats {
  display: grid;
  gap: .8rem;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 1rem;
}

.stats div,
.panel {
  padding: 1rem;
}

.stats span {
  color: var(--muted);
  display: block;
}

.stats strong {
  color: var(--primary);
  font-size: 1.35rem;
}

.admin-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 380px 1fr;
  padding: 2rem clamp(1rem, 4vw, 3rem);
}

.stack {
  display: grid;
  gap: 1.25rem;
}

.table-wrap {
  overflow-x: auto;
}

table {
  border-collapse: collapse;
  min-width: 720px;
  width: 100%;
}

th,
td {
  border-bottom: 1px solid rgba(0, 0, 0, .10);
  padding: .85rem;
  text-align: left;
}

.table-product {
  align-items: center;
  display: flex;
  gap: .75rem;
}

.table-product img {
  background: rgba(0, 0, 0, .06);
  border-radius: .4rem;
  height: 3.5rem;
  object-fit: cover;
  width: 3.5rem;
}

.badge {
  background: color-mix(in srgb, var(--primary) 12%, transparent);
  border-radius: .45rem;
  color: var(--primary);
  font-size: .8rem;
  font-weight: 800;
  padding: .35rem .5rem;
}

.row-actions {
  justify-content: flex-end;
}

.row-actions form {
  margin: 0;
}

@media (max-width: 860px) {
  .hero,
  .admin-grid,
  .stats {
    grid-template-columns: 1fr;
  }

  .toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .search {
    flex-direction: column;
  }

  .search input {
    min-width: 0;
  }

  .hero-search {
    max-width: none;
  }
}

/* Premium chocolate boutique storefront. */
html { scroll-behavior: smooth; }
.storefront { --primary: #450d22; --surface: #fffaf1; --text: #381923; --muted: #78656a; --secondary: #9c7430; background: #fcf8f1; color: var(--text); font-family: Arial, Helvetica, sans-serif; }
.storefront a { text-decoration: none; }
.storefront a, .storefront button { transition: background .2s, color .2s, box-shadow .2s; }
.storefront :focus-visible { outline: 3px solid #bb903e; outline-offset: 5px; }
.announcement { background: #290010; color: #efd08b; padding: 9px 16px; text-align: center; font-size: 10px; letter-spacing: 1.7px; }
.premium-hero { position: relative; isolation: isolate; min-height: 610px; color: #fff9ee; background: linear-gradient(90deg, rgba(43,0,16,.5), rgba(43,0,16,.15) 48%, transparent 75%), url('/public/theme/chocolate-gift-hero.png') center center / cover; overflow: hidden; }
.store-nav { max-width: 1320px; padding: 25px 4.3%; display: flex; align-items: center; justify-content: space-between; gap: 25px; position: relative; z-index: 2; }
.wordmark { font: bold 25px Georgia, serif; letter-spacing: -.7px; white-space: nowrap; }
.wordmark small { display: block; margin-top: 5px; font: 8px Arial, sans-serif; letter-spacing: 2.3px; color: #e0bb70; }
.nav-links { display: flex; gap: 28px; font-size: 12px; }
.nav-links a:hover { color: #f0cb72; }
.gold-button, .ghost-button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 44px; border-radius: 30px; padding: 14px 21px; font-size: 12px; line-height: 1.3; }
.gold-button { color: #351018 !important; background: linear-gradient(115deg, #f5d783, #d9aa3d); border: 1px solid #ecc96e; }
.gold-button:hover { box-shadow: 0 5px 25px #deb94f40; background: #f4d58a; }
.ghost-button { border: 1px solid #ffffff70; color: #fff9ee; }
.ghost-button:hover { background: #ffffff14; }
.hero-copy { position: relative; z-index: 1; max-width: 1320px; margin: 0 auto; padding: 42px 4.3% 65px; }
.edit-label { font-size: 10px; letter-spacing: 1.7px; color: #a37a37; font-weight: 600; }
.hero-copy .edit-label { display: flex; align-items: center; gap: 12px; color: #e9ca83; }
.hero-copy .edit-label::before { content: ''; width: 30px; height: 1px; background: #e9ca83; }
.hero-copy h1 { font: 400 clamp(54px, 6.8vw, 94px)/.99 Georgia, 'Times New Roman', serif; letter-spacing: -3px; margin: 25px 0 22px; }
.hero-copy h1 em { color: #ecc760; font-weight: 400; }
.hero-description { max-width: 435px; font-size: 14px; line-height: 1.7; color: #f3e8e6; }
.hero-buttons { display: flex; gap: 12px; margin: 27px 0 44px; flex-wrap: wrap; }
.hero-details { display: flex; list-style: none; padding: 0; gap: 26px; font-size: 10px; }
.hero-details strong { font-weight: 500; color: #eed18c; }
.hero-orbit { position: absolute; z-index: -1; width: 330px; height: 400px; border: 1px solid #e4be6438; border-radius: 50%; right: -65px; top: 70px; transform: rotate(-20deg); }
.hero-orbit span { position: absolute; bottom: 60px; left: 24px; color: #e6c576; font-size: 35px; }
.collection-section, .order-section { max-width: 1240px; padding: 70px 40px; margin: auto; scroll-margin-top: 24px; }
.collection-heading { display: flex; justify-content: space-between; align-items: end; gap: 25px; }
.storefront h2 { font: 400 clamp(30px, 3.5vw, 44px)/1.14 Georgia, serif; margin: 16px 0; letter-spacing: -.8px; }
.collection-heading h2 em { color: #946c37; }
.collection-heading > p { color: #78656a; font-size: 13px; line-height: 1.8; }
.collection-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 30px 0 25px; padding: 20px 0; border-top: 1px solid #e4d9ca; border-bottom: 1px solid #e4d9ca; }
.collection-toolbar > p { font: italic 17px Georgia, serif; margin: 0; }
.collection-search { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.collection-search input { border-radius: 25px; background: transparent; max-width: 250px; padding: 11px 16px; min-width: 0; }
.collection-search button { color: #fff8ee; background: #450d22; border: 0; padding: 12px 18px; border-radius: 25px; }
.storefront .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.storefront .product-card { border: 1px solid #e7ddcf; border-radius: 8px; background: #fffcf7; box-shadow: none; }
.storefront .product-card img { aspect-ratio: 1/1; object-fit: cover; }
.storefront .product-body { padding: 24px; }
.storefront .product-body .eyebrow { font-size: 9px; letter-spacing: 1.8px; color: #95713b; margin: 0 0 10px; }
.storefront .product-body h3 { font: 400 24px/1.2 Georgia, serif; }
.storefront .product-body > p:not(.eyebrow) { font-size: 13px; line-height: 1.7; margin: 8px 0 25px; }
.storefront .product-actions { gap: 10px; padding-top: 16px; border-top: 1px solid #e9e0d4; }
.storefront .product-actions strong { font-size: 16px; font-weight: 500; }
.product-order { font-size: 12px; border: 1px solid #d7c5ad; border-radius: 24px; padding: 10px 14px; white-space: nowrap; }
.product-order:hover { background: #f4e8d2; }
.menu-link { display: block; width: fit-content; margin: 30px auto 0; border-bottom: 1px solid #bea778; padding: 8px 0; font-size: 13px; }
.gifting-section { background: #350717; color: #fff6e9; display: grid; grid-template-columns: 1fr 1fr; gap: 60px; padding: 55px max(40px, calc((100vw - 1160px)/2)); scroll-margin-top: 24px; }
.gifting-section .edit-label { color: #e7c776; }
.gifting-section h2 em { color: #e7c776; }
.gifting-section > div:last-child { align-self: center; }
.gifting-section p:not(.edit-label) { max-width: 400px; font-size: 14px; line-height: 1.8; margin-bottom: 24px; color: #e6d6d9; }
.order-section { text-align: center; }
.order-section ol { display: grid; grid-template-columns: repeat(3, 1fr); gap: 45px; list-style: none; padding: 25px 0 0; }
.order-section li > span { font: italic 32px Georgia, serif; color: #a67d3c; }
.order-section h3 { font: 22px Georgia, serif; }
.order-section li p { font-size: 13px; line-height: 1.8; color: #78656a; }
.store-footer { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 30px 4.3%; border-top: 1px solid #e4d9ca; }
.store-footer .wordmark small { color: #95713b; }
.store-footer p { font: italic 16px Georgia, serif; color: #78656a; }
.store-footer > a:last-child { font-size: 12px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.product-photo { display: block; position: relative; cursor: zoom-in; }
.storefront .product-photo:focus-visible { outline-offset: -4px; }
.photo-zoom-hint { position: absolute; right: 12px; bottom: 12px; padding: 8px 12px; border-radius: 24px; background: #350717e6; color: #fff6e9; font-size: 11px; pointer-events: none; }
html.photo-viewer-open { overflow: hidden; }
.photo-viewer { width: min(1100px, 96vw); max-width: 96vw; max-height: 94vh; max-height: 94dvh; padding: 60px 18px 18px; border: 1px solid #b99855; border-radius: 12px; background: #290010; color: #fff6e9; box-shadow: 0 20px 80px #0008; }
.photo-viewer::backdrop { background: #100008de; }
.photo-viewer figure { margin: 0; text-align: center; }
.photo-viewer-image { display: block; width: 100%; height: auto; max-height: 72vh; max-height: 72dvh; object-fit: contain; }
.photo-viewer figcaption { padding: 16px 8px 0; font: 20px/1.4 Georgia, serif; overflow-wrap: anywhere; }
.photo-viewer-close { position: absolute; top: 8px; right: 10px; width: 44px; height: 44px; border: 1px solid #b99855; border-radius: 50%; background: #350717; color: #fff6e9; font-size: 30px; line-height: 1; }
.photo-viewer-close:focus-visible { outline: 3px solid #f5d783; outline-offset: 3px; }
@media (min-width: 1600px) { .premium-hero { min-height: 700px; } .hero-copy { padding-top: 80px; } }
@media (max-width: 900px) { .nav-links { gap: 15px; font-size: 11px; } .store-nav { flex-wrap: wrap; } .hero-copy { padding-top: 35px; } .hero-copy h1 { font-size: 68px; } .storefront .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gifting-section { gap: 30px; } }
@media (max-width: 600px) {
  .announcement { font-size: 8px; letter-spacing: 1px; padding: 10px 12px; } .announcement span { display: none; }
  .premium-hero { min-height: 550px; background-position: 58% center; background-image: linear-gradient(90deg, #2b0010e6, #2b001070 65%, #2b001020), url('/public/theme/chocolate-gift-hero.png'); }
  .store-nav { padding: 20px 18px 8px; gap: 16px 12px; } .wordmark { font-size: 23px; } .wordmark small { font-size: 6px; letter-spacing: 1.8px; }
  .store-nav > .gold-button { font-size: 11px; padding: 12px 14px; gap: 8px; min-height: 44px; }
  .nav-links { order: 3; justify-content: space-between; width: 100%; font-size: 12px; gap: 12px; border-top: 1px solid #e9ca832b; }
  .nav-links a { display: flex; align-items: center; min-height: 44px; }
  .hero-copy { padding: 26px 20px 30px; } .hero-copy h1 { font-size: clamp(43px, 10.8vw, 64px); letter-spacing: -1.8px; margin: 22px 0; } .hero-description { font-size: 13px; max-width: 310px; line-height: 1.75; }
  .hero-details { flex-wrap: wrap; gap: 12px 18px; line-height: 1.6; max-width: 330px; }
  .hero-buttons { margin: 24px 0 28px; gap: 10px; } .hero-buttons a { font-size: 11px; padding: 13px 15px; }
  .hero-orbit { right: -160px; top: 130px; }
  .collection-section, .order-section { padding: 38px 16px; } .collection-heading { display: block; }
  .collection-toolbar { align-items: stretch; flex-direction: column; gap: 16px; margin: 22px 0; } .collection-search input { max-width: none; flex: 1; font-size: 16px; }
  .storefront .product-grid { gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .storefront .product-card img { aspect-ratio: 1; }
  .storefront .product-body { padding: 14px 12px; }
  .storefront .product-body h3 { font-size: 21px; overflow-wrap: anywhere; }
  .storefront .product-body .eyebrow { font-size: 8px; letter-spacing: 1px; }
  .storefront .product-body > p:not(.eyebrow) { font-size: 12px; line-height: 1.6; margin-bottom: 16px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
  .storefront .product-actions { flex-direction: column; align-items: stretch; gap: 12px; }
  .storefront .product-actions strong { font-size: 15px; }
  .product-order { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px; }
  .product-detail-link { display: flex; align-items: center; min-height: 44px; font-size: 11px; }
  .photo-zoom-hint { right: 8px; bottom: 8px; font-size: 10px; padding: 7px 9px; }
  .gifting-section { grid-template-columns: 1fr; padding: 38px 22px; gap: 5px; }
  .order-section ol { grid-template-columns: 1fr; gap: 25px; } .order-section li p { max-width: 300px; margin: auto; }
  .store-footer { padding: 28px 22px; flex-wrap: wrap; } .store-footer p { order: 3; width: 100%; margin: 0; }
  .product-nav { padding-bottom: 20px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .storefront a, .storefront button { transition: none; } }

/* Diwali collections, product galleries and customer stories. */
.diwali-section, .review-section, .instagram-section { max-width: 1240px; padding: 55px 40px; margin: auto; }
.gift-categories { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 30px; }
.gift-categories a { padding: 26px 22px; border: 1px solid #d9c7a5; border-radius: 8px; background: #f4eadb; }
.gift-categories a:hover { background: #ecddc5; }
.gift-categories span { font-size: 12px; color: #85612d; }
.gift-categories h3 { font: 26px Georgia, serif; }
.feature-label { display: inline-block; align-self: flex-start; padding: 6px 10px; margin: 8px 0; border-radius: 20px; background: #f3dfad; color: #563513; font-size: 11px; }
.product-detail-link { font-size: 12px; padding: 8px 0; color: #85612d !important; }
.product-nav { border-bottom: 1px solid #e4d9ca; }
.product-nav .wordmark small { color: #94703d; }
.product-detail { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 55px; max-width: 1240px; margin: auto; padding: 50px 40px; }
.product-gallery { min-width: 0; }
.gallery-track { display: flex; position: relative; overflow-x: auto; scroll-snap-type: x mandatory; border-radius: 10px; background: #f1e6d7; }
.gallery-slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; }
.gallery-slide img { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; }
.gallery-controls { display: flex; align-items: center; justify-content: center; gap: 24px; }
.gallery-controls button { width: 44px; height: 44px; border: 1px solid #cbb994; background: transparent; border-radius: 50%; color: #450d22; }
.gallery-controls button:disabled { opacity: .35; cursor: default; }
.gallery-status, .gallery-help { color: #78656a; font-size: 12px; text-align: center; }
.gallery-thumbnails { display: flex; gap: 10px; overflow-x: auto; padding: 6px; }
.gallery-thumbnails button { width: 70px; height: 70px; flex-shrink: 0; padding: 3px; border: 2px solid transparent; border-radius: 6px; background: transparent; }
.gallery-thumbnails button[aria-pressed="true"] { border-color: #a67d3c; }
.gallery-thumbnails img { width: 100%; height: 100%; object-fit: cover; border-radius: 3px; }
.product-info h1 { font: 42px/1.12 Georgia, serif; margin: 16px 0; }
.detail-price { font-size: 23px; }
.detail-description { line-height: 1.8; color: #78656a; white-space: pre-line; }
.detail-order, .bulk-button { display: flex; width: 100%; margin-top: 16px; padding: 16px; text-align: center; }
.bulk-button { justify-content: center; border: 1px solid #bda67f; border-radius: 30px; font-size: 13px; }
.customisation { border-top: 1px solid #e4d9ca; margin-top: 30px; padding-top: 20px; }
.customisation h2 { font-size: 28px; }
.customisation li, .customisation > p:last-child { font-size: 14px; line-height: 1.8; color: #78656a; }
.review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.review-grid article { padding: 20px; border: 1px solid #e4d9ca; border-radius: 8px; }
.review-grid img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 4px; }
.review-grid blockquote { margin: 20px 0; font: italic 20px/1.5 Georgia, serif; white-space: pre-line; }
.review-grid p, .review-section > p, .instagram-section > p { line-height: 1.8; font-size: 14px; }
.instagram-section { text-align: center; border-top: 1px solid #e4d9ca; }
.admin-photos { display: flex; gap: 8px; flex-wrap: wrap; }
.admin-photos img { width: 70px; height: 70px; object-fit: cover; }
.panel input[type="checkbox"] { width: auto; }
.photo-viewer-tools { display: flex; justify-content: center; align-items: center; gap: 15px; margin-bottom: 15px; }
.photo-viewer-tools button { min-width: 44px; min-height: 44px; border: 1px solid #b99855; border-radius: 22px; background: #350717; color: #fff6e9; padding: 8px 16px; }
.photo-viewer-stage { max-height: 65vh; max-height: 65dvh; overflow: auto; }
.photo-viewer-stage .photo-viewer-image { cursor: zoom-in; max-height: 65vh; max-height: 65dvh; }
.photo-viewer-stage.is-zoomed .photo-viewer-image { width: 200%; max-width: none; max-height: none; cursor: zoom-out; }
@media (max-width: 800px) { .gift-categories, .review-grid { grid-template-columns: repeat(2, 1fr); } .product-detail { grid-template-columns: 1fr; gap: 25px; } }
@media (max-width: 600px) { .diwali-section, .review-section, .instagram-section, .product-detail { padding: 35px 22px; } .gift-categories { gap: 12px; } .gift-categories a { padding: 20px 14px; } .gift-categories h3 { font-size: 23px; } .review-grid { grid-template-columns: 1fr; } .product-info h1 { font-size: 35px; } .photo-viewer { padding-left: 10px; padding-right: 10px; } }

/* Visitor feedback and explicit admin publishing. */
.review-form-panel { margin-top: 24px; border: 1px solid #dac8aa; border-radius: 10px; max-width: 760px; background: #fffaf1; }
.review-form-panel summary { cursor: pointer; padding: 20px; color: #450d22; font-size: 15px; }
.review-form-panel summary span { float: right; }
.visitor-review-form { padding: 0 22px 22px; }
.visitor-review-form > p { color: #78656a; font-size: 13px; line-height: 1.7; }
.review-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.visitor-review-form label { font-size: 14px; font-weight: 500; }
.visitor-review-form input, .visitor-review-form select, .visitor-review-form textarea { font-size: 16px; }
.review-consent { display: flex; align-items: flex-start; gap: 10px; line-height: 1.6; }
.review-consent input { width: 20px; height: 20px; flex: 0 0 20px; margin-top: 2px; accent-color: #450d22; }
.review-rating { color: #986b1e; letter-spacing: 2px; }
.review-success { padding: 18px; background: #f0ebd6; border: 1px solid #bcb079; border-radius: 8px; }
.moderation-review { padding: 20px 0; border-top: 1px solid #d9c7a5; margin-top: 20px; }
.review-feedback, .review-grid blockquote { white-space: pre-wrap; overflow-wrap: anywhere; }
.moderation-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 15px; }
@media (max-width: 600px) { .review-form-row { grid-template-columns: 1fr; gap: 0; } .visitor-review-form { padding: 0 16px 20px; } }
