:root {
  --paper: #fffdf9;
  --cream: #f7f1e7;
  --cream-deep: #eee3d3;
  --blush: #f2e4dc;
  --rose: #b96755;
  --wine: #843f43;
  --wine-deep: #663036;
  --forest: #253c34;
  --forest-deep: #142a22;
  --forest-soft: #365449;
  --sage: #dfe8df;
  --sage-pale: #edf2ec;
  --gold: #c79a4a;
  --gold-soft: #e8d2a6;
  --ink: #28231f;
  --body: #514a43;
  --muted: #7f766d;
  --line: #e7ded2;
  --line-dark: rgba(255, 255, 255, .14);
  --shadow-sm: 0 14px 34px -26px rgba(34, 28, 23, .4);
  --shadow-md: 0 25px 65px -38px rgba(34, 28, 23, .5);
  --shadow-card: 0 22px 50px -34px rgba(36, 29, 24, .52);
  --radius-sm: 6px;
  --radius: 12px;
  --radius-lg: 24px;
  --site: 1240px;
  --reading: 720px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Outfit", sans-serif;
  font-size: 16px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body:has(.nav-toggle:checked) { overflow: hidden; }
main { display: block; overflow: clip; }
h1, h2, h3, h4, p, ul, ol, dl, blockquote, figure { margin-top: 0; }
h1, h2, h3, h4 {
  color: var(--ink);
  font-family: "Fraunces", Georgia, serif;
  font-weight: 500;
  letter-spacing: -.028em;
}
h1 { font-size: clamp(2.75rem, 5vw, 5.15rem); line-height: .99; }
h2 { font-size: clamp(2rem, 3.2vw, 3.4rem); line-height: 1.06; }
h3 { font-size: 1.35rem; line-height: 1.22; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { color: inherit; font: inherit; }
button { cursor: pointer; }
::selection { background: var(--gold-soft); color: var(--ink); }
:focus-visible { outline: 3px solid rgba(199, 154, 74, .72); outline-offset: 3px; }

.wrap { width: min(100% - 40px, var(--site)); margin-inline: auto; }
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.skip-link {
  position: fixed;
  left: 16px;
  top: -100px;
  z-index: 999;
  padding: 10px 16px;
  background: var(--paper);
  color: var(--ink);
  border: 2px solid var(--gold);
  font-weight: 600;
}
.skip-link:focus { top: 16px; }
.section-space { padding-block: 104px; }
.section-space--small { padding-block: 76px; }
.eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 15px;
  color: var(--wine);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .16em;
  line-height: 1.2;
  text-transform: uppercase;
}
.eyebrow::before {
  content: "";
  width: 22px;
  height: 1px;
  background: currentColor;
  opacity: .6;
}
.eyebrow-star { color: var(--gold); font-size: .85rem; }
.eyebrow-star + * { margin-left: 0; }
.eyebrow:has(.eyebrow-star)::before { display: none; }
.eyebrow--light { color: var(--gold-soft); }
.section-heading { margin-bottom: 43px; }
.section-heading h2 { max-width: 760px; margin-bottom: 0; }
.section-heading > p,
.section-heading > div > p:not(.eyebrow) { color: var(--muted); }
.section-heading--center { max-width: 780px; margin-inline: auto; text-align: center; }
.section-heading--center .eyebrow { justify-content: center; }
.section-heading--center > p:last-child { max-width: 620px; margin: 18px auto 0; font-size: 1.06rem; }
.section-heading--split { display: flex; align-items: end; justify-content: space-between; gap: 60px; }
.section-heading--split > p { width: min(100%, 430px); margin-bottom: 3px; }
.content-heading { margin-bottom: 26px; }
.content-heading h2 { margin-bottom: 0; font-size: clamp(1.9rem, 3vw, 2.8rem); }
.content-heading--split { display: flex; justify-content: space-between; align-items: end; gap: 30px; }

.button {
  display: inline-flex;
  min-height: 50px;
  align-items: stretch;
  background: var(--wine);
  border: 1px solid var(--wine);
  color: #fff;
  font-size: .9rem;
  font-weight: 600;
  line-height: 1;
  transition: transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
}
.button > span { display: flex; align-items: center; padding: 0 21px; }
.button > b { display: grid; width: 48px; place-items: center; background: rgba(255, 255, 255, .12); font-size: 1rem; }
.button:hover { background: var(--wine-deep); border-color: var(--wine-deep); transform: translateY(-2px); }
.button--quiet { background: transparent; border-color: #bfb2a4; color: var(--ink); }
.button--quiet > b { border-left: 1px solid #d7cec2; background: rgba(255, 255, 255, .5); color: var(--wine); }
.button--quiet:hover { background: var(--paper); border-color: var(--wine); color: var(--wine); }
.button--gold { background: var(--gold); border-color: var(--gold); color: var(--forest-deep); }
.button--gold:hover { background: #ddb25d; border-color: #ddb25d; }
.button--light { background: var(--paper); border-color: var(--paper); color: var(--ink); }
.button--light > b { background: var(--cream); color: var(--wine); }
.button--light:hover { background: var(--cream); border-color: var(--cream); }
.button--outline-light { background: transparent; border-color: rgba(255,255,255,.42); color: #fff; }
.button--outline-light:hover { background: rgba(255,255,255,.08); border-color: #fff; }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; }
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--wine);
  font-size: .86rem;
  font-weight: 600;
}
.text-link span, .text-link b { transition: transform .18s ease; }
.text-link:hover span, .text-link:hover b { transform: translateX(4px); }
.center-link { display: flex; justify-content: center; margin-top: 42px; }

/* Announcement and navigation */
.announce { background: var(--forest-deep); color: rgba(255,255,255,.8); }
.announce__inner {
  display: flex;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: .78rem;
  letter-spacing: .02em;
}
.announce b { color: #fff; font-weight: 600; }
.announce a { margin-left: 7px; color: var(--gold-soft); font-weight: 600; }
.announce a span { margin-left: 3px; }
.announce__spark { color: var(--gold); }
.site-header {
  position: sticky;
  z-index: 80;
  top: 0;
  background: rgba(255, 253, 249, .96);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
  transition: box-shadow .2s ease;
}
.site-header.is-scrolled { box-shadow: 0 12px 32px -28px rgba(35,29,24,.8); }
.header-row { display: flex; min-height: 78px; align-items: center; gap: 30px; }
.brand { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.brand-mark { display: grid; width: 39px; height: 39px; place-items: center; color: var(--wine); }
.brand-mark svg { width: 39px; height: 39px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.45; }
.brand-mark svg path:last-child { fill: var(--gold); stroke: var(--gold); stroke-width: .5; }
.brand-type { display: block; color: var(--forest-deep); font-family: "Fraunces", Georgia, serif; font-size: 1.38rem; font-weight: 600; letter-spacing: -.045em; line-height: .95; white-space: nowrap; }
.brand-type em { color: var(--wine); font-weight: 500; }
.brand-type small { display: block; margin-top: 6px; color: var(--muted); font-family: "Outfit", sans-serif; font-size: .58rem; font-style: normal; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; }
.desktop-nav { display: flex; align-items: center; align-self: stretch; gap: 3px; margin-left: auto; }
.nav-link { display: flex; align-items: center; gap: 5px; padding: 11px 12px; font-size: .88rem; font-weight: 500; white-space: nowrap; transition: color .16s ease; }
.nav-link:hover, .nav-with-mega:focus-within > .nav-link { color: var(--wine); }
.nav-link--accent { color: var(--wine); }
.nav-chevron { color: var(--muted); font-size: .86rem; transition: transform .18s ease; }
.nav-with-mega:hover .nav-chevron, .nav-with-mega:focus-within .nav-chevron { transform: rotate(180deg); }
.nav-with-mega { position: static; display: flex; align-items: center; align-self: stretch; }
.mega-menu {
  position: absolute;
  z-index: 90;
  top: 100%;
  right: 0;
  left: 0;
  visibility: hidden;
  padding: 34px 0 38px;
  background: var(--paper);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  box-shadow: var(--shadow-md);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-5px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.mega-menu::before { content: ""; position: absolute; right: 0; bottom: 100%; left: 0; height: 14px; }
.nav-with-mega:hover .mega-menu,
.nav-with-mega:focus-within .mega-menu {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.mega-menu__inner { display: grid; grid-template-columns: 210px minmax(0, 1fr) 275px; gap: 36px; align-items: start; }
.mega-menu__heading h2 { margin-bottom: 13px; font-size: 1.65rem; line-height: 1.08; }
.mega-menu__heading p { margin-bottom: 0; color: var(--muted); font-size: .85rem; line-height: 1.55; }
.mega-menu__collections { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px 30px; }
.mega-column__title { display: flex; align-items: center; gap: 9px; padding-bottom: 10px; border-bottom: 1px solid var(--line); color: var(--forest); font-family: "Fraunces", Georgia, serif; font-size: .98rem; font-weight: 600; }
.mega-column__title small { margin-left: auto; color: var(--muted); font-family: "Outfit", sans-serif; font-size: .68rem; font-weight: 500; }
.mini-bauble { position: relative; display: inline-grid; width: 20px; height: 20px; flex: 0 0 auto; place-items: center; border: 1px solid var(--gold); border-radius: 50%; }
.mini-bauble::before { content: ""; position: absolute; top: -4px; width: 6px; height: 4px; background: var(--gold); border-radius: 2px 2px 0 0; }
.mega-column ul { margin: 10px 0 8px; padding: 0; list-style: none; }
.mega-column li { margin: 4px 0; }
.mega-column li a { display: block; overflow: hidden; color: var(--body); font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; transition: color .15s ease, transform .15s ease; }
.mega-column li a:hover { color: var(--wine); transform: translateX(2px); }
.mega-column .text-link { font-size: .72rem; }
.mega-feature { position: relative; display: flex; min-height: 290px; flex-direction: column; justify-content: end; overflow: hidden; padding: 20px; color: #fff; }
.mega-feature::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 25%, rgba(14,27,22,.84)); }
.mega-feature img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.mega-feature:hover img { transform: scale(1.035); }
.mega-feature > *:not(img) { position: relative; z-index: 1; }
.mega-feature strong { display: block; max-width: 220px; font-family: "Fraunces", Georgia, serif; font-size: 1.25rem; line-height: 1.15; }
.mega-feature > span:last-child { margin-top: 10px; color: var(--gold-soft); font-size: .76rem; font-weight: 600; }
.header-actions { display: flex; align-items: center; gap: 9px; }
.header-search { position: relative; }
.header-search svg { position: absolute; top: 50%; left: 12px; width: 17px; height: 17px; fill: none; stroke: var(--muted); stroke-width: 1.7; transform: translateY(-50%); }
.header-search input { width: 158px; height: 41px; padding: 0 12px 0 38px; background: var(--cream); border: 1px solid var(--line); border-radius: 0; outline: none; font-size: .78rem; }
.header-search input:focus { border-color: var(--gold); background: #fff; }
.header-cta { display: flex; height: 41px; align-items: stretch; background: var(--wine); color: #fff; font-size: .78rem; font-weight: 600; }
.header-cta span { display: flex; align-items: center; padding: 0 14px; }
.header-cta b { display: grid; width: 38px; place-items: center; background: rgba(255,255,255,.12); }
.nav-toggle, .nav-toggle-label, .mobile-nav { display: none; }

/* Home hero */
.home-hero { position: relative; background: var(--cream); }
.home-hero::before { content: ""; position: absolute; inset: 0 55% 0 0; background-image: radial-gradient(rgba(132,63,67,.12) .6px, transparent .6px); background-size: 8px 8px; opacity: .25; }
.home-hero__grid { position: relative; display: grid; min-height: 690px; grid-template-columns: .84fr 1.16fr; gap: 70px; align-items: center; padding-block: 72px 82px; }
.home-hero__copy { position: relative; z-index: 2; }
.home-hero h1 { max-width: 590px; margin-bottom: 25px; color: var(--forest-deep); }
.home-hero h1 em { display: block; color: var(--wine); font-weight: 400; }
.home-hero__dek { max-width: 560px; margin-bottom: 30px; color: var(--body); font-size: 1.13rem; font-weight: 300; line-height: 1.72; }
.hero-proof { display: flex; gap: 0; margin: 41px 0 0; padding-top: 22px; border-top: 1px solid #d9cdbd; }
.hero-proof > div { min-width: 112px; padding-right: 22px; }
.hero-proof > div + div { padding-left: 22px; border-left: 1px solid #d9cdbd; }
.hero-proof dt { color: var(--forest); font-family: "Fraunces", Georgia, serif; font-size: 1.23rem; font-weight: 600; line-height: 1; }
.hero-proof dd { margin: 6px 0 0; color: var(--muted); font-size: .72rem; }
.home-hero__visual { position: relative; min-width: 0; padding: 19px 0 31px 20px; }
.home-hero__visual > img { position: relative; z-index: 1; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; box-shadow: var(--shadow-md); }
.home-hero__frame { position: absolute; top: 0; right: 28px; bottom: 13px; left: 0; border: 1px dashed rgba(132,63,67,.45); }
.home-hero__frame::before { content: "✦"; position: absolute; top: -13px; left: 38px; display: grid; width: 26px; height: 26px; place-items: center; background: var(--cream); color: var(--wine); }
.hero-story-card { position: absolute; z-index: 3; right: -18px; bottom: 0; width: min(315px, 66%); padding: 18px 20px; background: var(--paper); box-shadow: var(--shadow-md); }
.hero-story-card .eyebrow { margin-bottom: 7px; font-size: .62rem; }
.hero-story-card strong { display: block; font-family: "Fraunces", Georgia, serif; font-size: 1.05rem; line-height: 1.18; }
.hero-story-card > span:last-child { display: block; margin-top: 7px; color: var(--muted); font-size: .71rem; }
.hero-story-card b { color: var(--wine); }
.hero-keepsake-note { position: absolute; z-index: 3; top: 42px; left: -20px; padding: 8px 13px; background: rgba(20,42,34,.9); color: #fff; font-size: .69rem; box-shadow: var(--shadow-sm); }
.hero-keepsake-note span { margin-right: 5px; color: var(--gold-soft); }

.trust-strip { background: var(--paper); border-block: 1px solid var(--line); }
.trust-strip__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.trust-strip__grid > div { display: flex; min-height: 104px; align-items: center; gap: 13px; padding: 18px 22px; }
.trust-strip__grid > div + div { border-left: 1px solid var(--line); }
.trust-icon { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; background: var(--sage-pale); color: var(--forest-soft); border-radius: 50%; font-size: .85rem; }
.trust-strip p { margin-bottom: 0; line-height: 1.25; }
.trust-strip strong, .trust-strip small { display: block; }
.trust-strip strong { font-family: "Fraunces", Georgia, serif; font-size: .88rem; font-weight: 600; }
.trust-strip small { margin-top: 4px; color: var(--muted); font-size: .67rem; line-height: 1.35; }

.home-paths { background: var(--paper); }
.path-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.path-card { position: relative; min-height: 390px; overflow: hidden; padding: 38px 34px 32px; background: var(--cream); border: 1px solid var(--line); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.path-card::after { content: ""; position: absolute; right: -70px; bottom: -100px; width: 230px; height: 230px; border: 1px solid rgba(199,154,74,.35); border-radius: 50%; }
.path-card:hover { border-color: #d7c7b5; box-shadow: var(--shadow-card); transform: translateY(-5px); }
.path-card__number { position: absolute; top: 22px; right: 25px; color: rgba(40,35,31,.14); font-family: "Fraunces", Georgia, serif; font-size: 3rem; }
.path-card__icon { display: grid; width: 54px; height: 54px; margin-bottom: 45px; place-items: center; background: var(--paper); border: 1px solid var(--line); color: var(--wine); font-size: 1.15rem; transform: rotate(-3deg); }
.path-card h3 { max-width: 280px; margin-bottom: 13px; font-size: 1.65rem; }
.path-card p { max-width: 330px; margin-bottom: 25px; color: var(--muted); font-size: .9rem; }
.path-card--learn { background: var(--sage-pale); }
.path-card--create { background: var(--blush); }

.collection-section { background: var(--cream); }
.hub-tile-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.hub-tile { position: relative; display: flex; min-height: 330px; flex-direction: column; overflow: hidden; padding: 29px 30px 26px; background: var(--paper); border: 1px solid var(--line); transition: transform .2s ease, box-shadow .2s ease; }
.hub-tile::after { content: ""; position: absolute; top: -95px; right: -70px; width: 250px; height: 250px; background: var(--sage-pale); border-radius: 50%; transition: transform .35s ease; }
.hub-tile:nth-child(2n)::after { background: var(--blush); }
.hub-tile:nth-child(3n)::after { background: #efe4ca; }
.hub-tile:hover { box-shadow: var(--shadow-card); transform: translateY(-4px); }
.hub-tile:hover::after { transform: scale(1.07); }
.hub-tile__art { position: relative; z-index: 1; display: grid; width: 87px; height: 87px; margin: -2px 0 27px auto; place-items: center; border: 1px solid rgba(132,63,67,.32); border-radius: 50%; color: var(--wine); }
.hub-tile__art::before { content: ""; position: absolute; top: -10px; width: 20px; height: 11px; background: var(--gold); border-radius: 3px 3px 0 0; }
.hub-tile__art i { position: absolute; top: -17px; width: 1px; height: 9px; background: var(--gold); }
.hub-tile__art b { font-size: 1.3rem; font-weight: 400; }
.hub-tile .eyebrow { position: absolute; top: 31px; left: 30px; }
.hub-tile h3 { margin-bottom: 9px; font-size: 1.55rem; }
.hub-tile p { flex: 1; margin-bottom: 20px; color: var(--muted); font-size: .84rem; line-height: 1.5; }
.hub-tile__meta { display: flex; align-items: center; gap: 5px; padding-top: 15px; border-top: 1px solid var(--line); color: var(--muted); font-size: .72rem; }
.hub-tile__meta b { color: var(--wine); }
.hub-tile__meta i { margin-left: auto; color: var(--wine); font-style: normal; font-weight: 600; }

.most-loved { background: var(--paper); }
.disclosure { display: flex; gap: 10px; max-width: 850px; margin: -22px 0 25px; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.disclosure span { flex: 0 0 auto; color: var(--wine); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 21px; }
.product-card { min-width: 0; background: var(--paper); border: 1px solid var(--line); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.product-card:hover { border-color: #d4c3b1; box-shadow: var(--shadow-card); transform: translateY(-4px); }
.product-card__link { display: flex; height: 100%; flex-direction: column; }
.product-card__media { position: relative; display: grid; overflow: hidden; aspect-ratio: 1 / 1; place-items: center; background: radial-gradient(circle at 50% 38%, #fff 0 31%, transparent 58%), linear-gradient(150deg, var(--sage-pale), #e6dccb); }
.product-card:nth-child(2n) .product-card__media { background: radial-gradient(circle at 50% 38%, #fff 0 31%, transparent 58%), linear-gradient(150deg, #f4e8de, #e8d5c5); }
.product-card__media::after { content: ""; position: absolute; inset: 11px; border: 1px solid rgba(255,255,255,.7); pointer-events: none; }
.product-card__media > img { position: relative; z-index: 1; width: 86%; height: 86%; object-fit: contain; transition: transform .38s ease; }
.product-card:hover .product-card__media > img { transform: scale(1.035); }
.product-card__media > img.is-missing { display: none; }
.product-card__fallback { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 8px; color: rgba(37,60,52,.55); }
.product-card__fallback::before { content: ""; width: 96px; height: 96px; border: 1px solid currentColor; border-radius: 50%; }
.product-card__fallback i { position: absolute; top: 50%; left: 50%; color: var(--gold); font-size: 1.3rem; transform: translate(-50%, -68%); }
.product-card__fallback b { font-family: "Fraunces", Georgia, serif; font-size: .78rem; font-weight: 500; }
.pick-badge, .maker-badge { position: absolute; z-index: 3; top: 13px; padding: 7px 9px; font-size: .62rem; font-weight: 700; letter-spacing: .08em; line-height: 1; text-transform: uppercase; }
.pick-badge { left: 13px; max-width: calc(100% - 26px); overflow: hidden; background: var(--wine); color: #fff; text-overflow: ellipsis; white-space: nowrap; }
.pick-badge i { margin-right: 4px; color: var(--gold-soft); font-style: normal; }
.maker-badge { right: 13px; background: var(--forest); color: #fff; }
.product-card__body { display: flex; flex: 1; flex-direction: column; padding: 20px 19px 17px; }
.product-card__source { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; color: var(--wine); font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.product-card__source small { overflow: hidden; color: var(--muted); font-size: .6rem; font-weight: 500; text-overflow: ellipsis; text-transform: capitalize; white-space: nowrap; }
.product-card h3 { display: -webkit-box; min-height: 2.78em; overflow: hidden; margin-bottom: 8px; font-family: "Outfit", sans-serif; font-size: .92rem; font-weight: 600; letter-spacing: -.01em; line-height: 1.38; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.rating-row { display: flex; min-height: 22px; align-items: center; gap: 5px; margin-bottom: 8px; color: var(--muted); font-size: .69rem; }
.rating-row > span { overflow: hidden; color: var(--gold); font-size: .7rem; letter-spacing: 1px; white-space: nowrap; }
.rating-row b { color: var(--body); font-size: .69rem; }
.rating-row small { color: var(--muted); }
.rating-row--quiet > span { color: var(--wine); }
.product-card__facts { display: flex; flex-wrap: wrap; gap: 0; min-height: 34px; margin: 2px 0 12px; color: var(--muted); font-size: .64rem; text-transform: capitalize; }
.product-card__facts span + span::before { content: "·"; margin: 0 6px; color: var(--gold); }
.product-card__foot { display: flex; align-items: end; justify-content: space-between; gap: 9px; margin-top: auto; padding-top: 13px; border-top: 1px solid var(--line); }
.product-price { display: flex; align-items: baseline; gap: 6px; }
.product-price b { color: var(--forest); font-family: "Fraunces", Georgia, serif; font-size: 1.05rem; }
.product-price s { color: var(--muted); font-size: .67rem; }
.product-card__cta { color: var(--wine); font-size: .68rem; font-weight: 600; white-space: nowrap; }
.product-card__cta b { margin-left: 3px; }

.start-section { background: var(--forest-deep); color: rgba(255,255,255,.72); }
.start-section__grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 85px; align-items: start; }
.start-section h2 { margin-bottom: 19px; color: #fff; }
.start-section__intro > p:not(.eyebrow) { max-width: 430px; margin-bottom: 26px; }
.start-section .text-link { color: var(--gold-soft); }
.start-cards { margin: 0; padding: 0; border-top: 1px solid var(--line-dark); list-style: none; }
.start-cards li { border-bottom: 1px solid var(--line-dark); }
.start-cards a { display: grid; grid-template-columns: 65px 1fr; gap: 23px; padding: 27px 18px 27px 0; transition: background .18s ease, padding .18s ease; }
.start-cards a:hover { padding-left: 15px; background: rgba(255,255,255,.04); }
.start-cards__num { color: var(--gold); font-family: "Fraunces", Georgia, serif; font-size: 1.65rem; }
.start-cards h3 { margin-bottom: 5px; color: #fff; font-size: 1.18rem; }
.start-cards p { margin-bottom: 7px; color: rgba(255,255,255,.58); font-size: .82rem; }
.start-cards div > span { color: var(--gold-soft); font-size: .72rem; font-weight: 600; }

.workshop-section { background: var(--cream); }
.workshop-card { display: grid; grid-template-columns: 1.08fr .92fr; overflow: hidden; background: var(--forest); color: rgba(255,255,255,.72); }
.workshop-card__photo { position: relative; min-height: 580px; }
.workshop-card__photo > img:first-child { width: 100%; height: 100%; object-fit: cover; }
.workshop-card__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 65%, rgba(37,60,52,.52)); }
.workshop-card__ornament { position: absolute; z-index: 2; right: -32px; bottom: 29px; width: 165px; filter: drop-shadow(0 22px 22px rgba(0,0,0,.28)); }
.workshop-card__copy { padding: 72px 67px; }
.workshop-card h2 { margin-bottom: 20px; color: #fff; }
.workshop-card__copy > p:not(.eyebrow) { margin-bottom: 26px; }
.process-list { display: grid; gap: 10px; margin: 0 0 30px; padding: 0; list-style: none; }
.process-list li { display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.88); font-size: .82rem; }
.process-list span { display: grid; width: 27px; height: 27px; flex: 0 0 auto; place-items: center; border: 1px solid rgba(255,255,255,.3); color: var(--gold-soft); border-radius: 50%; font-size: .68rem; }
.process-list b { font-weight: 500; }

.journal-section { background: var(--paper); }
.editorial-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.editorial-card { min-width: 0; background: var(--paper); border: 1px solid var(--line); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.editorial-card:hover { border-color: #d5c4b3; box-shadow: var(--shadow-card); transform: translateY(-4px); }
.editorial-card__image { position: relative; display: block; overflow: hidden; aspect-ratio: 3 / 2; background: var(--cream-deep); }
.editorial-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.editorial-card:hover .editorial-card__image img { transform: scale(1.025); }
.editorial-card__image > span:last-child:not(.editorial-card__fallback) { position: absolute; z-index: 2; top: 13px; left: 13px; padding: 6px 9px; background: var(--paper); color: var(--wine); font-size: .61rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.editorial-card__fallback { position: absolute; inset: 0; display: grid; place-items: center; background: linear-gradient(140deg, var(--sage-pale), var(--cream-deep)); color: var(--forest); }
.editorial-card__fallback::before { content: ""; position: absolute; width: 105px; height: 105px; border: 1px solid var(--gold); border-radius: 50%; }
.editorial-card__fallback i { position: absolute; margin-top: -4px; color: var(--gold); font-style: normal; }
.editorial-card__fallback b { position: absolute; margin-top: 48px; font-family: "Fraunces", Georgia, serif; font-size: .78rem; }
.editorial-card__body { padding: 23px 23px 25px; }
.card-facts { margin-bottom: 10px; color: var(--muted); font-size: .65rem; letter-spacing: .02em; text-transform: uppercase; }
.card-facts span { color: var(--gold); }
.editorial-card h3 { margin-bottom: 10px; font-size: 1.22rem; }
.editorial-card h3 a:hover { color: var(--wine); }
.editorial-card__body > p:not(.card-facts) { min-height: 4.5em; margin-bottom: 17px; color: var(--muted); font-size: .81rem; line-height: 1.55; }

.right-now-section { background: var(--sage-pale); border-block: 1px solid #d7e1d6; }
.right-now-grid { display: grid; grid-template-columns: .76fr 1.24fr; gap: 80px; }
.right-now-heading h2 { margin-bottom: 18px; }
.right-now-heading > p:not(.eyebrow) { max-width: 430px; color: var(--muted); }
.right-now-list { border-top: 1px solid #cad8ca; }
.right-now-list a { display: grid; grid-template-columns: 43px 1fr 22px; gap: 16px; align-items: start; padding: 22px 5px; border-bottom: 1px solid #cad8ca; transition: padding .18s ease, background .18s ease; }
.right-now-list a:hover { padding-inline: 13px; background: rgba(255,255,255,.5); }
.right-now-list__icon { display: grid; width: 36px; height: 36px; place-items: center; background: var(--paper); border: 1px solid #cad8ca; color: var(--wine); font-family: "Fraunces", Georgia, serif; }
.right-now-list strong { display: block; margin-bottom: 4px; font-family: "Fraunces", Georgia, serif; font-size: 1.02rem; font-weight: 600; line-height: 1.3; }
.right-now-list small { display: block; color: var(--muted); font-size: .76rem; line-height: 1.5; }
.right-now-list a > b { color: var(--wine); }

.corporate-teaser { padding-block: 72px; background: var(--wine-deep); color: rgba(255,255,255,.68); }
.corporate-teaser__inner { display: grid; grid-template-columns: 1fr .86fr auto; gap: 50px; align-items: center; }
.corporate-teaser h2 { max-width: 540px; margin-bottom: 0; color: #fff; }
.corporate-teaser__inner > p { margin-bottom: 0; font-size: .9rem; }

/* Newsletter and footer */
.global-newsletter { padding-block: 78px; background: var(--cream); border-top: 1px solid var(--line); }
.global-newsletter__grid { display: grid; grid-template-columns: 1fr .82fr; gap: 80px; align-items: center; }
.global-newsletter h2 { max-width: 640px; margin-bottom: 13px; }
.global-newsletter__grid > div > p:not(.eyebrow) { max-width: 610px; margin-bottom: 0; color: var(--muted); }
.global-newsletter form { padding: 23px; background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow-sm); }
.global-newsletter label, .inline-email label, .quote-form label, .studio-form label { display: block; margin-bottom: 7px; color: var(--body); font-size: .69rem; font-weight: 600; }
.global-newsletter form > div, .inline-email form > div { display: flex; }
.global-newsletter input, .inline-email input { min-width: 0; flex: 1; padding: 0 15px; background: #fff; border: 1px solid var(--line); border-right: 0; outline: none; }
.global-newsletter input:focus, .inline-email input:focus { border-color: var(--gold); }
.global-newsletter form small, .inline-email form small { display: block; margin-top: 9px; color: var(--muted); font-size: .63rem; }

.site-footer { padding: 78px 0 28px; background: var(--forest-deep); color: rgba(255,255,255,.56); }
.footer-lead { display: grid; grid-template-columns: 1fr .9fr; gap: 100px; align-items: end; padding-bottom: 54px; border-bottom: 1px solid var(--line-dark); }
.brand--footer .brand-mark { color: var(--gold-soft); }
.brand--footer .brand-type { color: #fff; }
.brand--footer .brand-type em { color: var(--gold-soft); }
.brand--footer .brand-type small { color: rgba(255,255,255,.42); }
.footer-lead > div > p { max-width: 430px; margin: 19px 0 0; font-size: .83rem; }
.footer-lead blockquote { max-width: 530px; margin-bottom: 0; color: rgba(255,255,255,.8); font-family: "Fraunces", Georgia, serif; font-size: 1.5rem; font-weight: 400; line-height: 1.35; }
.footer-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr 1fr; gap: 60px; padding-block: 52px; }
.footer-grid h2 { margin-bottom: 18px; color: #fff; font-family: "Outfit", sans-serif; font-size: .69rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.footer-grid ul { margin: 0; padding: 0; list-style: none; }
.footer-grid li { margin: 9px 0; font-size: .77rem; line-height: 1.35; }
.footer-grid a { transition: color .15s ease; }
.footer-grid a:hover { color: var(--gold-soft); }
.footer-discover a { display: flex; justify-content: space-between; gap: 10px; }
.footer-discover small { color: rgba(255,255,255,.32); }
.footer-promises li { position: relative; padding-left: 16px; }
.footer-promises li::before { content: "✓"; position: absolute; left: 0; color: var(--gold); }
.footer-fine { display: flex; justify-content: space-between; gap: 20px; padding-top: 24px; border-top: 1px solid var(--line-dark); font-size: .66rem; }
.footer-fine > span:last-child { display: flex; gap: 20px; }
.footer-fine a:hover { color: #fff; }

/* Shared page heads and entry layouts */
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-bottom: 31px; color: var(--muted); font-size: .69rem; }
.crumbs a { transition: color .15s ease; }
.crumbs a:hover { color: var(--wine); }
.crumbs > span[aria-hidden] { color: var(--gold); }
.crumbs > span[aria-current] { overflow: hidden; max-width: 260px; text-overflow: ellipsis; white-space: nowrap; }
.crumbs--light { color: rgba(255,255,255,.55); }
.crumbs--light a:hover { color: var(--gold-soft); }

.entry-hero { position: relative; overflow: hidden; background: var(--cream); border-bottom: 1px solid var(--line); }
.entry-hero::after { content: ""; position: absolute; top: -160px; right: -80px; width: 520px; height: 520px; border: 1px solid rgba(199,154,74,.25); border-radius: 50%; }
.entry-hero__grid { position: relative; z-index: 1; display: grid; min-height: 520px; grid-template-columns: 1.14fr .86fr; gap: 70px; align-items: center; padding-block: 48px 58px; }
.entry-hero__copy h1 { max-width: 800px; margin-bottom: 21px; font-size: clamp(2.8rem, 5.2vw, 4.85rem); }
.entry-hero__dek { max-width: 690px; margin-bottom: 26px; color: var(--body); font-family: "Fraunces", Georgia, serif; font-size: 1.18rem; font-weight: 400; line-height: 1.55; }
.entry-trust { display: flex; flex-wrap: wrap; gap: 9px 21px; margin: 0; padding: 0; color: var(--muted); font-size: .73rem; list-style: none; }
.entry-trust span { margin-right: 4px; color: var(--wine); }
.entry-hero__visual { position: relative; display: grid; min-height: 365px; overflow: hidden; place-items: center; background: linear-gradient(145deg, var(--sage-pale), var(--cream-deep)); border: 1px solid #ded2c2; }
.entry-hero__visual::before { content: ""; position: absolute; inset: 17px; border: 1px solid rgba(255,255,255,.85); }
.entry-hero__visual > img:not(.entry-hero__fallback-img) { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.entry-hero__fallback-img { position: relative; z-index: 1; width: 48%; max-height: 310px; object-fit: contain; filter: drop-shadow(0 24px 22px rgba(38,32,27,.16)); }
.entry-hero__seal { position: absolute; z-index: 3; right: 18px; bottom: 18px; display: grid; width: 82px; height: 82px; place-content: center; background: var(--wine); border: 1px solid rgba(255,255,255,.35); color: #fff; border-radius: 50%; font-family: "Fraunces", Georgia, serif; font-size: .65rem; line-height: 1.2; text-align: center; transform: rotate(-7deg); }
.entry-hero__seal b { display: block; margin-bottom: 2px; color: var(--gold-soft); font-size: .9rem; }
.entry-hero--occupation_hobby { background: #f5ecdf; }
.entry-hero--occupation_hobby .entry-hero__visual { background: linear-gradient(145deg, #f2dfce, #e7cfbb); }
.entry-hero--milestone_occasion { background: #f6eee4; }
.entry-hero--family_relationship { background: #f4eadf; }
.body-memorial { --wine: #76585b; --wine-deep: #554246; --gold: #b7a174; --gold-soft: #dfd0ad; }
.body-memorial .entry-hero { background: #f2efea; }
.body-memorial .entry-hero::after { border-color: rgba(118,88,91,.18); }
.body-memorial .entry-hero__visual { background: linear-gradient(145deg, #e7e7e1, #ded8d0); }
.body-memorial .entry-hero__copy h1 { font-weight: 400; letter-spacing: -.015em; }
.body-memorial .entry-hero__dek { color: #655f59; font-size: 1.25rem; line-height: 1.65; }
.body-memorial .entry-shell { background: #fbfaf7; }

.entry-shell { padding-block: 76px 105px; background: var(--paper); }
.entry-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 66px; align-items: start; }
.entry-main { min-width: 0; }
.content-block { max-width: var(--reading); margin: 0 0 54px; }
.content-block--wide { max-width: none; }
.content-block:last-child { margin-bottom: 0; }
.prose { color: var(--body); font-family: "Fraunces", Georgia, serif; font-size: 1.06rem; line-height: 1.84; }
.prose > *:last-child { margin-bottom: 0; }
.prose p { margin-bottom: 1.35em; }
.prose h2 { margin: 2.15em 0 .7em; color: var(--ink); font-size: clamp(1.9rem, 3.2vw, 2.75rem); line-height: 1.12; }
.prose h2:first-child { margin-top: 0; }
.prose h3 { margin: 1.8em 0 .6em; font-size: 1.5rem; }
.prose ul, .prose ol { margin: 0 0 1.45em; padding-left: 1.35em; }
.prose li { margin: .45em 0; padding-left: .25em; }
.prose li::marker { color: var(--wine); }
.prose strong, .prose b { color: var(--ink); font-weight: 600; }
.prose a { color: var(--wine); text-decoration: underline; text-decoration-color: var(--gold-soft); text-underline-offset: 4px; }
.prose blockquote { margin: 2em 0; padding: 5px 0 5px 25px; border-left: 2px solid var(--gold); color: var(--ink); font-size: 1.2em; font-style: italic; }
.prose hr { height: 1px; margin: 2.5em 0; background: var(--line); border: 0; }
.prose table { width: 100%; margin: 1.7em 0; border-collapse: collapse; font-family: "Outfit", sans-serif; font-size: .86rem; }
.prose th, .prose td { padding: 12px 13px; border: 1px solid var(--line); text-align: left; }
.prose th { background: var(--cream); color: var(--ink); }
.prose--compact { font-family: "Outfit", sans-serif; font-size: .9rem; line-height: 1.65; }

.entry-sidebar { position: relative; display: grid; gap: 20px; }
.sidebar-search { position: relative; }
.sidebar-search input, .mobile-search input, .listing-tools form input { width: 100%; height: 46px; padding: 0 50px 0 14px; background: var(--cream); border: 1px solid var(--line); border-radius: 0; outline: none; font-size: .76rem; }
.sidebar-search input:focus, .mobile-search input:focus, .listing-tools form input:focus { border-color: var(--gold); background: #fff; }
.sidebar-search button, .mobile-search button, .listing-tools form button { position: absolute; top: 0; right: 0; width: 46px; height: 46px; background: var(--wine); border: 0; color: #fff; }
.sidebar-box { padding: 22px 19px; background: var(--paper); border: 1px solid var(--line); }
.sidebar-box > h2, .sidebar-products > h2 { margin-bottom: 14px; padding-left: 11px; border-left: 2px solid var(--wine); font-family: "Outfit", sans-serif; font-size: .82rem; font-weight: 700; letter-spacing: 0; }
.sidebar-hubs { display: grid; gap: 6px; }
.sidebar-hubs a { display: grid; grid-template-columns: 1fr auto 20px; gap: 7px; align-items: center; min-height: 40px; padding: 8px 9px; background: var(--cream); border: 1px solid var(--line); color: var(--forest); font-size: .75rem; transition: background .15s ease, border-color .15s ease; }
.sidebar-hubs a:hover { background: var(--paper); border-color: var(--gold-soft); }
.sidebar-hubs small { color: var(--muted); font-size: .63rem; }
.sidebar-hubs b { color: var(--wine); }
.toc-box { position: sticky; z-index: 2; top: 97px; max-height: calc(100vh - 115px); overflow: auto; }
.toc-box ol { margin: 0; padding: 0; counter-reset: toc; list-style: none; }
.toc-box li { counter-increment: toc; }
.toc-box a { display: grid; grid-template-columns: 20px 1fr; gap: 7px; padding: 5px 0; color: var(--muted); font-size: .72rem; line-height: 1.35; }
.toc-box a::before { content: counter(toc); color: var(--wine); font-size: .64rem; font-weight: 600; }
.toc-box a:hover { color: var(--ink); }
.sidebar-lead { display: flex; min-height: 250px; flex-direction: column; align-items: start; padding: 24px; background: var(--forest); color: rgba(255,255,255,.68); }
.sidebar-lead__icon { display: grid; width: 40px; height: 40px; margin-bottom: 25px; place-items: center; background: rgba(255,255,255,.08); color: var(--gold-soft); }
.sidebar-lead strong { display: block; margin-bottom: 8px; color: #fff; font-family: "Fraunces", Georgia, serif; font-size: 1.16rem; font-weight: 500; line-height: 1.25; }
.sidebar-lead small { display: block; margin-bottom: 17px; font-size: .72rem; line-height: 1.5; }
.sidebar-lead > b { margin-top: auto; color: var(--gold-soft); font-size: .72rem; }
.sidebar-lead i { margin-left: 4px; font-style: normal; }
.sidebar-products { padding-top: 3px; }
.sidebar-products > div { display: grid; gap: 11px; }
.sidebar-products .product-card__link { display: grid; grid-template-columns: 85px 1fr; }
.sidebar-products .product-card__media { aspect-ratio: 1 / 1; }
.sidebar-products .product-card__media::after, .sidebar-products .product-card__fallback b, .sidebar-products .pick-badge, .sidebar-products .maker-badge { display: none; }
.sidebar-products .product-card__fallback::before { width: 48px; height: 48px; }
.sidebar-products .product-card__body { min-width: 0; padding: 10px 10px 9px; }
.sidebar-products .product-card__source, .sidebar-products .product-card__facts, .sidebar-products .product-card__cta { display: none; }
.sidebar-products .product-card h3 { min-height: 0; margin-bottom: 4px; font-size: .72rem; -webkit-line-clamp: 2; }
.sidebar-products .rating-row { min-height: 15px; margin-bottom: 2px; }
.sidebar-products .rating-row > span { font-size: .56rem; }
.sidebar-products .product-card__foot { padding-top: 4px; border: 0; }
.sidebar-products .product-price b { font-size: .78rem; }
.sidebar-products .product-price s { display: none; }
.sidebar-disclosure { margin: -8px 0 10px; color: var(--muted); font-size: .6rem; }

/* Bard components */
.key-facts { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--line); border: 1px solid var(--line); gap: 1px; }
.key-fact { display: flex; min-height: 122px; gap: 12px; padding: 21px 18px; background: var(--cream); }
.key-fact__icon { display: grid; width: 28px; height: 28px; flex: 0 0 auto; place-items: center; border: 1px solid var(--gold); color: var(--wine); border-radius: 50%; font-family: "Fraunces", Georgia, serif; font-size: .72rem; }
.key-fact small, .key-fact strong, .key-fact p { display: block; }
.key-fact small { margin-bottom: 3px; color: var(--wine); font-size: .59rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.key-fact strong { font-family: "Fraunces", Georgia, serif; font-size: 1rem; font-weight: 600; line-height: 1.25; }
.key-fact p { margin: 5px 0 0; color: var(--muted); font-size: .67rem; line-height: 1.3; }
.link-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 0; padding: 0; list-style: none; }
.link-card { display: flex; min-height: 265px; flex-direction: column; padding: 25px 23px; background: var(--cream); border: 1px solid var(--line); }
.link-card__num { color: rgba(132,63,67,.35); font-family: "Fraunces", Georgia, serif; font-size: 2rem; line-height: 1; }
.link-card h3 { margin: 25px 0 8px; font-size: 1.16rem; }
.link-card p { flex: 1; margin-bottom: 18px; color: var(--muted); font-size: .76rem; }
.callout { display: grid; grid-template-columns: 48px 1fr; gap: 18px; padding: 27px 30px; background: var(--sage-pale); border-left: 3px solid var(--forest-soft); }
.callout__icon { display: grid; width: 42px; height: 42px; place-items: center; background: var(--paper); border: 1px solid #cfdbce; color: var(--forest); border-radius: 50%; font-family: "Fraunces", Georgia, serif; }
.callout h2 { margin-bottom: 9px; font-size: 1.4rem; }
.callout .eyebrow { margin-bottom: 7px; }
.callout--deadline { background: #f7e8df; border-color: var(--wine); }
.callout--deadline .callout__icon { border-color: #e2c4b6; color: var(--wine); }
.callout--note { background: var(--cream); border-color: var(--gold); }
.faq-block { max-width: var(--reading); padding-top: 6px; }
.faq-list { border-top: 1px solid var(--line); }
.faq { border-bottom: 1px solid var(--line); }
.faq summary { display: flex; min-height: 65px; align-items: center; justify-content: space-between; gap: 18px; padding: 17px 2px; cursor: pointer; font-family: "Fraunces", Georgia, serif; font-size: 1.02rem; font-weight: 600; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary i { position: relative; width: 20px; height: 20px; flex: 0 0 auto; }
.faq summary i::before, .faq summary i::after { content: ""; position: absolute; top: 9px; left: 3px; width: 14px; height: 1px; background: var(--wine); transition: transform .18s ease; }
.faq summary i::after { transform: rotate(90deg); }
.faq[open] summary i::after { transform: rotate(0); }
.faq__answer { padding: 0 40px 20px 2px; color: var(--muted); font-size: .88rem; }
.faq__answer p { margin-bottom: 0; }
.editorial-figure img { width: 100%; max-height: 660px; object-fit: cover; }
.editorial-figure figcaption, .article-lead-image figcaption { display: flex; gap: 10px; align-items: start; margin-top: 10px; color: var(--muted); font-size: .69rem; }
.editorial-figure figcaption span, .article-lead-image figcaption span { width: 20px; height: 1px; flex: 0 0 auto; margin-top: 10px; background: var(--wine); }
.builder-cta { display: grid; grid-template-columns: 1fr 220px; min-height: 380px; overflow: hidden; background: var(--forest); color: rgba(255,255,255,.7); }
.builder-cta__copy { padding: 48px 46px; }
.builder-cta h2 { margin-bottom: 15px; color: #fff; }
.builder-cta__copy > p:not(.eyebrow) { max-width: 510px; margin-bottom: 25px; }
.builder-cta__art { position: relative; display: grid; place-items: center; background: rgba(255,255,255,.05); }
.builder-cta__art::before { content: ""; position: absolute; width: 175px; height: 175px; border: 1px solid rgba(232,210,166,.5); border-radius: 50%; }
.builder-cta__art img { position: relative; z-index: 1; width: 165px; filter: drop-shadow(0 20px 20px rgba(0,0,0,.25)); }
.builder-cta__art span { position: absolute; z-index: 2; right: 14px; bottom: 16px; padding: 5px 8px; background: var(--gold); color: var(--forest-deep); font-size: .6rem; font-weight: 700; text-transform: uppercase; }
.shop-cta, .quote-cta { display: grid; grid-template-columns: auto 1fr auto; gap: 26px; align-items: center; padding: 35px; }
.shop-cta { background: var(--blush); border: 1px solid #e3cfc4; }
.shop-cta__seal { display: grid; width: 80px; height: 80px; place-content: center; background: var(--paper); border: 1px solid var(--gold); color: var(--gold); border-radius: 50%; font-size: 1rem; text-align: center; }
.shop-cta__seal small { display: block; margin-top: 4px; color: var(--wine); font-family: "Fraunces", Georgia, serif; font-size: .62rem; line-height: 1.1; text-transform: uppercase; }
.shop-cta h2, .quote-cta h2 { margin-bottom: 7px; font-size: 1.55rem; }
.shop-cta p:not(.eyebrow), .quote-cta p:not(.eyebrow) { margin-bottom: 0; color: var(--muted); font-size: .82rem; }
.quote-cta { background: var(--forest-deep); color: rgba(255,255,255,.67); }
.quote-cta h2 { color: #fff; }
.quote-cta p:not(.eyebrow) { color: rgba(255,255,255,.62); }
.quote-cta__mark { display: grid; width: 78px; height: 78px; place-items: center; border: 1px solid rgba(232,210,166,.55); color: var(--gold-soft); border-radius: 50%; font-family: "Fraunces", Georgia, serif; font-size: 1.25rem; }
.inline-email { display: grid; grid-template-columns: 1fr .95fr; gap: 55px; align-items: center; padding: 38px 40px; background: var(--cream); border-block: 1px solid var(--line); }
.inline-email h2 { margin-bottom: 8px; font-size: 1.65rem; }
.inline-email > div > p:not(.eyebrow) { margin-bottom: 0; color: var(--muted); font-size: .82rem; }
.related-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.related-card { position: relative; display: grid; min-height: 145px; grid-template-columns: 30px 1fr 18px; grid-template-rows: auto 1fr; gap: 5px 11px; padding: 20px; background: var(--cream); border: 1px solid var(--line); transition: background .16s ease, border-color .16s ease, transform .16s ease; }
.related-card:hover { background: var(--paper); border-color: var(--gold-soft); transform: translateY(-2px); }
.related-card .mini-bauble { grid-row: 1 / 3; margin-top: 2px; }
.related-card strong { font-family: "Fraunces", Georgia, serif; font-size: 1rem; line-height: 1.25; }
.related-card small { color: var(--muted); font-size: .7rem; line-height: 1.45; }
.related-card > b { grid-column: 3; grid-row: 1 / 3; align-self: center; color: var(--wine); }
.product-spotlight { display: grid; grid-template-columns: minmax(220px, .72fr) 1fr; gap: 0; background: var(--cream); border: 1px solid var(--line); }
.product-spotlight__card { max-width: 320px; padding: 21px; }
.product-spotlight__copy { align-self: center; padding: 40px 44px; }
.product-spotlight__copy h2 { margin-bottom: 14px; font-size: 1.8rem; }
.product-spotlight__note { margin: 19px 0 0; padding-top: 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: .67rem; }
.product-grid-block .product-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.product-grid-block--shelf { padding: 31px; background: linear-gradient(145deg, var(--cream), #f2e8dc); border: 1px solid var(--line); }
.product-grid-block--shelf .content-heading--split > p { width: min(100%, 360px); margin-bottom: 3px; color: var(--body); font-size: .82rem; line-height: 1.55; }
.product-grid-block--shelf .disclosure { margin-top: -13px; }
.product-grid-block .product-grid--shelf { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 25px; }
.product-grid--shelf .product-card { background: transparent; border: 0; }
.product-grid--shelf .product-card:hover { border-color: transparent; box-shadow: none; transform: translateY(-3px); }
.product-grid--shelf .product-card__media { border: 1px solid rgba(197, 180, 160, .72); }
.product-grid--shelf .product-card__body { padding: 15px 3px 2px; }
.product-grid--shelf .product-card__source { margin-bottom: 7px; }
.product-grid--shelf .product-card h3 { min-height: 0; margin-bottom: 7px; font-family: "Fraunces", Georgia, serif; font-size: 1rem; font-weight: 500; line-height: 1.36; }
.product-grid--shelf .rating-row,
.product-grid--shelf .product-card__facts { display: none; }
.product-grid--shelf .product-card__foot { padding-top: 5px; border-top: 0; }
.product-grid--shelf .product-price b { color: var(--muted); font-family: "Outfit", sans-serif; font-size: .74rem; font-weight: 500; }
.product-grid--shelf .product-price s { font-size: .61rem; }
.product-grid--shelf .product-card__cta { font-size: .68rem; }

/* Guide article */
.article-hero { padding: 52px 0 42px; background: var(--paper); border-bottom: 1px solid var(--line); }
.article-hero__inner { max-width: 1040px; }
.article-hero h1 { max-width: 940px; margin-bottom: 20px; font-size: clamp(2.8rem, 5vw, 4.55rem); }
.article-hero__dek { max-width: 790px; margin-bottom: 28px; color: var(--muted); font-family: "Fraunces", Georgia, serif; font-size: 1.16rem; line-height: 1.6; }
.byline { display: flex; align-items: center; gap: 12px 20px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: .72rem; }
.byline__avatar, .author-box__avatar { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; background: var(--forest); color: var(--gold-soft); border-radius: 50%; font-family: "Fraunces", Georgia, serif; }
.byline > span:nth-child(2) { margin-right: 9px; }
.byline strong, .byline small { display: block; }
.byline strong { color: var(--ink); font-size: .76rem; }
.byline small { font-size: .63rem; }
.byline__meta { padding-left: 19px; border-left: 1px solid var(--line); }
.entry-shell--article { padding-top: 52px; }
.article-lead-image { margin: 0 0 38px; }
.article-lead-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.article-quick-answer { max-width: var(--reading); margin-bottom: 47px; padding: 25px 28px; background: var(--sage-pale); border-left: 3px solid var(--forest-soft); }
.article-quick-answer .eyebrow { margin-bottom: 7px; }
.article-quick-answer > p:last-child { margin-bottom: 0; color: var(--body); font-family: "Fraunces", Georgia, serif; font-size: 1.02rem; line-height: 1.65; }
.author-box { display: grid; grid-template-columns: 60px 1fr; gap: 19px; padding: 30px; background: var(--cream); border: 1px solid var(--line); }
.author-box__avatar { width: 54px; height: 54px; }
.author-box .eyebrow { margin-bottom: 5px; }
.author-box h2 { margin-bottom: 6px; font-size: 1.35rem; }
.author-box p:last-child { margin-bottom: 0; color: var(--muted); font-size: .8rem; }
.read-next { padding-top: 6px; }
.read-next__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; }
.read-next-card { display: flex; min-height: 250px; flex-direction: column; padding: 21px; background: var(--cream); border: 1px solid var(--line); }
.read-next-card__art { display: grid; height: 76px; margin: -21px -21px 21px; place-items: center; background: linear-gradient(130deg, var(--sage-pale), var(--cream-deep)); color: var(--gold); }
.read-next-card .eyebrow { margin-bottom: 7px; font-size: .6rem; }
.read-next-card strong { display: block; margin-bottom: 7px; font-family: "Fraunces", Georgia, serif; font-size: 1.06rem; line-height: 1.25; }
.read-next-card small { display: block; flex: 1; color: var(--muted); font-size: .7rem; line-height: 1.45; }
.read-next-card > b { margin-top: 14px; color: var(--wine); font-size: .7rem; }

/* Hub pages */
.hub-hero { position: relative; overflow: hidden; padding: 50px 0 45px; background: var(--forest-deep); color: rgba(255,255,255,.68); }
.hub-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20,42,34,.98) 0 50%, rgba(20,42,34,.78)), url('/img/editorial/home-tree.webp') center right / cover no-repeat; opacity: .96; }
.hub-hero__glow { position: absolute; top: -260px; right: -80px; width: 650px; height: 650px; border: 1px solid rgba(232,210,166,.17); border-radius: 50%; }
.hub-hero__glow::after { content: ""; position: absolute; inset: 70px; border: 1px solid rgba(232,210,166,.11); border-radius: 50%; }
.hub-hero__inner { position: relative; z-index: 1; }
.hub-hero__copy { max-width: 700px; }
.hub-hero h1 { margin-bottom: 19px; color: #fff; font-size: clamp(3.1rem, 6vw, 5.65rem); }
.hub-hero__copy > p:last-child { max-width: 650px; margin-bottom: 0; font-family: "Fraunces", Georgia, serif; font-size: 1.2rem; line-height: 1.58; }
.hub-hero__facts { display: flex; gap: 0; margin: 34px 0 0; padding-top: 21px; border-top: 1px solid var(--line-dark); }
.hub-hero__facts > div { min-width: 160px; padding-right: 28px; }
.hub-hero__facts > div + div { padding-left: 28px; border-left: 1px solid var(--line-dark); }
.hub-hero__facts dt { color: var(--gold-soft); font-family: "Fraunces", Georgia, serif; font-size: 1.35rem; }
.hub-hero__facts dd { margin: 2px 0 0; font-size: .68rem; }
.hub-hero__note { display: flex; gap: 8px; align-items: center; margin: 24px 0 0; color: rgba(255,255,255,.52); font-size: .7rem; }
.hub-hero__note span { color: var(--gold); }
.hub-intro { background: var(--paper); }
.hub-intro__grid { display: grid; grid-template-columns: 1fr 390px; gap: 95px; align-items: start; }
.hub-intro__grid > div h2 { max-width: 670px; margin-bottom: 17px; }
.hub-intro__grid > div > p:last-child { max-width: 690px; margin-bottom: 0; color: var(--muted); font-size: 1rem; }
.hub-section-nav { padding: 24px; background: var(--cream); border: 1px solid var(--line); }
.hub-section-nav h2 { margin-bottom: 14px; font-family: "Outfit", sans-serif; font-size: .82rem; font-weight: 700; }
.hub-section-nav a { display: grid; grid-template-columns: 1fr auto 18px; gap: 8px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); color: var(--forest); font-size: .76rem; }
.hub-section-nav small { color: var(--muted); font-size: .63rem; }
.hub-section-nav b { color: var(--wine); }
.hub-listing { background: var(--cream); }
.hub-card-grid { gap: 20px; }
.hub-card .editorial-card__image { aspect-ratio: 16 / 10; }
.hub-coming-soon { display: flex; min-height: 385px; flex-direction: column; justify-content: center; padding: 37px; background: transparent; border: 1px dashed #cfc1b2; }
.hub-coming-soon > span { color: var(--gold); font-size: 1.3rem; }
.hub-coming-soon .eyebrow { margin: 20px 0 8px; }
.hub-coming-soon h3 { margin-bottom: 11px; font-size: 1.45rem; }
.hub-coming-soon > p:not(.eyebrow) { color: var(--muted); font-size: .82rem; }
.hub-editorial { background: var(--paper); }
.hub-editorial__inner { max-width: 800px; }
.hub-editorial__inner > .eyebrow { margin-bottom: 25px; }

/* Corporate entry */
.business-hero, .bulk-hero { position: relative; overflow: hidden; background: #1b2e32; color: rgba(255,255,255,.7); }
.business-hero::before, .bulk-hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px); background-size: 34px 34px; }
.business-hero__grid { position: relative; display: grid; grid-template-columns: 1.15fr .85fr; gap: 85px; align-items: center; padding-block: 64px; }
.business-hero h1, .bulk-hero h1 { margin-bottom: 21px; color: #fff; }
.business-hero__grid > div:first-child > p:not(.eyebrow) { max-width: 720px; margin-bottom: 28px; font-size: 1.04rem; }
.business-hero__brief { padding: 32px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.15); }
.business-hero__brief ol { margin: 0 0 25px; padding: 0; list-style: none; }
.business-hero__brief li { display: flex; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line-dark); color: #fff; font-size: .82rem; }
.business-hero__brief li span { color: var(--gold-soft); font-family: "Fraunces", Georgia, serif; }
.business-hero__brief > a { color: var(--gold-soft); font-size: .75rem; font-weight: 600; }
.business-facts { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); background: rgba(255,255,255,.065); border: 1px solid rgba(255,255,255,.14); border-bottom: 0; }
.business-facts > div { padding: 21px 23px; }
.business-facts > div + div { border-left: 1px solid rgba(255,255,255,.14); }
.business-facts small, .business-facts strong { display: block; }
.business-facts small { margin-bottom: 4px; color: var(--gold-soft); font-size: .59rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.business-facts strong { color: #fff; font-family: "Fraunces", Georgia, serif; font-size: 1rem; font-weight: 500; }
.business-entry { background: #fbfaf7; }
.business-sidebar { position: sticky; top: 98px; }
.sidebar-process { margin: 0; padding: 0; list-style: none; }
.sidebar-process li { display: flex; gap: 12px; padding: 13px 0; border-top: 1px solid var(--line); }
.sidebar-process li > span { display: grid; width: 25px; height: 25px; flex: 0 0 auto; place-items: center; background: #e7edeb; color: var(--forest); border-radius: 50%; font-size: .65rem; }
.sidebar-process p { margin-bottom: 0; line-height: 1.35; }
.sidebar-process strong, .sidebar-process small { display: block; }
.sidebar-process strong { font-size: .75rem; }
.sidebar-process small { margin-top: 4px; color: var(--muted); font-size: .65rem; }
.sidebar-lead--business { background: #263d42; }

/* Guide index and search */
.listing-hero { padding-block: 56px 66px; background: var(--cream); border-bottom: 1px solid var(--line); }
.listing-hero__grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: 80px; align-items: center; }
.listing-hero h1 { max-width: 650px; margin-bottom: 22px; font-size: clamp(3.15rem, 5.6vw, 5.4rem); }
.listing-hero__grid > div:first-child > p:last-child { max-width: 620px; margin-bottom: 0; color: var(--muted); font-size: 1.02rem; }
.listing-hero__feature { position: relative; padding: 15px 0 27px 15px; }
.listing-hero__feature::before { content: ""; position: absolute; inset: 0 30px 12px 0; border: 1px dashed rgba(132,63,67,.42); }
.listing-hero__feature > img { position: relative; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.listing-hero__feature > a { position: absolute; right: -10px; bottom: 0; width: min(360px, 75%); padding: 17px 19px; background: var(--forest); color: #fff; box-shadow: var(--shadow-md); }
.listing-hero__feature .eyebrow { margin-bottom: 6px; }
.listing-hero__feature strong, .listing-hero__feature small { display: block; }
.listing-hero__feature strong { font-family: "Fraunces", Georgia, serif; font-size: 1rem; line-height: 1.25; }
.listing-hero__feature small { margin-top: 7px; color: var(--gold-soft); font-size: .65rem; }
.guide-index { background: var(--paper); }
.listing-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 55px; align-items: start; }
.listing-main { min-width: 0; }
.listing-tools { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 20px; }
.listing-tools h2 { margin-bottom: 0; font-size: 2.2rem; }
.listing-tools form { position: relative; width: min(100%, 310px); }
.filter-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; padding-block: 13px; border-block: 1px solid var(--line); }
.filter-row a { padding: 7px 12px; background: var(--cream); border: 1px solid var(--line); color: var(--muted); font-size: .69rem; }
.filter-row a:hover, .filter-row .is-active { background: var(--forest); border-color: var(--forest); color: #fff; }
.editorial-grid--listing { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.listing-sidebar { position: sticky; top: 98px; display: grid; gap: 20px; }

.search-hero { padding-block: 55px 62px; background: var(--cream); border-bottom: 1px solid var(--line); }
.search-hero__inner { max-width: 930px; }
.search-hero h1 { max-width: 840px; margin-bottom: 27px; font-size: clamp(3.1rem, 5.6vw, 5.25rem); }
.search-page-form { display: flex; max-width: 790px; }
.search-page-form input { min-width: 0; height: 56px; flex: 1; padding: 0 18px; background: #fff; border: 1px solid var(--line); border-right: 0; outline: 0; }
.search-page-form input:focus { border-color: var(--gold); }
.search-page-form .button { min-height: 56px; }
.search-suggestions { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 0; color: var(--muted); font-size: .7rem; }
.search-suggestions span { color: var(--body); font-weight: 600; }
.search-suggestions a { text-decoration: underline; text-decoration-color: var(--gold-soft); text-underline-offset: 3px; }
.search-results { min-height: 390px; background: var(--paper); }
.editorial-grid--search { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.search-card { min-height: 245px; padding: 29px; background: var(--cream); border: 1px solid var(--line); }
.search-card__type { color: var(--wine); font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.search-card h3 { margin: 26px 0 10px; font-size: 1.25rem; }
.search-card p { min-height: 4.4em; margin-bottom: 18px; color: var(--muted); font-size: .78rem; }
.search-empty { max-width: 710px; margin: 20px auto; padding: 55px; background: var(--cream); border: 1px dashed #ccbdac; text-align: center; }
.search-empty > span { display: block; margin-bottom: 13px; color: var(--gold); font-size: 1.5rem; }
.search-empty h2 { margin-bottom: 12px; font-size: 2rem; }
.search-empty p { color: var(--muted); }
.search-empty .button { margin-top: 9px; }

/* Portrait builder */
.portrait-hero { padding: 55px 0 70px; background: var(--forest-deep); color: rgba(255,255,255,.68); }
.portrait-hero__grid { display: grid; grid-template-columns: .86fr 1.14fr; gap: 75px; align-items: center; }
.portrait-hero h1 { margin-bottom: 21px; color: #fff; }
.portrait-hero h1 em { display: block; color: var(--gold-soft); font-weight: 400; }
.portrait-hero__grid > div:first-child > p:not(.eyebrow) { max-width: 590px; margin-bottom: 27px; font-size: 1.04rem; }
.portrait-proof { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 28px; color: rgba(255,255,255,.55); font-size: .7rem; }
.portrait-proof span::first-letter { color: var(--gold); }
.portrait-hero__art { position: relative; min-height: 510px; }
.portrait-hero__photo { position: absolute; top: 25px; right: 0; width: 82%; height: 430px; object-fit: cover; opacity: .62; }
.portrait-hero__art::before { content: ""; position: absolute; top: 0; right: 30px; width: 82%; height: 430px; border: 1px dashed rgba(232,210,166,.38); }
.portrait-hero__sample { position: absolute; z-index: 2; width: 180px; filter: drop-shadow(0 24px 25px rgba(0,0,0,.35)); }
.portrait-hero__sample--one { left: 25px; bottom: 0; }
.portrait-hero__sample--two { right: 13px; bottom: -15px; width: 142px; }
.portrait-hero__art > span { position: absolute; z-index: 3; right: 35px; top: 47px; padding: 8px 12px; background: var(--paper); color: var(--forest); font-size: .66rem; font-weight: 600; }
.portrait-facts { background: var(--cream); }
.key-facts--portrait { transform: translateY(-1px); }
.portrait-studio { background: var(--paper); }
.portrait-studio__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 85px; align-items: start; }
.portrait-studio__copy h2 { margin-bottom: 19px; }
.portrait-studio__copy > p:not(.eyebrow) { max-width: 630px; color: var(--muted); }
.studio-steps { margin: 34px 0 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.studio-steps li { display: grid; grid-template-columns: 52px 1fr; gap: 17px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.studio-steps li > span { color: var(--wine); font-family: "Fraunces", Georgia, serif; font-size: 1.2rem; }
.studio-steps strong { font-family: "Fraunces", Georgia, serif; font-size: 1rem; }
.studio-steps p { margin: 4px 0 0; color: var(--muted); font-size: .76rem; }
.studio-form { padding: 39px; background: var(--cream); border: 1px solid var(--line); box-shadow: var(--shadow-sm); }
.studio-form h2 { margin-bottom: 10px; font-size: 2rem; }
.studio-form > p:not(.eyebrow) { margin-bottom: 24px; color: var(--muted); font-size: .84rem; }
.studio-form input, .studio-form select, .quote-form input, .quote-form textarea, .quote-form select { width: 100%; margin-bottom: 17px; padding: 12px 13px; background: #fff; border: 1px solid var(--line); border-radius: 0; outline: none; }
.studio-form input:focus, .studio-form select:focus, .quote-form input:focus, .quote-form textarea:focus, .quote-form select:focus { border-color: var(--gold); }
.studio-form .button { width: 100%; justify-content: space-between; margin-top: 4px; }
.studio-form > small { display: block; margin-top: 10px; color: var(--muted); font-size: .65rem; }
.portrait-products { background: var(--cream); }
.photo-advice { background: var(--sage-pale); }
.photo-advice__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 75px; align-items: center; }
.photo-advice__grid > div:first-child { position: relative; padding: 15px 0 0 15px; }
.photo-advice__grid > div:first-child::before { content: ""; position: absolute; inset: 0 25px 25px 0; border: 1px dashed #aabdaa; }
.photo-advice__grid img { position: relative; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.photo-advice h2 { margin-bottom: 19px; }
.photo-advice__grid > div:last-child > p:not(.eyebrow) { color: var(--muted); }
.photo-advice ul { margin: 22px 0 26px; padding: 0; list-style: none; }
.photo-advice li { position: relative; margin: 9px 0; padding-left: 22px; font-size: .84rem; }
.photo-advice li::before { content: "✓"; position: absolute; left: 0; color: var(--wine); }

/* Bulk page */
.bulk-hero { padding: 58px 0 0; }
.bulk-hero__grid { position: relative; display: grid; grid-template-columns: .95fr 1.05fr; gap: 85px; align-items: center; padding-bottom: 60px; }
.bulk-hero__grid > div:first-child > p:not(.eyebrow) { max-width: 620px; margin-bottom: 25px; font-size: 1rem; }
.bulk-hero__grid > div:first-child ul { margin: 0; padding: 0; list-style: none; }
.bulk-hero__grid > div:first-child li { position: relative; margin: 8px 0; padding-left: 21px; color: rgba(255,255,255,.72); font-size: .78rem; }
.bulk-hero__grid > div:first-child li::before { content: "✓"; position: absolute; left: 0; color: var(--gold); }
.quote-form { background: var(--paper); color: var(--ink); }
.quote-form--hero { padding: 33px; box-shadow: 0 30px 70px -38px rgba(0,0,0,.7); }
.quote-form h2 { margin-bottom: 19px; font-size: 1.8rem; }
.quote-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.quote-form .button { width: 100%; justify-content: space-between; }
.quote-form > small { display: block; margin-top: 10px; color: var(--muted); font-size: .63rem; }
.bulk-process { background: var(--paper); }
.bulk-process__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 0; padding: 0; border: 1px solid var(--line); list-style: none; }
.bulk-process__grid li { min-height: 285px; padding: 28px 25px; background: var(--cream); }
.bulk-process__grid li + li { border-left: 1px solid var(--line); }
.bulk-process__grid li > span { color: rgba(132,63,67,.34); font-family: "Fraunces", Georgia, serif; font-size: 2.5rem; }
.bulk-process__grid h3 { margin: 38px 0 10px; font-size: 1.2rem; }
.bulk-process__grid p { margin-bottom: 0; color: var(--muted); font-size: .78rem; }
.bulk-materials { background: var(--cream); }
.bulk-materials__grid { display: grid; grid-template-columns: .8fr 1fr 1fr; gap: 23px; }
.bulk-materials__grid > div { padding: 25px 36px 25px 0; }
.bulk-materials__grid > div h2 { margin-bottom: 17px; }
.bulk-materials__grid > div > p:not(.eyebrow) { color: var(--muted); }
.bulk-materials article { padding: 29px; background: var(--paper); border: 1px solid var(--line); }
.material-swatch { display: block; width: 100%; height: 100px; margin-bottom: 25px; }
.material-swatch--wood { background: repeating-linear-gradient(98deg, #b48250 0 4px, #c99760 4px 9px, #a97847 9px 11px); }
.material-swatch--metal { background: linear-gradient(115deg, #a8afb1, #f1f2ef 36%, #8d9697 68%, #dce0dc); }
.bulk-materials article h3 { margin-bottom: 15px; font-size: 1.22rem; }
.bulk-materials article ul { margin: 0; padding-left: 17px; color: var(--muted); font-size: .74rem; }
.bulk-materials article li { margin: 8px 0; }
.bulk-deadline { background: #1b2e32; color: rgba(255,255,255,.68); }
.bulk-deadline__inner { display: grid; grid-template-columns: 70px 1fr auto; gap: 28px; align-items: center; }
.bulk-deadline__inner > span { display: grid; width: 64px; height: 64px; place-items: center; border: 1px solid var(--gold); color: var(--gold-soft); border-radius: 50%; font-family: "Fraunces", Georgia, serif; font-size: 1.5rem; }
.bulk-deadline h2 { margin-bottom: 7px; color: #fff; }
.bulk-deadline__inner > div > p:last-child { margin-bottom: 0; }

/* 404 */
.not-found { display: grid; min-height: 680px; place-items: center; padding-block: 80px; background: var(--cream); }
.not-found__inner { max-width: 760px; text-align: center; }
.not-found__inner .eyebrow { justify-content: center; }
.not-found__ornament { position: relative; display: grid; width: 130px; height: 130px; margin: 0 auto 34px; place-items: center; border: 1px solid var(--gold); color: var(--wine); border-radius: 50%; }
.not-found__ornament::before { content: ""; position: absolute; top: -16px; width: 31px; height: 17px; background: var(--gold); border-radius: 5px 5px 0 0; }
.not-found__ornament::after { content: ""; position: absolute; top: -31px; width: 1px; height: 15px; background: var(--gold); }
.not-found__ornament i { font-family: "Fraunces", Georgia, serif; font-size: 2rem; font-style: normal; }
.not-found__ornament b { position: absolute; right: 24px; bottom: 23px; color: var(--gold); }
.not-found h1 { margin-bottom: 16px; font-size: clamp(2.8rem, 5vw, 4.3rem); }
.not-found__inner > p:not(.eyebrow) { max-width: 600px; margin: 0 auto 25px; color: var(--muted); }
.not-found .search-page-form { margin: 0 auto 22px; }

/* Responsive system */
@media (max-width: 1180px) {
  .header-row { gap: 18px; }
  .nav-link { padding-inline: 8px; }
  .header-search { display: none; }
  .mega-menu__inner { grid-template-columns: 180px minmax(0,1fr) 245px; gap: 25px; }
  .home-hero__grid { gap: 45px; }
  .product-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .home-hero h1 { font-size: clamp(2.8rem, 5.7vw, 4.4rem); }
}

@media (max-width: 980px) {
  .wrap { width: min(100% - 32px, var(--site)); }
  .section-space { padding-block: 76px; }
  .section-space--small { padding-block: 58px; }
  .desktop-nav, .header-actions { display: none; }
  .header-row { min-height: 70px; }
  .nav-toggle { position: absolute; display: block; width: 1px; height: 1px; opacity: 0; }
  .nav-toggle-label { display: grid; width: 42px; height: 42px; margin-left: auto; place-content: center; gap: 5px; border: 1px solid var(--line); cursor: pointer; }
  .nav-toggle-label span { display: block; width: 19px; height: 1px; background: var(--ink); transition: transform .18s ease, opacity .18s ease; }
  .nav-toggle:checked + .nav-toggle-label span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .nav-toggle:checked + .nav-toggle-label span:nth-child(2) { opacity: 0; }
  .nav-toggle:checked + .nav-toggle-label span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .mobile-nav { position: absolute; top: 100%; right: 0; left: 0; display: none; max-height: calc(100dvh - 70px); overflow-y: auto; padding: 20px 20px 35px; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: var(--shadow-md); }
  .nav-toggle:checked ~ .mobile-nav { display: block; }
  .mobile-search { position: relative; margin-bottom: 14px; }
  .mobile-nav details { border-top: 1px solid var(--line); }
  .mobile-nav summary, .mobile-nav > a { display: flex; align-items: center; justify-content: space-between; min-height: 54px; border-bottom: 1px solid var(--line); font-family: "Fraunces", Georgia, serif; font-size: 1rem; cursor: pointer; list-style: none; }
  .mobile-nav summary::-webkit-details-marker { display: none; }
  .mobile-hubs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; padding: 12px 0 18px; }
  .mobile-hubs a { display: flex; flex-direction: column; padding: 13px; background: var(--cream); border: 1px solid var(--line); font-size: .78rem; }
  .mobile-hubs small { margin-top: 4px; color: var(--muted); font-size: .62rem; }
  .home-hero__grid, .listing-hero__grid, .portrait-hero__grid, .bulk-hero__grid, .business-hero__grid { grid-template-columns: 1fr; }
  .home-hero__grid { gap: 45px; padding-block: 62px 72px; }
  .home-hero__copy { max-width: 730px; }
  .home-hero__visual { max-width: 760px; }
  .trust-strip__grid { grid-template-columns: repeat(2, 1fr); }
  .trust-strip__grid > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .trust-strip__grid > div:nth-child(4) { border-top: 1px solid var(--line); }
  .path-grid, .hub-tile-grid, .editorial-grid { grid-template-columns: repeat(2, 1fr); }
  .path-card:last-child { grid-column: 1 / -1; min-height: 330px; }
  .product-grid, .product-grid-block .product-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .start-section__grid, .right-now-grid, .global-newsletter__grid, .photo-advice__grid { grid-template-columns: 1fr; gap: 45px; }
  .workshop-card { grid-template-columns: 1fr; }
  .workshop-card__photo { min-height: 470px; }
  .workshop-card__photo::after { background: linear-gradient(180deg, transparent 70%, rgba(37,60,52,.45)); }
  .workshop-card__ornament { right: 20px; bottom: -55px; }
  .corporate-teaser__inner { grid-template-columns: 1fr; gap: 20px; }
  .corporate-teaser__inner .button { justify-self: start; }
  .footer-lead { grid-template-columns: 1fr 1fr; gap: 50px; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); gap: 35px 60px; }
  .entry-hero__grid { grid-template-columns: 1fr; gap: 38px; }
  .entry-hero__copy { max-width: 790px; }
  .entry-hero__visual { min-height: 440px; }
  .entry-layout, .listing-layout { grid-template-columns: 1fr; gap: 55px; }
  .entry-sidebar, .listing-sidebar { position: static; grid-template-columns: repeat(2, 1fr); align-items: start; }
  .sidebar-search { grid-column: 1 / -1; }
  .toc-box, .business-sidebar { position: static; max-height: none; }
  .sidebar-products { grid-column: 1 / -1; }
  .sidebar-products > div { grid-template-columns: repeat(2, 1fr); }
  .hub-intro__grid { grid-template-columns: 1fr 340px; gap: 45px; }
  .listing-hero__feature { max-width: 780px; }
  .portrait-studio__grid { grid-template-columns: 1fr; gap: 45px; }
  .portrait-studio__copy { max-width: 750px; }
  .business-hero__grid, .bulk-hero__grid { gap: 45px; }
  .business-hero__brief, .quote-form--hero { max-width: 720px; }
  .bulk-process__grid { grid-template-columns: repeat(2, 1fr); }
  .bulk-process__grid li:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .bulk-process__grid li:nth-child(4) { border-top: 1px solid var(--line); }
  .bulk-materials__grid { grid-template-columns: 1fr 1fr; }
  .bulk-materials__grid > div { grid-column: 1 / -1; padding-right: 0; }
  .bulk-deadline__inner { grid-template-columns: 65px 1fr; }
  .bulk-deadline__inner .button { grid-column: 2; justify-self: start; }
}

@media (max-width: 700px) {
  body { font-size: 15px; }
  .wrap { width: min(100% - 28px, var(--site)); }
  .announce__inner { min-height: 42px; font-size: .68rem; text-align: center; }
  .announce__inner > a { display: none; }
  .brand-type { font-size: 1.2rem; }
  .brand-type small { font-size: .52rem; }
  .brand-mark, .brand-mark svg { width: 35px; height: 35px; }
  .section-heading--split, .content-heading--split { display: block; }
  .section-heading--split > p, .content-heading--split > p { margin-top: 16px; }
  .home-hero__grid { min-height: 0; padding-top: 46px; }
  .home-hero h1 em { display: inline; }
  .home-hero__dek { font-size: 1rem; }
  .hero-proof { justify-content: space-between; }
  .hero-proof > div { min-width: 0; padding-right: 13px; }
  .hero-proof > div + div { padding-left: 13px; }
  .hero-proof dt { font-size: 1.02rem; }
  .hero-proof dd { font-size: .62rem; }
  .home-hero__visual { padding-left: 11px; }
  .hero-story-card { right: -5px; width: 78%; }
  .hero-keepsake-note { top: 27px; left: -4px; }
  .trust-strip__grid { grid-template-columns: 1fr; }
  .trust-strip__grid > div { min-height: 88px; padding-inline: 12px; }
  .trust-strip__grid > div + div { border-top: 1px solid var(--line); border-left: 0; }
  .path-grid, .hub-tile-grid, .editorial-grid, .editorial-grid--listing, .editorial-grid--search { grid-template-columns: 1fr; }
  .path-card:last-child { grid-column: auto; }
  .path-card { min-height: 345px; }
  .hub-tile { min-height: 300px; }
  .product-grid, .product-grid-block .product-grid { grid-template-columns: 1fr; }
  .product-card__media { aspect-ratio: 1.08 / 1; }
  .workshop-card__photo { min-height: 360px; }
  .workshop-card__copy { padding: 55px 28px 40px; }
  .workshop-card__ornament { width: 120px; bottom: -42px; }
  .right-now-list a { grid-template-columns: 36px 1fr 16px; gap: 11px; }
  .footer-lead, .footer-grid { grid-template-columns: 1fr; }
  .footer-lead { gap: 32px; }
  .footer-lead blockquote { font-size: 1.25rem; }
  .footer-fine { flex-direction: column; }
  .entry-hero__grid { padding-block: 35px 45px; }
  .entry-hero__visual { min-height: 335px; }
  .entry-trust { display: grid; }
  .entry-shell { padding-block: 54px 75px; }
  .entry-sidebar, .listing-sidebar { grid-template-columns: 1fr; }
  .sidebar-search, .sidebar-products { grid-column: auto; }
  .sidebar-products > div { grid-template-columns: 1fr; }
  .content-block { margin-bottom: 43px; }
  .product-grid-block--shelf { padding: 23px 17px; }
  .prose { font-size: 1rem; line-height: 1.76; }
  .key-facts { grid-template-columns: 1fr 1fr; }
  .key-fact { min-height: 105px; }
  .link-card-grid { grid-template-columns: 1fr; }
  .link-card { min-height: 220px; }
  .callout { grid-template-columns: 38px 1fr; padding: 22px 18px; }
  .callout__icon { width: 34px; height: 34px; }
  .builder-cta { grid-template-columns: 1fr; }
  .builder-cta__copy { padding: 38px 27px; }
  .builder-cta__art { min-height: 255px; }
  .shop-cta, .quote-cta { grid-template-columns: 1fr; justify-items: start; padding: 29px 25px; }
  .shop-cta__seal, .quote-cta__mark { width: 63px; height: 63px; }
  .inline-email { grid-template-columns: 1fr; gap: 25px; padding: 30px 22px; }
  .inline-email form > div, .global-newsletter form > div { flex-direction: column; }
  .inline-email input, .global-newsletter input { height: 50px; border-right: 1px solid var(--line); border-bottom: 0; }
  .inline-email .button, .global-newsletter .button { width: 100%; justify-content: space-between; }
  .related-grid, .read-next__grid { grid-template-columns: 1fr; }
  .product-spotlight { grid-template-columns: 1fr; }
  .product-spotlight__card { max-width: 100%; }
  .product-spotlight__copy { padding: 30px 25px; }
  .article-hero { padding-top: 35px; }
  .byline { align-items: start; }
  .byline__meta { width: 100%; padding: 7px 0 0; border: 0; }
  .article-lead-image { margin-inline: -14px; }
  .author-box { grid-template-columns: 46px 1fr; padding: 23px 20px; }
  .author-box__avatar { width: 43px; height: 43px; }
  .hub-hero { padding-top: 35px; }
  .hub-hero::before { background: linear-gradient(90deg, rgba(20,42,34,.96), rgba(20,42,34,.84)), url('/img/editorial/home-tree.webp') center / cover; }
  .hub-hero__facts { display: grid; grid-template-columns: repeat(3, 1fr); }
  .hub-hero__facts > div { min-width: 0; padding-right: 11px; }
  .hub-hero__facts > div + div { padding-left: 11px; }
  .hub-hero__facts dt { font-size: 1rem; }
  .hub-hero__facts dd { font-size: .57rem; line-height: 1.3; }
  .hub-intro__grid { grid-template-columns: 1fr; }
  .listing-hero { padding-top: 37px; }
  .listing-tools { display: block; }
  .listing-tools form { width: 100%; margin-top: 19px; }
  .search-page-form { flex-direction: column; }
  .search-page-form input { border-right: 1px solid var(--line); border-bottom: 0; }
  .search-page-form .button { width: 100%; justify-content: space-between; }
  .search-empty { padding: 38px 22px; }
  .portrait-hero { padding-top: 38px; }
  .portrait-hero__art { min-height: 430px; }
  .portrait-hero__photo { width: 92%; height: 350px; }
  .portrait-hero__art::before { width: 92%; height: 350px; }
  .portrait-hero__sample { width: 135px; }
  .portrait-hero__sample--two { width: 105px; }
  .portrait-proof { display: grid; }
  .studio-form { padding: 28px 22px; }
  .bulk-hero { padding-top: 38px; }
  .quote-form--hero { padding: 26px 20px; }
  .quote-form__row { grid-template-columns: 1fr; gap: 0; }
  .business-facts { grid-template-columns: 1fr 1fr; }
  .business-facts > div:nth-child(3) { border-top: 1px solid rgba(255,255,255,.14); border-left: 0; }
  .business-facts > div:nth-child(4) { border-top: 1px solid rgba(255,255,255,.14); }
  .bulk-process__grid, .bulk-materials__grid { grid-template-columns: 1fr; }
  .bulk-process__grid li { min-height: 230px; }
  .bulk-process__grid li + li { border-top: 1px solid var(--line); border-left: 0; }
  .bulk-materials__grid > div { grid-column: auto; }
  .bulk-deadline__inner { grid-template-columns: 50px 1fr; gap: 17px; }
  .bulk-deadline__inner > span { width: 48px; height: 48px; }
  .bulk-deadline__inner .button { grid-column: 1 / -1; }
}

@media (max-width: 430px) {
  .mobile-hubs { grid-template-columns: 1fr; }
  .hero-proof dd { max-width: 78px; }
  .hero-story-card { position: relative; right: auto; bottom: auto; width: calc(100% - 22px); margin: -25px 0 0 auto; }
  .entry-hero__visual { min-height: 290px; }
  .key-facts { grid-template-columns: 1fr; }
  .key-fact { min-height: 88px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* ---- Hub redesign (2026-08-27): welcome prose up top, start-here feature,
   product-image card fallbacks, guides as a reading list, ornament shelf,
   explore band moved to the bottom. ---- */
.hub-welcome { background: var(--paper); }
.hub-welcome__inner { max-width: var(--reading); }
.hub-welcome__inner p { color: var(--body); }

.hub-feature__card { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; overflow: hidden; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-card); }
.hub-feature__image { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 3; background: var(--cream-deep); }
.hub-feature__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.hub-feature__card:hover .hub-feature__image img { transform: scale(1.02); }
.hub-feature__image .editorial-card__fallback { position: absolute; inset: 0; }
.hub-feature__body { padding: 40px 44px; }
.hub-feature__body h2 { margin: 8px 0 12px; }
.hub-feature__body h2 a { color: inherit; }
.hub-feature__body > p { max-width: 46ch; color: var(--body); }

.editorial-card__image img[data-product-image],
.hub-feature__image img[data-product-image] { object-fit: contain; padding: 22px; background: linear-gradient(140deg, var(--sage-pale), var(--cream)); }

.hub-guide-list { max-width: 860px; margin: 0; padding: 0; list-style: none; counter-reset: hubguide; }
.hub-guide-list li { counter-increment: hubguide; border-top: 1px solid var(--line); }
.hub-guide-list li:last-child { border-bottom: 1px solid var(--line); }
.hub-guide-list a { display: grid; grid-template-columns: 58px 1fr 24px; gap: 18px; align-items: center; padding: 22px 6px; color: inherit; }
.hub-guide-list a::before { content: counter(hubguide, decimal-leading-zero); font-family: "Fraunces", Georgia, serif; font-size: 1.5rem; color: var(--gold); }
.hub-guide-list h3 { margin: 0 0 4px; font-size: 1.12rem; }
.hub-guide-list p { margin: 0; color: var(--muted); font-size: .85rem; }
.hub-guide-list b { color: var(--wine); transition: transform .25s ease; }
.hub-guide-list a:hover b { transform: translateX(4px); }
.hub-guide-list a:hover h3 { color: var(--wine); }

.hub-shelf { background: var(--cream); }

.hub-explore { background: var(--sage-pale); }
.hub-explore__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.hub-explore__grid a { display: grid; grid-template-columns: 1fr auto 18px; gap: 10px; align-items: center; padding: 16px 18px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--forest); font-size: .82rem; font-weight: 600; }
.hub-explore__grid a:hover { border-color: var(--gold); }
.hub-explore__grid small { color: var(--muted); font-size: .68rem; font-weight: 400; }
.hub-explore__grid b { color: var(--wine); }

@media (max-width: 900px) {
  .hub-feature__card { grid-template-columns: 1fr; }
  .hub-feature__body { padding: 26px 22px 30px; }
  .hub-guide-list a { grid-template-columns: 40px 1fr 20px; gap: 12px; }
}
