:root {
  --background: #fbfaf6;
  --surface: #ffffff;
  --surface-soft: #f4f0e8;
  --text: #2f302c;
  --muted: #686961;
  --border: #e4ded4;
  --primary: #31332f;
  --accent: #8c5f6d;
  --sage: #6f7f6a;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--background);
  color: var(--text);
  font-family: "DM Sans", sans-serif;
}

body.modal-open {
  overflow: hidden;
}

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

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

button,
a {
  -webkit-tap-highlight-color: transparent;
}

img {
  max-width: 100%;
}

.announcement {
  padding: 0.65rem 1rem;
  background: var(--sage);
  color: white;
  text-align: center;
  font-size: 0.84rem;
  letter-spacing: 0.03em;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 82px;
  padding: 0 5vw;
  border-bottom: 1px solid var(--border);
  background: rgba(251, 250, 246, 0.95);
  backdrop-filter: blur(10px);
}

.brand {
  justify-self: start;
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
  font-family: "Playfair Display", serif;
  font-size: 1.45rem;
  font-weight: 700;
}

.brand small {
  font-family: "DM Sans", sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.22em;
}

.nav {
  display: flex;
  align-items: center;
  gap: 2rem;
  font-size: 0.92rem;
}

.nav a:hover,
.shop-toggle:hover {
  color: var(--accent);
}

.menu-btn,
.cart-btn,
.shop-toggle {
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font-weight: 700;
}

.menu-btn {
  display: none;
  justify-self: center;
  font-size: 1.4rem;
}

.cart-btn {
  justify-self: end;
}

.cart-btn span {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  margin-left: 0.35rem;
  border-radius: 50%;
  background: var(--accent);
  color: white;
  font-size: 0.75rem;
}

.shop-dropdown {
  position: relative;
}

.shop-menu {
  position: absolute;
  top: calc(100% + 1rem);
  left: 50%;
  display: none;
  min-width: 210px;
  padding: 0.6rem;
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: 0 18px 45px rgba(40, 36, 32, 0.14);
  transform: translateX(-50%);
}

.shop-dropdown.open .shop-menu {
  display: grid;
}

.shop-menu a {
  padding: 0.65rem 0.75rem;
}

.shop-menu a:hover {
  background: var(--surface-soft);
}

.hero {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items: center;
  gap: 6vw;
  min-height: 670px;
  padding: 7vw;
  background: linear-gradient(115deg, #f7efe8 0%, #fbfaf6 55%, #edf1e9 100%);
}

.eyebrow {
  margin: 0 0 0.5rem;
  color: #777168;
  font-size: 0.73rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.hero h1,
.section h2,
.feature-banner h2 {
  margin: 0.5rem 0 1.2rem;
  font-family: "Playfair Display", serif;
  line-height: 1.04;
}

.hero h1 {
  max-width: 760px;
  font-size: clamp(3.2rem, 7vw, 6.8rem);
}

.hero-text {
  max-width: 610px;
  color: #5f605a;
  font-size: 1.12rem;
  line-height: 1.75;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 2rem;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.95rem 1.35rem;
  border: 1px solid var(--primary);
  border-radius: 999px;
  cursor: pointer;
  font-weight: 700;
}

.btn.primary {
  background: var(--primary);
  color: white;
}

.btn.secondary {
  background: transparent;
  color: var(--primary);
}

.btn.full {
  width: 100%;
}

.hero-card {
  padding: 1rem;
  background: var(--surface);
  box-shadow: 0 24px 70px rgba(55, 50, 45, 0.13);
  transform: rotate(1.5deg);
}

.hero-card img {
  display: block;
  width: 100%;
  height: 470px;
  object-fit: cover;
}

.hero-card > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 0.25rem 0.25rem;
}

.hero-card span {
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.category-strip {
  display: flex;
  overflow-x: auto;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: var(--surface);
  scrollbar-width: thin;
}

.category-strip a {
  flex: 0 0 auto;
  min-width: 130px;
  padding: 1.2rem 1rem;
  border-right: 1px solid var(--border);
  text-align: center;
  font-size: 0.9rem;
  font-weight: 600;
}

.section {
  padding: 7rem 6vw;
}

.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 2.5rem;
}

.section h2,
.feature-banner h2 {
  font-size: clamp(2.5rem, 4.2vw, 4.5rem);
}

.filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.filter {
  padding: 0.65rem 1rem;
  border: 1px solid #d6d0c4;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
}

.filter.active {
  background: var(--primary);
  color: white;
}

.product-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}

.product-card {
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--surface);
}

.product-image-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: #f1eee8;
}

.product-image-wrap img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  cursor: pointer;
  transition: transform 0.35s ease;
}

