:root {
  --cream: #fffaf4;
  --ivory: #fffdf9;
  --rose: #d89b8f;
  --rose-dark: #b97568;
  --gold: #d49a28;
  --gold-soft: #f4d894;
  --brown: #5a2d1f;
  --brown-2: #7d4a38;
  --ink: #251915;
  --muted: #78645c;
  --line: #eee3dc;
  --shadow: 0 18px 45px rgba(83, 45, 31, .12);
  --radius: 20px;
  --container: 1180px;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--ivory);
  color: var(--ink);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  min-width: 320px;
  overflow-x: hidden;
}

body.menu-open,
body.quick-view-open { overflow: hidden; }
button, input { font: inherit; }
:focus-visible { outline: 3px solid rgba(212, 154, 40, .45); outline-offset: 3px; }

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

.container {
  width: min(var(--container), calc(100% - 36px));
  margin: 0 auto;
}

.top-strip {
  background: linear-gradient(90deg, #f7e8cb, #fff6e8, #f7e8cb);
  color: #8a5a2d;
  font-size: 13px;
  font-weight: 700;
}

.top-strip .container {
  display: flex;
  justify-content: center;
  gap: 46px;
  padding: 11px 0;
  text-transform: capitalize;
}

.navbar {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(255, 253, 249, .94);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}

.nav-inner {
  display: grid;
  grid-template-columns: 210px 1fr 330px;
  align-items: center;
  gap: 24px;
  min-height: 76px;
}

.brand {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 34px;
  letter-spacing: 4px;
  font-weight: 700;
  color: var(--brown);
}

.menu {
  display: flex;
  gap: 25px;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #6a4b42;
}

.nav-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  min-width: 0;
}

.search {
  width: 100%;
  max-width: 215px;
  min-width: 140px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #fff;
  padding: 0 14px;
  color: var(--muted);
  font-size: 13px;
}

.search-form {
  display: block;
  min-width: 0;
}

.icon-btn {
  width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  color: #8b6a60;
  font-size: 23px;
  line-height: 1;
  border: 0;
  background: transparent;
  cursor: pointer;
  position: relative;
  text-decoration: none;
}

a.icon-btn:hover {
  color: var(--brown);
}

.icon-btn:hover { color: var(--brown); }
.count-badge { position:absolute;top:-8px;right:-9px;min-width:17px;height:17px;padding:0 4px;display:grid;place-items:center;border-radius:999px;background:var(--brown);color:#fff;font-size:9px;font-weight:800; }
.menu-toggle { display: none; }

.hero {
  background:
    radial-gradient(circle at 12% 20%, rgba(237, 196, 154, .36), transparent 32%),
    linear-gradient(90deg, #fff4ec 0%, #fffdf9 52%, #f6ddd2 100%);
  overflow: hidden;
}

.hero-grid {
  display: grid;
  grid-template-columns: 45% 55%;
  min-height: 540px;
  align-items: center;
}

.hero-copy {
  padding: 64px 0;
  position: relative;
  z-index: 2;
}

.eyebrow {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: var(--gold);
  font-weight: 800;
  font-size: 13px;
  letter-spacing: .16em;
  text-transform: uppercase;
  margin-bottom: 18px;
}

.hero h1 {
  margin: 0;
  font-family: "Cormorant Garamond", Georgia, serif;
  color: var(--brown);
  font-size: clamp(58px, 7vw, 92px);
  line-height: .92;
  letter-spacing: -.04em;
  max-width: 520px;
}

.hero p {
  margin: 24px 0 34px;
  color: #5f463e;
  font-size: 21px;
  line-height: 1.55;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 4px;
  min-height: 52px;
  padding: 0 28px;
  background: var(--brown);
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  box-shadow: 0 14px 26px rgba(90, 45, 31, .22);
  cursor: pointer;
}

.btn.light {
  background: #fff;
  color: var(--brown);
  border: 1px solid rgba(90, 45, 31, .2);
  box-shadow: none;
}

.hero-photo {
  align-self: stretch;
  min-height: 540px;
  position: relative;
  overflow: hidden;
  border-left: 1px solid rgba(238, 227, 220, .35);
}

.hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}

.hero-carousel {
  position: relative;
  min-height: 540px;
}

.hero-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  visibility: hidden;
  transition: opacity .8s ease, visibility .8s ease;
}

.hero-slide.active {
  position: relative;
  opacity: 1;
  visibility: visible;
}

.hero-dots {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 10;
}

.hero-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid var(--brown);
  background: transparent;
  cursor: pointer;
  padding: 0;
  transition: .3s ease;
}

.hero-dot.active {
  background: var(--brown);
  transform: scale(1.15);
}

.hero-dot:hover {
  background: var(--rose);
  border-color: var(--rose);
}

section {
  padding: 56px 0;
}

.category-row {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 20px;
  padding-top: 34px;
  padding-bottom: 26px;
}

.category-card {
  text-align: center;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  color: #5e463f;
  transition: transform .2s ease;
}

.category-card:hover {
  transform: translateY(-3px);
}

.category-card img {
  width: 118px;
  height: 118px;
  object-fit: cover;
  margin: 0 auto 13px;
  border-radius: 50%;
  border: 1px solid #eaded7;
  background: #fff;
  box-shadow: 0 10px 28px rgba(84, 50, 34, .08);
}

.section-title {
  text-align: center;
  margin-bottom: 28px;
}

