:root {
  --ink: #171411;
  --black: #0d0b0a;
  --ivory: #f6f0e8;
  --paper: #fffdf9;
  --rose: #c88880;
  --blush: #e5c2bb;
  --line: #ded6cb;
  --muted: #746d66;
  --font-display: "Cormorant Garamond";
  --font-sans: "Manrope";
}

/* Commerce and operational admin */
.commerce-page { min-height: 70vh; padding: 90px 5vw 120px; background: var(--paper); color: var(--ink); }
.commerce-heading { max-width: 760px; margin-bottom: 55px; }
.commerce-heading h1 { margin: 6px 0 18px; font-family: var(--font-display), serif; font-size: clamp(52px, 7vw, 88px); font-weight: 500; line-height: .95; }
.commerce-heading > p:last-child { color: var(--muted); line-height: 1.7; }
.cart-layout, .checkout-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 48px; align-items: start; }
.cart-list { border-top: 1px solid var(--line); }
.cart-list article { display: grid; grid-template-columns: 120px minmax(0, 1fr) auto 110px; gap: 24px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--line); }
.cart-image { width: 120px; aspect-ratio: .82; position: relative; background: #eee7e1; overflow: hidden; }
.cart-image img { object-fit: cover; }
.cart-list h2 { margin: 0 0 8px; font-family: var(--font-display), serif; font-size: 24px; }
.cart-list p { margin: 0 0 12px; color: var(--muted); font-size: 11px; }
.cart-list article > div > button, .danger-link { padding: 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--rose-deep); cursor: pointer; font-size: 10px; }
.cart-list article > b { text-align: right; }
.cart-summary { padding: 30px; position: sticky; top: 120px; border: 1px solid var(--line); background: #fff; }
.cart-summary h2 { margin: 0 0 24px; font-family: var(--font-display), serif; font-size: 28px; font-weight: 500; }
.cart-summary p { display: flex; justify-content: space-between; gap: 20px; margin: 14px 0; font-size: 11px; }
.cart-summary p span:first-child { max-width: 210px; }
.cart-summary small { display: block; margin: 22px 0; color: var(--muted); font-size: 9px; line-height: 1.6; }
.cart-summary hr { border: 0; border-top: 1px solid var(--line); }
.cart-summary .summary-total { padding-top: 16px; border-top: 1px solid var(--line); font-size: 16px; }
.checkout-fields { display: grid; gap: 28px; }
.checkout-fields fieldset { padding: 28px; border: 1px solid var(--line); }
.checkout-fields legend { padding: 0 10px; font-family: var(--font-display), serif; font-size: 24px; }
.field-grid, .admin-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.field-grid label, .checkout-fields label, .admin-form-grid label, .admin-form-stack label, .media-admin-grid label, .admin-login label { display: grid; gap: 8px; color: #44383b; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.field-grid .wide, .admin-form-grid .wide { grid-column: 1 / -1; }
.field-grid input, .admin-form-grid input, .admin-form-grid select, .admin-form-grid textarea, .admin-form-stack input, .admin-form-stack select, .admin-form-stack textarea, .media-admin-grid input, .admin-filters input, .admin-filters select, .admin-login input, .variant-editor { width: 100%; padding: 13px 14px; border: 1px solid var(--line); background: white; color: var(--ink); font: inherit; font-size: 12px; text-transform: none; }
.method-picker { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.method-picker button { padding: 18px; border: 1px solid var(--line); background: white; text-align: left; cursor: pointer; }
.method-picker button.active { border-color: var(--rose-deep); box-shadow: inset 0 0 0 1px var(--rose-deep); }
.method-picker span { display: block; margin-top: 6px; color: var(--rose-deep); font-size: 10px; }
.terms-check { display: flex !important; grid-template-columns: auto 1fr; align-items: center; text-transform: none !important; }
.form-error { margin: 15px 0; padding: 12px; background: #f8e4e4; color: #8a2020; font-size: 11px; line-height: 1.5; }
.order-status-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; max-width: 900px; margin-bottom: 35px; }
.order-status-grid section { padding: 30px; border: 1px solid var(--line); background: white; }
.order-status-grid h2 { margin: 0 0 20px; font-family: var(--font-display), serif; font-size: 28px; }
.order-status-grid p { display: flex; justify-content: space-between; gap: 20px; padding: 12px 0; border-bottom: 1px solid var(--line); text-transform: capitalize; }
.order-status-grid small { display: block; margin-top: 5px; color: var(--muted); }
.admin-login { min-height: 100vh; display: grid; place-items: center; padding: 30px; background: #1a1115; }
.admin-login form { width: min(440px, 100%); display: grid; gap: 18px; padding: 48px; background: var(--paper); }
.admin-login h1 { margin: 0; font-family: var(--font-display), serif; font-size: 46px; }
.admin-login .wordmark { margin-bottom: 20px; color: var(--ink); }
.admin-sidebar nav a { display: flex; gap: 12px; padding: 13px 15px; color: #eadde1; border-radius: 4px; font-size: 11px; }
.admin-sidebar nav a:hover { background: rgba(255,255,255,.08); }
.admin-sidebar .sidebar-footer form { display: grid; gap: 8px; }
.admin-signout { width: 100%; padding: 8px !important; color: #dcb9c4 !important; font-size: 9px !important; text-transform: uppercase; }
.admin-header a.admin-primary { display: inline-flex; align-items: center; color: white; text-decoration: none; }
.admin-welcome a { color: white; }
.admin-card a { color: var(--rose-deep); }
.admin-filters { display: grid; grid-template-columns: minmax(220px, 1fr) repeat(2, 180px) auto; gap: 10px; margin-bottom: 20px; }
.admin-filters button { padding: 0 22px; border: 0; background: #2c1d22; color: white; cursor: pointer; }
.admin-product-table article { display: grid; grid-template-columns: 64px minmax(220px, 1fr) 100px 130px 70px; gap: 18px; align-items: center; padding: 15px 0; border-bottom: 1px solid var(--line); }
.admin-product-table article > div { display: grid; gap: 5px; }
.admin-product-table span { color: var(--muted); font-size: 9px; }
.admin-product-placeholder { width: 64px; height: 64px; display: grid !important; place-items: center; background: #261a1e; color: white; }
.product-state { width: max-content; padding: 6px 9px; border-radius: 999px; background: #eee; text-transform: capitalize; }
.product-state.active { background: #dcebdd; color: #27602e; }
.product-state.draft { background: #f2e6c9; color: #7d5c12; }
.admin-editor { display: grid; gap: 18px; }
.admin-editor > form { display: grid; gap: 20px; }
.admin-editor .admin-card { padding: 32px; }
.admin-help { color: var(--muted); font-size: 10px; line-height: 1.6; }
.variant-editor { min-height: 160px; font-family: Consolas, monospace; line-height: 1.7; }
.check-label { display: flex !important; grid-template-columns: auto 1fr; align-items: center; }
.media-admin-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.media-admin-grid article { display: grid; gap: 10px; padding: 12px; border: 1px solid var(--line); }
.media-thumb { aspect-ratio: 1; position: relative; background: #eee; }
.media-thumb img { object-fit: cover; }
.video-thumb { display: grid; place-items: center; }
.upload-field { display: grid; gap: 10px; margin-top: 22px; font-size: 10px; }
.admin-editor-actions { display: flex; gap: 12px; }
.danger-button { padding: 12px 18px; border: 1px solid #9c3232; background: transparent; color: #9c3232; cursor: pointer; }
.admin-success { padding: 13px; background: #dcebdd; color: #27602e; }
.order-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.detail-list p { display: flex; justify-content: space-between; gap: 20px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.detail-list p > span { color: var(--muted); }
.detail-list small { display: block; margin-top: 4px; }
.admin-form-stack { display: grid; gap: 16px; }
.timeline p { display: grid; gap: 4px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.timeline span { color: var(--muted); font-size: 9px; }
.admin-orders article { grid-template-columns: 150px minmax(240px,1fr) 100px 110px 120px 30px; }

@media (max-width: 850px) {
  .cart-layout, .checkout-layout, .order-status-grid, .order-detail-grid { grid-template-columns: 1fr; }
  .cart-summary { position: static; }
  .cart-list article { grid-template-columns: 85px minmax(0, 1fr) auto; gap: 14px; }
  .cart-image { width: 85px; }
  .cart-list article > b { grid-column: 2 / -1; }
  .field-grid, .admin-form-grid, .method-picker { grid-template-columns: 1fr; }
  .field-grid .wide, .admin-form-grid .wide { grid-column: auto; }
  .commerce-page { padding: 60px 18px 80px; }
  .admin-filters, .admin-product-table article, .admin-orders article { grid-template-columns: 1fr; }
  .media-admin-grid { grid-template-columns: 1fr; }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--font-sans), Arial, sans-serif;
}
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
img { object-fit: cover; }
.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;
}

.announcement {
  min-height: 34px;
  padding: 7px 4.5vw;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--black);
  color: #f3e8de;
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.announcement a { border-bottom: 1px solid #796c65; }
.site-header {
  height: 86px;
  padding: 0 4.5vw;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  background: var(--paper);
  border-bottom: 1px solid rgba(23, 20, 17, .09);
  position: relative;
  z-index: 20;
}
.wordmark {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: max-content;
}
.wordmark > span:last-child {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: .8;
}
.wordmark b {
  font-family: var(--font-display), Georgia, serif;
  font-size: 27px;
  font-style: italic;
  font-weight: 600;
}
.wordmark small {
  margin-top: 8px;
  font-size: 8px;
  letter-spacing: .27em;
  text-transform: uppercase;
}
.wordmark-monogram {
  width: 42px;
  height: 42px;
  border: 1px solid var(--rose);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--rose);
  font-family: var(--font-display), serif;
  font-size: 17px;
  font-weight: 600;
}
.main-nav {
  display: flex;
  gap: 35px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
}
.main-nav a { position: relative; }
.main-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -8px;
  height: 1px;
  background: var(--rose);
  transition: right .25s ease;
}
.main-nav a:hover::after { right: 0; }
.header-actions {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 13px;
}
.search-field {
  width: 115px;
  display: flex;
  align-items: center;
  gap: 4px;
  border-bottom: 1px solid var(--line);
}
.search-field input {
  width: 100%;
  padding: 7px 3px;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: 11px;
}
.icon { font-size: 18px; line-height: 1; }
.header-icon, .bag-button, .menu-button {
  border: 0;
  background: transparent;
  cursor: pointer;
}
.header-icon { padding: 8px; }
.bag-button {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
}
.bag-button b {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: white;
  background: var(--rose);
  font-size: 9px;
}
.menu-button { display: none; }
.mobile-drawer-header,
.mobile-drawer-intro,
.mobile-drawer-footer { display: none; }

.hero {
  height: min(720px, calc(100vh - 120px));
  min-height: 570px;
  position: relative;
  overflow: hidden;
  background: var(--ivory);
}
.hero-image { object-position: center center; }
.hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(19,15,12,.16), transparent 52%);
}
.hero-content {
  width: 50%;
  position: absolute;
  z-index: 2;
  left: 7vw;
  top: 50%;
  transform: translateY(-52%);
}
.eyebrow {
  margin: 0 0 18px;
  color: #7e504b;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .21em;
  text-transform: uppercase;
}
.dark-text { color: #8a5a54; }
.hero h1,
.section-heading h2,
.collection-copy h2,
.care-section h2,
.consultation h2,
.panel-content h2,
.drawer-header h2,
.order-success h2,
.checkout-brand h2 {
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-weight: 500;
  line-height: .88;
}
.hero h1 { font-size: clamp(64px, 7.4vw, 110px); }
.hero h1 em { color: #9b5f59; font-weight: 400; }
.hero-copy {
  max-width: 410px;
  margin: 32px 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: 21px;
  line-height: 1.4;
}
.button-row { display: flex; align-items: center; gap: 28px; }
.button {
  min-height: 48px;
  padding: 0 22px;
  border: 1px solid var(--ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  cursor: pointer;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: .2s ease;
}
.button.dark { color: white; background: var(--black); }
.button.dark:hover { background: #3a2c28; }
.button.outline:hover { color: white; background: var(--black); }
.button.full { width: 100%; }
.text-link {
  padding: 8px 0;
  border: 0;
  border-bottom: 1px solid #6d5b54;
  background: transparent;
  cursor: pointer;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.text-link span { margin-left: 16px; }
.hero-note {
  position: absolute;
  right: 3vw;
  bottom: 3vw;
  display: flex;
  gap: 15px;
  align-items: center;
  padding: 14px 18px;
  background: rgba(255,253,249,.86);
  backdrop-filter: blur(10px);
}
.hero-note > span {
  color: var(--rose);
  font-family: var(--font-display), serif;
  font-size: 24px;
}
.hero-note p { margin: 0; font-size: 9px; text-transform: uppercase; letter-spacing: .1em; line-height: 1.6; }
.hero-note b { display: block; }

.trust-strip {
  padding: 22px 4.5vw;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-bottom: 1px solid var(--line);
}
.trust-strip article {
  padding: 0 24px;
  display: flex;
  gap: 14px;
  align-items: center;
  border-right: 1px solid var(--line);
}
.trust-strip article:first-child { padding-left: 0; }
.trust-strip article:last-child { border: 0; }
.trust-strip .icon { color: var(--rose); font-size: 22px; }
.trust-strip b, .trust-strip span { display: block; }
.trust-strip b { font-family: var(--font-display), serif; font-size: 16px; }
.trust-strip article div span { margin-top: 3px; color: var(--muted); font-size: 9px; }

.shop-section { padding: 110px 4.5vw 120px; }
.section-heading {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  align-items: end;
  gap: 80px;
}
.section-heading h2, .collection-copy h2, .care-section h2, .consultation h2 {
  font-size: clamp(50px, 5.2vw, 74px);
}
.section-heading > p {
  max-width: 460px;
  margin: 0 0 4px;
  color: var(--muted);
  font-family: var(--font-display), serif;
  font-size: 18px;
  line-height: 1.5;
}
.shop-toolbar {
  margin: 55px 0 26px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.filter-pills { display: flex; gap: 28px; }
.filter-pills button {
  padding: 14px 1px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  cursor: pointer;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.filter-pills button.active { color: var(--ink); border-color: var(--rose); }
.shop-toolbar > span { color: var(--muted); font-size: 10px; }
.product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.product-card { min-width: 0; }
.product-image {
  width: 100%;
  aspect-ratio: .78;
  padding: 0;
  border: 0;
  position: relative;
  overflow: hidden;
  background: #ddd4ca;
  cursor: pointer;
}
.product-image img { transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.product-image:hover img { transform: scale(1.025); }
.badge {
  position: absolute;
  left: 12px;
  top: 12px;
  padding: 7px 9px;
  color: white;
  background: rgba(16,13,11,.86);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.quick-add {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  min-height: 42px;
  display: grid;
  place-items: center;
  color: white;
  background: rgba(14,11,10,.92);
  opacity: 0;
  transform: translateY(8px);
  transition: .25s ease;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.product-image:hover .quick-add, .product-image:focus .quick-add { opacity: 1; transform: translateY(0); }
.product-meta { padding-top: 17px; display: flex; justify-content: space-between; gap: 15px; }
.product-meta p { margin: 0 0 6px; color: var(--rose); font-size: 8px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.product-meta h3 { margin: 0; font-family: var(--font-display), serif; font-size: 23px; font-weight: 600; }
.product-meta > span { padding-top: 18px; white-space: nowrap; font-size: 11px; font-weight: 700; }
.product-detail-line { margin-top: 9px; display: flex; gap: 7px; color: var(--muted); font-size: 9px; }
.empty-state { padding: 80px; text-align: center; background: var(--ivory); }
.empty-state h3 { font-family: var(--font-display), serif; font-size: 34px; margin: 0; }
.empty-state p { color: var(--muted); }

.collection-story { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 760px; background: var(--ivory); }
.collection-image { min-height: 680px; position: relative; overflow: hidden; }
.collection-image > span {
  position: absolute;
  left: 22px;
  bottom: 22px;
  padding: 10px 13px;
  color: white;
  background: rgba(14,11,10,.82);
  font-size: 9px;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.collection-copy { padding: 10% 12%; align-self: center; }
.collection-copy > p:not(.eyebrow) {
  max-width: 480px;
  color: var(--muted);
  font-family: var(--font-display), serif;
  font-size: 20px;
  line-height: 1.45;
}
.collection-copy ul { margin: 45px 0; padding: 0; list-style: none; }
.collection-copy li { padding: 20px 0; display: grid; grid-template-columns: 48px 1fr; border-top: 1px solid #d3c8ba; }
.collection-copy li:last-child { border-bottom: 1px solid #d3c8ba; }
.collection-copy li > span { color: var(--rose); font-family: var(--font-display), serif; font-size: 19px; }
.collection-copy li b { font-family: var(--font-display), serif; font-size: 18px; }
.collection-copy li p { margin: 4px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }

.care-section {
  padding: 120px 6vw;
  color: white;
  text-align: center;
  background:
    radial-gradient(circle at 20% 10%, rgba(201,136,128,.23), transparent 30%),
    var(--black);
}
.care-section > p:not(.eyebrow) {
  max-width: 570px;
  margin: 30px auto;
  color: #c7bbb0;
  font-family: var(--font-display), serif;
  font-size: 20px;
  line-height: 1.5;
}
.care-links { max-width: 850px; margin: 50px auto 0; display: grid; grid-template-columns: repeat(3, 1fr); }
.care-links a { padding: 22px; border: 1px solid #4a413b; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.care-links a + a { border-left: 0; }
.care-links span { margin-left: 15px; color: var(--rose); }

.consultation {
  padding: 70px 6vw;
  display: grid;
  grid-template-columns: 1.1fr .8fr auto;
  gap: 6vw;
  align-items: center;
  background: #d9aaa3;
}
.consultation h2 { font-size: clamp(42px, 4vw, 64px); }
.consultation > p { color: #493a36; font-family: var(--font-display), serif; font-size: 18px; line-height: 1.5; }

footer {
  padding: 75px 6vw 25px;
  display: grid;
  grid-template-columns: 1.7fr .7fr .8fr 1.2fr;
  gap: 5vw;
  color: #e9ddd3;
  background: var(--black);
}
.wordmark.light { color: white; }
.footer-brand > p { color: #8e8177; font-family: var(--font-display), serif; font-size: 20px; font-style: italic; }
footer > div:not(.footer-brand):not(.footer-bottom) > b { display: block; margin-bottom: 22px; color: white; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
footer > div:not(.footer-brand):not(.footer-bottom) > a { display: block; margin: 11px 0; color: #9d9188; font-size: 10px; }
.newsletter p { color: #9d9188; font-size: 10px; line-height: 1.6; }
.newsletter form { margin-top: 24px; display: flex; border-bottom: 1px solid #60554e; }
.newsletter label { flex: 1; }
.newsletter input { width: 100%; padding: 12px 0; border: 0; outline: 0; color: white; background: transparent; font-size: 10px; }
.newsletter button { padding: 12px; border: 0; color: var(--rose); background: transparent; cursor: pointer; }
.footer-bottom { grid-column: 1 / -1; margin-top: 55px; padding-top: 22px; display: flex; justify-content: space-between; border-top: 1px solid #302a26; color: #756a63; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }

.modal-layer { position: fixed; inset: 0; z-index: 100; display: flex; justify-content: flex-end; }
.modal-backdrop { position: absolute; inset: 0; border: 0; background: rgba(10,8,7,.62); backdrop-filter: blur(2px); cursor: pointer; }
.product-panel {
  width: min(920px, 92vw);
  height: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  position: relative;
  z-index: 1;
  background: var(--paper);
  box-shadow: -20px 0 60px rgba(0,0,0,.18);
  animation: slideIn .35s ease both;
}
@keyframes slideIn { from { transform: translateX(100%); } }
.close-button {
  width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 50%;
  position: absolute;
  z-index: 4;
  right: 20px;
  top: 20px;
  background: rgba(255,253,249,.88);
  cursor: pointer;
  font-family: Arial, sans-serif;
  font-size: 24px;
}
.close-button.static { position: static; }
.panel-image { position: relative; background: #dfd6cb; overflow: hidden; }
.panel-content { padding: 80px 55px 45px; overflow-y: auto; }
.panel-content h2 { font-size: 52px; }
.panel-price { margin: 16px 0 22px; font-size: 14px; font-weight: 700; }
.panel-content > p:not(.eyebrow) { color: var(--muted); font-family: var(--font-display), serif; font-size: 17px; line-height: 1.5; }
.option-group { margin: 28px 0 0; padding: 0; border: 0; }
.option-group legend { width: 100%; margin-bottom: 10px; display: flex; justify-content: space-between; font-size: 9px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.option-group legend b { color: var(--rose); font-weight: 600; }
.option-group > div { display: flex; flex-wrap: wrap; gap: 7px; }
.option-group button { padding: 10px 12px; border: 1px solid var(--line); background: white; cursor: pointer; font-size: 9px; }
.option-group button.active { color: white; border-color: var(--black); background: var(--black); }
.availability { margin: 25px 0; display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 9px; }
.availability span { width: 7px; height: 7px; border-radius: 50%; background: #638166; }

.cart-drawer {
  width: min(540px, 95vw);
  height: 100%;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  background: var(--paper);
  animation: slideIn .35s ease both;
}
.drawer-header { padding: 35px; display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); }
.drawer-header h2 { font-size: 40px; }
.empty-cart { margin: auto; padding: 40px; text-align: center; }
.empty-cart > span { color: var(--rose); font-size: 40px; }
.empty-cart h3 { margin: 20px 0 5px; font-family: var(--font-display), serif; font-size: 30px; }
.empty-cart p { margin-bottom: 25px; color: var(--muted); font-size: 11px; }
.cart-items { flex: 1; padding: 10px 35px; overflow-y: auto; }
.cart-items article { padding: 20px 0; display: grid; grid-template-columns: 80px 1fr auto; gap: 15px; border-bottom: 1px solid var(--line); }
.cart-image { position: relative; background: #e9e2da; }
.cart-info h3 { margin: 0; font-family: var(--font-display), serif; font-size: 20px; }
.cart-info p { margin: 6px 0 12px; color: var(--muted); font-size: 8px; line-height: 1.4; }
.cart-items article > b { font-size: 10px; }
.quantity { width: max-content; display: flex; border: 1px solid var(--line); }
.quantity button, .quantity span { width: 28px; height: 26px; display: grid; place-items: center; border: 0; background: transparent; font-size: 10px; }
.quantity button { cursor: pointer; }
.cart-summary { padding: 25px 35px 35px; border-top: 1px solid var(--line); }
.cart-summary > div { margin: 9px 0; display: flex; justify-content: space-between; font-size: 10px; }
.cart-summary > p { padding: 10px; color: #5b4a42; background: var(--ivory); text-align: center; font-size: 9px; }

.checkout-layer { padding: 25px; justify-content: center; align-items: center; background: rgba(10,8,7,.84); overflow-y: auto; }
.checkout-shell {
  width: min(1050px, 100%);
  max-height: calc(100vh - 50px);
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  position: relative;
  overflow: auto;
  background: var(--paper);
}
.checkout-brand { padding: 70px 55px; background: var(--ivory); }
.checkout-brand .eyebrow { margin-top: 85px; }
.checkout-brand h2 { font-size: 58px; }
.checkout-brand > p:not(.eyebrow) { color: var(--muted); font-family: var(--font-display), serif; font-size: 18px; line-height: 1.5; }
.checkout-total { margin-top: 45px; padding-top: 20px; display: flex; justify-content: space-between; border-top: 1px solid var(--line); }
.checkout-total span { font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
.checkout-total b { font-family: var(--font-display), serif; font-size: 24px; }
.checkout-form { padding: 50px 60px; }
.checkout-form h3 { margin: 12px 0 18px; font-family: var(--font-display), serif; font-size: 25px; }
.checkout-form > label:not(.radio-card):not(.check-line), .field-row label { margin-bottom: 14px; display: block; color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.checkout-form input:not([type=radio]):not([type=checkbox]), .checkout-form textarea {
  width: 100%;
  margin-top: 6px;
  padding: 11px 12px;
  border: 1px solid var(--line);
  outline: 0;
  color: var(--ink);
  background: white;
  font-size: 11px;
  text-transform: none;
}
.checkout-form input:focus, .checkout-form textarea:focus { border-color: var(--rose); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.radio-card { margin: 8px 0; padding: 14px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; border: 1px solid var(--line); cursor: pointer; }
.radio-card > span b, .radio-card > span small { display: block; }
.radio-card > span b, .radio-card > b { font-size: 10px; }
.radio-card > span small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.payment-note { margin: 20px 0; padding: 15px; border-left: 3px solid var(--rose); background: var(--ivory); }
.payment-note b { font-family: var(--font-display), serif; font-size: 16px; }
.payment-note p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.check-line { margin: 20px 0; display: flex; gap: 10px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.order-success { width: min(520px, 90vw); margin: auto; padding: 65px; position: relative; background: var(--paper); text-align: center; }
.order-success h2 { font-size: 48px; }
.order-success > p:not(.eyebrow) { color: var(--muted); font-family: var(--font-display), serif; font-size: 18px; line-height: 1.5; }
.success-mark { width: 52px; height: 52px; margin: 0 auto 30px; display: grid; place-items: center; border-radius: 50%; color: white; background: #677b65; }

/* Dashboard */
.admin { min-height: 100vh; display: grid; grid-template-columns: 240px 1fr; background: #f4f1ec; }
.admin-sidebar {
  height: 100vh;
  padding: 28px 18px;
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  color: #eee4dc;
  background: #171311;
}
.wordmark.compact b { font-size: 23px; }
.admin-sidebar nav { margin-top: 55px; display: grid; gap: 6px; }
.admin-sidebar nav button {
  width: 100%;
  padding: 12px 13px;
  display: grid;
  grid-template-columns: 25px 1fr auto;
  align-items: center;
  border: 0;
  border-radius: 3px;
  color: #a89b92;
  background: transparent;
  text-align: left;
  cursor: pointer;
  font-size: 10px;
}
.admin-sidebar nav button.active { color: white; background: #342823; }
.admin-sidebar nav button > span { color: var(--rose); }
.admin-sidebar nav button > b { width: 19px; height: 19px; display: grid; place-items: center; border-radius: 50%; background: var(--rose); color: white; font-size: 8px; }
.sidebar-footer { margin-top: auto; }
.sidebar-footer > a { display: block; margin-bottom: 20px; color: #95887f; font-size: 9px; }
.sidebar-footer > button { width: 100%; padding: 14px 0 0; display: flex; align-items: center; gap: 10px; border: 0; border-top: 1px solid #352f2b; color: white; background: transparent; text-align: left; cursor: pointer; }
.avatar { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #b8756d; font-size: 9px; }
.sidebar-footer button > span:last-child { display: flex; flex-direction: column; }
.sidebar-footer button b { font-size: 9px; }
.sidebar-footer button small { margin-top: 3px; color: #81766f; font-size: 8px; }
.admin-main { min-width: 0; padding: 35px 4vw 60px; }
.admin-header { display: flex; justify-content: space-between; align-items: center; }
.admin-header p { margin: 0; color: #8b827c; font-size: 9px; }
.admin-header h1 { margin: 3px 0 0; font-family: var(--font-display), serif; font-size: 36px; font-weight: 600; }
.admin-header > div:last-child { display: flex; gap: 8px; }
.admin-icon, .admin-primary {
  min-height: 38px;
  padding: 0 15px;
  border: 1px solid #d9d2ca;
  background: white;
  cursor: pointer;
  font-size: 9px;
  font-weight: 700;
}
.admin-primary { border-color: var(--black); color: white; background: var(--black); }
.admin-welcome {
  margin-top: 28px;
  padding: 32px 38px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: white;
  background: linear-gradient(115deg, #6f403c, #1e1714 62%);
}
.admin-welcome .eyebrow { color: #e2aaa4; }
.admin-welcome h2 { margin: 0; font-family: var(--font-display), serif; font-size: 32px; font-weight: 500; }
.admin-welcome p:last-child { margin-bottom: 0; color: #c6b7ad; font-size: 10px; }
.admin-welcome button { padding: 12px 16px; border: 1px solid #74625a; color: white; background: transparent; cursor: pointer; font-size: 9px; }
.stat-grid { margin: 20px 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.stat { padding: 20px; display: flex; flex-direction: column; border: 1px solid #e0dad2; background: white; }
.stat > span { color: #766d67; font-size: 9px; }
.stat > b { margin: 12px 0 8px; font-family: var(--font-display), serif; font-size: 30px; }
.stat > small { color: #70816f; font-size: 8px; }
.dashboard-grid { display: grid; grid-template-columns: 1.45fr .55fr; gap: 12px; }
.admin-card { padding: 24px; border: 1px solid #e0dad2; background: white; }
.card-heading { margin-bottom: 20px; display: flex; justify-content: space-between; align-items: center; }
.card-heading .eyebrow { margin-bottom: 6px; }
.card-heading h2 { margin: 0; font-family: var(--font-display), serif; font-size: 27px; font-weight: 600; }
.card-heading > button { border: 0; color: #8f5a54; background: transparent; cursor: pointer; font-size: 9px; }
.card-heading > b { font-family: var(--font-display), serif; font-size: 22px; }
.order-table article {
  padding: 13px 0;
  display: grid;
  grid-template-columns: 1fr 1.2fr .6fr .8fr 24px;
  gap: 12px;
  align-items: center;
  border-top: 1px solid #eee9e3;
}
.order-table article div { display: flex; flex-direction: column; }
.order-table b { font-size: 9px; }
.order-table span { margin-top: 3px; color: #8d847e; font-size: 8px; }
.order-table article > button { border: 0; color: #9b5f59; background: transparent; cursor: pointer; }
.order-status { width: max-content; padding: 5px 7px; border-radius: 10px; background: #f4e8d9; color: #84633e !important; }
.order-status.paid { background: #e1eee4; color: #55725b !important; }
.order-status.preparing { background: #e8e7f2; color: #626080 !important; }
.order-status.shipped { background: #e7edf0; color: #526b78 !important; }
.chart { height: 210px; padding-top: 20px; display: flex; gap: 9px; align-items: end; border-bottom: 1px solid #e7e0d8; }
.chart > div { height: 100%; flex: 1; display: flex; flex-direction: column; justify-content: end; align-items: center; gap: 7px; }
.chart span { width: 100%; min-height: 4px; background: linear-gradient(#c98b83, #ebd1cc); }
.chart small { color: #8d847e; font-size: 7px; }
.inventory-card { margin-top: 12px; }
.inventory-list article { padding: 10px 0; display: grid; grid-template-columns: 48px 1fr 80px 80px 28px; gap: 12px; align-items: center; border-top: 1px solid #eee9e3; }
.admin-product-image { width: 42px; height: 42px; position: relative; overflow: hidden; background: #eee; }
.inventory-list article > div:nth-child(2) { display: flex; flex-direction: column; }
.inventory-list b { font-size: 9px; }
.inventory-list span { color: #877d76; font-size: 8px; }
.inventory-list button { border: 0; background: transparent; cursor: pointer; }
.full-card { margin-top: 28px; min-height: 650px; }
.product-admin-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.product-admin-grid article { padding: 10px; border: 1px solid #e5ded7; }
.product-admin-image { aspect-ratio: 1; position: relative; overflow: hidden; background: #eee; }
.product-admin-grid article > div:nth-child(2) { padding: 12px 2px; }
.product-admin-grid article span { color: #7b8d74; font-size: 7px; text-transform: uppercase; letter-spacing: .08em; }
.product-admin-grid h3 { margin: 6px 0 2px; font-family: var(--font-display), serif; font-size: 19px; }
.product-admin-grid p { margin: 0; color: #8b827c; font-size: 8px; }
.product-admin-grid button { width: 100%; padding: 8px; border: 1px solid #ddd5ce; background: white; cursor: pointer; font-size: 8px; }
.empty-admin { margin-top: 28px; min-height: 500px; display: grid; place-content: center; justify-items: center; text-align: center; }
.empty-admin > span { color: var(--rose); font-size: 35px; }
.empty-admin h2 { margin: 15px 0 5px; font-family: var(--font-display), serif; font-size: 34px; }
.empty-admin p { color: #857c76; font-size: 10px; }
.toast { position: fixed; right: 28px; bottom: 28px; z-index: 200; padding: 14px 18px; color: white; background: #1e1916; box-shadow: 0 10px 30px rgba(0,0,0,.18); font-size: 9px; }

@media (max-width: 1000px) {
  .site-header { grid-template-columns: auto 1fr auto; }
  .site-header > .wordmark { margin-left: 20px; }
  .menu-button { display: block; }
  .main-nav {
    position: absolute;
    top: 86px;
    left: 0;
    right: 0;
    padding: 25px 4.5vw;
    display: none;
    flex-direction: column;
    background: var(--paper);
    border-top: 1px solid var(--line);
  }
  .main-nav.is-open { display: flex; }
  .hero-content { width: 56%; }
  .hero h1 { font-size: 70px; }
  .trust-strip { grid-template-columns: 1fr 1fr; gap: 18px 0; }
  .trust-strip article:nth-child(2) { border-right: 0; }
  .product-grid { grid-template-columns: 1fr 1fr; gap: 30px 18px; }
  .consultation { grid-template-columns: 1fr auto; }
  .consultation > p { display: none; }
  .admin { grid-template-columns: 78px 1fr; }
  .admin-sidebar { padding: 24px 12px; align-items: center; }
  .admin-sidebar .wordmark > span:last-child, .admin-sidebar nav button:not(.active) b, .admin-sidebar nav button { font-size: 0; }
  .admin-sidebar nav button { grid-template-columns: 1fr; text-align: center; }
  .admin-sidebar nav button > span { font-size: 16px; text-align: center; }
  .sidebar-footer > a, .sidebar-footer button > span:last-child { display: none; }
  .stat-grid { grid-template-columns: 1fr 1fr; }
  .dashboard-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .announcement { justify-content: center; min-height: 30px; }
  .announcement > *:not(.announcement-centre) { display: none; }
  .site-header { height: 70px; padding: 0 16px; }
  .site-header > .wordmark { margin-left: 10px; }
  .wordmark-monogram { width: 34px; height: 34px; font-size: 14px; }
  .wordmark b { font-size: 21px; }
  .wordmark small { margin-top: 6px; font-size: 6px; }
  .main-nav { top: 70px; }
  .search-field, .desktop-only, .bag-button > span { display: none; }
  .hero { height: 780px; min-height: 0; }
  .hero-image { object-position: 68% center; }
  .hero-shade { background: linear-gradient(180deg, rgba(247,240,232,.05) 40%, rgba(247,240,232,.95) 72%); }
  .hero-content { width: auto; left: 20px; right: 20px; top: auto; bottom: 50px; transform: none; }
  .hero h1 { font-size: 54px; }
  .hero-copy { margin: 20px 0; font-size: 17px; }
  .button-row { align-items: flex-start; flex-direction: column; gap: 15px; }
  .hero-note { display: none; }
  .trust-strip { grid-template-columns: 1fr; padding: 22px 20px; }
  .trust-strip article { padding: 10px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .trust-strip article:last-child { border-bottom: 0; }
  .shop-section { padding: 75px 20px; }
  .section-heading { grid-template-columns: 1fr; gap: 25px; }
  .section-heading h2, .collection-copy h2, .care-section h2 { font-size: 48px; }
  .section-heading > p { font-size: 16px; }
  .shop-toolbar { align-items: flex-end; }
  .filter-pills { gap: 15px; overflow-x: auto; }
  .filter-pills button { white-space: nowrap; }
  .product-grid { grid-template-columns: 1fr; }
  .quick-add { opacity: 1; transform: none; }
  .collection-story { grid-template-columns: 1fr; }
  .collection-image { min-height: 560px; }
  .collection-copy { padding: 70px 25px; }
  .care-section { padding: 80px 20px; }
  .care-links { grid-template-columns: 1fr; }
  .care-links a + a { border-left: 1px solid #4a413b; border-top: 0; }
  .consultation { padding: 60px 25px; grid-template-columns: 1fr; }
  footer { padding: 60px 25px 25px; grid-template-columns: 1fr 1fr; }
  .footer-brand, .newsletter { grid-column: 1 / -1; }
  .footer-bottom { gap: 15px; flex-direction: column; }
  .product-panel { width: 100%; grid-template-columns: 1fr; overflow-y: auto; }
  .panel-image { min-height: 48vh; }
  .panel-content { padding: 45px 25px; overflow: visible; }
  .checkout-layer { padding: 0; }
  .checkout-shell { max-height: 100vh; grid-template-columns: 1fr; }
  .checkout-brand, .checkout-form { padding: 45px 25px; }
  .checkout-brand .eyebrow { margin-top: 45px; }
  .field-row { grid-template-columns: 1fr; gap: 0; }
  .admin { display: block; }
  .admin-sidebar { height: auto; padding: 12px; position: static; flex-direction: row; justify-content: space-between; overflow-x: auto; }
  .admin-sidebar > .wordmark, .sidebar-footer { display: none; }
  .admin-sidebar nav { margin: 0; display: flex; gap: 3px; }
  .admin-sidebar nav button { width: 48px; height: 42px; padding: 8px; }
  .admin-main { padding: 22px 14px 50px; }
  .admin-header h1 { font-size: 30px; }
  .admin-icon { display: none; }
  .admin-welcome { padding: 25px; align-items: flex-start; gap: 20px; flex-direction: column; }
  .stat-grid { grid-template-columns: 1fr 1fr; }
  .stat { padding: 15px; }
  .stat > b { font-size: 25px; }
  .order-table article { grid-template-columns: 1.2fr 1fr auto; }
  .order-table article > b, .order-table .order-status { display: none; }
  .product-admin-grid { grid-template-columns: 1fr 1fr; }
  .inventory-list article { grid-template-columns: 42px 1fr auto; }
  .inventory-list article > span, .inventory-list article > b { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Multi-page storefront */
.site-header { z-index: 60; }
.nav-item { display: flex; align-items: center; }
.nav-trigger {
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
}
.nav-trigger span { margin-left: 3px; color: var(--rose); }
.mega-menu {
  visibility: hidden;
  opacity: 0;
  position: absolute;
  top: 85px;
  left: 0;
  right: 0;
  color: var(--ink);
  background: var(--paper);
  border-top: 1px solid var(--line);
  box-shadow: 0 28px 50px rgba(30, 22, 18, .13);
  transform: translateY(-8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
  pointer-events: none;
}
.has-mega.is-open .mega-menu {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.mega-menu-inner {
  max-width: 1440px;
  margin: auto;
  padding: 34px 4.5vw;
  display: grid;
  grid-template-columns: .8fr .8fr .8fr 1.4fr;
  gap: 4vw;
}
.mega-column p {
  margin: 0 0 16px;
  color: #9b5f59;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.main-nav .mega-column a {
  padding: 6px 0;
  display: flex;
  justify-content: space-between;
  color: #514a45;
  font-family: var(--font-display), Georgia, serif;
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0;
}
.main-nav .mega-column a::after,
.main-nav .mega-feature::after { display: none; }
.mega-column a span { opacity: 0; color: var(--rose); transition: opacity .2s; }
.mega-column a:hover span { opacity: 1; }
.mega-feature {
  min-height: 225px;
  position: relative !important;
  overflow: hidden;
}
.mega-feature img { transition: transform .5s ease; }
.mega-feature:hover img { transform: scale(1.025); }
.mega-feature > span {
  position: absolute;
  inset: auto 0 0;
  padding: 45px 22px 20px;
  display: flex;
  flex-direction: column;
  color: white;
  background: linear-gradient(transparent, rgba(12, 9, 8, .82));
}
.mega-feature small { font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.mega-feature b { margin-top: 6px; font-family: var(--font-display), serif; font-size: 24px; }
.mega-feature em { margin-top: 8px; font-size: 8px; font-style: normal; text-transform: uppercase; }
.mega-menu-footer {
  padding: 13px 4.5vw;
  display: flex;
  justify-content: center;
  gap: 70px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  background: var(--ivory);
  font-size: 8px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.search-field button {
  padding: 4px;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.search-field label { flex: 1; }
.footer-brand > small { max-width: 260px; display: block; color: #8e8177; font-size: 9px; line-height: 1.7; }
footer { grid-template-columns: 1.5fr .6fr .6fr .8fr 1.2fr; gap: 3.5vw; }

.page-hero {
  min-height: 470px;
  padding: 105px 8vw 90px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--ivory);
}
.page-hero h1,
.collection-page-hero h1,
.story-hero h1,
.split-page h1,
.contact-page h1,
.faq-page h1,
.legal-page h1 {
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(62px, 7vw, 104px);
  font-weight: 500;
  line-height: .9;
}
.page-hero h1 em,
.story-hero h1 em,
.split-page h1 em,
.contact-page h1 em,
.faq-page h1 em { color: #9b5f59; font-weight: 400; }
.page-hero > p:last-child { max-width: 560px; margin: 30px 0 0; color: var(--muted); font-family: var(--font-display), serif; font-size: 20px; line-height: 1.5; }
.shop-hero { min-height: 520px; background: linear-gradient(110deg, #f1e5da, #fbf8f3); }
.centered { align-items: center; text-align: center; }
.centered > p:last-child { max-width: 520px; }
.guide-hero { color: white; background: linear-gradient(115deg, #221a17, #694743); }
.guide-hero .eyebrow { color: #e3aaa3; }
.guide-hero h1 em { color: #e4afa8; }
.guide-hero > p:last-child { color: #cbbdb5; }

.category-bar {
  min-height: 62px;
  padding: 0 4.5vw;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 42px;
  border-block: 1px solid var(--line);
  background: var(--paper);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.category-bar a:hover { color: #9b5f59; }
.catalogue-section, .related-products { padding: 85px 4.5vw 110px; }
.catalogue-heading { margin-bottom: 35px; display: flex; justify-content: space-between; align-items: end; }
.catalogue-heading h2 { margin: 0; font-family: var(--font-display), serif; font-size: clamp(42px, 4vw, 62px); font-weight: 500; }
.catalogue-heading > span { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.catalogue-section .product-grid { row-gap: 55px; }
.product-image { display: block; }
.compact-cta { padding-block: 58px; }

.collection-grid { padding: 20px 4.5vw 100px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.collection-tile { min-height: 650px; position: relative; overflow: hidden; }
.collection-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 45%, rgba(13,10,9,.78)); }
.collection-tile img { transition: transform .7s ease; }
.collection-tile:hover img { transform: scale(1.025); }
.collection-tile > span { position: absolute; z-index: 2; left: 30px; right: 30px; bottom: 32px; display: flex; flex-direction: column; color: white; }
.collection-tile small { font-size: 8px; letter-spacing: .13em; text-transform: uppercase; }
.collection-tile b { margin: 7px 0; font-family: var(--font-display), serif; font-size: 40px; font-weight: 500; }
.collection-tile em { min-height: 40px; color: #ddd3cc; font-family: var(--font-display), serif; font-size: 16px; font-style: normal; }
.collection-tile u { margin-top: 18px; font-size: 8px; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.collection-page-hero { min-height: 690px; padding: 0 8vw; position: relative; display: flex; align-items: center; overflow: hidden; color: white; background: #342924; }
.collection-page-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,8,7,.75), rgba(10,8,7,.06) 72%); }
.collection-page-hero > div { width: min(650px, 55%); position: relative; z-index: 2; }
.collection-page-hero > img { z-index: 0; }
.collection-page-hero h1 { font-size: clamp(65px, 7vw, 104px); }
.collection-page-hero > div > p:not(.eyebrow) { margin: 28px 0; color: #e5ddd6; font-family: var(--font-display), serif; font-size: 20px; line-height: 1.5; }
.light-button { border-color: white; color: var(--ink); background: white; }
.care-callout { padding: 95px 8vw; color: white; background: #211a17; text-align: center; }
.care-callout .eyebrow { color: #d79c94; }
.care-callout h2 { margin: 0; font-family: var(--font-display), serif; font-size: clamp(50px, 5vw, 72px); font-weight: 500; }
.care-callout > p:not(.eyebrow) { max-width: 550px; margin: 25px auto 35px; color: #b9aba2; font-family: var(--font-display), serif; font-size: 18px; line-height: 1.5; }
.care-callout .button { border-color: #7f7169; }

.breadcrumbs { padding: 18px 4.5vw; display: flex; gap: 9px; color: var(--muted); border-bottom: 1px solid var(--line); font-size: 8px; text-transform: uppercase; letter-spacing: .08em; }
.breadcrumbs b { color: var(--ink); }
.product-page { padding: 35px 4.5vw 100px; display: grid; grid-template-columns: 1.2fr .8fr; gap: 6vw; }
.product-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.product-main-image { grid-column: 1 / -1; min-height: 760px; position: relative; overflow: hidden; background: #e8e0d8; }
.product-image-detail { min-height: 370px; position: relative; overflow: hidden; background: #e8e0d8; }
.product-page-copy { padding-top: 45px; align-self: start; position: sticky; top: 15px; }
.product-page-copy h1 { margin: 0; font-family: var(--font-display), serif; font-size: clamp(54px, 5vw, 76px); font-weight: 500; line-height: .95; }
.product-rating { margin: 18px 0 27px; color: var(--muted); font-size: 9px; }
.product-rating span { margin-right: 9px; color: #a86d66; letter-spacing: .15em; }
.product-price { font-size: 15px; font-weight: 700; }
.purchase-box > p { color: var(--muted); font-family: var(--font-display), serif; font-size: 17px; line-height: 1.55; }
.purchase-note { text-align: center; font-family: var(--font-sans) !important; font-size: 8px !important; }
.added-card { padding: 18px; background: var(--ivory); border: 1px solid var(--line); }
.added-card b, .added-card span { display: block; }
.added-card b { font-family: var(--font-display), serif; font-size: 20px; }
.added-card span { margin: 6px 0 17px; color: var(--muted); font-size: 9px; }
.product-page-copy details { padding: 18px 0; border-top: 1px solid var(--line); }
.product-page-copy details:last-child { border-bottom: 1px solid var(--line); }
.product-page-copy summary { cursor: pointer; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.product-page-copy details p { color: var(--muted); font-size: 10px; line-height: 1.6; }
.related-products { background: var(--ivory); }
.related-products .product-grid { grid-template-columns: repeat(3, 1fr); }

.story-hero { min-height: 720px; display: grid; grid-template-columns: .9fr 1.1fr; background: var(--ivory); }
.story-hero > div:first-child { padding: 8vw; display: flex; flex-direction: column; justify-content: center; }
.story-hero > div:last-child { min-height: 720px; position: relative; }
.story-hero > div:first-child > p:last-child { margin-top: 30px; color: var(--muted); font-family: var(--font-display), serif; font-size: 19px; line-height: 1.6; }
.manifesto { padding: 115px 15vw; color: white; background: #211a17; text-align: center; }
.manifesto p { margin: 0; font-family: var(--font-display), serif; font-size: clamp(34px, 4vw, 58px); line-height: 1.2; }
.manifesto span { margin-top: 28px; display: block; color: #c98b83; font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.values-grid { padding: 100px 6vw; display: grid; grid-template-columns: repeat(3, 1fr); gap: 5vw; }
.values-grid article { border-top: 1px solid var(--line); }
.values-grid article > span { width: 38px; height: 38px; margin-top: -19px; display: grid; place-items: center; color: white; background: var(--rose); border-radius: 50%; font-size: 9px; }
.values-grid h2 { font-family: var(--font-display), serif; font-size: 34px; font-weight: 500; }
.values-grid p { color: var(--muted); font-size: 11px; line-height: 1.7; }

.guide-grid { padding: 90px 5vw; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line); }
.guide-grid article { padding: 55px; position: relative; background: var(--paper); }
.guide-grid article > span { color: var(--rose); font-family: var(--font-display), serif; font-size: 26px; }
.guide-grid article > p { color: var(--rose); font-size: 8px; letter-spacing: .13em; text-transform: uppercase; }
.guide-grid h2 { margin: 45px 0 16px; font-family: var(--font-display), serif; font-size: 42px; font-weight: 500; }
.guide-grid article > div { max-width: 520px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.guide-grid a { margin-top: 35px; display: inline-block; border-bottom: 1px solid var(--rose); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.care-routine { padding: 100px 8vw; display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; background: var(--ivory); }
.care-routine h2 { margin: 0; font-family: var(--font-display), serif; font-size: 58px; font-weight: 500; }
.care-routine ol { margin: 0; padding: 0; list-style: none; }
.care-routine li { padding: 22px 0; display: grid; grid-template-columns: .8fr 1.2fr; gap: 30px; border-top: 1px solid var(--line); }
.care-routine li:last-child { border-bottom: 1px solid var(--line); }
.care-routine li b { font-family: var(--font-display), serif; font-size: 20px; }
.care-routine li span { color: var(--muted); font-size: 10px; line-height: 1.6; }

.split-page { min-height: 760px; display: grid; grid-template-columns: 1fr 1fr; color: white; background: linear-gradient(130deg, #211815, #6f4641); }
.split-page-intro { padding: 9vw 7vw; }
.split-page-intro .eyebrow { color: #e2aaa4; }
.split-page-intro > p:not(.eyebrow) { max-width: 520px; color: #d0c0b7; font-family: var(--font-display), serif; font-size: 19px; line-height: 1.55; }
.consultation-points { margin-top: 55px; display: grid; gap: 18px; }
.consultation-points span { padding-top: 15px; border-top: 1px solid #705a51; font-size: 10px; }
.consultation-points b { margin-right: 15px; color: #d59790; }
.consultation-card { margin: 55px; padding: 55px; color: var(--ink); background: var(--paper); }
.consultation-card h2 { margin: 0 0 30px; font-family: var(--font-display), serif; font-size: 42px; font-weight: 500; }
.consultation-card article { margin-top: 18px; padding: 25px; border: 1px solid var(--line); }
.consultation-card article > span { color: var(--rose); font-size: 8px; text-transform: uppercase; letter-spacing: .1em; }
.consultation-card h3 { margin: 8px 0; font-family: var(--font-display), serif; font-size: 26px; }
.consultation-card article p { color: var(--muted); font-size: 10px; line-height: 1.6; }

.contact-page { padding: 90px 7vw 110px; display: grid; grid-template-columns: 1fr 1fr; gap: 9vw; }
.contact-page > div > p:not(.eyebrow) { max-width: 520px; color: var(--muted); font-family: var(--font-display), serif; font-size: 19px; line-height: 1.55; }
.contact-list { margin-top: 50px; }
.contact-list > * { padding: 18px 0; display: grid; grid-template-columns: 100px 1fr auto; align-items: center; border-top: 1px solid var(--line); }
.contact-list > *:last-child { border-bottom: 1px solid var(--line); }
.contact-list small { color: var(--rose); font-size: 8px; text-transform: uppercase; }
.contact-list b { font-family: var(--font-display), serif; font-size: 18px; }
.contact-list span { color: var(--muted); font-size: 9px; }
.contact-form { padding: 50px; background: var(--ivory); }
.contact-form label { margin-bottom: 16px; display: block; color: var(--muted); font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.contact-form input, .contact-form textarea, .contact-form select { width: 100%; margin-top: 7px; padding: 13px; border: 1px solid var(--line); background: var(--paper); outline: none; }

.legal-page { padding: 100px 8vw; }
.legal-intro { color: var(--muted); font-family: var(--font-display), serif; font-size: 20px; }
.legal-grid { margin-top: 65px; display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.legal-grid article { min-height: 260px; padding: 40px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.legal-grid article span { color: var(--rose); font-family: var(--font-display), serif; font-size: 21px; }
.legal-grid h2 { font-family: var(--font-display), serif; font-size: 31px; font-weight: 500; }
.legal-grid p { color: var(--muted); font-size: 11px; line-height: 1.7; }

.faq-page { padding: 100px 8vw; display: grid; grid-template-columns: .8fr 1.2fr; gap: 9vw; }
.faq-page > div:first-child > p:not(.eyebrow) { color: var(--muted); font-family: var(--font-display), serif; font-size: 18px; }
.faq-page .button { margin-top: 25px; }
.faq-page details { padding: 24px 0; border-top: 1px solid var(--line); }
.faq-page details:last-child { border-bottom: 1px solid var(--line); }
.faq-page summary { display: flex; justify-content: space-between; cursor: pointer; font-family: var(--font-display), serif; font-size: 23px; }
.faq-page summary span { color: var(--rose); }
.faq-page details p { max-width: 650px; color: var(--muted); font-size: 11px; line-height: 1.7; }

@media (max-width: 1000px) {
  .mega-menu { top: 86px; position: static; display: none; box-shadow: none; transform: none; }
  .has-mega.is-open .mega-menu { display: block; }
  .main-nav .nav-item { display: block; }
  .nav-trigger { width: 100%; display: flex; justify-content: space-between; }
  .mega-menu-inner { padding: 22px 0 0; grid-template-columns: 1fr 1fr 1fr; gap: 22px; }
  .mega-feature, .mega-menu-footer { display: none; }
  .main-nav .mega-column a { font-size: 14px; }
  footer { grid-template-columns: 1.4fr repeat(3, .8fr); }
  .newsletter { grid-column: 1 / -1; }
  .collection-grid { grid-template-columns: 1fr 1fr; }
  .collection-tile:last-child { grid-column: 1 / -1; min-height: 480px; }
  .product-page { gap: 4vw; }
  .product-main-image { min-height: 600px; }
  .product-image-detail { min-height: 280px; }
  .contact-page { gap: 5vw; }
  .consultation-card { margin: 35px; padding: 35px; }
}

@media (max-width: 720px) {
  .main-nav { max-height: calc(100vh - 100px); overflow-y: auto; }
  .mega-menu-inner { grid-template-columns: 1fr; }
  .mega-column:not(:first-child) { display: none; }
  .search-field { width: auto; border: 0; }
  .search-field label { width: 0; overflow: hidden; }
  .search-field.is-open { position: absolute; inset: 0; z-index: 10; padding: 15px; background: var(--paper); border-bottom: 1px solid var(--line); }
  .search-field.is-open label { width: auto; }
  .page-hero { min-height: 430px; padding: 75px 22px; }
  .page-hero h1, .story-hero h1, .split-page h1, .contact-page h1, .faq-page h1, .legal-page h1 { font-size: 52px; }
  .category-bar { padding: 0 20px; justify-content: flex-start; gap: 28px; overflow-x: auto; }
  .category-bar a { white-space: nowrap; }
  .catalogue-section, .related-products { padding: 70px 20px; }
  .catalogue-heading { align-items: start; gap: 20px; flex-direction: column; }
  .collection-grid { padding: 12px 12px 70px; grid-template-columns: 1fr; }
  .collection-tile, .collection-tile:last-child { min-height: 560px; grid-column: auto; }
  .collection-page-hero { min-height: 670px; padding: 60px 25px; align-items: end; }
  .collection-page-hero > div { width: 100%; }
  .collection-page-hero h1 { font-size: 57px; }
  .product-page { padding: 15px 16px 70px; grid-template-columns: 1fr; }
  .product-main-image { min-height: 560px; }
  .product-image-detail { min-height: 230px; }
  .product-page-copy { padding-top: 20px; position: static; }
  .product-page-copy h1 { font-size: 52px; }
  .related-products .product-grid { grid-template-columns: 1fr; }
  .story-hero { grid-template-columns: 1fr; }
  .story-hero > div:first-child { padding: 75px 25px; }
  .story-hero > div:last-child { min-height: 580px; }
  .manifesto { padding: 80px 24px; }
  .values-grid { padding: 80px 25px; grid-template-columns: 1fr; gap: 65px; }
  .guide-grid { padding: 0; grid-template-columns: 1fr; }
  .guide-grid article { padding: 45px 25px; }
  .care-routine { padding: 75px 25px; grid-template-columns: 1fr; }
  .care-routine h2 { font-size: 48px; }
  .care-routine li { grid-template-columns: 1fr; gap: 7px; }
  .split-page { grid-template-columns: 1fr; }
  .split-page-intro { padding: 75px 25px; }
  .consultation-card { margin: 0; padding: 55px 25px; }
  .contact-page { padding: 75px 20px; grid-template-columns: 1fr; }
  .contact-form { padding: 35px 20px; }
  .contact-list > * { grid-template-columns: 75px 1fr; }
  .contact-list span { display: none; }
  .legal-page { padding: 75px 20px; }
  .legal-grid { grid-template-columns: 1fr; }
  .legal-grid article { min-height: 0; padding: 30px; }
  .faq-page { padding: 75px 20px; grid-template-columns: 1fr; }
  .faq-page > div:last-child { margin-top: 45px; }
  footer { grid-template-columns: 1fr 1fr; }
  footer > div:nth-child(4) { grid-column: 1 / -1; }
}

/* Premium Marilyn revamp */
:root {
  --black: #090708;
  --ink: #171114;
  --ivory: #f8f2ec;
  --paper: #fffaf7;
  --rose: #d58b8f;
  --rose-deep: #a96068;
  --blush: #f0d6d3;
  --line: #e6d9d3;
  --muted: #766a66;
}

.announcement {
  min-height: 32px;
  background: #b97178;
  color: #fff8f5;
  border: 0;
}
.announcement a { border-color: rgba(255,255,255,.5); }
.site-header {
  height: 98px;
  padding: 0 3.8vw;
  grid-template-columns: 250px 1fr 250px;
  color: #fff6f2;
  background: var(--black);
  border-bottom: 1px solid #292024;
}
.site-header .wordmark { height: 88px; align-items: center; }
.brand-logo {
  width: 148px;
  height: 80px;
  object-fit: contain;
}
.main-nav {
  justify-self: center;
  gap: 42px;
  color: #fff8f4;
}
.main-nav > a,
.nav-trigger {
  color: #fff8f4;
  font-size: 10px;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.main-nav a::after { background: var(--rose); }
.header-actions { gap: 16px; }
.header-icon, .bag-button, .menu-button { color: #fff8f4; }
.bag-button b { color: var(--black); background: var(--rose); }
.search-field { border-color: #57444a; }
.search-field input { color: #fff; }
.search-field input::placeholder { color: #a9959c; }
.search-field button { color: #fff; font-size: 18px; }
.mega-menu { top: 97px; }
.mega-menu-inner { padding-top: 42px; padding-bottom: 42px; }
.mega-feature { min-height: 245px; }
.nav-scrim {
  position: fixed;
  z-index: 50;
  inset: 130px 0 0;
  border: 0;
  background: rgba(10, 6, 8, .48);
  backdrop-filter: blur(2px);
}
footer { padding-top: 85px; }
.footer-logo { width: 185px; height: 110px; }

.luxury-hero {
  height: min(820px, calc(100vh - 130px));
  min-height: 650px;
  position: relative;
  overflow: hidden;
  color: white;
  background: #211817;
}
.luxury-hero-image { object-position: center 26%; }
.luxury-hero-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(10,7,8,.83) 0%, rgba(10,7,8,.55) 38%, rgba(10,7,8,.05) 70%),
    linear-gradient(0deg, rgba(10,7,8,.35), transparent 40%);
}
.luxury-hero-copy {
  width: min(680px, 49vw);
  position: absolute;
  z-index: 2;
  left: 7vw;
  top: 50%;
  transform: translateY(-51%);
}
.luxury-hero .eyebrow { color: #efb1b4; }
.luxury-hero h1 {
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(68px, 7vw, 112px);
  font-weight: 500;
  line-height: .86;
  letter-spacing: -.035em;
}
.luxury-hero h1 em { color: #e7a2a7; font-weight: 400; }
.luxury-hero .hero-copy { max-width: 480px; color: #eadfda; font-size: 20px; }
.rose-button {
  color: #170d10;
  border-color: var(--rose);
  background: var(--rose);
}
.rose-button:hover { color: #170d10; background: #edb2b5; }
.hero-text-link {
  padding: 10px 0;
  color: #fff7f3;
  border-bottom: 1px solid rgba(255,255,255,.55);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.hero-signature-card {
  position: absolute;
  right: 3.5vw;
  bottom: 3.5vw;
  z-index: 2;
  padding: 18px 22px;
  display: flex;
  align-items: center;
  gap: 16px;
  background: rgba(9,7,8,.78);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(10px);
}
.hero-signature-card > span { color: var(--rose); font-family: var(--font-display), serif; font-size: 28px; }
.hero-signature-card small, .hero-signature-card b { display: block; }
.hero-signature-card small { color: #bba8a1; font-size: 7px; letter-spacing: .12em; text-transform: uppercase; }
.hero-signature-card b { margin-top: 4px; font-family: var(--font-display), serif; font-size: 17px; }

.luxury-promise {
  padding: 25px 4.5vw;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  color: #f7ece7;
  background: #140f11;
}
.luxury-promise > div {
  padding: 0 28px;
  display: grid;
  grid-template-columns: 28px 1fr;
  column-gap: 12px;
  border-right: 1px solid #382b30;
}
.luxury-promise > div:last-child { border: 0; }
.luxury-promise > div > span { grid-row: 1 / 3; color: var(--rose); font-size: 20px; }
.luxury-promise b { font-family: var(--font-display), serif; font-size: 16px; font-weight: 600; }
.luxury-promise small { margin-top: 3px; color: #9c898e; font-size: 8px; }

.home-products { padding: 120px 4.5vw; background: var(--paper); }
.home-section-heading {
  margin-bottom: 55px;
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 8vw;
  align-items: end;
}
.home-section-heading h2,
.shade-story h2,
.beauty-service h2,
.love-notes h2,
.home-final-cta h2 {
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(54px, 5.4vw, 82px);
  font-weight: 500;
  line-height: .94;
}
.home-section-heading > div:last-child p {
  color: var(--muted);
  font-family: var(--font-display), serif;
  font-size: 18px;
  line-height: 1.5;
}
.home-section-heading a { color: var(--rose-deep); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.home-product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.premium-home .product-image { aspect-ratio: .8; }
.product-image img { object-position: center 22%; }
.product-card h3 a { transition: color .2s; }
.product-card h3 a:hover { color: var(--rose-deep); }
.product-meta h3 { font-size: 25px; line-height: 1; }
.product-meta > span { color: #5c4b4c; }

.shade-story {
  min-height: 820px;
  display: grid;
  grid-template-columns: .42fr .58fr;
  color: white;
  background: #130e10;
}
.shade-story-copy { padding: 9vw 6vw; display: flex; flex-direction: column; justify-content: center; }
.shade-story-copy .eyebrow { color: var(--rose); }
.shade-story-copy h2 { font-size: clamp(50px, 5vw, 74px); }
.shade-story-copy > p:not(.eyebrow) { margin: 30px 0 38px; color: #bba9a4; font-family: var(--font-display), serif; font-size: 18px; line-height: 1.6; }
.shade-story-copy .button { width: max-content; }
.shade-story-images { padding: 45px 45px 45px 0; display: grid; grid-template-columns: 1.1fr .9fr; gap: 14px; }
.shade-story-images > a { min-height: 730px; position: relative; overflow: hidden; }
.shade-story-images > a:nth-child(2) { min-height: 600px; align-self: end; }
.shade-story-images a::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(12,8,9,.74)); }
.shade-story-images img { transition: transform .7s ease; }
.shade-story-images a:hover img { transform: scale(1.025); }
.shade-story-images span { position: absolute; z-index: 2; left: 25px; bottom: 26px; color: white; }
.shade-story-images small, .shade-story-images b { display: block; }
.shade-story-images small { font-size: 7px; letter-spacing: .14em; text-transform: uppercase; }
.shade-story-images b { margin-top: 7px; font-family: var(--font-display), serif; font-size: 28px; }

.editorial-marquee {
  padding: 23px 3vw;
  display: flex;
  justify-content: space-around;
  align-items: center;
  gap: 20px;
  color: #37282c;
  background: var(--rose);
  overflow: hidden;
  white-space: nowrap;
  font-family: var(--font-display), serif;
  font-size: clamp(22px, 2.5vw, 37px);
  font-style: italic;
}
.editorial-marquee i { font-size: 12px; font-style: normal; }

.collection-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: #fff; }
.collection-feature { height: 730px; position: relative; overflow: hidden; }
.collection-feature::after { content: ""; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgba(9,7,8,.8)); }
.collection-feature img { transition: transform .8s ease; }
.collection-feature:hover img { transform: scale(1.02); }
.collection-feature > span { position: absolute; z-index: 2; left: 45px; bottom: 45px; display: flex; flex-direction: column; color: white; }
.collection-feature small { font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.collection-feature b { margin: 7px 0; font-family: var(--font-display), serif; font-size: 52px; font-weight: 500; }
.collection-feature em { color: #ecd6d5; font-size: 9px; font-style: normal; letter-spacing: .1em; text-transform: uppercase; }

.beauty-service { min-height: 800px; display: grid; grid-template-columns: 1fr 1fr; background: var(--ivory); }
.beauty-service-image { min-height: 800px; position: relative; overflow: hidden; }
.beauty-service-copy { padding: 8vw; display: flex; flex-direction: column; justify-content: center; }
.beauty-service-copy > p:not(.eyebrow) { color: var(--muted); font-family: var(--font-display), serif; font-size: 18px; line-height: 1.6; }
.service-steps { margin: 38px 0; }
.service-steps > div { padding: 19px 0; display: grid; grid-template-columns: 40px .7fr 1fr; align-items: center; gap: 15px; border-top: 1px solid var(--line); }
.service-steps > div:last-child { border-bottom: 1px solid var(--line); }
.service-steps span { color: var(--rose-deep); font-family: var(--font-display), serif; font-size: 18px; }
.service-steps b { font-family: var(--font-display), serif; font-size: 19px; }
.service-steps small { color: var(--muted); font-size: 9px; line-height: 1.5; }
.beauty-service .button { width: max-content; }

.love-notes { padding: 120px 15vw; text-align: center; background: #fffaf7; }
.love-notes h2 em { color: var(--rose-deep); font-weight: 400; }
.review-copy { max-width: 680px; margin: 28px auto; color: var(--muted); font-family: var(--font-display), serif; font-size: 20px; line-height: 1.55; }
.review-meta { display: flex; justify-content: center; gap: 24px; color: #6a5558; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.review-meta span { color: var(--rose-deep); letter-spacing: .16em; }
.lookbook-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; background: white; }
.lookbook-strip > div { aspect-ratio: 1; position: relative; overflow: hidden; }
.lookbook-strip img { transition: transform .5s; }
.lookbook-strip div:hover img { transform: scale(1.025); }
.home-final-cta { padding: 115px 6vw; color: white; background: linear-gradient(115deg, #140e10, #5c343b); text-align: center; }
.home-final-cta .eyebrow { color: var(--rose); }
.home-final-cta > div { margin-top: 35px; display: flex; justify-content: center; align-items: center; gap: 30px; }

.shop-hero {
  color: white;
  background:
    linear-gradient(90deg, rgba(12,8,9,.92), rgba(12,8,9,.2)),
    url("/media/products/espresso-bob-hero.webp") center 34% / cover;
}
.shop-hero .eyebrow, .shop-hero > p:last-child { color: #ead2d1; }
.shop-hero h1 em { color: var(--rose); }
.category-bar { background: #130e10; border-color: #3a2c31; color: #f6eae5; }

.product-page {
  padding-top: 28px;
  grid-template-columns: 1.15fr .85fr;
  gap: 5vw;
}
.product-gallery { gap: 12px; }
.product-main-image { min-height: 760px; aspect-ratio: 1; }
.product-image-detail { min-height: 0; aspect-ratio: 1; }
.product-gallery img { object-position: center 22%; }
.product-page-copy {
  padding: 55px 3vw 0 0;
  top: 20px;
}
.product-page-copy h1 { font-size: clamp(58px, 5.4vw, 82px); letter-spacing: -.025em; }
.purchase-box { margin-top: 28px; }
.product-price { color: var(--rose-deep); font-family: var(--font-display), serif; font-size: 27px; }
.option-group button { min-width: 58px; padding: 12px 14px; }
.option-group button.active { border-color: var(--rose-deep); background: #2a1b20; }
.product-page-copy details { background: transparent; }
.product-page-copy summary { font-size: 10px; }
.related-products .product-image { aspect-ratio: .82; }

@media (max-width: 1100px) {
  .site-header {
    z-index: 100;
    grid-template-columns: auto 1fr auto;
  }
  .site-header > .wordmark { margin-left: 18px; }
  .menu-button {
    width: 44px;
    height: 44px;
    padding: 0;
    display: grid;
    place-items: center;
    color: white;
    font-size: 22px;
  }
  .main-nav {
    width: min(88vw, 410px);
    height: 100dvh;
    max-height: none;
    padding: 0;
    position: fixed;
    z-index: 90;
    top: 0;
    left: 0;
    right: auto;
    bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    color: #fff;
    background: #100b0d;
    border: 0;
    box-shadow: 28px 0 70px rgba(0, 0, 0, .32);
    overflow-y: auto;
    overscroll-behavior: contain;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateX(-104%);
    transition: transform .34s cubic-bezier(.22,.75,.25,1), opacity .22s ease, visibility .34s;
  }
  .main-nav.is-open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
  }
  .mobile-drawer-header {
    min-height: 92px;
    padding: 10px 20px;
    position: sticky;
    z-index: 3;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #100b0d;
    border-bottom: 1px solid #33272b;
  }
  .mobile-drawer-header a {
    display: inline-flex;
    align-items: center;
  }
  .mobile-drawer-header a::after { display: none; }
  .mobile-drawer-header img {
    width: 112px;
    height: 66px;
    object-fit: contain;
  }
  .drawer-close {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: #fff7f3;
    background: transparent;
    border: 1px solid #4c393f;
    border-radius: 50%;
    cursor: pointer;
    font-size: 27px;
    line-height: 1;
  }
  .mobile-drawer-intro {
    padding: 27px 24px 25px;
    display: block;
    background: linear-gradient(135deg, #28171c, #100b0d);
    border-bottom: 1px solid #33272b;
  }
  .mobile-drawer-intro span {
    color: var(--rose);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
  }
  .mobile-drawer-intro p {
    max-width: 300px;
    margin: 9px 0 0;
    color: #e9d9d4;
    font-family: var(--font-display), Georgia, serif;
    font-size: 20px;
    line-height: 1.25;
  }
  .main-nav > a,
  .main-nav > .nav-item {
    width: auto;
    margin: 0 24px;
    padding: 20px 0;
    border-bottom: 1px solid #33272b;
  }
  .main-nav > a {
    color: #fff8f4;
    font-family: var(--font-display), Georgia, serif;
    font-size: 21px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
  }
  .main-nav > a::after { display: none; }
  .nav-trigger {
    width: 100%;
    display: flex;
    justify-content: space-between;
    color: #fff8f4;
    font-family: var(--font-display), Georgia, serif;
    font-size: 21px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
  }
  .nav-trigger span {
    color: var(--rose);
    font-family: var(--font-sans), Arial, sans-serif;
    transition: transform .2s ease;
  }
  .has-mega.is-open .nav-trigger span { transform: rotate(180deg); }
  .mega-menu { position: static; display: none; visibility: visible; opacity: 1; pointer-events: auto; transform: none; border: 0; box-shadow: none; }
  .has-mega.is-open .mega-menu { display: block; }
  .mega-menu-inner {
    padding: 24px 0 2px;
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .mega-feature, .mega-menu-footer { display: none; }
  .mega-column p { color: #e7a3a8; }
  .main-nav .mega-column a {
    padding: 7px 0;
    color: #d7c7c2;
    font-family: var(--font-sans), Arial, sans-serif;
    font-size: 13px;
  }
  .mobile-drawer-footer {
    margin-top: auto;
    padding: 28px 24px 34px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 13px 18px;
    background: #0b0809;
  }
  .mobile-drawer-footer a {
    color: #e8aaa9;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .mobile-drawer-footer a::after { display: none; }
  .mobile-drawer-footer small {
    grid-column: 1 / -1;
    color: #8f7d82;
    font-size: 8px;
    letter-spacing: .09em;
    text-transform: uppercase;
  }
  .nav-scrim {
    z-index: 80;
    inset: 0;
    background: rgba(8, 5, 6, .62);
    backdrop-filter: blur(4px);
  }
  .home-product-grid { grid-template-columns: 1fr 1fr; row-gap: 45px; }
  .shade-story { grid-template-columns: .48fr .52fr; }
  .shade-story-images { grid-template-columns: 1fr; }
  .shade-story-images > a { min-height: 360px !important; }
  .collection-feature { height: 600px; }
  .beauty-service-copy { padding: 6vw; }
}

@media (max-width: 720px) {
  .announcement { min-height: 29px; }
  .site-header { height: 78px; padding: 0 16px; }
  .site-header .wordmark { height: 72px; margin-left: 8px; }
  .brand-logo { width: 100px; height: 68px; }
  .menu-button { padding: 8px; color: white; }
  .main-nav {
    width: min(91vw, 380px);
    height: 100dvh;
    max-height: none;
    padding: 0;
    top: 0;
  }
  .mobile-drawer-header { min-height: 82px; padding: 6px 17px; }
  .mobile-drawer-header img { width: 102px; height: 64px; }
  .mobile-drawer-intro { padding: 23px 20px 21px; }
  .main-nav > a,
  .main-nav > .nav-item { margin-inline: 20px; padding-block: 18px; }
  .mega-menu-inner { grid-template-columns: 1fr; }
  .mega-column:not(:first-child) { display: block; }
  .mobile-drawer-footer { padding-inline: 20px; }
  .nav-scrim { inset: 0; }
  .site-header .bag-button > span:nth-child(2) { display: none; }
  .site-header .bag-button > span:first-child { display: inline; font-size: 17px; }
  .site-header .search-field { display: flex; }
  .site-header .header-actions { gap: 8px; }
  .luxury-hero { height: 730px; min-height: 0; }
  .luxury-hero-image { object-position: 62% center; }
  .luxury-hero-veil {
    background: linear-gradient(180deg, rgba(9,7,8,.08) 20%, rgba(9,7,8,.9) 68%, #090708 100%);
  }
  .luxury-hero-copy { width: auto; left: 22px; right: 22px; top: auto; bottom: 45px; transform: none; }
  .luxury-hero h1 { font-size: 53px; line-height: .9; }
  .luxury-hero .hero-copy { margin: 20px 0; font-size: 16px; }
  .luxury-hero .button-row { flex-direction: row; align-items: center; gap: 18px; }
  .luxury-hero .button { min-height: 44px; padding: 0 15px; gap: 12px; }
  .hero-signature-card { display: none; }
  .luxury-promise { padding: 18px 20px; grid-template-columns: 1fr 1fr; gap: 0; }
  .luxury-promise > div { padding: 14px 8px; grid-template-columns: 22px 1fr; border-right: 0; border-bottom: 1px solid #35292d; }
  .luxury-promise > div:nth-child(odd) { border-right: 1px solid #35292d; }
  .luxury-promise > div:nth-child(n+3) { border-bottom: 0; }
  .luxury-promise small { display: none; }
  .home-products { padding: 75px 18px; }
  .home-section-heading { margin-bottom: 35px; grid-template-columns: 1fr; gap: 20px; }
  .home-section-heading h2 { font-size: 48px; }
  .home-section-heading > div:last-child p { font-size: 16px; }
  .home-product-grid { grid-template-columns: 1fr 1fr; gap: 30px 10px; }
  .premium-home .product-meta { padding-top: 11px; flex-direction: column; gap: 2px; }
  .premium-home .product-meta h3 { font-size: 20px; }
  .premium-home .product-meta > span { padding-top: 4px; font-size: 9px; }
  .premium-home .product-detail-line { display: none; }
  .premium-home .quick-add { left: 8px; right: 8px; bottom: 8px; min-height: 36px; }
  .shade-story { grid-template-columns: 1fr; }
  .shade-story-copy { padding: 75px 24px 55px; }
  .shade-story-copy h2 { font-size: 46px; }
  .shade-story-images { padding: 0 12px 12px; grid-template-columns: 1.12fr .88fr; gap: 8px; }
  .shade-story-images > a { min-height: 420px !important; }
  .shade-story-images > a:nth-child(2) { min-height: 330px !important; }
  .editorial-marquee { justify-content: flex-start; font-size: 20px; }
  .collection-duo { grid-template-columns: 1fr; }
  .collection-feature { height: 540px; }
  .collection-feature > span { left: 24px; bottom: 28px; }
  .collection-feature b { font-size: 42px; }
  .beauty-service { grid-template-columns: 1fr; }
  .beauty-service-image { min-height: 540px; }
  .beauty-service-copy { padding: 70px 24px; }
  .beauty-service h2 { font-size: 48px; }
  .service-steps > div { grid-template-columns: 35px 1fr; }
  .service-steps small { grid-column: 2; }
  .love-notes { padding: 80px 24px; }
  .love-notes h2 { font-size: 46px; }
  .review-copy { font-size: 17px; }
  .lookbook-strip { grid-template-columns: 1fr 1fr; }
  .home-final-cta { padding: 85px 24px; }
  .home-final-cta h2 { font-size: 50px; }
  .home-final-cta > div { flex-direction: column; gap: 20px; }
  .product-page { padding: 12px 12px 70px; grid-template-columns: 1fr; }
  .product-main-image { min-height: 0; aspect-ratio: 1; }
  .product-image-detail { aspect-ratio: 1; }
  .product-page-copy { padding: 25px 10px 0; }
  .product-page-copy h1 { font-size: 50px; }
  .breadcrumbs { padding-inline: 18px; overflow-x: auto; white-space: nowrap; }
  .related-products .product-grid { grid-template-columns: 1fr 1fr; gap: 30px 10px; }
  .related-products .product-meta { flex-direction: column; }
  .related-products .product-meta > span { padding-top: 3px; }
  .footer-logo { width: 150px; height: 100px; }
}

/* Client media and responsive polish */
html { overflow-x: clip; }
body { min-width: 320px; }
.announcement { position: relative; z-index: 70; }
.site-header {
  position: sticky;
  top: 0;
  color: #fff8f4;
  background: #000;
  border-bottom-color: rgba(255, 255, 255, .12);
  box-shadow: 0 12px 30px rgba(0, 0, 0, .16);
}
.site-header .wordmark,
.header-actions,
.main-nav { min-width: 0; }
.main-nav > a,
.nav-trigger { transition: color .2s ease; }
.main-nav > a:hover,
.nav-trigger:hover { color: var(--rose); }
button:focus-visible,
a:focus-visible,
input:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--rose);
  outline-offset: 4px;
}

.product-page {
  max-width: 1600px;
  margin: 0 auto;
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, .78fr);
  gap: clamp(42px, 5vw, 88px);
}
.product-media-shell { min-width: 0; }
.product-media-stage {
  aspect-ratio: 4 / 5;
  position: relative;
  overflow: hidden;
  background: #efe7e0;
}
.product-media-stage img {
  object-fit: contain;
  object-position: center;
}
.product-media-stage video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  background: #0b090a;
}
.product-video-sound {
  position: absolute;
  z-index: 4;
  left: 16px;
  top: 16px;
  padding: 11px 14px;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 999px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: white;
  background: rgba(12, 9, 10, .78);
  backdrop-filter: blur(8px);
  cursor: pointer;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.product-video-sound span { color: var(--rose); font-size: 9px; }
.product-video-sound:hover { background: var(--rose-deep); }
.media-count {
  position: absolute;
  right: 16px;
  top: 16px;
  padding: 8px 11px;
  color: white;
  background: rgba(12, 9, 10, .74);
  backdrop-filter: blur(8px);
  font-size: 9px;
  letter-spacing: .1em;
}
.media-arrows {
  position: absolute;
  right: 16px;
  bottom: 16px;
  display: flex;
  gap: 6px;
}
.media-arrows button {
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: white;
  background: rgba(12, 9, 10, .7);
  backdrop-filter: blur(8px);
  cursor: pointer;
  font-size: 18px;
  transition: background .2s ease, transform .2s ease;
}
.media-arrows button:hover { background: var(--rose-deep); transform: translateY(-2px); }
.product-media-thumbs {
  margin-top: 12px;
  padding: 2px 0 8px;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(82px, 105px);
  gap: 9px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
  scroll-snap-type: inline proximity;
}
.product-media-thumbs button {
  aspect-ratio: 1;
  padding: 0;
  border: 1px solid transparent;
  position: relative;
  overflow: hidden;
  background: #eee5de;
  cursor: pointer;
  scroll-snap-align: start;
}
.product-media-thumbs button::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 2px solid transparent;
  transition: border-color .2s ease;
}
.product-media-thumbs button.is-active::after { border-color: var(--rose-deep); }
.product-media-thumbs img { object-fit: cover; }
.video-chip {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: white;
  background: rgba(10, 7, 8, .8);
  transform: translate(-50%, -50%);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.gallery-note {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 8px;
  letter-spacing: .04em;
}
.product-page-copy { padding-top: 22px; top: 118px; }
.product-page-copy h1 { text-wrap: balance; }
.product-rating {
  display: flex;
  align-items: center;
  gap: 10px;
}
.product-rating p { margin: 0; }
.product-assurances {
  margin: 28px 0 12px;
  padding: 17px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.product-assurances span::before {
  content: "✓";
  margin-right: 7px;
  color: var(--rose-deep);
}
.related-products .section-heading { margin-bottom: 38px; }
.related-products .section-heading > .text-link { justify-self: end; align-self: end; }

@media (max-width: 1320px) {
  .site-header { grid-template-columns: 190px 1fr 190px; }
  .main-nav { gap: 26px; }
  .search-field { width: 88px; }
}
@media (max-width: 1100px) {
  .site-header { grid-template-columns: 52px 1fr auto; }
  .site-header > .wordmark { justify-self: center; margin: 0; }
  .menu-button { color: #fff8f4; }
  .header-actions { justify-self: end; }
  .product-page { grid-template-columns: minmax(0, 1fr) minmax(330px, .78fr); gap: 34px; }
  .product-page-copy { top: 108px; }
}
@media (max-width: 820px) {
  .product-page { grid-template-columns: 1fr; padding: 14px 16px 76px; }
  .product-media-stage { aspect-ratio: 4 / 5; }
  .product-page-copy { padding: 28px 4px 0; position: static; }
  .related-products .section-heading { grid-template-columns: 1fr; gap: 20px; }
  .related-products .section-heading > .text-link { justify-self: start; }
}
@media (max-width: 720px) {
  .announcement {
    min-height: 34px;
    padding: 8px 16px;
    justify-content: center;
    text-align: center;
  }
  .announcement > span:first-child,
  .announcement > a { display: none; }
  .announcement-centre { display: inline; font-size: 8px; }
  .site-header { height: 76px; padding: 0 12px; }
  .site-header .wordmark { height: 70px; }
  .brand-logo { width: 108px; height: 68px; }
  .header-actions { gap: 4px; }
  .desktop-only { display: none !important; }
  .search-field.is-open {
    background: var(--black);
    border-color: #3d3035;
  }
  .search-field.is-open label { flex: 1; }
  .search-field.is-open input { width: 100%; }
  .product-media-stage { aspect-ratio: 4 / 5; margin-inline: -16px; }
  .product-media-stage img { object-fit: cover; }
  .product-media-thumbs { grid-auto-columns: 78px; margin-inline: -4px; }
  .media-count { right: 12px; top: 12px; }
  .media-arrows { right: 12px; bottom: 12px; }
  .media-arrows button { width: 42px; height: 42px; }
  .gallery-note { font-size: 7px; }
  .product-page-copy h1 { font-size: clamp(47px, 14vw, 60px); }
  .product-rating { align-items: flex-start; flex-direction: column; gap: 5px; }
  .option-group > div { gap: 8px; }
  .option-group button { min-height: 44px; }
  .button.full { min-height: 54px; }
  .product-assurances { gap: 11px 16px; }
  .related-products .product-grid { grid-template-columns: 1fr 1fr; gap: 30px 10px; }
  .related-products .product-meta { display: block; }
  .related-products .product-meta > span { display: block; padding-top: 5px; }
  .quick-add { opacity: 1; transform: none; }
}
@media (max-width: 430px) {
  .site-header .bag-button > span:first-child { display: none; }
  .related-products .product-grid { grid-template-columns: 1fr; }
}
/* Client-approved story, care and policy pages */
.story-copy-section {
  padding: clamp(80px, 9vw, 140px) 8vw;
  display: grid;
  grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr);
  gap: clamp(50px, 8vw, 130px);
  background: var(--paper);
}
.story-copy-heading { position: sticky; top: 140px; align-self: start; }
.story-copy-heading h2,
.care-welcome h2,
.policy-section h2,
.policy-contact-band h2 {
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-weight: 500;
  line-height: 1;
}
.story-copy-heading h2 { max-width: 520px; font-size: clamp(45px, 5vw, 72px); }
.story-copy-body { max-width: 760px; }
.story-copy-body p {
  margin: 0 0 23px;
  color: var(--muted);
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(18px, 1.55vw, 23px);
  line-height: 1.6;
}
.story-copy-body p:first-child,
.story-copy-body p:nth-child(3),
.story-copy-body p:nth-last-child(2) { color: var(--ink); font-weight: 600; }
.story-scripture { background: #000; }
.story-scripture p { max-width: 980px; margin-inline: auto; }

.policy-hero {
  padding: clamp(85px, 10vw, 145px) 8vw;
  background: linear-gradient(120deg, #f7eee8 0%, #efe0d8 58%, #e8d2ca 100%);
}
.policy-hero h1 {
  max-width: 1000px;
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(58px, 7vw, 104px);
  font-weight: 500;
  line-height: .9;
}
.policy-hero h1 em { color: var(--rose-deep); font-weight: 400; }
.policy-hero > p:last-child {
  max-width: 650px;
  margin: 30px 0 0;
  color: var(--muted);
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(18px, 2vw, 23px);
  line-height: 1.55;
}
.compact-policy-hero { padding-block: clamp(75px, 8vw, 110px); }
.policy-jump {
  min-height: 66px;
  padding: 0 8vw;
  display: flex;
  align-items: center;
  gap: 38px;
  position: sticky;
  z-index: 15;
  top: 98px;
  background: rgba(255, 252, 249, .96);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(12px);
}
.policy-jump a {
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.policy-jump a:hover { color: var(--rose-deep); }
.policy-shell {
  padding: clamp(70px, 8vw, 120px) 8vw;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
}
.compact-policy-shell,
.single-policy-shell { display: block; background: var(--paper); }
.care-welcome { text-align: center; }
.care-welcome h2 { max-width: 820px; margin: 0 auto 30px; font-size: clamp(44px, 5vw, 68px); }
.care-welcome > p:not(.eyebrow) { max-width: 760px; margin: 12px auto; color: var(--muted); font-size: 13px; line-height: 1.8; }
.policy-section {
  padding: clamp(38px, 4.2vw, 68px);
  scroll-margin-top: 185px;
  background: var(--paper);
}
.policy-section-wide { grid-column: 1 / -1; }
.single-policy-shell .policy-section { max-width: 1000px; margin: 0 auto; }
.policy-kicker {
  margin: 0 0 15px;
  color: var(--rose-deep) !important;
  font-size: 9px !important;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.policy-section h2 { max-width: 800px; font-size: clamp(37px, 4vw, 58px); }
.policy-section h3 {
  margin: 45px 0 13px;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(25px, 2.7vw, 34px);
  font-weight: 600;
}
.policy-section > p:not(.policy-kicker),
.policy-section li {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.85;
}
.policy-section > p:not(.policy-kicker) { max-width: 900px; margin: 20px 0 0; }
.check-list,
.dash-list,
.numbered-care-list { margin: 25px 0 0; padding: 0; }
.check-list,
.dash-list { list-style: none; }
.check-list li,
.dash-list li,
.numbered-care-list li { max-width: 920px; padding: 9px 0 9px 30px; position: relative; }
.check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--rose-deep);
  font-weight: 700;
}
.dash-list li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--rose-deep);
}
.numbered-care-list { padding-left: 24px; }
.numbered-care-list li { padding-left: 7px; }
.policy-callout {
  max-width: 920px;
  margin-top: 35px !important;
  padding: 24px 28px;
  color: var(--ink) !important;
  background: var(--ivory);
  border-left: 3px solid var(--rose);
  font-size: 12px;
  line-height: 1.75;
}
.policy-contact-band {
  padding: 75px 8vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 50px;
  color: white;
  background: #000;
}
.policy-contact-band .eyebrow { color: var(--rose); }
.policy-contact-band h2 { font-size: clamp(40px, 4vw, 58px); }
.policy-contact-band p:not(.eyebrow) { max-width: 650px; color: #bfaeb4; line-height: 1.7; }
.policy-contact-band .button { flex: 0 0 auto; }
.care-guide-grid article h2 { margin-top: 28px; }
.care-policy-shell { padding-top: 1px; }
.care-signoff { background: #000; }
.care-signoff small { margin-top: 32px; display: block; color: #eee0dc; font-family: var(--font-display), Georgia, serif; font-size: 16px; }
.terms-list { margin-top: 30px; }

@media (max-width: 820px) {
  .story-copy-section { grid-template-columns: 1fr; gap: 45px; }
  .story-copy-heading { position: static; }
  .policy-shell { grid-template-columns: 1fr; padding-inline: 18px; }
  .policy-section-wide { grid-column: auto; }
  .policy-jump { top: 76px; gap: 26px; overflow-x: auto; }
  .policy-jump a { white-space: nowrap; }
  .policy-contact-band { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 520px) {
  .story-copy-section { padding: 70px 22px; }
  .story-copy-body p { font-size: 18px; }
  .policy-hero { padding: 70px 22px; }
  .policy-hero h1 { font-size: 50px; }
  .policy-jump { padding-inline: 20px; }
  .policy-shell { padding: 12px; }
  .compact-policy-shell { padding: 65px 22px; }
  .policy-section { padding: 35px 22px; }
  .policy-section h2 { font-size: 36px; }
  .policy-contact-band { padding: 65px 22px; }
}
/* Hair extensions */
.extensions-hero {
  color: white;
  background: radial-gradient(circle at 78% 25%, #583a3f 0, #23191c 35%, #050505 72%);
}
.extensions-hero .eyebrow { color: var(--rose); }
.extensions-hero > p:last-child { color: #d6c9c5; }
.extension-guide-grid article h2 { margin-top: 28px; }

/* Topper size guide */
.topper-guide-section {
  padding: clamp(80px, 9vw, 140px) 8vw;
  scroll-margin-top: 150px;
  background: #f3ebe4;
}
.topper-guide-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  align-items: end;
  gap: clamp(35px, 8vw, 120px);
  margin-bottom: clamp(42px, 6vw, 82px);
}
.topper-guide-heading h2 {
  max-width: 700px;
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(52px, 6.5vw, 96px);
  font-weight: 500;
  line-height: .92;
}
.topper-guide-intro p {
  margin: 0 0 20px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.75;
}
.topper-guide-intro a {
  padding-bottom: 5px;
  color: var(--ink);
  border-bottom: 1px solid var(--rose-deep);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.topper-size-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2.2vw, 34px);
}
.topper-size-card {
  margin: 0;
  overflow: hidden;
  background: #fbf8f3;
  border: 1px solid rgba(63, 39, 28, .12);
}
.topper-size-card img {
  width: 100%;
  height: auto;
  display: block;
}
.topper-size-card figcaption {
  min-height: 86px;
  padding: 20px 24px;
  display: flex;
  align-items: center;
  gap: 20px;
  border-top: 1px solid rgba(63, 39, 28, .1);
}
.topper-size-card figcaption > span {
  flex: 0 0 auto;
  color: var(--rose-deep);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.topper-size-card figcaption div { display: flex; flex-direction: column; gap: 4px; }
.topper-size-card figcaption strong {
  font-family: var(--font-display), Georgia, serif;
  font-size: 20px;
  font-weight: 600;
}
.topper-size-card figcaption small { color: var(--muted); font-size: 10px; letter-spacing: .04em; }
.topper-guide-note {
  margin-top: clamp(26px, 4vw, 50px);
  padding: 28px clamp(24px, 4vw, 52px);
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 25px;
  background: var(--black);
  color: white;
}
.topper-guide-note span {
  color: var(--rose);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.topper-guide-note p { max-width: 900px; margin: 0; color: #d4c6c0; font-size: 11px; line-height: 1.75; }

@media (max-width: 820px) {
  .topper-guide-section { padding-inline: 22px; }
  .topper-guide-heading { grid-template-columns: 1fr; gap: 28px; }
  .topper-size-grid { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .topper-guide-section { padding-block: 68px; scroll-margin-top: 95px; }
  .topper-guide-heading h2 { font-size: 50px; }
  .topper-size-card figcaption { min-height: 76px; padding: 17px 18px; }
  .topper-size-card figcaption strong { font-size: 18px; }
  .topper-guide-note { grid-template-columns: 1fr; gap: 12px; }
}

/* PHP/cPanel compatibility: the live app does not use Next.js image wrappers. */
.luxury-hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-image img,
.shade-story-images img,
.collection-feature img,
.beauty-service-image img,
.lookbook-strip img,
.product-media-stage img,
.product-media-stage video,
.product-media-thumbs img,
.cart-image img,
.media-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.shade-story-images a,
.collection-feature,
.beauty-service-image,
.lookbook-strip div,
.product-media-stage,
.product-media-thumbs button,
.cart-image,
.media-thumb {
  position: relative;
  overflow: hidden;
}

.method-picker label {
  padding: 18px;
  border: 1px solid var(--line);
  background: white;
  text-align: left;
  cursor: pointer;
}

.method-picker label.active {
  border-color: var(--rose-deep);
  box-shadow: inset 0 0 0 1px var(--rose-deep);
}

.method-picker label input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.option-group select {
  width: 100%;
  margin-top: 12px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  background: white;
  color: var(--ink);
  font: inherit;
}

.nav-scrim[hidden],
[hidden] {
  display: none !important;
}

/* Client-ready polish pass */
body {
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

.site-header {
  box-shadow: 0 16px 45px rgba(0, 0, 0, .18);
}

.site-header .brand-logo {
  filter: drop-shadow(0 8px 16px rgba(0, 0, 0, .28));
}

.luxury-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 22%;
  pointer-events: none;
  background: linear-gradient(180deg, transparent, rgba(13, 11, 10, .56));
}

.luxury-hero-copy,
.hero-signature-card {
  z-index: 2;
}

.product-card {
  padding: 10px;
  border: 1px solid rgba(63, 39, 28, .08);
  background: rgba(255, 253, 249, .72);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.product-card:hover {
  transform: translateY(-4px);
  border-color: rgba(200, 136, 128, .35);
  box-shadow: 0 18px 50px rgba(43, 25, 18, .1);
}

.product-card .product-image {
  background: #ebe2da;
}

.quick-add {
  box-shadow: 0 12px 28px rgba(0, 0, 0, .22);
}

.page-hero,
.home-products,
.catalogue-section,
.related-products,
.commerce-page {
  isolation: isolate;
}

.admin {
  background:
    radial-gradient(circle at top right, rgba(200, 136, 128, .16), transparent 34%),
    linear-gradient(180deg, #f8f3ed 0%, #eee7df 100%);
}

.admin-sidebar {
  box-shadow: 18px 0 60px rgba(16, 12, 10, .18);
}

.admin-sidebar .wordmark.compact {
  min-height: 58px;
}

.admin-sidebar nav a {
  width: 100%;
  padding: 13px 15px;
  display: grid;
  grid-template-columns: 25px 1fr;
  align-items: center;
  gap: 10px;
  border-radius: 8px;
  color: #b9aca2;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}

.admin-sidebar nav a:hover,
.admin-sidebar nav a.active {
  color: white;
  background: linear-gradient(90deg, rgba(200, 136, 128, .24), rgba(255, 255, 255, .06));
  transform: translateX(2px);
}

.admin-sidebar nav a > span {
  color: var(--rose);
  font-size: 15px;
}

.admin-user {
  padding-top: 16px;
  display: flex !important;
  align-items: center;
  gap: 10px;
  border-top: 1px solid #352f2b;
  color: white !important;
}

.admin-user > span:last-child {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.admin-user small {
  max-width: 150px;
  margin-top: 3px;
  overflow: hidden;
  color: #9f9289;
  font-size: 8px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-signout {
  margin-top: 10px;
  display: inline-flex !important;
  justify-content: center;
  border: 1px solid rgba(220, 185, 196, .2);
  border-radius: 999px;
  background: rgba(255, 255, 255, .04);
}

.admin-main {
  max-width: 1440px;
  width: 100%;
}

.admin-header {
  margin-bottom: 26px;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(65, 47, 38, .1);
}

.admin-header h1 {
  letter-spacing: -.02em;
}

.admin-primary,
.admin-icon,
.admin-filters button,
.admin-editor-actions .danger-button {
  border-radius: 999px;
}

.admin-primary {
  box-shadow: 0 12px 28px rgba(23, 19, 17, .16);
}

.admin-welcome,
.admin-card,
.stat,
.admin-login form {
  border-radius: 22px;
}

.admin-welcome {
  overflow: hidden;
  position: relative;
  box-shadow: 0 22px 70px rgba(50, 25, 20, .18);
}

.admin-welcome::after {
  content: "MH";
  position: absolute;
  right: 34px;
  bottom: -22px;
  color: rgba(255, 255, 255, .05);
  font-family: var(--font-display), serif;
  font-size: 140px;
  line-height: 1;
}

.stat {
  box-shadow: 0 14px 40px rgba(45, 31, 24, .06);
}

.admin-card {
  box-shadow: 0 18px 55px rgba(45, 31, 24, .07);
}

.order-table article,
.admin-product-table article,
.inventory-list article {
  min-height: 70px;
}

.order-table article a,
.admin-product-table article a,
.detail-list a {
  color: var(--rose-deep);
  font-weight: 700;
}

.admin-product-image,
.product-admin-image,
.media-thumb {
  border-radius: 14px;
}

.admin-product-image img,
.product-admin-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-state,
.order-status {
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: .04em;
}

.product-state.archived,
.order-status.failed,
.order-status.cancelled {
  background: #f6dede;
  color: #8a3a3a !important;
}

.order-status.pending,
.order-status.manual-review,
.order-status.unfulfilled {
  background: #f4e8d9;
  color: #84633e !important;
}

.order-status.completed {
  background: #e1eee4;
  color: #55725b !important;
}

.admin-filters {
  padding: 14px;
  border: 1px solid #e4ddd5;
  border-radius: 18px;
  background: rgba(255, 255, 255, .7);
  box-shadow: 0 12px 38px rgba(45, 31, 24, .05);
}

.admin-form-grid label,
.admin-form-stack label {
  color: #44383b;
}

.check-label {
  padding: 14px;
  border: 1px solid var(--line);
  background: #fbf8f3;
}

.admin-login {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(120deg, rgba(20, 14, 12, .92), rgba(20, 14, 12, .72)),
    url("/media/products/midnight-bob-hero.webp") center / cover;
}

.admin-login form {
  position: relative;
  z-index: 1;
  border: 1px solid rgba(255, 255, 255, .18);
  box-shadow: 0 30px 90px rgba(0, 0, 0, .34);
}

.admin-login form > a:last-child {
  color: var(--muted);
  font-size: 10px;
}

.empty-admin.mini {
  min-height: 220px;
}

@media (max-width: 1000px) {
  .admin-sidebar nav a {
    grid-template-columns: 1fr;
    justify-items: center;
    font-size: 0;
  }

  .admin-sidebar nav a > span {
    font-size: 17px;
  }
}

/* Final responsive guardrails for the homepage/CMS revamp. */
.home-editorial,
.cms-page-hero {
  min-width: 0;
}

.home-editorial-image,
.cms-page-hero figure {
  position: relative !important;
  overflow: hidden !important;
}

.home-editorial-image img,
.cms-page-hero figure img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

@media (max-width: 900px) {
  .home-editorial {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .home-editorial-image,
  .cms-page-hero figure {
    width: 100% !important;
  }
}

/* Product media upload manager */
.admin-media-manager {
  margin-top: 18px;
}

.admin-media-existing {
  display: grid;
  gap: 14px;
}

.admin-media-existing article {
  display: grid;
  grid-template-columns: 96px minmax(180px, 1fr) 100px 120px 100px;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border: 1px solid #eee7df;
  border-radius: 18px;
  background: rgba(255, 255, 255, .72);
}

.admin-media-existing .media-thumb {
  width: 96px;
  aspect-ratio: 1;
}

.admin-media-existing label {
  display: grid;
  gap: 7px;
  color: #6d5f59;
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.admin-media-existing input[type="text"],
.admin-media-existing input[type="number"],
.admin-media-existing input:not([type]) {
  width: 100%;
  padding: 11px 12px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
}

.media-radio,
.media-remove,
.admin-upload-panel .check-label {
  display: flex !important;
  grid-template-columns: none !important;
  align-items: center;
  gap: 8px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.admin-upload-panel {
  margin-top: 18px;
  padding: 18px;
  display: grid;
  gap: 14px;
  border: 1px dashed rgba(112, 82, 72, .38);
  border-radius: 20px;
  background: #fffaf6;
}

.admin-upload-panel > label:first-child {
  display: grid;
  gap: 10px;
  color: #44383b;
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.admin-upload-panel input[type="file"] {
  width: 100%;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  color: var(--muted);
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
}

@media (max-width: 860px) {
  .admin-media-existing article {
    grid-template-columns: 82px 1fr;
  }

  .admin-media-existing .media-thumb {
    width: 82px;
    grid-row: span 4;
  }
}

/* Homepage revamp + CMS polish */
footer {
  background: #070605 !important;
  color: #f7efe9 !important;
}

footer a,
footer small,
footer p,
.footer-bottom {
  color: rgba(247, 239, 233, .72) !important;
}

footer b,
.footer-brand > p {
  color: #fffaf6 !important;
}

.footer-bottom {
  border-top-color: rgba(255, 255, 255, .12) !important;
}

.clean-hero {
  min-height: clamp(680px, 84vh, 900px);
}

.clean-section {
  padding-top: clamp(74px, 8vw, 130px);
  padding-bottom: clamp(74px, 8vw, 130px);
}

.clean-section .home-section-heading {
  max-width: 1220px;
  margin-inline: auto;
}

.clean-section .home-product-grid {
  max-width: 1220px;
  margin-inline: auto;
}

.home-editorial {
  margin: 0 auto;
  width: min(1220px, 90vw);
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(320px, .72fr);
  gap: clamp(24px, 4vw, 64px);
  align-items: stretch;
}

.home-editorial-copy {
  padding: clamp(34px, 5vw, 76px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #fffaf6;
  border: 1px solid rgba(63, 39, 28, .1);
}

.home-editorial-copy h2 {
  max-width: 760px;
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(44px, 5vw, 76px);
  font-weight: 500;
  line-height: .94;
}

.home-editorial-copy p:not(.eyebrow) {
  max-width: 560px;
  color: var(--muted);
  font-family: var(--font-display), Georgia, serif;
  font-size: 19px;
  line-height: 1.55;
}

.home-editorial-image {
  min-height: 520px;
  position: relative;
  overflow: hidden;
  background: #eadfd8;
}

.home-editorial-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.clean-duo {
  width: min(1220px, 90vw);
  margin: clamp(70px, 8vw, 120px) auto 0;
}

.clean-service {
  width: min(1220px, 90vw);
  margin-inline: auto;
  border: 1px solid rgba(63, 39, 28, .1);
  background: #fffaf6;
}

.clean-service .beauty-service-copy h2 {
  max-width: 580px;
  line-height: .95;
}

.cms-page-hero {
  min-height: 70vh;
  padding: clamp(70px, 8vw, 130px) 5vw;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(320px, .7fr);
  gap: clamp(28px, 5vw, 84px);
  align-items: center;
  background: var(--paper);
}

.cms-page-hero h1 {
  max-width: 760px;
  margin: 0 0 26px;
  font-family: var(--font-display), Georgia, serif;
  font-size: clamp(58px, 8vw, 112px);
  font-weight: 500;
  line-height: .9;
}

.cms-page-hero p:not(.eyebrow) {
  max-width: 680px;
  color: var(--muted);
  font-family: var(--font-display), Georgia, serif;
  font-size: 21px;
  line-height: 1.55;
}

.cms-page-hero figure {
  min-height: 520px;
  margin: 0;
  overflow: hidden;
  background: #eadfd8;
}

.cms-page-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.admin-sidebar nav {
  gap: 8px;
}

.cms-card {
  margin-top: 22px;
}

.cms-list article {
  padding: 18px 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  border-top: 1px solid #eee9e3;
}

.cms-list b {
  display: block;
  font-size: 11px;
}

.cms-list span {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 9px;
}

.cms-list a {
  color: var(--rose-deep);
  font-weight: 800;
}

@media (max-width: 900px) {
  .home-editorial,
  .cms-page-hero {
    grid-template-columns: 1fr;
  }

  .home-editorial-image,
  .cms-page-hero figure {
    min-height: 420px;
  }

  .clean-duo,
  .clean-service,
  .home-editorial {
    width: calc(100vw - 36px);
  }
}

@media (max-width: 560px) {
  .clean-hero {
    min-height: 720px;
  }

  .luxury-hero-copy {
    bottom: 34px !important;
  }

  .luxury-hero h1 {
    font-size: clamp(48px, 15vw, 68px) !important;
  }

  .luxury-promise {
    grid-template-columns: 1fr;
  }

  .home-editorial-copy,
  .beauty-service-copy,
  .cms-page-hero {
    padding-inline: 22px;
  }

  .cms-page-hero h1 {
    font-size: 56px;
  }
}

@media (max-width: 720px) {
  .product-card {
    padding: 7px;
  }

  .admin-sidebar nav a {
    width: 48px;
    height: 42px;
    padding: 8px;
  }

  .admin-user,
  .admin-signout {
    display: none !important;
  }

  .admin-filters {
    grid-template-columns: 1fr;
  }

  .admin-product-table article,
  .admin-orders article {
    grid-template-columns: 64px 1fr;
  }

  .admin-product-table article > span,
  .admin-product-table article > div:nth-of-type(2),
  .admin-orders article > b,
  .admin-orders article > span {
    grid-column: 2;
  }
}