.product-card:hover .product-image-wrap img {
  transform: scale(1.025);
}

.product-info {
  padding: 1.1rem;
}

.product-type {
  margin: 0 0 0.4rem;
  color: #777168;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.product-title {
  margin: 0.2rem 0 0.6rem;
  cursor: pointer;
  font-size: 1.05rem;
}

.price {
  margin: 0.8rem 0 1rem;
  font-weight: 700;
}

.product-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.product-category {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #f4f1ea;
  font-size: 0.72rem;
  text-transform: capitalize;
}

.badge {
  display: inline-block;
  margin-bottom: 0.8rem;
  padding: 0.4rem 0.65rem;
  border-radius: 999px;
  background: var(--accent);
  color: white;
  font-size: 0.72rem;
  font-weight: 700;
}

.view-details {
  width: 100%;
  padding: 0.8rem;
}

.feature-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  margin: 0 6vw;
  padding: 4.5rem;
  background: #dfe6dc;
}

.feature-banner p {
  max-width: 670px;
  line-height: 1.7;
}

.about {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  align-items: center;
  gap: 7vw;
}

.about-image {
  display: grid;
  place-items: center;
  min-height: 500px;
  background: linear-gradient(135deg, #e7d8d8, #e9eadf);
}

.monogram {
  font-family: "Playfair Display", serif;
  font-size: 7rem;
}

.monogram span {
  color: var(--accent);
  font-size: 3rem;
}

.about-copy p {
  color: #5c5e58;
  line-height: 1.8;
}

.signature {
  color: var(--text) !important;
  font-family: "Playfair Display", serif;
  font-size: 1.25rem;
}

.faq-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.faq-grid details {
  padding: 1.2rem;
  border: 1px solid var(--border);
  background: var(--surface);
}

.faq-grid summary {
  cursor: pointer;
  font-weight: 700;
}

.faq-grid p {
  color: #61635d;
  line-height: 1.7;
}

.contact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6vw;
  background: #f0ece4;
}

.contact-list {
  display: grid;
  gap: 0.6rem;
  margin-top: 1.5rem;
}

.contact-list p {
  margin: 0;
}

.contact-list a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.contact form,
.checkout-card form {
  display: grid;
  gap: 0.9rem;
}

.contact label,
.checkout-card label,
.quantity-select-label,
.size-select-label,
.color-select-label {
  display: grid;
  gap: 0.4rem;
  font-size: 0.86rem;
  font-weight: 700;
}

.contact input,
.contact textarea,
.checkout-card input,
.checkout-card textarea,
.checkout-card select,
.product-modal-details input,
.product-modal-details select {
  width: 100%;
  padding: 0.9rem;
  border: 1px solid #d5cfc4;
  background: white;
}

footer {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: start;
  gap: 2rem;
  padding: 3rem 6vw;
  background: var(--primary);
  color: white;
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
}

.copyright {
  grid-column: 1 / -1;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  color: #c9c9c4;
}

.cart-drawer {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 60;
  display: flex;
  flex-direction: column;
  width: min(430px, 92vw);
  height: 100%;
  background: white;
  box-shadow: -15px 0 50px rgba(0, 0, 0, 0.15);
  transform: translateX(105%);
  transition: transform 0.3s ease;
}

.cart-drawer.open {
  transform: translateX(0);
}

.cart-header,
.cart-footer {
  padding: 1.25rem;
  border-bottom: 1px solid var(--border);
}

.cart-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.cart-footer {
  border-top: 1px solid var(--border);
  border-bottom: 0;
}

.close-cart,
.modal-close,
#close-checkout {
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 2rem;
}

.cart-items {
  flex: 1;
  overflow: auto;
  padding: 1rem;
}

.cart-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid #ece8df;
}

.cart-item h4,
.cart-item p {
  margin: 0 0 0.3rem;
}

.cart-item button {
  border: 0;
  background: transparent;
  color: var(--accent);
  cursor: pointer;
  text-decoration: underline;
}

.subtotal {
  display: flex;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.cart-note {
  color: #777168;
  font-size: 0.76rem;
  text-align: center;
}

.overlay {
  position: fixed;
  inset: 0;
  z-index: 50;
  background: rgba(0, 0, 0, 0.35);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.overlay.show {
  opacity: 1;
  pointer-events: auto;
}

.product-modal,
.checkout-modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: none;
  align-items: center;
  justify-content: center;
  overflow-y: auto;
  padding: 1rem;
  background: rgba(0, 0, 0, 0.5);
}

.product-modal.open,
.checkout-modal.open {
  display: flex;
}

.product-modal-card,
.checkout-card {
  position: relative;
  width: min(980px, 100%);
  max-height: 92vh;
  overflow-y: auto;
  padding: 1.5rem;
  background: white;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.25);
}