.section-title h2 {
  margin: 0;
  color: var(--brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(42px, 5vw, 58px);
  line-height: 1;
  letter-spacing: -.03em;
}

.section-title .line {
  width: 64px;
  height: 3px;
  margin: 14px auto 0;
  background: var(--gold);
  border-radius: 99px;
}

.tabs {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 34px;
}

.tab {
  min-width: 94px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 18px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: #8a6c62;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  cursor: pointer;
  text-decoration: none;
  transition: .2s ease;
}

.tab:hover {
  border-color: var(--brown);
  color: var(--brown);
}

.tab.active {
  background: var(--brown);
  color: #fff;
  border-color: var(--brown);
}

.product-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}

.product-grid.small {
  grid-template-columns: repeat(6, 1fr);
}

.product-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  position: relative;
  box-shadow: 0 10px 30px rgba(86, 51, 38, .05);
  transition: transform .2s ease, box-shadow .2s ease;
  cursor: pointer;
}

.product-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}

.wish {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, .88);
  border: 1px solid var(--line);
  color: #9a756a;
  font-size: 20px;
  cursor: pointer;
  transition: .2s ease;
}

.wish.active { background: var(--brown); color: #fff; border-color: var(--brown); }

.product-card img {
  width: 100%;
  aspect-ratio: 1.12 / 1;
  object-fit: cover;
  background: #fffaf6;
}

.product-info {
  padding: 15px 16px 18px;
}

.product-info h3 {
  margin: 0 0 9px;
  font-size: 15px;
  line-height: 1.35;
  color: #4d3832;
}

.rating {
  color: #f0a000;
  font-size: 13px;
  letter-spacing: 1px;
  margin-bottom: 8px;
}

.rating span {
  color: #7e6a63;
  letter-spacing: 0;
  margin-left: 7px;
  font-size: 12px;
  font-weight: 700;
}

.hallmark {
  color: #615c84;
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 11px;
}

.product-brand {
  color: #7d4a38;
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.price {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 21px;
  font-weight: 900;
  color: #4b3028;
}

.price small {
  color: #d85a45;
  font-size: 11px;
  font-weight: 900;
}

.promo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  padding-top: 8px;
}

.promo-card {
  min-height: 360px;
  border-radius: 10px;
  overflow: hidden;
  padding: 34px 28px;
  display: flex;
  align-items: flex-start;
  position: relative;
  background: #f3dfcf center / cover no-repeat;
  color: var(--brown);
}

.promo-card:nth-child(1) { background-image: linear-gradient(90deg, rgba(255,248,239,.82), rgba(255,248,239,.18)), url("../images/promos/promo-everyday.jpg"); }
.promo-card:nth-child(2) { background-image: linear-gradient(90deg, rgba(91,41,29,.7), rgba(91,41,29,.08)), url("../images/promos/promo-wedding.jpg"); color: #fff; }
.promo-card:nth-child(3) { background-image: linear-gradient(90deg, rgba(255,248,239,.85), rgba(255,248,239,.2)), url("../images/promos/promo-gifts.jpg"); }

.promo-card h3 {
  margin: 0 0 12px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 38px;
  line-height: 1;
}

.promo-card p {
  margin: 0 0 22px;
  max-width: 210px;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 700;
}

.gift-banner {
  min-height: 250px;
  display: grid;
  align-items: center;
  border-radius: 10px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(178, 103, 91, .88), rgba(178, 103, 91, .22)),
    url("../images/promos/gift-banner.jpg") center / cover no-repeat;
  color: #fff;
  padding: 45px 64px;
  margin-top: 16px;
}

.gift-banner h2 {
  margin: 0 0 12px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 58px;
  line-height: 1;
}

.gift-banner p {
  margin: 0 0 22px;
  font-size: 19px;
  line-height: 1.5;
  max-width: 470px;
}

.benefits {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
  padding: 24px 0;
}

.benefit-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
}

.benefit {
  display: flex;
  gap: 13px;
  align-items: center;
  color: #6b544d;
  font-size: 12px;
  line-height: 1.35;
  font-weight: 700;
}

.benefit b {
  display: block;
  color: #4e3932;
  font-size: 13px;
  margin-bottom: 2px;
}

.benefit-icon {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--brown);
  font-size: 22px;
  background: #fffaf6;
}

footer {
  padding: 46px 0 22px;
  background: var(--ivory);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.6fr repeat(4, 1fr);
  gap: 38px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 36px;
}

.footer-brand {
  font-family: "Cormorant Garamond", Georgia, serif;
  color: var(--brown);
  font-size: 32px;
  letter-spacing: 3px;
  font-weight: 700;
  margin-bottom: 12px;
}

footer p,
footer li {
  color: #74615a;
  font-size: 13px;
  line-height: 1.8;
}

footer h4 {
  margin: 0 0 15px;
  color: #5c453e;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.social {
  display: flex;
  gap: 16px;
  margin-top: 20px;
  color: var(--brown);
  font-weight: 900;
}

.social a {
  transition: .2s ease;
}

.social a:hover {
  opacity: .7;
}

.copyright {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-top: 20px;
  color: #8b7b74;
  font-size: 12px;
}