.checkout-card {
  width: min(680px, 100%);
}

.modal-close,
#close-checkout {
  position: absolute;
  top: 0.7rem;
  right: 0.9rem;
  z-index: 2;
}

.product-modal-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 2rem;
}

.product-modal-image-wrap {
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: #f1eee8;
}

.product-modal-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.product-modal-thumbnails {
  display: flex;
  gap: 0.6rem;
  overflow-x: auto;
  margin-top: 0.8rem;
}

.product-modal-thumb {
  flex: 0 0 76px;
  width: 76px;
  height: 90px;
  padding: 0;
  border: 2px solid transparent;
  background: #f1eee8;
  cursor: pointer;
}

.product-modal-thumb.active {
  border-color: var(--primary);
}

.product-modal-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-modal-details {
  padding: 2rem 0;
}

.product-modal-details h2 {
  margin: 0.3rem 0 0.7rem;
  font-family: "Playfair Display", serif;
  font-size: clamp(2rem, 4vw, 3.4rem);
}

.product-modal-details > p {
  line-height: 1.7;
}

.preorder-info {
  margin: 1rem 0;
  padding: 0.9rem;
  background: #f7efe8;
  font-size: 0.86rem;
  line-height: 1.6;
}

#product-modal-colors,
#product-modal-sizes {
  margin: 1rem 0;
}

.checkout-card h2 {
  margin-top: 0.3rem;
  font-family: "Playfair Display", serif;
  font-size: 2.4rem;
}

.checkout-items {
  display: grid;
  gap: 0.6rem;
  margin-top: 1rem;
}

.checkout-line,
.checkout-total {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.checkout-total {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

#checkout-message {
  min-height: 1.2rem;
}

.hidden {
  display: none !important;
}

@media (max-width: 900px) {
  .site-header {
    grid-template-columns: auto 1fr auto;
  }

  .menu-btn {
    display: block;
  }

  .nav {
    position: absolute;
    top: 82px;
    right: 0;
    left: 0;
    display: none;
    flex-direction: column;
    align-items: stretch;
    padding: 1.2rem 6vw;
    border-bottom: 1px solid var(--border);
    background: var(--background);
  }

  .nav.open {
    display: flex;
  }

  .shop-menu {
    position: static;
    width: 100%;
    margin-top: 0.5rem;
    box-shadow: none;
    transform: none;
  }

  .hero,
  .about,
  .contact,
  .product-modal-grid {
    grid-template-columns: 1fr;
  }

  .hero {
    padding-top: 4rem;
  }

  .hero-card img {
    height: 420px;
  }

  .product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .feature-banner {
    align-items: flex-start;
    flex-direction: column;
  }

  .product-modal-details {
    padding: 0;
  }
}

@media (max-width: 600px) {
  .site-header {
    padding: 0 1rem;
  }

  .brand {
    font-size: 1.15rem;
  }

  .hero {
    padding: 3.5rem 1.2rem;
  }

  .hero h1 {
    font-size: 3.3rem;
  }

  .hero-card img {
    height: 360px;
  }

  .section {
    padding: 4.5rem 1.2rem;
  }

  .section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .product-grid,
  .faq-grid {
    grid-template-columns: 1fr;
  }

  .feature-banner {
    margin: 0 1.2rem;
    padding: 2.2rem;
  }

  .about-image {
    min-height: 320px;
  }

  .monogram {
    font-size: 5rem;
  }

  footer {
    grid-template-columns: 1fr;
  }

  .hero-actions .btn {
    width: 100%;
  }

  .product-modal-card,
  .checkout-card {
    padding: 1rem;
  }
}
.policy-page {
  max-width: 1100px;
  margin: 0 auto;
}

.policy-page h1 {
  margin: 0.5rem 0 1rem;
  font-family: "Playfair Display", serif;
  font-size: clamp(3rem, 6vw, 5.5rem);
}

.policy-list {
  display: grid;
  gap: 1.25rem;
}

.policy-card {
  padding: 2rem;
  border: 1px solid var(--border);
  background: var(--surface);
}

.policy-card h2 {
  margin-top: 0;
  font-family: "Playfair Display", serif;
  font-size: 2rem;
}

.policy-card p {
  color: var(--muted);
  line-height: 1.75;
}
/* ===== REED & TATUM CO. V2 ===== */
:root { --rt-ink:#241f21; --rt-blush:#f7e9ed; --rt-cream:#fffaf6; --rt-rose:#9c5d6c; --rt-border:#eadfe2; }
body { background: var(--rt-cream); color: var(--rt-ink); }
.site-header { position: sticky; top: 0; z-index: 40; backdrop-filter: blur(12px); background: rgba(255,250,246,.94); border-bottom: 1px solid var(--rt-border); }
.v2-hero { min-height: 620px; align-items: center; background: linear-gradient(135deg,#fffaf6 0%,#f8e8ec 100%); }
.hero-trust { display:flex; flex-wrap:wrap; gap:12px 20px; margin-top:22px; font-size:.92rem; color:#6f6064; }
.category-section { padding-top: 70px; }
.category-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.category-cards a { min-height:145px; padding:26px; border-radius:22px; border:1px solid var(--rt-border); background:white; display:flex; flex-direction:column; justify-content:flex-end; text-decoration:none; color:inherit; box-shadow:0 10px 30px rgba(64,43,49,.06); transition:.2s ease; }
.category-cards a:hover { transform:translateY(-4px); box-shadow:0 16px 36px rgba(64,43,49,.11); }
.category-cards span { font:700 1.35rem 'Playfair Display',serif; }
.category-cards small { margin-top:5px; color:#7b6a6f; }
.soft-section { background:#fbf2f4; border-radius:34px; margin-inline:auto; max-width:1400px; }
.text-link { font-weight:700; color:var(--rt-rose); text-decoration:none; }
.product-card { overflow:hidden; border:1px solid var(--rt-border); border-radius:22px; background:white; box-shadow:0 10px 28px rgba(55,37,42,.06); }
.product-image-wrap { position:relative; aspect-ratio:4/5; overflow:hidden; background:#f3ecee; }
.product-image-wrap img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.product-card:hover .product-image-wrap img { transform:scale(1.035); }
.product-card-badge { position:absolute; z-index:2; top:14px; left:14px; border-radius:999px; padding:7px 11px; background:#241f21; color:white; font-size:.76rem; font-weight:700; }
.badge-sale,.badge-almost-gone { background:#b44747; }
.badge-new-arrival,.badge-featured { background:#9c5d6c; }
.badge-preorder { background:#5e7b64; }
.original-price { text-decoration:line-through; color:#8b7c80; margin-right:6px; }
.sale-price { color:#b44747; font-weight:800; }
.price small { display:block; margin-top:4px; color:#b44747; }
.empty-state { padding:40px; text-align:center; border:1px dashed var(--rt-border); border-radius:18px; background:white; }
.shop-page { min-height:70vh; }
.shop-hero { padding:76px 6vw 48px; text-align:center; background:linear-gradient(135deg,#fffaf6,#f7e9ed); }
.shop-hero h1 { margin:.2rem 0; font-size:clamp(2.5rem,6vw,4.5rem); }
.shop-layout { display:grid; grid-template-columns:260px minmax(0,1fr); gap:34px; align-items:start; }
.shop-sidebar { position:sticky; top:110px; }
.shop-filter-panel { display:grid; gap:15px; padding:22px; border:1px solid var(--rt-border); border-radius:20px; background:white; }
.shop-filter-panel label { display:grid; gap:7px; font-weight:700; }
.shop-filter-panel input,.shop-filter-panel select { width:100%; padding:12px 13px; border:1px solid #dccfd3; border-radius:12px; background:#fff; }
.shop-results-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:24px; }
.filter-toggle { display:none; }
@media (max-width:900px){ .category-cards{grid-template-columns:repeat(2,minmax(0,1fr));}.shop-layout{grid-template-columns:1fr}.shop-sidebar{position:static}.filter-toggle{display:block;width:100%;padding:12px;margin-bottom:10px}.shop-filter-panel{display:none}.shop-filter-panel.open{display:grid}.v2-hero{min-height:auto} }
@media (max-width:560px){ .category-cards{grid-template-columns:1fr 1fr}.category-cards a{min-height:120px;padding:18px}.shop-results-heading{align-items:flex-start;flex-direction:column} }
.product-badge-stack{position:absolute;top:12px;left:12px;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.product-badge-stack .product-card-badge{position:static}.about-image img{width:100%;height:100%;min-height:420px;object-fit:cover;border-radius:inherit}.success-card{text-align:center;max-width:620px}.success-icon{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:#e5f3e8;font-size:2.3rem;font-weight:700}.matching-products{margin-top:30px;border-top:1px solid #ddd2c3;padding-top:20px}.matching-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.matching-grid .product-card{font-size:.9rem}.sold-out-size-note{margin-top:10px;padding:10px 12px;background:#f8eeee;border-radius:10px;font-size:.9rem}.checkout-card #request-message{margin-top:14px;font-weight:600}.hidden{display:none!important}
@media(max-width:650px){.matching-grid{grid-template-columns:1fr}.about-image img{min-height:280px}}