.toast { position:fixed;right:24px;bottom:24px;z-index:120;max-width:340px;padding:14px 18px;border-radius:8px;background:var(--brown);color:#fff;box-shadow:var(--shadow);font-size:13px;font-weight:700;transform:translateY(120px);opacity:0;transition:.25s ease; }
.toast.show { transform:translateY(0);opacity:1; }
[hidden] { display:none !important; }
.quick-view-trigger { width:100%;min-height:40px;margin-top:14px;border:1px solid var(--line);border-radius:4px;background:var(--cream);color:var(--brown);font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:.2s ease; }
.quick-view-trigger:hover { border-color:var(--brown);background:#fff; }
.add-cart { width:100%;min-height:40px;margin-top:14px;border:1px solid var(--brown);border-radius:4px;background:#fff;color:var(--brown);font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:.2s ease; }
.add-cart:hover { background:var(--brown);color:#fff; }
.product-card[hidden] { display:none; }
.quick-view-modal { position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px; }
.quick-view-backdrop { position:absolute;inset:0;background:rgba(37,25,21,.56);backdrop-filter:blur(6px); }
.quick-view-panel { position:relative;width:min(980px,100%);max-height:min(88vh,820px);overflow:auto;border-radius:12px;background:#fff;box-shadow:0 32px 90px rgba(37,25,21,.24); }
.quick-view-body { display:grid;grid-template-columns:minmax(320px,1.05fr) minmax(0,.95fr); }
.quick-view-media { background:#fffaf6; }
.quick-view-media img { width:100%;height:100%;min-height:520px;object-fit:cover; }
.quick-view-content { padding:40px 36px 36px;display:flex;flex-direction:column;gap:14px; }
.quick-view-close { position:absolute;top:16px;right:16px;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--brown);font-size:28px;line-height:1;cursor:pointer;z-index:1; }
.quick-view-category { margin:0;color:var(--gold);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase; }
.quick-view-content h2 { margin:0;font-family:"Cormorant Garamond",Georgia,serif;font-size:44px;line-height:1;letter-spacing:0;color:var(--brown); }
.quick-view-brand { margin:0;color:var(--brown-2);font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.04em; }
.quick-view-rating { margin-bottom:0; }
.quick-view-featured { display:flex;flex-wrap:wrap;gap:10px; }
.quick-view-chip { display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;background:var(--cream);border:1px solid var(--line);color:var(--brown);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em; }
.quick-view-price { margin-top:2px; }
.quick-view-description { margin:0;color:#5f463e;font-size:15px;line-height:1.75; }
.quick-view-description p,
.quick-view-description ul,
.quick-view-description ol { margin:0 0 12px; }
.quick-view-description ul,
.quick-view-description ol { padding-left:20px; }
.quick-view-description li { margin-bottom:6px; }
.quick-view-description strong,
.quick-view-description b { color:var(--brown); }
.quick-view-actions { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:6px; }
.quick-view-bag,
.quick-view-wishlist { width:100%; }

.empty-state { display:none;grid-column:1/-1;padding:48px 24px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px;background:#fff; }

/* ── Auth Pages ─────────────────────────────────────── */
.auth-page { display:flex;justify-content:center;padding-top:60px;padding-bottom:80px; }
.auth-card { width:100%;max-width:460px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:40px 36px; }
.auth-header { text-align:center;margin-bottom:28px; }
.auth-header h1 { margin:0 0 6px;font-family:"Cormorant Garamond",Georgia,serif;font-size:36px;color:var(--brown); }
.auth-header p { margin:0;color:var(--muted);font-size:14px; }
.auth-form .form-row { display:grid;grid-template-columns:1fr 1fr;gap:14px; }
.auth-form .form-group { margin-bottom:16px; }
.auth-form label { display:block;margin-bottom:5px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--brown-2); }
.auth-form input[type="text"],
.auth-form input[type="email"],
.auth-form input[type="password"],
.auth-form input[type="tel"] { width:100%;height:44px;border:1px solid var(--line);border-radius:6px;padding:0 14px;font-size:14px;background:#fff;transition:.15s ease; }
.auth-form input:focus { border-color:var(--brown);outline:none;box-shadow:0 0 0 3px rgba(90,45,31,.08); }
.form-check { margin-bottom:16px;font-size:13px;color:var(--muted); }
.form-check label { display:inline-flex;align-items:center;gap:6px;text-transform:none;font-weight:600;letter-spacing:0; }
.form-errors { background:#fff5f3;border:1px solid #f5c6c0;border-radius:8px;padding:12px 16px;margin-bottom:20px;color:#a33;font-size:13px; }
.form-errors p { margin:0; }
.form-success { background:#f0faf4;border:1px solid #b8e6c8;border-radius:8px;padding:12px 16px;margin-bottom:20px;color:#1a6b3a;font-size:13px; }
.form-success p { margin:0; }
.auth-switch { text-align:center;margin-top:24px;font-size:14px;color:var(--muted); }
.auth-switch a { color:var(--brown);font-weight:700; }
.html-editor-wrapper { width:100%; }
.html-editor-toolbar { display:flex;align-items:center;gap:4px;padding:6px 8px;border:1px solid var(--line);border-bottom:0;border-radius:6px 6px 0 0;background:#faf5f0;flex-wrap:wrap; }
.html-editor-btn { height:30px;padding:0 10px;border:1px solid transparent;border-radius:4px;background:transparent;font-size:13px;cursor:pointer;color:var(--brown-2);font-weight:600;transition:.1s ease; }
.html-editor-btn:hover { background:var(--line); }
.html-editor-clear { color:#b71c1c;font-size:11px; }
.html-editor-sep { width:1px;height:20px;background:var(--line);margin:0 4px;flex-shrink:0; }
.html-editor-wrapper textarea { border-top-left-radius:0 !important;border-top-right-radius:0 !important; }

/* ── Profile Page ───────────────────────────────────── */
.profile-layout { display:grid;grid-template-columns:260px 1fr;gap:40px;align-items:start; }
.profile-sidebar { background:#fff;border:1px solid var(--line);border-radius:12px;padding:28px;text-align:center;position:sticky;top:100px; }
.profile-avatar { width:64px;height:64px;margin:0 auto 14px;border-radius:50%;background:var(--brown);color:#fff;font-size:24px;font-weight:800;display:grid;place-items:center; }
.profile-sidebar h3 { margin:0 0 4px;font-size:18px;color:var(--brown); }
.profile-email { margin:0 0 20px;font-size:13px;color:var(--muted); }
.profile-nav { display:flex;flex-direction:column;gap:4px; }
.profile-nav-link { display:block;padding:10px 14px;border-radius:6px;font-size:13px;font-weight:700;color:var(--muted);text-decoration:none;transition:.15s ease;text-align:left; }
.profile-nav-link:hover { background:var(--cream);color:var(--brown); }
.profile-nav-link.active { background:var(--brown);color:#fff; }
.profile-nav-link.active:hover { background:var(--brown-2); }
.profile-nav-logout { color:#a33;margin-top:8px; }
.profile-nav-logout:hover { background:#fff5f3;color:#a33; }
.profile-badge { display:inline-block;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--line);color:var(--brown);font-size:11px;font-weight:800;text-align:center;line-height:20px; }
.profile-main h3 { margin:0 0 16px;font-family:"Cormorant Garamond",Georgia,serif;font-size:24px;color:var(--brown); }
.order-list { display:flex;flex-direction:column;gap:12px; }
.order-card { display:block;background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px 20px;text-decoration:none;transition:.15s ease; }
.order-card:hover { border-color:var(--brown);box-shadow:0 4px 16px rgba(90,45,31,.06); }
.order-card-header { display:flex;justify-content:space-between;margin-bottom:8px; }
.order-id { font-weight:800;font-size:14px;color:var(--brown); }
.order-date { font-size:12px;color:var(--muted); }
.order-card-items { font-size:13px;color:var(--muted);margin-bottom:10px;line-height:1.5; }
.order-card-footer { display:flex;justify-content:space-between;align-items:center; }
.order-status { display:inline-block;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em; }
.status-pending { background:#fef3cd;color:#856404; }
.status-confirmed { background:#d1ecf1;color:#0c5460; }
.status-shipped { background:#cce5ff;color:#004085; }
.status-delivered { background:#d4edda;color:#155724; }
.status-cancelled { background:#f8d7da;color:#721c24; }
.order-total { font-weight:900;font-size:16px;color:var(--brown); }
.profile-empty { text-align:center;padding:40px 20px;background:#fff;border:1px dashed var(--line);border-radius:10px; }
.profile-empty p { margin:0;color:var(--muted); }
.address-list { display:grid;grid-template-columns:repeat(2,1fr);gap:14px; }
.address-card { background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 18px; }
.address-card-header { display:flex;align-items:center;gap:8px;margin-bottom:6px; }
.address-card p { margin:2px 0;font-size:13px;color:var(--muted);line-height:1.5; }
.address-default { display:inline-block;padding:2px 8px;border-radius:999px;background:var(--cream);color:var(--gold);font-size:10px;font-weight:800;text-transform:uppercase; }

/* ── Account Nav Avatar ─────────────────────────────── */
.account-avatar { display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--brown);color:#fff;font-size:11px;font-weight:800; }

/* ── Checkout Page ──────────────────────────────────── */
.checkout-steps { display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:36px; }
.checkout-step { display:flex;align-items:center;gap:8px;opacity:.4;transition:.2s ease; }
.checkout-step.active { opacity:1; }
.step-num { width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800;background:var(--line);color:var(--muted);transition:.2s ease; }
.checkout-step.active .step-num { background:var(--brown);color:#fff; }
.step-label { font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted); }
.checkout-step.active .step-label { color:var(--brown); }
.step-divider { width:60px;height:2px;background:var(--line);margin:0 12px; }
.checkout-layout { display:grid;grid-template-columns:1fr 380px;gap:40px;align-items:start; }
.checkout-section { background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px;margin-bottom:20px; }
.section-header { display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px; }
.section-header-left { display:flex;align-items:flex-start;gap:12px; }
.section-icon { font-size:24px;line-height:1;margin-top:2px; }
.section-header h3 { margin:0;font-family:"Cormorant Garamond",Georgia,serif;font-size:22px;color:var(--brown); }
.section-subtitle { margin:2px 0 0;font-size:13px;color:var(--muted); }
.saved-addresses-label { font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 12px; }
.address-grid { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.addr-card { cursor:pointer; }
.addr-card input { display:none; }
.addr-card-inner { display:flex;gap:12px;padding:18px;border:2px solid var(--line);border-radius:10px;transition:.2s ease;background:#fff; }
.addr-card:hover .addr-card-inner { border-color:var(--brown-2); }
.addr-card.selected .addr-card-inner { border-color:var(--brown);background:linear-gradient(135deg,#fffaf4,#fff8f0); }
.addr-check { flex-shrink:0;color:var(--line);transition:.2s ease;margin-top:1px; }
.addr-card.selected .addr-check { color:var(--brown); }
.addr-dot { opacity:0;transition:.2s ease; }
.addr-card.selected .addr-dot { opacity:1; }
.addr-content { flex:1;min-width:0; }
.addr-header { display:flex;align-items:center;gap:8px;margin-bottom:6px; }
.addr-name { font-size:14px;font-weight:800;color:var(--brown); }
.addr-badge { display:inline-block;padding:2px 8px;border-radius:999px;background:var(--gold-soft);color:var(--brown);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em; }
.addr-text { margin:0;font-size:13px;color:var(--muted);line-height:1.5; }
.addr-phone { margin:4px 0 0;font-size:12px;color:var(--brown-2);font-weight:600; }
.address-toggle-row { padding-top:4px; }
.address-toggle-btn { display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border:2px dashed var(--line);border-radius:8px;background:transparent;color:var(--brown);font-size:13px;font-weight:700;cursor:pointer;transition:.2s ease; }
.address-toggle-btn:hover { border-color:var(--brown);background:var(--cream); }
.toggle-icon { font-size:18px;font-weight:400;line-height:1;width:20px;text-align:center; }
.new-address-form { margin-top:20px;padding-top:20px;border-top:1px solid var(--line); }
.new-address-form.collapsed { display:none; }
.new-address-header { display:flex;align-items:center;gap:10px;margin-bottom:18px; }
.new-address-icon { font-size:20px; }
.new-address-header p { margin:0;font-size:14px;color:var(--muted); }
.addr-form-grid { display:grid;grid-template-columns:1fr 1fr;gap:14px; }
.addr-form-grid-3 { grid-template-columns:1fr 1fr 1fr; }
.form-field { margin-bottom:14px; }
.form-field:last-child { margin-bottom:0; }
.form-field label { display:block;margin-bottom:5px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--brown-2); }
.req { color:#d85a45; }
.form-field input { width:100%;height:44px;border:1px solid var(--line);border-radius:8px;padding:0 14px;font-size:14px;color:var(--ink);background:#fff;transition:.2s ease; }
.form-field input::placeholder { color:#c4b5ad; }
.form-field input:focus { border-color:var(--brown);outline:none;box-shadow:0 0 0 3px rgba(90,45,31,.06);background:#fffdf9; }
.payment-options { display:flex;flex-direction:column;gap:10px; }
.payment-option { cursor:pointer; }
.payment-option input { display:none; }
.payment-card { display:flex;align-items:center;gap:14px;padding:18px;border:2px solid var(--line);border-radius:10px;transition:.2s ease; }
.payment-option:hover .payment-card { border-color:var(--brown-2); }
.payment-option.selected .payment-card { border-color:var(--brown);background:linear-gradient(135deg,#fffaf4,#fff8f0); }
.payment-icon { font-size:28px;flex-shrink:0; }
.payment-info { flex:1; }
.payment-info strong { display:block;font-size:14px;color:var(--brown);margin-bottom:1px; }
.payment-info p { margin:0;font-size:12px;color:var(--muted); }
.payment-check { flex-shrink:0;color:var(--line);transition:.2s ease; }
.payment-option.selected .payment-check { color:var(--brown); }
.pay-dot { opacity:0;transition:.2s ease; }
.payment-option.selected .pay-dot { opacity:1; }
.notes-textarea { width:100%;border:1px solid var(--line);border-radius:8px;padding:14px;font-size:14px;color:var(--ink);resize:vertical;min-height:80px;font-family:inherit;transition:.2s ease; }
.notes-textarea::placeholder { color:#c4b5ad; }
.notes-textarea:focus { border-color:var(--brown);outline:none;box-shadow:0 0 0 3px rgba(90,45,31,.06);background:#fffdf9; }
.checkout-summary { background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px;position:sticky;top:100px; }
.checkout-summary h3 { margin:0 0 16px;font-family:"Cormorant Garamond",Georgia,serif;font-size:20px;color:var(--brown); }
.checkout-items { margin-bottom:12px; }
.checkout-item { display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px; }
.checkout-item:last-child { border-bottom:0; }
.checkout-item-info { display:flex;gap:8px;align-items:baseline; }
.checkout-item-name { font-weight:600;color:var(--ink); }
.checkout-item-qty { color:var(--muted);font-size:12px; }
.checkout-item-price { font-weight:800;color:var(--brown); }
.place-order-btn { font-size:14px !important;letter-spacing:.04em !important;height:56px !important; }

/* ── Order Detail ───────────────────────────────────── */
.order-detail-layout { display:grid;grid-template-columns:1fr 360px;gap:40px;align-items:start; }
.order-header-card { background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px 24px;display:flex;justify-content:space-between;align-items:center;margin-bottom:20px; }
.order-header-info { display:flex;align-items:center;gap:14px; }
.order-header-total { font-size:16px;color:var(--muted); }
.order-header-total strong { color:var(--brown);font-size:20px; }
.order-items { display:flex;flex-direction:column; }
.order-item { display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line); }
.order-item:last-child { border-bottom:0; }
.order-item-info { display:flex;flex-direction:column;gap:2px; }
.order-item-name { font-weight:700;font-size:14px;color:var(--ink); }
.order-item-qty { font-size:12px;color:var(--muted); }
.order-item-price { font-weight:800;color:var(--brown);font-size:15px; }
.order-address { font-size:14px;color:var(--muted);line-height:1.7; }
.order-address strong { color:var(--ink); }
.order-payment-method { font-size:14px;font-weight:700;color:var(--brown); }

/* ── Order Confirmation ─────────────────────────────── */
.confirmation-page { text-align:center;padding:80px 20px;max-width:560px;margin:0 auto; }
.confirmation-icon { width:80px;height:80px;margin:0 auto 24px;border-radius:50%;background:var(--brown);color:#fff;font-size:36px;display:grid;place-items:center; }
.confirmation-page h1 { margin:0 0 8px;font-family:"Cormorant Garamond",Georgia,serif;font-size:42px;color:var(--brown); }
.confirmation-subtitle { margin:0 0 28px;font-size:16px;color:var(--muted); }
.confirmation-details { background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px 24px;text-align:left;margin-bottom:24px; }
.confirmation-row { display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted); }
.confirmation-row:last-child { border-bottom:0; }
.confirmation-row strong { color:var(--brown); }
.confirmation-message { font-size:14px;color:var(--muted);margin-bottom:28px; }
.confirmation-actions { display:flex;gap:12px;justify-content:center; }

/* ── 1200px – small desktop / large tablet ─────────── */
@media (max-width: 1200px) {
  .product-grid.small { grid-template-columns:repeat(4,1fr); }
  .footer-grid { grid-template-columns:1.4fr repeat(3,1fr); gap:28px; }
}

/* ── 1000px – tablet ──────────────────────────────── */
@media (max-width: 1000px) {
  .nav-inner {
    grid-template-columns: 1fr auto;
    gap: 12px;
    padding: 14px 0;
  }
  .brand { font-size:26px; letter-spacing:2px; }

  .menu-toggle { display:inline-grid; }
  .menu {
    display:none;
    grid-column:1/-1;
    grid-template-columns:1fr;
    align-items:stretch;
    padding:12px 0 16px;
    gap:0;
    background:#fff;
    border-radius:0 0 10px 10px;
  }
  .menu.open { display:grid; }
  .menu a {
    padding:13px 0;
    font-size:14px;
    border-bottom:1px solid var(--line);
    text-align:left;
  }
  .menu a:last-child { border-bottom:0; }

  .nav-actions {
    grid-column:1/-1;
    justify-content:flex-start;
    flex-wrap:nowrap;
    gap:10px;
  }
  .search-form { flex:1; }
  .search { width:100%; }

  .hero-grid { grid-template-columns:1fr; }
  .hero-photo { min-height:380px; }

  .category-row { grid-template-columns:repeat(4,1fr); }

  .product-grid { grid-template-columns:repeat(3,1fr); }
  .product-grid.small { grid-template-columns:repeat(3,1fr); }
  .promo-grid { grid-template-columns:repeat(2,1fr); }
  .benefit-grid { grid-template-columns:repeat(3,1fr); }
  .footer-grid { grid-template-columns:repeat(2,1fr); }

  .profile-layout { grid-template-columns:220px 1fr; gap:28px; }
  .checkout-layout { grid-template-columns:1fr 320px; gap:28px; }
  .order-detail-layout { grid-template-columns:1fr 300px; gap:28px; }
}

/* ── 768px – small tablet / large phone ───────────── */
@media (max-width: 768px) {
  section { padding:42px 0; }

  .quick-view-modal { padding:12px; }
  .quick-view-body { grid-template-columns:1fr; }
  .quick-view-media img { min-height:320px;max-height:42vh; }
  .quick-view-content { padding:24px 20px 22px; }
  .quick-view-content h2 { font-size:32px; }
  .quick-view-actions { grid-template-columns:1fr; }

  .hero-copy { padding:48px 0; }
  .hero-photo { min-height:320px; }
  .hero h1 { font-size:clamp(40px, 8vw, 64px); }
  .hero p { font-size:18px; }

  .category-row { grid-template-columns:repeat(4,1fr); gap:14px; }
  .category-card img { width:100px; height:100px; }

  .product-grid { grid-template-columns:repeat(2,1fr); gap:16px; }
  .product-grid.small { grid-template-columns:repeat(2,1fr); }
  .promo-grid { grid-template-columns:1fr 1fr; gap:14px; }
  .promo-card { min-height:280px; padding:24px 20px; }
  .promo-card h3 { font-size:28px; }

  .benefit-grid { grid-template-columns:repeat(2,1fr); gap:14px; }

  .gift-banner { min-height:200px; padding:32px 32px; }
  .gift-banner h2 { font-size:42px; }

  .footer-grid { grid-template-columns:repeat(2,1fr); gap:28px; }

  .profile-layout { grid-template-columns:1fr; }
  .profile-sidebar { position:static; }
  .profile-nav { flex-direction:row; flex-wrap:wrap; gap:6px; justify-content:center; }
  .profile-nav-link { text-align:center; flex:1; min-width:80px; }

  .checkout-layout { grid-template-columns:1fr; }
  .checkout-summary { position:static; }
  .checkout-section { padding:22px; }
  .address-grid { grid-template-columns:1fr 1fr; }
  .addr-form-grid { grid-template-columns:1fr 1fr; }
  .addr-form-grid-3 { grid-template-columns:1fr 1fr 1fr; }

  .order-detail-layout { grid-template-columns:1fr; }
  .order-header-card { flex-direction:column; gap:12px; align-items:flex-start; }

  .auth-card { padding:32px 28px; }
  .auth-header h1 { font-size:32px; }
  .auth-form .form-row { grid-template-columns:1fr 1fr; }

  .confirmation-page { padding:50px 20px; }
  .confirmation-page h1 { font-size:36px; }
  .confirmation-actions { flex-direction:column; }
  .confirmation-actions .btn { width:100%; }

  .product-info { padding:14px; }
}

/* ── 640px – mobile ───────────────────────────────── */
@media (max-width: 640px) {
  .top-strip .container {
    gap:8px;
    flex-direction:column;
    text-align:center;
    font-size:12px;
    padding:8px 0;
  }

  .brand { font-size:24px; letter-spacing:2px; }
  .menu { gap:0; }
  .nav-actions { gap:8px; flex-wrap:nowrap; }
  .search { height:38px; font-size:12px; }

  .icon-btn { font-size:20px; }

  .hero { background:linear-gradient(180deg,#fff4ec 0%,#fffdf9 100%); }
  .hero-copy { padding:36px 0; }
  .hero h1 { font-size:clamp(36px, 10vw, 52px); }
  .hero p { font-size:16px; margin:18px 0 28px; }
  .hero-photo { min-height:260px; }
  .hero-dot { width:10px; height:10px; }
  .hero-dots { bottom:16px; }

  .category-row,
  .product-grid,
  .product-grid.small { grid-template-columns:1fr 1fr; gap:12px; }
  .category-card { font-size:11px; }
  .category-card img { width:80px; height:80px; }

  .promo-grid { grid-template-columns:1fr; }
  .promo-card { min-height:240px; }
  .promo-card h3 { font-size:26px; }
  .promo-card p { max-width:100%; }

  .benefit-grid { grid-template-columns:1fr; gap:12px; }
  .benefit { gap:10px; }

  .gift-banner { padding:28px 20px; border-radius:8px; }
  .gift-banner h2 { font-size:34px; }
  .gift-banner p { font-size:15px; }

  .footer-grid { grid-template-columns:1fr; gap:28px; }

  .section-title h2 { font-size:clamp(32px, 6vw, 44px); }
  section { padding:36px 0; }

  .product-info { padding:12px; }
  .product-info h3 { font-size:13px; }
  .price { font-size:16px; gap:6px; flex-wrap:wrap; }
  .rating { font-size:12px; }
  .hallmark { font-size:11px; }
  .product-brand { font-size:11px; }

  .btn { min-height:46px; padding:0 22px; font-size:12px; }
  .tabs { gap:8px; margin-bottom:24px; }
  .tab { min-width:72px; height:36px; padding:0 14px; font-size:11px; }

  .copyright { flex-direction:column; text-align:center; gap:8px; }

  /* Profile */
  .profile-layout { grid-template-columns:1fr; gap:20px; }
  .profile-sidebar { position:static; padding:20px; }
  .profile-avatar { width:52px; height:52px; font-size:20px; }
  .profile-sidebar h3 { font-size:16px; }
  .profile-nav { flex-direction:column; }
  .profile-nav-link { text-align:left; }
  .profile-main h3 { font-size:20px; }
  .order-card { padding:14px; }
  .address-list { grid-template-columns:1fr; }

  /* Checkout */
  .checkout-layout { grid-template-columns:1fr; gap:20px; }
  .checkout-summary { position:static; padding:22px; }
  .checkout-section { padding:18px; border-radius:10px; }
  .checkout-steps { margin-bottom:24px; }
  .step-divider { width:28px; margin:0 6px; }
  .step-label { font-size:10px; letter-spacing:.02em; }
  .step-num { width:28px; height:28px; font-size:11px; }
  .section-header h3 { font-size:18px; }
  .section-subtitle { font-size:12px; }
  .address-grid { grid-template-columns:1fr; }
  .addr-card-inner { padding:14px; }
  .addr-form-grid { grid-template-columns:1fr; }
  .addr-form-grid-3 { grid-template-columns:1fr; }
  .payment-card { padding:14px; gap:10px; }
  .payment-icon { font-size:24px; }
  .place-order-btn { height:48px !important; }

  /* Order Detail */
  .order-detail-layout { grid-template-columns:1fr; gap:20px; }
  .order-header-card { flex-direction:column; gap:10px; align-items:flex-start; padding:16px; }
  .order-header-total { font-size:14px; }
  .order-header-total strong { font-size:18px; }
  .order-item { padding:10px 0; }
  .checkout-section h3 { font-size:18px; }

  /* Auth */
  .auth-page { padding-top:30px; }
  .auth-card { padding:28px 20px; border-radius:10px; }
  .auth-header h1 { font-size:28px; }
  .auth-header p { font-size:13px; }
  .auth-form .form-row { grid-template-columns:1fr; }
  .auth-form input { height:42px; }

  /* Confirmation */
  .confirmation-page { padding:40px 16px; }
  .confirmation-icon { width:64px; height:64px; font-size:28px; }
  .confirmation-page h1 { font-size:30px; }
  .confirmation-subtitle { font-size:14px; }
  .confirmation-details { padding:16px; }
  .confirmation-row { font-size:13px; padding:8px 0; }
}

/* ── 480px – small phone ──────────────────────────── */
@media (max-width: 480px) {
  .container { width:min(var(--container), calc(100% - 20px)); }

  .quick-view-panel { max-height:92vh; }
  .quick-view-close { top:12px; right:12px; width:36px; height:36px; font-size:24px; }
  .quick-view-content h2 { font-size:28px; }
  .quick-view-description { font-size:14px; }

  .top-strip .container { font-size:11px; padding:6px 0; }
  .brand { font-size:22px; letter-spacing:1px; }
  .nav-actions { flex-wrap:wrap; gap:6px; }
  .search { height:36px; font-size:11px; padding:0 10px; }

  .hero-copy { padding:28px 0; }
  .hero h1 { font-size:clamp(30px, 9vw, 44px); }
  .hero p { font-size:14px; margin:14px 0 24px; }
  .hero-photo { min-height:200px; }

  .category-row { grid-template-columns:repeat(4,1fr); gap:8px; }
  .category-card { font-size:10px; font-weight:800; }
  .category-card img { width:68px; height:68px; margin-bottom:8px; }

  .product-grid,
  .product-grid.small { grid-template-columns:1fr 1fr; gap:10px; }
  .product-card { border-radius:8px; }
  .product-card img { aspect-ratio:1/1; }
  .product-info { padding:10px; }
  .product-info h3 { font-size:12px; margin-bottom:6px; }
  .price { font-size:14px; gap:4px; }
  .price small { font-size:10px; }
  .quick-view-trigger,
  .add-cart { min-height:34px; font-size:10px; margin-top:10px; }
  .wish { width:28px; height:28px; font-size:16px; top:8px; right:8px; }

  .promo-card { min-height:200px; padding:20px 16px; }
  .promo-card h3 { font-size:22px; margin-bottom:8px; }
  .promo-card p { font-size:13px; margin-bottom:16px; }
  .promo-card .btn { min-height:40px; padding:0 18px; }

  .gift-banner { min-height:auto; padding:24px 16px; }
  .gift-banner h2 { font-size:28px; }
  .gift-banner p { font-size:14px; margin-bottom:16px; }

  section { padding:30px 0; }
  .section-title { margin-bottom:20px; }

  .tabs { gap:6px; margin-bottom:20px; flex-wrap:wrap; justify-content:center; }
  .tab { min-width:auto; height:32px; padding:0 12px; font-size:10px; border-radius:999px; }

  .btn { min-height:42px; padding:0 18px; font-size:11px; border-radius:3px; }

  /* Checkout */
  .checkout-steps { margin-bottom:20px; }
  .step-num { width:26px; height:26px; font-size:10px; }
  .step-label { font-size:9px; }
  .step-divider { width:20px; margin:0 4px; }
  .checkout-section { padding:16px; border-radius:8px; }
  .section-header h3 { font-size:16px; }
  .section-header-left { gap:8px; }
  .section-icon { font-size:20px; }
  .section-subtitle { font-size:11px; }
  .saved-addresses-label { font-size:10px; }
  .addr-card-inner { padding:12px; gap:10px; border-radius:8px; }
  .addr-name { font-size:13px; }
  .addr-text { font-size:12px; }
  .addr-phone { font-size:11px; }
  .addr-badge { font-size:8px; padding:1px 6px; }
  .addr-check svg { width:16px; height:16px; }
  .form-field label { font-size:10px; }
  .form-field input { height:40px; font-size:13px; padding:0 12px; }
  .payment-card { padding:12px; gap:8px; border-radius:8px; }
  .payment-icon { font-size:22px; }
  .payment-info strong { font-size:13px; }
  .payment-info p { font-size:11px; }
  .payment-check svg { width:18px; height:18px; }
  .notes-textarea { padding:12px; font-size:13px; min-height:60px; }
  .checkout-summary { padding:18px; border-radius:10px; }
  .checkout-summary h3 { font-size:18px; margin-bottom:12px; }
  .checkout-item { font-size:12px; padding:6px 0; }
  .place-order-btn { height:44px !important; font-size:12px !important; }

  /* Auth */
  .auth-card { padding:24px 16px; }
  .auth-header h1 { font-size:26px; }
  .auth-form .form-group { margin-bottom:12px; }
  .auth-form input { height:40px; }
  .auth-switch { font-size:13px; margin-top:18px; }

  /* Profile */
  .profile-sidebar { padding:16px; }
  .profile-avatar { width:44px; height:44px; font-size:18px; }
  .profile-sidebar h3 { font-size:15px; }
  .profile-email { font-size:12px; }
  .profile-nav-link { padding:8px 12px; font-size:12px; }
  .order-card { padding:12px; }
  .order-id { font-size:13px; }
  .order-date { font-size:11px; }
  .order-card-items { font-size:12px; }
  .order-total { font-size:14px; }
  .order-status { font-size:10px; padding:3px 8px; }

  /* Order Detail */
  .order-header-card { padding:14px; }
  .checkout-section h3 { font-size:16px; }
  .order-address { font-size:13px; }
  .order-payment-method { font-size:13px; }

  /* Confirmation */
  .confirmation-icon { width:56px; height:56px; font-size:24px; margin-bottom:16px; }
  .confirmation-page h1 { font-size:26px; }
  .confirmation-subtitle { font-size:13px; }
  .confirmation-actions { gap:10px; }

  /* Toast */
  .toast { left:16px; right:16px; max-width:none; font-size:12px; padding:12px 14px; }
}
